@burdenoff/fluidgrids-fe-sdk 2026.1113.11 → 2026.1114.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.
Files changed (64) hide show
  1. package/dist/{AiStudioPage-BP2cLXEK.js → AiStudioPage-C040XZyS.js} +4 -4
  2. package/dist/{DataSinkDashboardPage-CiFi9YXQ.js → DataSinkDashboardPage-BoyLrZnt.js} +1 -1
  3. package/dist/{ExecutionDetailPage-BfFrWnBj.js → ExecutionDetailPage-C0lNp122.js} +5 -5
  4. package/dist/{ExecutionsListPage-BRvj71Nd.js → ExecutionsListPage-BpHBy1JU.js} +4 -4
  5. package/dist/{FluidGridsProvider-Dxehlm-2.js → FluidGridsProvider-CPLfIarV.js} +2 -2
  6. package/dist/{HistoryPage-CjtgUOZr.js → HistoryPage-CCZS-hPw.js} +1 -1
  7. package/dist/{InsightsPage-BsGqBpUO.js → InsightsPage-C-Nm9YNI.js} +1 -1
  8. package/dist/{NodesPage-B8fqXtey.js → NodesPage-C3sh0aL9.js} +1 -1
  9. package/dist/{PaidTemplateConfirm-BUBCnbP0.js → PaidTemplateConfirm-D20JFNCb.js} +1 -1
  10. package/dist/{QuotaExhaustedDialog-BEsj0A-I.js → QuotaExhaustedDialog-DTpI0jfj.js} +1 -1
  11. package/dist/{SettingsPage-DpBhx95x.js → SettingsPage-CmIa107C.js} +828 -8
  12. package/dist/{TaskQueuesPage-DLzuumGp.js → TaskQueuesPage-BNoe05qF.js} +16 -2
  13. package/dist/{TemplateCard-DD3vJ3a5.js → TemplateCard-C_YMW80k.js} +44 -34
  14. package/dist/{TemplateConfigurationModal-BtzI-4fr.js → TemplateConfigurationModal-DmM7s1zk.js} +1 -1
  15. package/dist/{TemplateDetailPanel-BxFNnlXm.js → TemplateDetailPanel-k0esV8pr.js} +12 -15
  16. package/dist/{TemplatePreview-Ca7df91b.js → TemplatePreview-aKYt0Kad.js} +4 -4
  17. package/dist/{TemplatesPage-BSMLtMnf.js → TemplatesPage-DIVghCB6.js} +12 -10
  18. package/dist/{WorkflowBuilder-Bok_WtPQ.js → WorkflowBuilder-BsDvbIpS.js} +6 -6
  19. package/dist/{WorkflowBuilder-Dh8MYfZJ.js → WorkflowBuilder-knGFBAAk.js} +4 -4
  20. package/dist/{WorkflowSearchRedirect-bcWo68LY.js → WorkflowSearchRedirect-DFsQzQw9.js} +1 -1
  21. package/dist/{WorkflowsList-DURQu2ZD.js → WorkflowsList-DEN-0uQe.js} +6 -6
  22. package/dist/{agentTools-B4BDCe57.js → agentTools-BTld9unj.js} +3 -3
  23. package/dist/{app-BIsCEL65.js → app-4Qdv2_5b.js} +4 -4
  24. package/dist/{attach-node-helpers-CCWFS75V.js → attach-node-helpers-4d-YMaBH.js} +1 -1
  25. package/dist/{canvasNoteTools-CLMZ6u5m.js → canvasNoteTools-C9vJMuXY.js} +2 -2
  26. package/dist/executions.js +2 -2
  27. package/dist/{flow-builder-CIvz3sOr.js → flow-builder-ConlP_db.js} +60 -48
  28. package/dist/history.js +1 -1
  29. package/dist/{index-BDN8AK1D.d.ts → index-BVCOwqsN.d.ts} +90 -59
  30. package/dist/index.d.ts +2 -2
  31. package/dist/index.js +45 -45
  32. package/dist/{label-CDy86rIZ.js → label-BMVzJ2yW.js} +2 -2
  33. package/dist/{logs-panel-_Dl5Nrdn.js → logs-panel-BgGt_dFm.js} +1 -1
  34. package/dist/{node-detail-view-Dz1ZCIzV.js → node-detail-view-C4jNBsfW.js} +9 -9
  35. package/dist/{node-editor-tab-body-D5ybpm-b.js → node-editor-tab-body-CYeFTQr6.js} +3 -3
  36. package/dist/{node-operation-selection-bFx9s45-.js → node-operation-selection-DHbtGNrG.js} +9 -9
  37. package/dist/node-type-icon-DEAztACh.js +28 -0
  38. package/dist/nodes.js +1 -1
  39. package/dist/observability.d.ts +1 -1
  40. package/dist/observability.js +2 -2
  41. package/dist/{popover-ClSWhtja.js → popover-DhwmsszC.js} +4 -4
  42. package/dist/{quick-config-panel-iDMk4TT5.js → quick-config-panel-c8JQlXuc.js} +5 -5
  43. package/dist/{schedule-panel-DzkTZm2q.js → schedule-panel-CBab8kSL.js} +5 -5
  44. package/dist/settings.js +1 -1
  45. package/dist/{sidebar-node-editor-C16VnTzr.js → sidebar-node-editor-Bo_XRHJs.js} +5 -5
  46. package/dist/store-icon-BOiBSHY6.js +100 -0
  47. package/dist/template-preview-BpP8QMAe.js +32 -0
  48. package/dist/templates.js +2 -2
  49. package/dist/{useAgentDefinitions-akQ6WwzD.js → useAgentDefinitions-Bs_ci53W.js} +1 -1
  50. package/dist/{useDurableParity-fZcATZHI.js → useDurableParity-DrahdkaR.js} +1 -1
  51. package/dist/{useExecutions-lRqeXDYS.js → useExecutions-6P7ohzlh.js} +1 -1
  52. package/dist/{useGlobalStoreClient-BOI2kYRv.js → useGlobalStoreClient-B42oOe9Q.js} +1 -1
  53. package/dist/{useObservability-CBFLQBQO.js → useObservability-BSLLLev9.js} +1 -1
  54. package/dist/{useRunHistory-DSDD_ha3.js → useRunHistory-DuKiGSuF.js} +1 -1
  55. package/dist/{useWorkflowCodeExport-qGat2KNz.js → useWorkflowCodeExport-D80HIo-F.js} +1 -1
  56. package/dist/{useWorkflows-CXwXQg74.js → useWorkflows-B5kFIfrZ.js} +1 -1
  57. package/dist/workflow-builder.js +5 -5
  58. package/dist/workflow-pages.d.ts +1 -1
  59. package/dist/workflow-pages.js +15 -15
  60. package/dist/workflow-preview.js +1 -1
  61. package/dist/workflows-list.js +1 -1
  62. package/package.json +1 -1
  63. package/dist/node-type-icon-D28t8I64.js +0 -35
  64. package/dist/template-preview-C01KV277.js +0 -29
