@burdenoff/fluidgrids-fe-sdk 2026.1105.1 → 2026.1105.3

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 (60) hide show
  1. package/README.md +30 -0
  2. package/dist/ExecutionDetailPage-JXGPSLS3.js +30 -0
  3. package/dist/{WorkflowsList-EV725VG5.js → ExecutionsListPage-U3TC5JUI.js} +11 -8
  4. package/dist/{WorkflowBuilder-CRR5WP4V.js → WorkflowBuilder-6DOD6WWH.js} +16 -13
  5. package/dist/{ExecutionsListPage-NQIQXMTY.js → WorkflowsList-XOWRQNST.js} +10 -8
  6. package/dist/{agentTools-PN4W7QZH.js → agentTools-YQBN33WG.js} +7 -5
  7. package/dist/{chunk-VFVN7D3A.js → chunk-22U3TUKZ.js} +3 -93
  8. package/dist/{chunk-XLI75E3D.js → chunk-2WUVF4EQ.js} +2 -2
  9. package/dist/{chunk-GVIYGJQG.js → chunk-3MZOYJ5I.js} +1 -1
  10. package/dist/{chunk-L44BRLW5.js → chunk-3ZYRLGDF.js} +612 -22
  11. package/dist/{chunk-FCT6POFX.js → chunk-4NNF7DIB.js} +1 -1
  12. package/dist/chunk-5DVP2UYH.js +1924 -0
  13. package/dist/{chunk-JDQYGH4Q.js → chunk-EKDUYCTS.js} +4 -4
  14. package/dist/{chunk-6P7DOBVN.js → chunk-EYQ7GJRW.js} +2 -2
  15. package/dist/{chunk-HLAUK5GM.js → chunk-FVWRGL7S.js} +1 -1
  16. package/dist/{chunk-AZKVI4YN.js → chunk-G33OMSW6.js} +8 -6
  17. package/dist/{chunk-D7G5VWSH.js → chunk-G774FI2E.js} +2 -2
  18. package/dist/{chunk-DANOMJ5I.js → chunk-IJ7UIDCW.js} +7 -6
  19. package/dist/{chunk-EC2AN74G.js → chunk-IL343FKX.js} +1 -1
  20. package/dist/chunk-JYYN3CLL.js +32 -0
  21. package/dist/{chunk-O2EB7UT2.js → chunk-KAWRHIJZ.js} +2 -2
  22. package/dist/{chunk-JC4D7RQ6.js → chunk-KN37RIFC.js} +5 -4
  23. package/dist/{chunk-AASHQI77.js → chunk-KZCNJAMK.js} +2 -1
  24. package/dist/{chunk-BHAKNT5M.js → chunk-LDWBMCX4.js} +4 -3
  25. package/dist/{chunk-MSQAULLG.js → chunk-MA6I4KY5.js} +186 -7
  26. package/dist/{chunk-R3Z7W4EX.js → chunk-MP44TAOO.js} +276 -196
  27. package/dist/{chunk-FJSXXO5W.js → chunk-MY7SEUXM.js} +1 -1
  28. package/dist/{chunk-I3QPAEL6.js → chunk-NMQENSPW.js} +15 -14
  29. package/dist/chunk-NZAYYUQ4.js +172 -0
  30. package/dist/{chunk-6EZJ5J3B.js → chunk-NZFPCTIS.js} +4 -4
  31. package/dist/{chunk-MZFJL4X3.js → chunk-OXXXUAWM.js} +1 -1
  32. package/dist/chunk-SDZEAIIE.js +9 -0
  33. package/dist/{chunk-CGR3AEZU.js → chunk-TCIBTMJI.js} +68 -2
  34. package/dist/{chunk-4QB6S7YW.js → chunk-TJAG2DQT.js} +9 -38
  35. package/dist/{chunk-MQN6YDX4.js → chunk-TLHX4DK4.js} +7 -6
  36. package/dist/{chunk-AG3VC7Y2.js → chunk-VESQH55Q.js} +2 -2
  37. package/dist/chunk-WZ3EJVS6.js +93 -0
  38. package/dist/{chunk-OCJTTHTS.js → chunk-Y7FKJJMF.js} +1 -9
  39. package/dist/{chunk-HOTVUVZG.js → chunk-YGOGJDN4.js} +2 -2
  40. package/dist/{chunk-AVHBWJRY.js → chunk-Z3ABLERJ.js} +3 -1
  41. package/dist/{chunk-C26QAWCT.js → chunk-ZBPRNWKY.js} +235 -2146
  42. package/dist/{chunk-2QOAJF7V.js → chunk-ZLBTUCC2.js} +4 -3
  43. package/dist/code-editor-field-WWPDMF4O.js +3 -0
  44. package/dist/executions.js +16 -12
  45. package/dist/history.js +9 -6
  46. package/dist/index.d.ts +77 -1
  47. package/dist/index.js +46 -41
  48. package/dist/{node-detail-view-3VG7XFIZ.js → node-detail-view-U5HOP2WX.js} +35 -9
  49. package/dist/nodes.js +2 -2
  50. package/dist/observability.js +9 -6
  51. package/dist/{quick-config-panel-GB7SDWHD.js → quick-config-panel-XAISBW6Y.js} +10 -7
  52. package/dist/settings.js +9 -6
  53. package/dist/templates.js +15 -12
  54. package/dist/workflow-builder.js +17 -14
  55. package/dist/workflow-preview.d.ts +158 -0
  56. package/dist/workflow-preview.js +721 -0
  57. package/dist/workflows-list.js +10 -8
  58. package/package.json +5 -1
  59. package/dist/ExecutionDetailPage-YBAMVPMB.js +0 -26
  60. package/dist/code-editor-field-XWUVOKTA.js +0 -2
