@burdenoff/fluidgrids-fe-sdk 2026.720.1 → 2026.721.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.
@@ -1,7 +1,7 @@
1
- export { WorkflowBuilder } from './chunk-JVARXRIW.js';
1
+ export { WorkflowBuilder } from './chunk-X6I7YBLP.js';
2
2
  import './chunk-MRVS73S2.js';
3
3
  import './chunk-DBOMRIP5.js';
4
- import './chunk-S2Z7ZTGV.js';
4
+ import './chunk-4IMAQMRN.js';
5
5
  import './chunk-BQXHJIER.js';
6
6
  import './chunk-PNOA7CQV.js';
7
7
  import './chunk-OHIRHNRJ.js';
@@ -12,5 +12,5 @@ import './chunk-4NTHFDKQ.js';
12
12
  import './chunk-5BDQNSP3.js';
13
13
  import './chunk-WWU2O2SR.js';
14
14
  import './chunk-XQP33UJR.js';
15
- //# sourceMappingURL=WorkflowBuilder-COJQ2YBJ.js.map
16
- //# sourceMappingURL=WorkflowBuilder-COJQ2YBJ.js.map
15
+ //# sourceMappingURL=WorkflowBuilder-BUBJLTBN.js.map
16
+ //# sourceMappingURL=WorkflowBuilder-BUBJLTBN.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"WorkflowBuilder-COJQ2YBJ.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"WorkflowBuilder-BUBJLTBN.js"}
@@ -1,4 +1,4 @@
1
- export { AVAILABLE_NODES, NODES, NODES_METADATA, NODE_CONFIGS, NODE_TYPES, ensureNodeConfigsLoaded, fetchNodeManifest, isNodeConfigsInitialized, onNodeTypesUpdate, refetchStoreNodes, registerWorkflowNodeTypes } from './chunk-S2Z7ZTGV.js';
1
+ export { AVAILABLE_NODES, NODES, NODES_METADATA, NODE_CONFIGS, NODE_TYPES, ensureNodeConfigsLoaded, fetchNodeManifest, isNodeConfigsInitialized, onNodeTypesUpdate, refetchStoreNodes, registerWorkflowNodeTypes } from './chunk-4IMAQMRN.js';
2
2
  import './chunk-BQXHJIER.js';
3
3
  import './chunk-PNOA7CQV.js';
4
4
  import './chunk-KU64CCSV.js';
@@ -7,5 +7,5 @@ import './chunk-3ZYUGTIT.js';
7
7
  import './chunk-4NTHFDKQ.js';
8
8
  import './chunk-5BDQNSP3.js';
9
9
  import './chunk-WWU2O2SR.js';
10
- //# sourceMappingURL=blocks-J3YIE73T.js.map
11
- //# sourceMappingURL=blocks-J3YIE73T.js.map
10
+ //# sourceMappingURL=blocks-S63X5XLG.js.map
11
+ //# sourceMappingURL=blocks-S63X5XLG.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"blocks-J3YIE73T.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"blocks-S63X5XLG.js"}
@@ -9060,6 +9060,74 @@ function useNodeExecution() {
9060
9060
  findTriggerNode
9061
9061
  };
9062
9062
  }