@@ -1,13 +1,13 @@
1
1
  "use client";
2
2
  import { t as cn } from "./cn-QqidFIgr.js";
3
- import * as React$1 from "react";
3
+ import * as React from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  import { cva } from "class-variance-authority";
6
6
  import * as LabelPrimitive from "@radix-ui/react-label";
7
7
 
8
8
  // src/ui/label.tsx
9
9
  const labelVariants = cva("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70");
10
- const Label = React$1.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(LabelPrimitive.Root, {
10
+ const Label = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(LabelPrimitive.Root, {
11
11
  ref,
12
12
  className: cn(labelVariants(), className),
13
13
  ...props
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { A as useFlowStore } from "./node-operation-selection-bFx9s45-.js";
2
+ import { A as useFlowStore } from "./node-operation-selection-DHbtGNrG.js";
3
3
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
4
4
  import { useCallback, useEffect, useRef, useState } from "react";
5
5
  import { Icon } from "@iconify/react";
@@ -1,21 +1,21 @@
1
1
  "use client";
2
2
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
3
- import { A 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-bFx9s45-.js";
4
- import { B as nodeSubtitle, G as useNodeConfig, Un as getNodeDetail, V as nodeTitle, en as useNodeExecution, gn as useCodeWorkflowInterface, mn as clearCodeWorkflowDefinitionCache, ot as useGuardedNavigate, rt as latestNodeLog, sn as fieldsFromValue, tt as FieldTree, vn as declaredSignals } from "./FluidGridsProvider-Dxehlm-2.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-DzkTZm2q.js";
3
+ import { A 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-DHbtGNrG.js";
4
+ import { B as nodeSubtitle, G as useNodeConfig, Un as getNodeDetail, V as nodeTitle, en as useNodeExecution, gn as useCodeWorkflowInterface, mn as clearCodeWorkflowDefinitionCache, ot as useGuardedNavigate, rt as latestNodeLog, sn as fieldsFromValue, tt as FieldTree, vn as declaredSignals } from "./FluidGridsProvider-CPLfIarV.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-CBab8kSL.js";
6
6
  import { n as getFluidGridsClient, r as getFluidGridsClientSafe } from "./client-Ctl4jmY3.js";
7
7
  import { o as throwIfResultError, t as describeOperationError } from "./errors-xPZ-IbQd.js";
8
8
  import { i as FileDownloadUrlDocument, n as WorkflowCodeSourceDocument, r as BuildWorkflowCodeDocument, t as WorkflowEditLeaseStatusDocument } from "./WorkflowEditLeaseStatusDocument-Dp62med3.js";
9
- import { r as TableView, t as JsonView } from "./logs-panel-_Dl5Nrdn.js";
10
- import { hn as NodeStatesDocument, jt as useUnpinNodeDataMutation, qt as useWorkflowPinnedDataQuery, st as usePinNodeDataMutation } from "./useAgentDefinitions-akQ6WwzD.js";
9
+ import { r as TableView, t as JsonView } from "./logs-panel-BgGt_dFm.js";
10
+ import { hn as NodeStatesDocument, jt as useUnpinNodeDataMutation, qt as useWorkflowPinnedDataQuery, st as usePinNodeDataMutation } from "./useAgentDefinitions-Bs_ci53W.js";
11
11
  import { l as useDurableFunctionNodesEnabled, m as usePhaseCFlags } from "./feature-flags-B_b8PJ6Z.js";
12
12
  import { s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
13
13
  import { t as CodeEditorField } from "./code-editor-field-Cv907s3W.js";
14
14
  import { h as fetchCodeBundleSdk } from "./api-CEnNq15C.js";
15
- import { n as SignalRunDialog, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-DSDD_ha3.js";
15
+ import { n as SignalRunDialog, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-DuKiGSuF.js";
16
16
  import { s as isAgentNodeType } from "./agent-form-D0uLvzx4.js";
17
17
  import { n as agentTracePath } from "./ai-usage-DVtvLZ2P.js";
18
- import * as React$1 from "react";
18
+ import * as React from "react";
19
19
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
20
20
  import { useNavigate } from "react-router";
21
21
  import { Icon } from "@iconify/react";
@@ -433,8 +433,8 @@ function TextPreview({ url, csv }) {
433
433
  * known" and render the layout that degrades most gracefully.
434
434
  */
435
435
  function useMediaQuery(query) {
436
- const [matches, setMatches] = React$1.useState(false);
437
- React$1.useEffect(() => {
436
+ const [matches, setMatches] = React.useState(false);
437
+ React.useEffect(() => {
438
438
  const mql = window.matchMedia(query);
439
439
  const onChange = (e) => setMatches(e.matches);
440
440
  setMatches(mql.matches);
@@ -1,10 +1,10 @@
1
1
  "use client";
2
- import { A as useFlowStore } from "./node-operation-selection-bFx9s45-.js";
3
- import { V as nodeTitle, tt as FieldTree } from "./FluidGridsProvider-Dxehlm-2.js";
2
+ import { A as useFlowStore } from "./node-operation-selection-DHbtGNrG.js";
3
+ import { V as nodeTitle, tt as FieldTree } from "./FluidGridsProvider-CPLfIarV.js";
4
4
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
5
5
  import { m as usePhaseCFlags } from "./feature-flags-B_b8PJ6Z.js";
6
6
  import { s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.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-DzkTZm2q.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-CBab8kSL.js";
8
8
  import { useState } from "react";
9
9
  import { Icon } from "@iconify/react";
10
10
  import { cn } from "@burdenoff/fe-libs/utils";
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
3
- import { t as NodeTypeIcon } from "./node-type-icon-D28t8I64.js";
3
+ import { t as NodeTypeIcon } from "./node-type-icon-DEAztACh.js";
4
4
  import { t as editorSeverity } from "./code-editor-diagnostics-Zr0cIcx1.js";
5
- import * as React$1 from "react";
5
+ import * as React from "react";
6
6
  import { useCallback, useEffect, useMemo } from "react";
7
7
  import { create } from "zustand";
8
8
  import { Handle, Position, addEdge, applyEdgeChanges, applyNodeChanges, getConnectedEdges, useNodeId, useStore, useUpdateNodeInternals } from "@xyflow/react";
@@ -860,9 +860,9 @@ function tint(color, pct = 14) {
860
860
  }
861
861
  function InlineEditableLabel({ value, placeholder, editing, onStartEdit, onCommit, onCancel, className, inputClassName }) {
862
862
  const tr = useTr();
863
- const [draft, setDraft] = React$1.useState(value);
864
- const inputRef = React$1.useRef(null);
865
- React$1.useEffect(() => {
863
+ const [draft, setDraft] = React.useState(value);
864
+ const inputRef = React.useRef(null);
865
+ React.useEffect(() => {
866
866
  if (!editing) return;
867
867
  setDraft(value);
868
868
  const raf = requestAnimationFrame(() => {
@@ -901,9 +901,9 @@ function InlineEditableLabel({ value, placeholder, editing, onStartEdit, onCommi
901
901
  children: value || placeholder
902
902
  });
903
903
  }
904
- const NodeCard = React$1.forwardRef(({ className, selected = false, executionStatus = "idle", itemCount, isTrigger = false, accent = nodeCategoryColor("action"), onSettings, onExecute, onDelete, isExecuting = false, infoButton, disabled = false, onToggleDisabled, onAskAi, children, ...props }, ref) => {
904
+ const NodeCard = React.forwardRef(({ className, selected = false, executionStatus = "idle", itemCount, isTrigger = false, accent = nodeCategoryColor("action"), onSettings, onExecute, onDelete, isExecuting = false, infoButton, disabled = false, onToggleDisabled, onAskAi, children, ...props }, ref) => {
905
905
  const tr = useTr();
906
- const [hovered, setHovered] = React$1.useState(false);
906
+ const [hovered, setHovered] = React.useState(false);
907
907
  const statusRing = executionStatus === "running" ? "ring-2 ring-[var(--color-status-success-border)] animate-pulse-border" : executionStatus === "success" ? "ring-2 ring-[var(--color-status-success-border)]" : executionStatus === "error" ? "ring-2 ring-[var(--color-status-error-border)]" : "";
908
908
  return /* @__PURE__ */ jsxs("div", {
909
909
  className: "group/node relative",
@@ -1068,7 +1068,7 @@ function StatusCorner({ icon, tone }) {
1068
1068
  })
1069
1069
  });
1070
1070
  }
1071
- const NodeCardHeader = React$1.forwardRef(({ icon, appName, accentKey, missingCredentials = false, missingParameters = [], label, isRenaming = false, onStartRename, onCommitRename, onCancelRename }, ref) => {
1071
+ const NodeCardHeader = React.forwardRef(({ icon, appName, accentKey, missingCredentials = false, missingParameters = [], label, isRenaming = false, onStartRename, onCommitRename, onCancelRename }, ref) => {
1072
1072
  const tr = useTr();
1073
1073
  const accent = nodeAccent(accentKey);
1074
1074
  return /* @__PURE__ */ jsxs("div", {
@@ -1124,7 +1124,7 @@ const NodeCardHeader = React$1.forwardRef(({ icon, appName, accentKey, missingCr
1124
1124
  });
1125
1125
  });
1126
1126
  NodeCardHeader.displayName = "NodeCardHeader";
1127
- const NodeCardBody = React$1.forwardRef(({ operationName, description }, ref) => {
1127
+ const NodeCardBody = React.forwardRef(({ operationName, description }, ref) => {
1128
1128
  const tr = useTr();
1129
1129
  return /* @__PURE__ */ jsxs("div", {
1130
1130
  ref,
@@ -0,0 +1,28 @@
1
+ "use client";
2
+ import { n as storeIconCandidates, t as StoreIcon } from "./store-icon-BOiBSHY6.js";
3
+ import { Icon } from "@iconify/react";
4
+ import { cn } from "@burdenoff/fe-libs/utils";
5
+ import { jsx } from "react/jsx-runtime";
6
+
7
+ // src/builder/components/flow-builder/components/ui/node-type-icon.tsx
8
+ /**
9
+ * Renders a node's manifest icon regardless of format: image URLs render as
10
+ * <img>, Iconify names render as <Icon>. Keeps every surface (canvas card,
11
+ * store panel, NDV, info modal) working for both seeded and store-published
12
+ * nodes. An image that fails to load (expired upload link, dead host) falls
13
+ * back to `fallbackIcon` instead of showing a broken-image glyph.
14
+ */
15
+ function NodeTypeIcon({ icon, alt, className, fallbackIcon = "mynaui:puzzle" }) {
16
+ return /* @__PURE__ */ jsx(StoreIcon, {
17
+ candidates: storeIconCandidates([icon, fallbackIcon]),
18
+ alt: alt ?? "",
19
+ imageClassName: cn("object-contain", className),
20
+ iconClassName: className,
21
+ fallback: /* @__PURE__ */ jsx(Icon, {
22
+ icon: fallbackIcon,
23
+ className
24
+ })
25
+ });
26
+ }
27
+
28
+ export { NodeTypeIcon as t };
package/dist/nodes.js CHANGED
@@ -1,4 +1,4 @@
1
1
  "use client";
2
- import { t as NodesPage } from "./NodesPage-B8fqXtey.js";
2
+ import { t as NodesPage } from "./NodesPage-C3sh0aL9.js";
3
3
 
4
4
  export { NodesPage };
@@ -1,3 +1,3 @@
1
1
 
2
- import { ARa as DataSinkDashboardPage, Aa as LogStreamDestination, DRa as InsightsPage, Da as DataSinkData, ERa as ErrorAnalyticsPage, Ea as DashboardSummary, Ma as LogStreamEventType, Na as LogStreamProvider, Oa as DataSinkSummary, Pa as NodeUsageStat, ja as LogStreamDestinationInput, ka as FailedRun } from "./index-BDN8AK1D.js";
2
+ import { ARa as InsightsPage, Aa as LogStreamDestination, Da as DataSinkData, Ea as DashboardSummary, Ma as LogStreamEventType, NRa as DataSinkDashboardPage, Na as LogStreamProvider, Oa as DataSinkSummary, Pa as NodeUsageStat, ja as LogStreamDestinationInput, kRa as ErrorAnalyticsPage, ka as FailedRun } from "./index-BVCOwqsN.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,5 +1,5 @@
1
1
  "use client";
2
- import { t as DataSinkDashboardPage } from "./DataSinkDashboardPage-CiFi9YXQ.js";
3
- import { n as InsightsPage, t as ErrorAnalyticsPage } from "./InsightsPage-BsGqBpUO.js";
2
+ import { t as DataSinkDashboardPage } from "./DataSinkDashboardPage-BoyLrZnt.js";
3
+ import { n as InsightsPage, t as ErrorAnalyticsPage } from "./InsightsPage-C-Nm9YNI.js";
4
4
 
5
5
  export { DataSinkDashboardPage, ErrorAnalyticsPage, InsightsPage };
@@ -1,14 +1,14 @@
1
1
  "use client";
2
- import { Bn as matchesAdapterProvider, Hn as replaceAdapterConnections, Rn as connectionsForAdapter, Vn as newConnectionProviderKey, zn as isOptionalAdapter } from "./FluidGridsProvider-Dxehlm-2.js";
2
+ import { Bn as matchesAdapterProvider, Hn as replaceAdapterConnections, Rn as connectionsForAdapter, Vn as newConnectionProviderKey, zn as isOptionalAdapter } from "./FluidGridsProvider-CPLfIarV.js";
3
3
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
4
- import { r as useAgentsUsingConnection } from "./useAgentDefinitions-akQ6WwzD.js";
4
+ import { r as useAgentsUsingConnection } from "./useAgentDefinitions-Bs_ci53W.js";
5
5
  import { n as useConnections } from "./useConnections-BlB0gbOB.js";
6
6
  import { t as cn } from "./cn-QqidFIgr.js";
7
7
  import { a as SdkPermissionGate, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
8
8
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
9
9
  import { t as ConnectionFormDialog } from "./ConnectionFormDialog-Dr1-CTan.js";
10
10
  import { a as useRunners, t as RunnerStatusPill } from "./RunnerStatusPill-Bh7mEsPh.js";
11
- import * as React$1 from "react";
11
+ import * as React from "react";
12
12
  import { useCallback, useMemo, useState } from "react";
13
13
  import { Icon } from "@iconify/react";
14
14
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1274,7 +1274,7 @@ function RunOnSection({ value, onChange, sectionLabelClassName }) {
1274
1274
  // src/ui/popover.tsx
1275
1275
  const Popover$1 = PopoverPrimitive.Root;
1276
1276
  const PopoverTrigger$1 = PopoverPrimitive.Trigger;
1277
- const PopoverContent$1 = React$1.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(PopoverPrimitive.Content, {
1277
+ const PopoverContent$1 = React.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(PopoverPrimitive.Content, {
1278
1278
  ref,
1279
1279
  "data-slot": "popover-content",
1280
1280
  align,
@@ -1,10 +1,10 @@
1
1
  "use client";
2
- import { t as NodeTypeIcon } from "./node-type-icon-D28t8I64.js";
3
- import { A as useFlowStore, k as nodeAccent } from "./node-operation-selection-bFx9s45-.js";
4
- import { B as nodeSubtitle, G as useNodeConfig, Un as getNodeDetail, V as nodeTitle, en as useNodeExecution } from "./FluidGridsProvider-Dxehlm-2.js";
5
- import { i as NodeInputFields, n as useNodeEditorTab, r as NodeEditorTabs, t as NodeEditorTabBody } from "./node-editor-tab-body-D5ybpm-b.js";
2
+ import { t as NodeTypeIcon } from "./node-type-icon-DEAztACh.js";
3
+ import { A as useFlowStore, k as nodeAccent } from "./node-operation-selection-DHbtGNrG.js";
4
+ import { B as nodeSubtitle, G as useNodeConfig, Un as getNodeDetail, V as nodeTitle, en as useNodeExecution } from "./FluidGridsProvider-CPLfIarV.js";
5
+ import { i as NodeInputFields, n as useNodeEditorTab, r as NodeEditorTabs, t as NodeEditorTabBody } from "./node-editor-tab-body-CYeFTQr6.js";
6
6
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
7
- import { r as NodeExecutionActions } from "./schedule-panel-DzkTZm2q.js";
7
+ import { r as NodeExecutionActions } from "./schedule-panel-CBab8kSL.js";
8
8
  import { useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
9
9
  import { useReactFlow, useStore } from "@xyflow/react";
10
10
  import { Icon } from "@iconify/react";
@@ -2,17 +2,17 @@
2
2
  import { r as getFluidGridsConfig } from "./config-X97zrIvn.js";
3
3
  import { o as throwIfResultError, t as describeOperationError } from "./errors-xPZ-IbQd.js";
4
4
  import { n as getFluidGridsClient, r as getFluidGridsClientSafe } from "./client-Ctl4jmY3.js";
5
- import { A as useFlowStore } from "./node-operation-selection-bFx9s45-.js";
6
- import { $ as SwitchRulesEditor, F as useRunGuard, H as optionText, J as isStringOptionList, L as asRecord, Q as ConditionTreeBuilder, R as coerceNumber, Tt as useSaveStatusStore, U as paramsFromOperation, V as nodeTitle, X as optionListValues, Y as optionListText, Z as resolveLoadOptionsSpec, an as parseParameterValue, at as missingRequiredParameters, dn as openRunQuotaUpgradePrompt, et as casesFromRules, in as formatParameterValue, it as boundFieldsOf, ln as isParamVisible, nt as parseMappingValue, on as structuredParameterType, t as FluidGridsContext, un as useFluidGridsAnalytics } from "./FluidGridsProvider-Dxehlm-2.js";
5
+ import { A as useFlowStore } from "./node-operation-selection-DHbtGNrG.js";
6
+ import { $ as SwitchRulesEditor, F as useRunGuard, H as optionText, J as isStringOptionList, L as asRecord, Q as ConditionTreeBuilder, R as coerceNumber, Tt as useSaveStatusStore, U as paramsFromOperation, V as nodeTitle, X as optionListValues, Y as optionListText, Z as resolveLoadOptionsSpec, an as parseParameterValue, at as missingRequiredParameters, dn as openRunQuotaUpgradePrompt, et as casesFromRules, in as formatParameterValue, it as boundFieldsOf, ln as isParamVisible, nt as parseMappingValue, on as structuredParameterType, t as FluidGridsContext, un as useFluidGridsAnalytics } from "./FluidGridsProvider-CPLfIarV.js";
7
7
  import { n as useBuilderReadOnly } from "./read-only-context-Dt9N9SIG.js";
8
8
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
9
9
  import { L as triggerSchedule, T as pauseSchedule, t as backfillSchedule, u as describeSchedule, z as unpauseSchedule } from "./api-CEnNq15C.js";
10
- import { on as PreviewScheduleDocument, t as useAgentDefinitionList, vt as useRunFromNodeEligibilityQuery } from "./useAgentDefinitions-akQ6WwzD.js";
10
+ import { on as PreviewScheduleDocument, t as useAgentDefinitionList, vt as useRunFromNodeEligibilityQuery } from "./useAgentDefinitions-Bs_ci53W.js";
11
11
  import { r as describeRule, s as isAgentNodeType } from "./agent-form-D0uLvzx4.js";
12
- import { a as ConnectionSelector, c as StopWebhookTestListenerDocument, d as ListenForFormTestSubmissionDocument, i as RunOnSection, l as RegenerateEventRegistrationTokenDocument, n as PopoverContent$1, o as WorkflowCallInputsDocument, r as PopoverTrigger$1, s as WebhookTestListenerDocument, t as Popover$1, u as ListenForWebhookTestEventDocument } from "./popover-ClSWhtja.js";
12
+ import { a as ConnectionSelector, c as StopWebhookTestListenerDocument, d as ListenForFormTestSubmissionDocument, i as RunOnSection, l as RegenerateEventRegistrationTokenDocument, n as PopoverContent$1, o as WorkflowCallInputsDocument, r as PopoverTrigger$1, s as WebhookTestListenerDocument, t as Popover$1, u as ListenForWebhookTestEventDocument } from "./popover-DhwmsszC.js";
13
13
  import { a as collectExtensions } from "./quota-Cdt8yz7N.js";
14
14
  import { GI as WorkflowScheduleOverlapPolicy, PO as ScheduleType } from "./graphql-types-D82O-0XY.js";
15
- import { t as useGlobalStoreClient } from "./useGlobalStoreClient-BOI2kYRv.js";
15
+ import { t as useGlobalStoreClient } from "./useGlobalStoreClient-B42oOe9Q.js";
16
16
  import { a as operatorSpec, c as ruleFromRow, i as normaliseAssertRules, n as describeAssertRuleProblem, o as readAssertRulesSetting, r as emptyAssertRuleRow, s as rowsFromRules, t as ASSERT_OPERATORS } from "./assert-rules-BbSyxL5d.js";
17
17
  import { i as NativeSelect, o as StatusPill, t as FieldError, u as useResource } from "./shared-C0LCTtyh.js";
18
18
  import { r as normalizeCodeLanguage, t as CodeEditorField } from "./code-editor-field-Cv907s3W.js";
package/dist/settings.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as SettingsPage } from "./SettingsPage-DpBhx95x.js";
2
+ import { t as SettingsPage } from "./SettingsPage-CmIa107C.js";
3
3
  import { t as ManagedAiPolicyAuthorityProvider } from "./ManagedAiPolicyAuthority-BxwJ3ptd.js";
4
4
 
5
5
  export { ManagedAiPolicyAuthorityProvider, SettingsPage };
@@ -1,9 +1,9 @@
1
1
  "use client";
2
- import { A as useFlowStore, k as nodeAccent } from "./node-operation-selection-bFx9s45-.js";
3
- import { B as nodeSubtitle, G as useNodeConfig, Un as getNodeDetail, V as nodeTitle, en as useNodeExecution } from "./FluidGridsProvider-Dxehlm-2.js";
4
- import { t as NodeTypeIcon } from "./node-type-icon-D28t8I64.js";
5
- import { i as NodeInputFields, n as useNodeEditorTab, r as NodeEditorTabs, t as NodeEditorTabBody } from "./node-editor-tab-body-D5ybpm-b.js";
6
- import { r as NodeExecutionActions } from "./schedule-panel-DzkTZm2q.js";
2
+ import { A as useFlowStore, k as nodeAccent } from "./node-operation-selection-DHbtGNrG.js";
3
+ import { B as nodeSubtitle, G as useNodeConfig, Un as getNodeDetail, V as nodeTitle, en as useNodeExecution } from "./FluidGridsProvider-CPLfIarV.js";
4
+ import { t as NodeTypeIcon } from "./node-type-icon-DEAztACh.js";
5
+ import { i as NodeInputFields, n as useNodeEditorTab, r as NodeEditorTabs, t as NodeEditorTabBody } from "./node-editor-tab-body-CYeFTQr6.js";
6
+ import { r as NodeExecutionActions } from "./schedule-panel-CBab8kSL.js";
7
7
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
8
8
  import { useEffect, useState } from "react";
9
9
  import { Icon } from "@iconify/react";
@@ -0,0 +1,100 @@
1
+ "use client";
2
+ import { useState } from "react";
3
+ import { Icon } from "@iconify/react";
4
+ import { cn } from "@burdenoff/fe-libs/utils";
5
+ import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
6
+
7
+ // src/utils/store-icon.ts
8
+ const ICONIFY_NAME = /^[a-z0-9]+(?:-[a-z0-9]+)*:[a-z0-9]+(?:[-_][a-z0-9]+)*$/i;
9
+ /** True when the value is an Iconify `prefix:name` icon, not a URL. */
10
+ function isIconifyName(value) {
11
+ return ICONIFY_NAME.test(value) && !/^(https?|data|blob):/i.test(value);
12
+ }
13
+ const IMAGE_URL = /^https?:\/\/[^\s/]/i;
14
+ const DATA_IMAGE = /^data:image\/[a-z0-9.+-]+[;,]/i;
15
+ const BLOB_URL = /^blob:\S/i;
16
+ /**
17
+ * Classifies one icon value. Returns null for values that can never render:
18
+ * empty strings, bare words, relative paths and non-image schemes.
19
+ */
20
+ function classifyStoreIcon(value) {
21
+ const trimmed = value?.trim();
22
+ if (!trimmed) return null;
23
+ if (IMAGE_URL.test(trimmed) || DATA_IMAGE.test(trimmed) || BLOB_URL.test(trimmed)) return {
24
+ kind: "image",
25
+ src: trimmed
26
+ };
27
+ if (isIconifyName(trimmed)) return {
28
+ kind: "icon",
29
+ name: trimmed
30
+ };
31
+ return null;
32
+ }
33
+ /** Stable identity for a candidate, used to remember failed images. */
34
+ function storeIconKey(source) {
35
+ return source.kind === "image" ? source.src : `icon:${source.name}`;
36
+ }
37
+ /**
38
+ * The renderable candidates for a list of icon values, in priority order,
39
+ * with unrenderable values and duplicates removed.
40
+ */
41
+ function storeIconCandidates(values) {
42
+ const seen = /* @__PURE__ */ new Set();
43
+ const candidates = [];
44
+ for (const value of values) {
45
+ const source = classifyStoreIcon(value);
46
+ if (!source) continue;
47
+ const key = storeIconKey(source);
48
+ if (seen.has(key)) continue;
49
+ seen.add(key);
50
+ candidates.push(source);
51
+ }
52
+ return candidates;
53
+ }
54
+ /**
55
+ * The first candidate whose image has not failed to load. Iconify names never
56
+ * fail here: the icon component draws nothing when it cannot resolve one.
57
+ */
58
+ function pickStoreIcon(candidates, failed) {
59
+ return candidates.find((candidate) => !failed.has(storeIconKey(candidate))) ?? null;
60
+ }
61
+
62
+ // src/builder/components/flow-builder/components/ui/store-icon.tsx
63
+ /**
64
+ * Draws a store icon from an ordered candidate list. An image that fails to
65
+ * load (expired presigned link, dead third-party host, rate-limited hotlink)
66
+ * is remembered as failed and the next candidate is drawn instead, ending at
67
+ * `fallback`, so a store surface never shows a broken-image glyph.
68
+ *
69
+ * Failures are remembered by source, so a re-render with new candidates (a
70
+ * different product, or a refetch that added `iconUrl`) starts clean for the
71
+ * sources it has not tried yet.
72
+ */
73
+ function StoreIcon({ candidates, alt, imageClassName, iconClassName, iconSize, fallback }) {
74
+ const [failed, setFailed] = useState(() => /* @__PURE__ */ new Set());
75
+ const source = pickStoreIcon(candidates, failed);
76
+ if (!source) return /* @__PURE__ */ jsx(Fragment$1, { children: fallback });
77
+ if (source.kind === "icon") return /* @__PURE__ */ jsx(Icon, {
78
+ icon: source.name,
79
+ width: iconSize,
80
+ height: iconSize,
81
+ className: iconClassName,
82
+ "aria-hidden": "true"
83
+ });
84
+ const key = storeIconKey(source);
85
+ return /* @__PURE__ */ jsx("img", {
86
+ src: source.src,
87
+ alt,
88
+ loading: "lazy",
89
+ decoding: "async",
90
+ onError: () => setFailed((previous) => {
91
+ if (previous.has(key)) return previous;
92
+ const next = new Set(previous);
93
+ next.add(key);
94
+ return next;
95
+ }),
96
+ className: cn("object-cover", imageClassName)
97
+ }, key);
98
+ }
99
+
100
+ export { storeIconCandidates as n, StoreIcon as t };
@@ -0,0 +1,32 @@
1
+ "use client";
2
+ import { n as storeIconCandidates } from "./store-icon-BOiBSHY6.js";
3
+
4
+ // src/utils/template-preview.ts
5
+ /**
6
+ * What a store template card shows as its preview (BOFF-10462).
7
+ *
8
+ * A store product's `icon` is either an image URL or an Iconify icon name such
9
+ * as `mdi:file-delimited`. Official workflow templates use Iconify names, the
10
+ * same format a workflow's own `icon` uses, so they must be drawn as an icon:
11
+ * set as an `<img src>`, `mdi:...` is read as a URL scheme and fails to load.
12
+ *
13
+ * The store also serves `iconUrl`, the browser-ready form of the icon (an
14
+ * https URL or an offline SVG data URI rendered from the Iconify set). It is
15
+ * preferred over the raw `icon` because it does not depend on the Iconify API,
16
+ * which rate-limits viewers after a few dozen icons.
17
+ */
18
+ /**
19
+ * Every preview a template can show, best first: its screenshots, then its
20
+ * `iconUrl`, then its raw `icon`. A card walks this list when an image fails
21
+ * to load, so a dead screenshot or an expired icon link falls back instead of
22
+ * leaving a broken-image glyph.
23
+ */
24
+ function templatePreviewCandidates(template) {
25
+ return storeIconCandidates([
26
+ ...template.screenshots ?? [],
27
+ template.iconUrl,
28
+ template.icon
29
+ ]);
30
+ }
31
+
32
+ export { templatePreviewCandidates as t };
package/dist/templates.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as TemplatesPage } from "./TemplatesPage-BSMLtMnf.js";
3
- import { t as TemplatePreview } from "./TemplatePreview-Ca7df91b.js";
2
+ import { t as TemplatesPage } from "./TemplatesPage-DIVghCB6.js";
3
+ import { t as TemplatePreview } from "./TemplatePreview-aKYt0Kad.js";
4
4
 
5
5
  export { TemplatePreview, TemplatesPage };
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { o as throwIfResultError } from "./errors-xPZ-IbQd.js";
3
3
  import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
4
- import { An as TriggerWorkflowDocument, Dn as EventRegistrationsDocument, En as NodeEndpointConfigsDocument, Fn as ExecutionDetailDocument, In as RunFromNodeDocument, Ln as ExecuteStepDocument, Mn as CreateWorkflowVersionDocument, Nn as CreateWorkflowDefinitionDocument, Pn as ExecutionsListDocument } from "./FluidGridsProvider-Dxehlm-2.js";
4
+ import { An as TriggerWorkflowDocument, Dn as EventRegistrationsDocument, En as NodeEndpointConfigsDocument, Fn as ExecutionDetailDocument, In as RunFromNodeDocument, Ln as ExecuteStepDocument, Mn as CreateWorkflowVersionDocument, Nn as CreateWorkflowDefinitionDocument, Pn as ExecutionsListDocument } from "./FluidGridsProvider-CPLfIarV.js";
5
5
  import { a as PauseExecutionDocument, i as ResumeExecutionDocument, n as TerminateExecutionDocument, o as CancelExecutionDocument, r as RetryNodeDocument, t as ExecutionStatsDocument } from "./ExecutionStatsDocument-6ixNZnBV.js";
6
6
  import { c as RunLogAppendedDocument, l as RunLogsDocument } from "./agent-form-D0uLvzx4.js";
7
7
  import { a as DashboardSummaryDocument, c as ImportWorkflowDocument, d as DeactivateWorkflowDefinitionDocument, f as ActivateWorkflowDefinitionDocument, i as WorkflowDefinitionsDocument, l as DuplicateWorkflowDocument, n as WorkflowRunsDocument, o as UpdateWorkflowDefinitionDocument, r as WorkflowRunDocument, s as RestoreWorkflowVersionDocument, t as WorkflowVersionsDocument, u as DeleteWorkflowDefinitionDocument } from "./WorkflowVersionsDocument-DRVOp8Uj.js";
@@ -2,7 +2,7 @@
2
2
  import { o as throwIfResultError, t as describeOperationError } from "./errors-xPZ-IbQd.js";
3
3
  import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
4
4
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
5
- import { f as STATUS_COUNT_GROUP_BY, v as statusCountFilter, y as statusCountsOf } from "./useExecutions-lRqeXDYS.js";
5
+ import { f as STATUS_COUNT_GROUP_BY, v as statusCountFilter, y as statusCountsOf } from "./useExecutions-6P7ohzlh.js";
6
6
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
7
7
  import { useCallback, useEffect, useRef, useState } from "react";
8
8
  import { Icon } from "@iconify/react";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
3
- import { An as TriggerWorkflowDocument, Fn as ExecutionDetailDocument, Pn as ExecutionsListDocument, dn as openRunQuotaUpgradePrompt, un as useFluidGridsAnalytics } from "./FluidGridsProvider-Dxehlm-2.js";
3
+ import { An as TriggerWorkflowDocument, Fn as ExecutionDetailDocument, Pn as ExecutionsListDocument, dn as openRunQuotaUpgradePrompt, un as useFluidGridsAnalytics } from "./FluidGridsProvider-CPLfIarV.js";
4
4
  import { a as PauseExecutionDocument, i as ResumeExecutionDocument, n as TerminateExecutionDocument, o as CancelExecutionDocument, r as RetryNodeDocument, t as ExecutionStatsDocument } from "./ExecutionStatsDocument-6ixNZnBV.js";
5
5
  import { hO as RunGroupBy, xF as VersioningBehavior } from "./graphql-types-D82O-0XY.js";
6
6
  import { g as useExecutionsStore } from "./config-X97zrIvn.js";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as FluidGridsContext } from "./FluidGridsProvider-Dxehlm-2.js";
2
+ import { t as FluidGridsContext } from "./FluidGridsProvider-CPLfIarV.js";
3
3
  import { n as getGlobalStoreClient } from "./global-client-DP_Wxe5t.js";
4
4
  import { useContext } from "react";
5
5
 
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
3
- import { dn as openRunQuotaUpgradePrompt, un as useFluidGridsAnalytics } from "./FluidGridsProvider-Dxehlm-2.js";
3
+ import { dn as openRunQuotaUpgradePrompt, un as useFluidGridsAnalytics } from "./FluidGridsProvider-CPLfIarV.js";
4
4
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
5
5
  import { i as emitRunStarted } from "./fluidgridsEvents-Dm5CaHtr.js";
6
6
  import { o as throwIfResultError, t as describeOperationError } from "./errors-xPZ-IbQd.js";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { o as throwIfResultError, t as describeOperationError } from "./errors-xPZ-IbQd.js";
3
3
  import { n as getFluidGridsClient, r as getFluidGridsClientSafe } from "./client-Ctl4jmY3.js";
4
- import { Cn as signalPayloadCard, bn as parseRawSignalPayload, xn as payloadFromCardValues } from "./FluidGridsProvider-Dxehlm-2.js";
4
+ import { Cn as signalPayloadCard, bn as parseRawSignalPayload, xn as payloadFromCardValues } from "./FluidGridsProvider-CPLfIarV.js";
5
5
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
6
6
  import { uf as ExecutionKind } from "./graphql-types-D82O-0XY.js";
7
7
  import { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from "react";
@@ -3,7 +3,7 @@ import { o as throwIfResultError, t as describeOperationError } from "./errors-x
3
3
  import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
4
4
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
5
5
  import { o as UpdateWorkflowDefinitionDocument } from "./WorkflowVersionsDocument-DRVOp8Uj.js";
6
- import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-BEsj0A-I.js";
6
+ import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-DTpI0jfj.js";
7
7
  import { o as buildExportDownload } from "./workflow-code-transfer-50pRK3nx.js";
8
8
  import { t as downloadBlob } from "./workflow-transfer-CQnQC-ke.js";
9
9
  import { useCallback, useEffect, useRef, useState } from "react";
@@ -3,7 +3,7 @@ import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
3
3
  import { r as getFluidGridsConfig } from "./config-X97zrIvn.js";
4
4
  import { a as DashboardSummaryDocument, c as ImportWorkflowDocument, d as DeactivateWorkflowDefinitionDocument, f as ActivateWorkflowDefinitionDocument, i as WorkflowDefinitionsDocument, l as DuplicateWorkflowDocument, n as WorkflowRunsDocument, o as UpdateWorkflowDefinitionDocument, r as WorkflowRunDocument, s as RestoreWorkflowVersionDocument, t as WorkflowVersionsDocument, u as DeleteWorkflowDefinitionDocument } from "./WorkflowVersionsDocument-DRVOp8Uj.js";
5
5
  import { t as WorkflowDefinitionDocument } from "./WorkflowDefinitionDocument-DZLbTPUZ.js";
6
- import { An as TriggerWorkflowDocument, Mn as CreateWorkflowVersionDocument, Nn as CreateWorkflowDefinitionDocument, dn as openRunQuotaUpgradePrompt, un as useFluidGridsAnalytics } from "./FluidGridsProvider-Dxehlm-2.js";
6
+ import { An as TriggerWorkflowDocument, Mn as CreateWorkflowVersionDocument, Nn as CreateWorkflowDefinitionDocument, dn as openRunQuotaUpgradePrompt, un as useFluidGridsAnalytics } from "./FluidGridsProvider-CPLfIarV.js";
7
7
  import { o as throwIfResultError } from "./errors-xPZ-IbQd.js";
8
8
  import { a as emitOperationErrorEvent, i as emitFluidGridsEvent } from "./token-refresh-link-BjN7H4qA.js";
9
9
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- import { n as WorkflowBuilderCore, t as WorkflowBuilder } from "./WorkflowBuilder-Dh8MYfZJ.js";
3
- import { t as WorkflowBuilder$1 } from "./WorkflowBuilder-Bok_WtPQ.js";
4
- import { A as useFlowStore } from "./node-operation-selection-bFx9s45-.js";
5
- import { m as refetchStoreNodes } from "./FluidGridsProvider-Dxehlm-2.js";
6
- import { t as WorkflowSearchRedirect } from "./WorkflowSearchRedirect-bcWo68LY.js";
2
+ import { n as WorkflowBuilderCore, t as WorkflowBuilder } from "./WorkflowBuilder-knGFBAAk.js";
3
+ import { t as WorkflowBuilder$1 } from "./WorkflowBuilder-BsDvbIpS.js";
4
+ import { A as useFlowStore } from "./node-operation-selection-DHbtGNrG.js";
5
+ import { m as refetchStoreNodes } from "./FluidGridsProvider-CPLfIarV.js";
6
+ import { t as WorkflowSearchRedirect } from "./WorkflowSearchRedirect-DFsQzQw9.js";
7
7
 
8
8
  export { WorkflowBuilder, WorkflowBuilderCore, WorkflowBuilder$1 as WorkflowBuilderPage, WorkflowSearchRedirect, refetchStoreNodes, useFlowStore };
@@ -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-RWAuYE2j.js";
4
4
  import { i as TemplatePreview_d_exports, n as TemplatesPage_d_exports } from "./TemplatesPage-BG3H-6v6.js";
5
- import { ORa as InsightsPageProps, Pi as ApprovalInboxPage_d_exports, Wi as TaskQueuesPage_d_exports, Yi as RunnersPage_d_exports, ZRa as AiStudioPage_d_exports, di as DataTablesPage_d_exports, jRa as DataSinkDashboardPage_d_exports, kRa as InsightsPage_d_exports, ya as VariablesPage_d_exports } from "./index-BDN8AK1D.js";
5
+ import { MRa as InsightsPage_d_exports, PRa as DataSinkDashboardPage_d_exports, Pi as ApprovalInboxPage_d_exports, Wi as TaskQueuesPage_d_exports, Yi as RunnersPage_d_exports, di as DataTablesPage_d_exports, eza as AiStudioPage_d_exports, jRa as InsightsPageProps, ya as VariablesPage_d_exports } from "./index-BVCOwqsN.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";
@@ -54,23 +54,23 @@ function createWorkflowPages(importers) {
54
54
  * loader, so it costs a host's first load about a kilobyte.
55
55
  */
56
56
  const pages = createWorkflowPages({
57
- WorkflowsList: () => import("./WorkflowsList-DURQu2ZD.js").then((n) => n.n),
58
- WorkflowBuilderPage: () => import("./WorkflowBuilder-Bok_WtPQ.js").then((n) => n.n).then((m) => ({ WorkflowBuilderPage: m.WorkflowBuilder })),
59
- WorkflowSearchRedirect: () => import("./WorkflowSearchRedirect-bcWo68LY.js").then((n) => n.n),
60
- TemplatePreview: () => import("./TemplatePreview-Ca7df91b.js").then((n) => n.n),
61
- AiStudioPage: () => import("./AiStudioPage-BP2cLXEK.js").then((n) => n.n),
62
- ExecutionsListPage: () => import("./ExecutionsListPage-BRvj71Nd.js").then((n) => n.n),
63
- ExecutionDetailPage: () => import("./ExecutionDetailPage-BfFrWnBj.js").then((n) => n.n),
64
- HistoryPage: () => import("./HistoryPage-CjtgUOZr.js").then((n) => n.n),
65
- TemplatesPage: () => import("./TemplatesPage-BSMLtMnf.js").then((n) => n.n),
66
- NodesPage: () => import("./NodesPage-B8fqXtey.js").then((n) => n.n),
67
- SettingsPage: () => import("./SettingsPage-DpBhx95x.js").then((n) => n.n),
68
- InsightsPage: () => import("./InsightsPage-BsGqBpUO.js").then((n) => n.r),
69
- ErrorAnalyticsPage: () => import("./InsightsPage-BsGqBpUO.js").then((n) => n.r),
70
- DataSinkDashboardPage: () => import("./DataSinkDashboardPage-CiFi9YXQ.js").then((n) => n.n),
57
+ WorkflowsList: () => import("./WorkflowsList-DEN-0uQe.js").then((n) => n.n),
58
+ WorkflowBuilderPage: () => import("./WorkflowBuilder-BsDvbIpS.js").then((n) => n.n).then((m) => ({ WorkflowBuilderPage: m.WorkflowBuilder })),
59
+ WorkflowSearchRedirect: () => import("./WorkflowSearchRedirect-DFsQzQw9.js").then((n) => n.n),
60
+ TemplatePreview: () => import("./TemplatePreview-aKYt0Kad.js").then((n) => n.n),
61
+ AiStudioPage: () => import("./AiStudioPage-C040XZyS.js").then((n) => n.n),
62
+ ExecutionsListPage: () => import("./ExecutionsListPage-BpHBy1JU.js").then((n) => n.n),
63
+ ExecutionDetailPage: () => import("./ExecutionDetailPage-C0lNp122.js").then((n) => n.n),
64
+ HistoryPage: () => import("./HistoryPage-CCZS-hPw.js").then((n) => n.n),
65
+ TemplatesPage: () => import("./TemplatesPage-DIVghCB6.js").then((n) => n.n),
66
+ NodesPage: () => import("./NodesPage-C3sh0aL9.js").then((n) => n.n),
67
+ SettingsPage: () => import("./SettingsPage-CmIa107C.js").then((n) => n.n),
68
+ InsightsPage: () => import("./InsightsPage-C-Nm9YNI.js").then((n) => n.r),
69
+ ErrorAnalyticsPage: () => import("./InsightsPage-C-Nm9YNI.js").then((n) => n.r),
70
+ DataSinkDashboardPage: () => import("./DataSinkDashboardPage-BoyLrZnt.js").then((n) => n.n),
71
71
  VariablesPage: () => import("./VariablesPage-_RKdfiw5.js").then((n) => n.n),
72
72
  RunnersPage: () => import("./RunnersPage-BXODCbq0.js").then((n) => n.n),
73
- TaskQueuesPage: () => import("./TaskQueuesPage-DLzuumGp.js").then((n) => n.r),
73
+ TaskQueuesPage: () => import("./TaskQueuesPage-BNoe05qF.js").then((n) => n.r),
74
74
  ApprovalInboxPage: () => import("./ApprovalInboxPage-DVoqdqwA.js").then((n) => n.n),
75
75
  DataTablesPage: () => import("./DataTablesPage-DR6BesNp.js").then((n) => n.n)
76
76
  });
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { t as canvasFromDefinition } from "./definition-canvas-DL25_6NH.js";
3
- import { C as outputHandlesSpacerHeight, D as NodeCardBody, E as NodeCard, M as isNodeTrigger, O as NodeCardHeader, T as resolveOutputHandles, _ as InputHandles, g as LogicNodeCard, i as WAIT_FOR_SIGNAL_NODE_TYPE, m as readSignalName, r as CODE_WORKFLOW_NODE_TYPE, t as resolveOperationName, v as OutputHandles, w as resolveInputHandles, x as landingSourceHandle } from "./node-operation-selection-bFx9s45-.js";
3
+ import { C as outputHandlesSpacerHeight, D as NodeCardBody, E as NodeCard, M as isNodeTrigger, O as NodeCardHeader, T as resolveOutputHandles, _ as InputHandles, g as LogicNodeCard, i as WAIT_FOR_SIGNAL_NODE_TYPE, m as readSignalName, r as CODE_WORKFLOW_NODE_TYPE, t as resolveOperationName, v as OutputHandles, w as resolveInputHandles, x as landingSourceHandle } from "./node-operation-selection-DHbtGNrG.js";
4
4
  import { l as STICKY_NOTE_TYPE } from "./sticky-notes-23j-wL6Q.js";
5
5
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
6
6
  import { memo, useCallback, useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as WorkflowsList } from "./WorkflowsList-DURQu2ZD.js";
2
+ import { t as WorkflowsList } from "./WorkflowsList-DEN-0uQe.js";
3
3
  import { n as ACTION_PARAM_VALUES, t as ACTION_PARAM } from "./useActionParam-B0ebTZmg.js";
4
4
 
5
5
  export { ACTION_PARAM, ACTION_PARAM_VALUES, WorkflowsList };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/fluidgrids-fe-sdk",
3
- "version": "2026.1113.11",
3
+ "version": "2026.1114.1",
4
4
  "description": "FluidGrids Workflow Builder SDK - Embeddable visual workflow automation",
5
5
  "type": "module",
6
6
  "imports": {