@@ -0,0 +1,158 @@
1
+ import * as React from 'react';
2
+ import { ReactNode, CSSProperties } from 'react';
3
+ import * as react_jsx_runtime from 'react/jsx-runtime';
4
+ import { Node, Edge } from '@xyflow/react';
5
+
6
+ /**
7
+ * Pure handle-spec resolution for node cards — split from the rendering in
8
+ * output-handles.tsx so non-UI code (attach helpers, tests) can use it
9
+ * without dragging React/fe-libs into the import graph.
10
+ */
11
+ /**
12
+ * Connection handle spec — mirrors IInternalNodeManifest.outputHandles in
13
+ * wspace-workflow-svc (seeded into node_endpoint_configs.operations and
14
+ * surfaced by the nodeManifest resolver).
15
+ */
16
+ interface NodeHandleSpec {
17
+ /** Handle id — MUST match the activeHandle values the executor returns */
18
+ id: string;
19
+ /** Short label rendered next to the handle (n8n-style) */
20
+ label: string;
21
+ /** Visual tone for the handle/label */
22
+ tone?: "success" | "error" | "warning" | "info" | "neutral";
23
+ }
24
+
25
+ /**
26
+ * Pure model behind `WorkflowPreviewCanvas` (BOFF-9806): what each node card
27
+ * of a read-only workflow preview shows, read from a stored `definitionJson`
28
+ * with no node registry, store, config or network.
29
+ *
30
+ * The derivations mirror the builder's node component (`blocks/nodes/node/
31
+ * node.tsx`) so a preview card reads like the builder card for the same node:
32
+ * the same trigger / logic / action role accent, the same compact logic card
33
+ * for internal control-flow nodes, the same labelled output handles. Where the
34
+ * builder reads the node registry (manifest name, icon, description), the
35
+ * preview asks an optional resolver, then the node's own saved manifest
36
+ * snapshot (`data.nodeData`), then a fallback derived from the node type.
37
+ */
38
+
39
+ /** What a host knows about a node type (typically from the node registry). */
40
+ interface WorkflowPreviewNodeMeta {
41
+ /** Display name of the node type ("Gmail", "Schedule"). */
42
+ title?: string;
43
+ /** Iconify name ("logos:slack-icon") or an image URL / data URI. */
44
+ icon?: string;
45
+ description?: string;
46
+ }
47
+ /**
48
+ * Optional lookup of node-type metadata. Return `undefined` for a type the
49
+ * host does not know; the preview then uses the node's saved manifest snapshot
50
+ * and, failing that, a name and icon derived from the type.
51
+ */
52
+ type WorkflowPreviewNodeMetaResolver = (nodeType: string) => WorkflowPreviewNodeMeta | undefined;
53
+ /** Everything one preview card draws. */
54
+ interface PreviewCardModel {
55
+ /** `app`: the rich card (header + operation); `logic`: the compact card. */
56
+ variant: "app" | "logic";
57
+ nodeType: string;
58
+ /** Header text: the node's own label, else the node type's name (`""`
59
+ * when neither is known; the card then shows its translated fallback). */
60
+ title: string;
61
+ /** The node type's name (the rename placeholder in the builder). */
62
+ appName: string;
63
+ icon: string;
64
+ /** Operation shown in the card body; `null` shows the description only. */
65
+ operation: string | null;
66
+ description: string;
67
+ /** Logic card: short config summary under the title. */
68
+ subtitle?: string;
69
+ trigger: boolean;
70
+ disabled: boolean;
71
+ /** Role accent (trigger / logic / action node-category token). */
72
+ accent: string;
73
+ /** Key that picks the header's icon-square accent (`nodeAccent`). */
74
+ accentKey: string;
75
+ inputHandles: NodeHandleSpec[];
76
+ outputHandles: NodeHandleSpec[];
77
+ /** Extra body height so many-output cards do not crowd. */
78
+ handleSpacer: number;
79
+ }
80
+ /** A canvas node the preview renders (`type` is always the preview card). */
81
+ type PreviewFlowNode = Node<{
82
+ card: PreviewCardModel;
83
+ }, "preview">;
84
+ interface PreviewCanvasModel {
85
+ nodes: PreviewFlowNode[];
86
+ edges: Edge[];
87
+ }
88
+ /** "store/gmail_reader" → "Gmail Reader"; "internal:http-request" → "Http Request". */
89
+ declare function humanizeNodeType(nodeType: string): string;
90
+ /** Icon for a node type with no manifest at hand. */
91
+ declare function fallbackNodeIcon(nodeType: string): string;
92
+ /** The card model of one stored node (sticky notes are not cards). */
93
+ declare function previewCardModel(raw: Node, resolveMeta?: WorkflowPreviewNodeMetaResolver): PreviewCardModel;
94
+ /**
95
+ * The preview canvas of a stored definition, or `null` when it carries no
96
+ * canvas. Sticky notes are annotations, not steps, so they are left out; an
97
+ * edge to a node the preview does not draw is dropped, and a target handle
98
+ * the target card does not have falls back to its first input.
99
+ */
100
+ declare function previewCanvasFromDefinition(definitionJson: unknown, resolveMeta?: WorkflowPreviewNodeMetaResolver): PreviewCanvasModel | null;
101
+ /**
102
+ * The order a sequenced reveal shows nodes in: along the flow (left to right),
103
+ * then top to bottom. Ids in `shown` are already on screen and are skipped.
104
+ */
105
+ declare function previewRevealOrder(nodes: ReadonlyArray<Pick<Node, "id" | "position">>, shown?: ReadonlySet<string>): string[];
106
+ /** An edge is drawn once both of its ends are on screen. */
107
+ declare function edgesBetweenVisible<E extends Pick<Edge, "source" | "target">>(edges: readonly E[], visible: ReadonlySet<string>): E[];
108
+ /**
109
+ * The node that just appeared: the last id of `next` (in `order`) that was not
110
+ * in `previous`. Keeps the current newest when nothing was added, and drops it
111
+ * when it left the canvas.
112
+ */
113
+ declare function newestNodeId(previous: ReadonlySet<string>, next: ReadonlySet<string>, order: readonly string[], current: string | null): string | null;
114
+
115
+ interface WorkflowPreviewCanvasProps {
116
+ /**
117
+ * The stored `definitionJson` (object or JSON string): `{ data: { nodes,
118
+ * edges } }` or a flat `{ nodes, edges }`, read the way the builder loads
119
+ * it. A definition with no `nodes` array renders `emptyState`.
120
+ */
121
+ definition: unknown;
122
+ /**
123
+ * Ids of the nodes on screen. Omit to show every node. Ids the definition
124
+ * does not have are ignored.
125
+ */
126
+ visibleNodeIds?: Iterable<string>;
127
+ /** Ids of nodes that just appeared: drawn with a highlight ring. */
128
+ freshNodeIds?: Iterable<string>;
129
+ /** The build is in progress: flow runs along the edges and the newest node pulses. */
130
+ running?: boolean;
131
+ /**
132
+ * Node-type metadata (name, icon, description), e.g. from a loaded node
133
+ * registry. Without it, cards use each node's saved manifest snapshot, then
134
+ * a name and icon derived from the node type. Keep the function stable.
135
+ */
136
+ resolveNodeMeta?: WorkflowPreviewNodeMetaResolver;
137
+ /** Upper zoom bound for the camera and the viewer. Default 1.5. */
138
+ maxZoom?: number;
139
+ /** Padding the camera keeps around the visible nodes. Default 0.25. */
140
+ fitPadding?: number;
141
+ /** Rendered instead of the canvas when the definition has no canvas. */
142
+ emptyState?: ReactNode;
143
+ /** Accessible name of the canvas region. */
144
+ ariaLabel?: string;
145
+ className?: string;
146
+ style?: CSSProperties;
147
+ }
148
+ declare function WorkflowPreviewCanvasComponent({ definition, visibleNodeIds, freshNodeIds, running, resolveNodeMeta, maxZoom, fitPadding, emptyState, ariaLabel, className, style, }: WorkflowPreviewCanvasProps): react_jsx_runtime.JSX.Element;
149
+ declare const WorkflowPreviewCanvas: React.MemoExoticComponent<typeof WorkflowPreviewCanvasComponent>;
150
+
151
+ /** Node enter: fade + pop. */
152
+ declare const NODE_ENTER_MS = 260;
153
+ /** Edge enter: the path draws from source to target. */
154
+ declare const EDGE_DRAW_MS = 360;
155
+ /** Camera move to take in a new node. */
156
+ declare const CAMERA_MS = 350;
157
+
158
+ export { type PreviewCanvasModel, type PreviewCardModel, type PreviewFlowNode, CAMERA_MS as WORKFLOW_PREVIEW_CAMERA_MS, EDGE_DRAW_MS as WORKFLOW_PREVIEW_EDGE_DRAW_MS, NODE_ENTER_MS as WORKFLOW_PREVIEW_NODE_ENTER_MS, WorkflowPreviewCanvas, type WorkflowPreviewCanvasProps, type WorkflowPreviewNodeMeta, type WorkflowPreviewNodeMetaResolver, edgesBetweenVisible, fallbackNodeIcon, humanizeNodeType, newestNodeId, previewCanvasFromDefinition, previewCardModel, previewRevealOrder };