9063
+ function buildOperationSeed(type, operationName, existingData) {
9064
+ const config2 = NODE_CONFIGS.find((c) => c.type === type);
9065
+ if (!config2) return null;
9066
+ const operations = config2.operations ?? [];
9067
+ const op = operations.find((o) => o.name === operationName);
9068
+ if (!op) return null;
9069
+ const manifest = config2.defaultData?.nodeData;
9070
+ const prevArgs = existingData.args ?? {};
9071
+ const manifestOps = manifest?.operations;
9072
+ const outputHandles = manifest?.outputHandles ?? manifestOps?.outputHandles;
9073
+ const inputHandles = manifest?.inputHandles ?? manifestOps?.inputHandles;
9074
+ return {
9075
+ ...existingData,
9076
+ operation_name: op.name,
9077
+ operation_type: op.type,
9078
+ args: {
9079
+ // Preserve default context/credentials; seed state from the op defaults.
9080
+ ...prevArgs,
9081
+ state: { ...op.adaptive_card?.defaultValue ?? {} }
9082
+ },
9083
+ // Slim manifest: keep node-level metadata but only the pinned operation.
9084
+ nodeData: {
9085
+ ...manifest ?? {},
9086
+ ...outputHandles !== void 0 ? { outputHandles } : {},
9087
+ ...inputHandles !== void 0 ? { inputHandles } : {},
9088
+ operations: [op]
9089
+ }
9090
+ };
9091
+ }
9092
+ function useInsertNode() {
9093
+ const { addNodes, screenToFlowPosition, getNodes, updateNode } = useReactFlow();
9094
+ return useCallback(
9095
+ (type, pos, operationName) => {
9096
+ const _pos = pos || screenToFlowPosition({
9097
+ x: window.innerWidth / 2,
9098
+ y: window.innerHeight / 2
9099
+ });
9100
+ getNodes().forEach((node) => {
9101
+ if (node.selected) {
9102
+ updateNode(node.id, { selected: false });
9103
+ }
9104
+ });
9105
+ const newNode = createNodeWithDefaultData(type, {
9106
+ position: _pos,
9107
+ selected: true
9108
+ });
9109
+ let pinTo = operationName;
9110
+ if (!pinTo) {
9111
+ const config2 = NODE_CONFIGS.find((c) => c.type === type);
9112
+ const ops = config2?.operations ?? [];
9113
+ if (ops.length === 1 && ops[0]?.name) {
9114
+ pinTo = ops[0].name;
9115
+ }
9116
+ }
9117
+ if (pinTo) {
9118
+ const seeded = buildOperationSeed(
9119
+ type,
9120
+ pinTo,
9121
+ newNode.data ?? {}
9122
+ );
9123
+ if (seeded) newNode.data = seeded;
9124
+ }
9125
+ addNodes(newNode);
9126
+ return newNode;
9127
+ },
9128
+ [screenToFlowPosition, getNodes, addNodes, updateNode]
9129
+ );
9130
+ }
9063
9131
  function isAdapterCompatible(adapterFilter, adapterType, targetNodeKind, targetAdapterOutputType, targetNodeType) {
9064
9132
  if (adapterType && targetAdapterOutputType && adapterType !== targetAdapterOutputType) {
9065
9133
  return false;
@@ -9076,72 +9144,212 @@ function isAdapterCompatible(adapterFilter, adapterType, targetNodeKind, targetA
9076
9144
  }
9077
9145
  return true;
9078
9146
  }
9079
- function AdapterConnectors({
9147
+ function useCompatibleSubNodes(adapter) {
9148
+ return useMemo(() => {
9149
+ const out = [];
9150
+ for (const cfg of NODE_CONFIGS) {
9151
+ const nodeData = cfg.defaultData?.nodeData;
9152
+ if (!nodeData?.adapterOutputType && !nodeData?.supportsAdapterMode) {
9153
+ continue;
9154
+ }
9155
+ if (!isAdapterCompatible(
9156
+ adapter.filter,
9157
+ adapter.type,
9158
+ nodeData?.kind,
9159
+ nodeData?.adapterOutputType,
9160
+ cfg.type
9161
+ )) {
9162
+ continue;
9163
+ }
9164
+ const ops = cfg.operations ?? [];
9165
+ out.push({
9166
+ type: cfg.type,
9167
+ title: cfg.detail?.title || nodeData?.name || cfg.type,
9168
+ icon: cfg.detail?.icon || nodeData?.icon || "mynaui:puzzle",
9169
+ description: cfg.detail?.description || nodeData?.description,
9170
+ adapterOperation: ops.find((o) => o.isAdapterOperation)?.name
9171
+ });
9172
+ }
9173
+ return out.sort((a, b) => a.title.localeCompare(b.title));
9174
+ }, [adapter.filter, adapter.type]);
9175
+ }
9176
+ function AdapterPort({
9080
9177
  nodeId,
9081
- adapters
9178
+ adapter,
9179
+ index,
9180
+ total
9082
9181
  }) {
9083
- const { nodeLookup, edges } = useStore(({ nodeLookup: nodeLookup2, edges: edges2 }) => ({
9084
- nodeLookup: nodeLookup2,
9085
- edges: edges2
9086
- }));
9182
+ const edges = useStore((s) => s.edges);
9087
9183
  const { getNode } = useReactFlow();
9088
- if (!adapters || adapters.length === 0) return null;
9089
- return /* @__PURE__ */ jsx("div", { className: "left-0 w-full flex justify-around mt-[6.5px]", children: adapters.map((adapter) => {
9090
- const adapterEdges = edges.filter(
9091
- (e) => e.source === nodeId && e.sourceHandle === adapter.name
9092
- );
9093
- const connectionCount = adapterEdges.length;
9094
- const isAtMaxConnections = adapter.maxConnections != null && adapter.maxConnections !== void 0 && connectionCount >= adapter.maxConnections;
9095
- const hasConnection = connectionCount > 0;
9096
- const diamondColor = hasConnection ? "bg-accent" : "bg-accent/60";
9097
- const lineColor = hasConnection ? "before:bg-accent" : "before:bg-accent/60";
9098
- return /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsxs(
9099
- "div",
9100
- {
9101
- className: `p-0.5 m-0.5 text-center before:content-[''] before:h-[95%] before:-z-10 before:left-1/2 before:-translate-x-1/2 before:w-0.5 ${lineColor} before:absolute before:top-0`,
9102
- children: [
9103
- /* @__PURE__ */ jsx("div", { className: "absolute -top-3 left-1/2 transform -translate-x-1/2", children: /* @__PURE__ */ jsx(
9184
+ const insertNode = useInsertNode();
9185
+ const onConnect = useFlowStore((s) => s.actions.edges.onConnect);
9186
+ const [pickerOpen, setPickerOpen] = useState(false);
9187
+ const candidates = useCompatibleSubNodes(adapter);
9188
+ const connectionCount = edges.filter(
9189
+ (e) => e.source === nodeId && e.sourceHandle === adapter.name
9190
+ ).length;
9191
+ const isAtMaxConnections = adapter.maxConnections != null && adapter.maxConnections !== void 0 && connectionCount >= adapter.maxConnections;
9192
+ const hasConnection = connectionCount > 0;
9193
+ const diamondColor = hasConnection ? "bg-[var(--color-accent-primary)]" : "bg-[var(--color-text-muted)]";
9194
+ const lineColor = hasConnection ? "before:bg-[var(--color-accent-primary)]" : "before:bg-[var(--color-border-strong)]";
9195
+ const addSubNode = useCallback(
9196
+ (candidate) => {
9197
+ setPickerOpen(false);
9198
+ const parent = getNode(nodeId);
9199
+ const origin = parent?.position ?? { x: 0, y: 0 };
9200
+ const parentHeight = parent?.measured?.height ?? 180;
9201
+ const SPACING = 180;
9202
+ const position = {
9203
+ x: origin.x + (index - (total - 1) / 2) * SPACING,
9204
+ y: origin.y + parentHeight + 190
9205
+ };
9206
+ const created = insertNode(
9207
+ candidate.type,
9208
+ position,
9209
+ candidate.adapterOperation
9210
+ );
9211
+ if (!created?.id) return;
9212
+ onConnect({
9213
+ source: nodeId,
9214
+ sourceHandle: adapter.name,
9215
+ target: created.id,
9216
+ targetHandle: "target"
9217
+ });
9218
+ },
9219
+ [getNode, nodeId, index, total, insertNode, onConnect, adapter.name]
9220
+ );
9221
+ return /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsxs(
9222
+ "div",
9223
+ {
9224
+ className: `p-0.5 m-0.5 text-center before:content-[''] before:h-[95%] before:left-1/2 before:-translate-x-1/2 before:w-0.5 ${lineColor} before:absolute before:top-0 before:pointer-events-none`,
9225
+ children: [
9226
+ /* @__PURE__ */ jsx("div", { className: "absolute -top-3 left-1/2 transform -translate-x-1/2 pointer-events-none", children: /* @__PURE__ */ jsx(
9227
+ "div",
9228
+ {
9229
+ className: `w-3 h-3 ${diamondColor} rotate-45 transition-transform hover:scale-110`
9230
+ }
9231
+ ) }),
9232
+ /* @__PURE__ */ jsx("div", { className: "mt-3 z-10 absolute left-1/2 transform -translate-x-1/2 font-medium bg-surface h-fit pointer-events-none", children: /* @__PURE__ */ jsxs("span", { className: "text-xs max-w-fit relative font-medium text-[var(--color-text-secondary)] whitespace-nowrap", children: [
9233
+ adapter?.name,
9234
+ adapter?.required && /* @__PURE__ */ jsx("span", { className: "text-[var(--color-status-error-text)] absolute -right-2 top-[1px]", children: "*" })
9235
+ ] }) }),
9236
+ /* @__PURE__ */ jsxs("div", { className: "mt-16 flex flex-col items-center gap-1.5", children: [
9237
+ !isAtMaxConnections && /* @__PURE__ */ jsx(
9238
+ "button",
9239
+ {
9240
+ type: "button",
9241
+ title: `Add ${adapter.name}`,
9242
+ "aria-label": `Add ${adapter.name}`,
9243
+ onClick: (e) => {
9244
+ e.stopPropagation();
9245
+ setPickerOpen((v) => !v);
9246
+ },
9247
+ className: "w-5 h-5 border-2 border-[var(--color-border-strong)] rounded text-[var(--color-text-secondary)] text-lg leading-none font-bold bg-surface flex items-center justify-center transition-colors hover:border-[var(--color-accent-primary)] hover:text-[var(--color-accent-primary)] cursor-pointer",
9248
+ children: "+"
9249
+ }
9250
+ ),
9251
+ isAtMaxConnections && /* @__PURE__ */ jsx(
9104
9252
  "div",
9105
9253
  {
9106
- className: `w-2.5 h-2.5 ${diamondColor} rotate-45 transition-transform hover:scale-110`
9254
+ title: `${adapter.name} is full`,
9255
+ className: "w-5 h-5 border-2 border-[var(--color-border-subtle)] rounded text-[var(--color-text-disabled)] text-lg leading-none font-bold bg-surface flex items-center justify-center",
9256
+ children: "\u2022"
9107
9257
  }
9108
- ) }),
9109
- /* @__PURE__ */ jsx("div", { className: "mt-3 z-10 absolute left-1/2 transform -translate-x-1/2 text-accent font-medium bg-surface h-fit", children: /* @__PURE__ */ jsxs("span", { className: "text-xs max-w-fit relative font-medium text-accent whitespace-nowrap", children: [
9110
- adapter?.name,
9111
- adapter?.required && /* @__PURE__ */ jsx("span", { className: "text-[var(--color-status-error-text)] absolute -right-2 top-[1px]", children: "*" })
9112
- ] }) }),
9113
- /* @__PURE__ */ jsxs("div", { className: "mt-16 flex justify-center", children: [
9114
- !isAtMaxConnections && /* @__PURE__ */ jsx("div", { className: "w-5 h-5 border-2 border-accent/60 rounded text-accent text-2xl font-bold bg-surface flex items-center justify-center transition-colors hover:bg-accent/10 cursor-pointer", children: "+" }),
9115
- isAtMaxConnections && /* @__PURE__ */ jsx("div", { className: "w-5 h-5 border-2 border-accent/30 rounded text-accent/30 text-2xl font-bold bg-surface flex items-center justify-center", children: "\u2022" }),
9116
- /* @__PURE__ */ jsx(
9117
- Handle,
9118
- {
9119
- type: "source",
9120
- position: Position.Bottom,
9121
- id: adapter?.name,
9122
- className: "mb-[15px] text-accent bg-accent",
9123
- isConnectable: !isAtMaxConnections,
9124
- isValidConnection: (connection) => {
9125
- if (!adapter.type && !adapter.filter) return true;
9126
- const targetNode = getNode(connection.target);
9127
- if (!targetNode) return true;
9128
- const targetData = targetNode.data;
9129
- const targetNodeData = targetData?.nodeData;
9130
- return isAdapterCompatible(
9131
- adapter.filter,
9132
- adapter.type,
9133
- targetNodeData?.kind,
9134
- targetNodeData?.adapterOutputType,
9135
- targetNode.type
9136
- );
9137
- }
9258
+ ),
9259
+ /* @__PURE__ */ jsx(
9260
+ Handle,
9261
+ {
9262
+ type: "source",
9263
+ position: Position.Bottom,
9264
+ id: adapter?.name,
9265
+ className: "!relative !top-auto !left-auto !right-auto !bottom-auto !transform-none !w-2.5 !h-2.5 !min-w-0 !min-h-0 !rounded-full !border-0 bg-[var(--color-accent-primary)]",
9266
+ isConnectable: !isAtMaxConnections,
9267
+ isValidConnection: (connection) => {
9268
+ if (!adapter.type && !adapter.filter) return true;
9269
+ const targetNode = getNode(connection.target);
9270
+ if (!targetNode) return true;
9271
+ const targetData = targetNode.data;
9272
+ const targetNodeData = targetData?.nodeData;
9273
+ return isAdapterCompatible(
9274
+ adapter.filter,
9275
+ adapter.type,
9276
+ targetNodeData?.kind,
9277
+ targetNodeData?.adapterOutputType,
9278
+ targetNode.type
9279
+ );
9138
9280
  }
9139
- )
9281
+ }
9282
+ )
9283
+ ] }),
9284
+ pickerOpen && /* @__PURE__ */ jsxs(Fragment, { children: [
9285
+ /* @__PURE__ */ jsx(
9286
+ "div",
9287
+ {
9288
+ className: "fixed inset-0 z-40",
9289
+ onClick: () => setPickerOpen(false)
9290
+ }
9291
+ ),
9292
+ /* @__PURE__ */ jsxs("div", { className: "absolute z-50 top-[86px] left-1/2 -translate-x-1/2 w-60 rounded-lg border border-[var(--color-border-default)] bg-[var(--color-surface-elevated)] shadow-xl overflow-hidden text-left nodrag nowheel", children: [
9293
+ /* @__PURE__ */ jsxs("div", { className: "px-3 py-2 border-b border-[var(--color-border-subtle)]", children: [
9294
+ /* @__PURE__ */ jsxs("p", { className: "text-xs font-semibold text-[var(--color-text-primary)]", children: [
9295
+ "Add ",
9296
+ adapter.name
9297
+ ] }),
9298
+ /* @__PURE__ */ jsxs("p", { className: "text-[10px] text-[var(--color-text-muted)]", children: [
9299
+ candidates.length,
9300
+ " compatible node",
9301
+ candidates.length === 1 ? "" : "s"
9302
+ ] })
9303
+ ] }),
9304
+ /* @__PURE__ */ jsxs("div", { className: "max-h-56 overflow-y-auto", children: [
9305
+ candidates.length === 0 && /* @__PURE__ */ jsx("p", { className: "px-3 py-3 text-[11px] text-[var(--color-text-muted)]", children: "No compatible node installed. Publish and install one from the Node Store first." }),
9306
+ candidates.map((c) => /* @__PURE__ */ jsxs(
9307
+ "button",
9308
+ {
9309
+ type: "button",
9310
+ onClick: (e) => {
9311
+ e.stopPropagation();
9312
+ addSubNode(c);
9313
+ },
9314
+ className: "w-full flex items-start gap-2 px-3 py-2 hover:bg-[var(--color-bg-elevated)] transition-colors text-left",
9315
+ children: [
9316
+ /* @__PURE__ */ jsx(
9317
+ Icon,
9318
+ {
9319
+ icon: c.icon,
9320
+ className: "size-4 mt-0.5 shrink-0 text-[var(--color-accent-primary)]"
9321
+ }
9322
+ ),
9323
+ /* @__PURE__ */ jsxs("span", { className: "min-w-0", children: [
9324
+ /* @__PURE__ */ jsx("span", { className: "block text-xs text-[var(--color-text-primary)] truncate", children: c.title }),
9325
+ c.description && /* @__PURE__ */ jsx("span", { className: "block text-[10px] text-[var(--color-text-muted)] line-clamp-2", children: c.description })
9326
+ ] })
9327
+ ]
9328
+ },
9329
+ c.type
9330
+ ))
9331
+ ] })
9140
9332
  ] })
9141
- ]
9142
- }
9143
- ) }, adapter.name);
9144
- }) });
9333
+ ] })
9334
+ ]
9335
+ }
9336
+ ) });
9337
+ }
9338
+ function AdapterConnectors({
9339
+ nodeId,
9340
+ adapters
9341
+ }) {
9342
+ if (!adapters || adapters.length === 0) return null;
9343
+ return /* @__PURE__ */ jsx("div", { className: "left-0 w-full flex justify-around mt-[6.5px]", children: adapters.map((adapter, i) => /* @__PURE__ */ jsx(
9344
+ AdapterPort,
9345
+ {
9346
+ nodeId,
9347
+ adapter,
9348
+ index: i,
9349
+ total: adapters.length
9350
+ },
9351
+ adapter.name
9352
+ )) });
9145
9353
  }
9146
9354
  function SubNodeComponent({
9147
9355
  id,
@@ -9173,26 +9381,26 @@ function SubNodeComponent({
9173
9381
  position: Position.Top,
9174
9382
  id: "target",
9175
9383
  isConnectable,
9176
- className: "size-2.5 bg-accent border-2 border-accent/60"
9384
+ className: "size-2.5 bg-[var(--color-accent-primary)] border-2 border-[var(--color-border-strong)]"
9177
9385
  }
9178
9386
  ),
9179
- /* @__PURE__ */ jsx("div", { className: "w-0.5 h-4 border-l-2 border-dashed border-accent/40" }),
9180
- /* @__PURE__ */ jsx("span", { className: "text-[10px] text-accent/70 font-medium mb-1", children: meta.title.includes("Model") ? "Model" : meta.title.includes("Memory") ? "Memory" : meta.title.includes("Tool") ? "Tool" : meta.title.includes("Parser") ? "Parser" : "Adapter" }),
9387
+ /* @__PURE__ */ jsx("div", { className: "w-0.5 h-4 border-l-2 border-dashed border-[var(--color-border-strong)]" }),
9388
+ /* @__PURE__ */ jsx("span", { className: "text-[10px] text-[var(--color-text-muted)] font-medium mb-1", children: meta.title.includes("Model") ? "Model" : meta.title.includes("Memory") ? "Memory" : meta.title.includes("Tool") ? "Tool" : meta.title.includes("Parser") ? "Parser" : "Adapter" }),
9181
9389
  /* @__PURE__ */ jsx(
9182
9390
  "div",
9183
9391
  {
9184
- className: `w-14 h-14 rounded-full bg-card border-2 border-accent/40 flex items-center justify-center shadow-lg cursor-pointer transition-all hover:border-accent/80 hover:shadow-xl ${statusRing}`,
9392
+ className: `w-14 h-14 rounded-full bg-[var(--color-surface-elevated)] border-2 border-[var(--color-border-strong)] flex items-center justify-center shadow-lg cursor-pointer transition-all hover:border-[var(--color-accent-primary)] hover:shadow-xl ${statusRing}`,
9185
9393
  onDoubleClick: handleShowNodeProperties,
9186
9394
  "data-selected": selected,
9187
9395
  children: /* @__PURE__ */ jsx(Icon, { icon: meta.icon, className: "w-7 h-7 text-accent opacity-80" })
9188
9396
  }
9189
9397
  ),
9190
- /* @__PURE__ */ jsx("span", { className: "mt-1.5 text-xs text-accent font-medium text-center max-w-24 leading-tight", children: meta.title }),
9398
+ /* @__PURE__ */ jsx("span", { className: "mt-1.5 text-xs text-[var(--color-text-secondary)] font-medium text-center max-w-24 leading-tight", children: meta.title }),
9191
9399
  /* @__PURE__ */ jsx(
9192
9400
  "button",
9193
9401
  {
9194
9402
  onClick: () => deleteNode(id),
9195
- className: "absolute -top-1 -right-1 w-4 h-4 rounded-full bg-destructive/80 text-destructive-foreground text-[10px] flex items-center justify-center opacity-0 group-hover:opacity-100 hover:bg-destructive transition-opacity",
9403
+ className: "absolute -top-1 -right-1 w-4 h-4 rounded-full bg-[var(--color-status-error)] text-white text-[10px] flex items-center justify-center opacity-0 group-hover:opacity-100 hover:bg-[var(--color-status-error)] transition-opacity",
9196
9404
  children: "\xD7"
9197
9405
  }
9198
9406
  ),
@@ -9749,6 +9957,6 @@ function registerWorkflowNodeTypes(workflowNodes) {
9749
9957
  }
9750
9958
  }
9751
9959
 
9752
- export { AVAILABLE_NODES, ConfigSchemaForm, ConnectionFormDialog, ConnectionSelector, NODES, NODES_METADATA, NODE_CONFIGS, NODE_TYPES, NodePropertyPanel, ProviderPicker, createNodeWithDefaultData, ensureNodeConfigsLoaded, fetchNodeManifest, getNodeDetail, getNodeMetadata, getProviderForm, isNodeConfigsInitialized, listCustomBlocks, onNodeTypesUpdate, refetchStoreNodes, registerCustomBlock, registerWorkflowNodeTypes, resolveUiSpec, stripSubmitActions, useConnection, useConnectionDialog, useConnections, useConnectionsByProvider, useCreateConnection, useInitiateOAuth, useNodeExecution, useProviderByKey, useProviderCatalog, useProviders, useSaveWorkflow };
9753
- //# sourceMappingURL=chunk-S2Z7ZTGV.js.map
9754
- //# sourceMappingURL=chunk-S2Z7ZTGV.js.map
9960
+ export { AVAILABLE_NODES, ConfigSchemaForm, ConnectionFormDialog, ConnectionSelector, NODES, NODES_METADATA, NODE_CONFIGS, NODE_TYPES, NodePropertyPanel, ProviderPicker, ensureNodeConfigsLoaded, fetchNodeManifest, getNodeDetail, getNodeMetadata, getProviderForm, isNodeConfigsInitialized, listCustomBlocks, onNodeTypesUpdate, refetchStoreNodes, registerCustomBlock, registerWorkflowNodeTypes, resolveUiSpec, stripSubmitActions, useConnection, useConnectionDialog, useConnections, useConnectionsByProvider, useCreateConnection, useInitiateOAuth, useInsertNode, useNodeExecution, useProviderByKey, useProviderCatalog, useProviders, useSaveWorkflow };
9961
+ //# sourceMappingURL=chunk-4IMAQMRN.js.map
9962
+ //# sourceMappingURL=chunk-4IMAQMRN.js.map