@notmrabhi/flowforge 0.1.37 → 0.1.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/canvas.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./templateSkeletons-BkdRPbV0.js"),t=require("./messages-O9Tw_XXR.js"),r=require("./bpmn-CcuE2X_Q.js"),e=require("./GatewayBranchEdge-DNSPjIZw.js");exports.FlowForgeCanvas=o.FlowForgeCanvas;exports.SubWorkflowPreviewDrawer=o.SubWorkflowPreviewDrawer;exports.WorkflowCanvas=o.FlowForgeCanvas;exports.WorkflowExecutionHistory=o.WorkflowExecutionHistory;exports.WorkflowTemplateLibrary=o.WorkflowTemplateLibrary;exports.accessRequestSkeleton=o.accessRequestSkeleton;exports.offboardingSkeleton=o.offboardingSkeleton;exports.userOnboardingSkeleton=o.userOnboardingSkeleton;exports.webhookIntegrationSkeleton=o.webhookIntegrationSkeleton;exports.defaultFlowForgeMessages=t.defaultFlowForgeMessages;exports.loadWorkflowFromBpmn=r.loadWorkflowFromBpmn;exports.saveWorkflowToBpmn=r.saveWorkflowToBpmn;exports.ActionNode=e.ActionNode;exports.ApprovalNode=e.ApprovalNode;exports.EdgeWithPlusLabel=e.EdgeWithPlusLabel;exports.EndNode=e.EndNode;exports.FilterNode=e.FilterNode;exports.RestApiNode=e.RestApiNode;exports.StartNode=e.StartNode;exports.TriggerNode=e.TriggerNode;exports.WebhookTriggerNode=e.WebhookTriggerNode;exports.builtInNodeTypes=e.builtInNodeTypes;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./templateSkeletons-DyOZ6gBc.js"),t=require("./messages-O9Tw_XXR.js"),r=require("./bpmn-CcuE2X_Q.js"),o=require("./GatewayBranchEdge-DNSPjIZw.js");exports.FlowForgeCanvas=e.FlowForgeCanvas;exports.FlowForgeHeader=e.FlowForgeHeader;exports.SubWorkflowPreviewDrawer=e.SubWorkflowPreviewDrawer;exports.WorkflowCanvas=e.FlowForgeCanvas;exports.WorkflowExecutionHistory=e.WorkflowExecutionHistory;exports.WorkflowTemplateLibrary=e.WorkflowTemplateLibrary;exports.accessRequestSkeleton=e.accessRequestSkeleton;exports.offboardingSkeleton=e.offboardingSkeleton;exports.userOnboardingSkeleton=e.userOnboardingSkeleton;exports.webhookIntegrationSkeleton=e.webhookIntegrationSkeleton;exports.defaultFlowForgeMessages=t.defaultFlowForgeMessages;exports.loadWorkflowFromBpmn=r.loadWorkflowFromBpmn;exports.saveWorkflowToBpmn=r.saveWorkflowToBpmn;exports.ActionNode=o.ActionNode;exports.ApprovalNode=o.ApprovalNode;exports.EdgeWithPlusLabel=o.EdgeWithPlusLabel;exports.EndNode=o.EndNode;exports.FilterNode=o.FilterNode;exports.RestApiNode=o.RestApiNode;exports.StartNode=o.StartNode;exports.TriggerNode=o.TriggerNode;exports.WebhookTriggerNode=o.WebhookTriggerNode;exports.builtInNodeTypes=o.builtInNodeTypes;
2
2
  //# sourceMappingURL=canvas.cjs.map
package/dist/canvas.d.ts CHANGED
@@ -439,7 +439,7 @@ declare interface FixedNode_3 {
439
439
  deletable?: false;
440
440
  }
441
441
 
442
- declare const FlowForgeCanvas: ({ nodeRegistry, templateRegistry, initialValue, nodeTypes: consumerNodeTypes, edgeTypes: consumerEdgeTypes, onSave, readOnly, theme, messages: messageOverrides, canvasOptions, renderTriggerSelector, loadTriggerSources, renderNodePicker, renderNodeConfig, onNodeClick: onNodeClickProp, maxNodes, layoutDirection, executionRecord, onFetchWorkflow, }: FlowForgeCanvasProps) => JSX_2.Element;
442
+ declare const FlowForgeCanvas: ({ nodeRegistry, templateRegistry, initialValue, nodeTypes: consumerNodeTypes, edgeTypes: consumerEdgeTypes, onSave, readOnly, theme, messages: messageOverrides, canvasOptions, renderTriggerSelector, loadTriggerSources, renderNodePicker, renderNodeConfig, onNodeClick: onNodeClickProp, maxNodes, layoutDirection, executionRecord, onFetchWorkflow, hideHeader, workflowName, onWorkflowNameChange, onCancel, workflowStatus, workflowStatusColor, saveLabel, }: FlowForgeCanvasProps) => JSX_2.Element;
443
443
  export { FlowForgeCanvas }
444
444
  export { FlowForgeCanvas as WorkflowCanvas }
445
445
 
@@ -528,6 +528,51 @@ export declare interface FlowForgeCanvasProps {
528
528
  * Return the WorkflowState for the given workflowId to render it in a drawer.
529
529
  */
530
530
  onFetchWorkflow?: (workflowId: string) => Promise<WorkflowState>;
531
+ /** Hide the built-in top bar (Save / Cancel / name). Default false. */
532
+ hideHeader?: boolean;
533
+ /** Display name in the header. */
534
+ workflowName?: string;
535
+ /** Make the header name click-to-edit. */
536
+ onWorkflowNameChange?: (name: string) => void;
537
+ /** Cancel button shows only when this handler is provided. */
538
+ onCancel?: () => void;
539
+ /** Status pill text + color (e.g. 'Draft' / 'amber'). */
540
+ workflowStatus?: string;
541
+ workflowStatusColor?: 'gray' | 'green' | 'amber' | 'red' | string;
542
+ /** Override the Save button label. */
543
+ saveLabel?: string;
544
+ }
545
+
546
+ export declare function FlowForgeHeader({ workflowName, onWorkflowNameChange, status, statusColor, onSave, onCancel, saveLabel, saveDisabled, }: FlowForgeHeaderProps): JSX_2.Element;
547
+
548
+ /**
549
+ * FlowForgeHeader — top bar that ships with FlowForgeCanvas by default.
550
+ *
551
+ * Renders the workflow name, a status pill, Cancel, and primary Save
552
+ * button. Calls back via `onSave` / `onCancel`. The canvas itself wires
553
+ * `onSave` to the latest WorkflowState behind the scenes — consumers
554
+ * only provide a callback that receives that state.
555
+ *
556
+ * Opt out of the built-in header by passing `hideHeader={true}` on
557
+ * FlowForgeCanvas; you can still mount this component standalone.
558
+ */
559
+ export declare interface FlowForgeHeaderProps {
560
+ /** Workflow display name shown on the left. */
561
+ workflowName?: string;
562
+ /** Optional editable callback — when provided, name becomes click-to-edit. */
563
+ onWorkflowNameChange?: (name: string) => void;
564
+ /** Status pill text (e.g. 'Draft', 'Published', 'Unsaved'). */
565
+ status?: string;
566
+ /** Status pill color — one of these or a custom hex. */
567
+ statusColor?: 'gray' | 'green' | 'amber' | 'red' | string;
568
+ /** Click handler for the primary Save button. Async-aware: spinner shows during await. */
569
+ onSave?: () => void | Promise<void>;
570
+ /** Click handler for Cancel. Button hidden when not provided. */
571
+ onCancel?: () => void;
572
+ /** Custom label for the Save button. Defaults to "Save". */
573
+ saveLabel?: string;
574
+ /** Disable Save button (e.g. while there are no unsaved changes). */
575
+ saveDisabled?: boolean;
531
576
  }
532
577
 
533
578
  export declare interface FlowForgeMessages {
package/dist/canvas.js CHANGED
@@ -1,29 +1,30 @@
1
- import { F as a, S as s, F as r, W as t, a as l, b as n, o as d, u as i, w as f } from "./templateSkeletons-BB6jQ9r5.js";
2
- import { d as w } from "./messages-CO299wPN.js";
3
- import { l as p, s as b } from "./bpmn-CtfWDaOY.js";
4
- import { A as F, b as N, E as m, c as u, F as S, R as T, S as c, T as v, W as x, e as A } from "./GatewayBranchEdge-Diid9GtB.js";
1
+ import { F as a, a as s, S as r, F as l, W as t, b as d, c as n, o as i, u as f, w } from "./templateSkeletons-DVeGC-Wx.js";
2
+ import { d as k } from "./messages-CO299wPN.js";
3
+ import { l as F, s as b } from "./bpmn-CtfWDaOY.js";
4
+ import { A as N, b as m, E as u, c as S, F as c, R as T, S as v, T as x, W as A, e as E } from "./GatewayBranchEdge-Diid9GtB.js";
5
5
  export {
6
- F as ActionNode,
7
- N as ApprovalNode,
8
- m as EdgeWithPlusLabel,
9
- u as EndNode,
10
- S as FilterNode,
6
+ N as ActionNode,
7
+ m as ApprovalNode,
8
+ u as EdgeWithPlusLabel,
9
+ S as EndNode,
10
+ c as FilterNode,
11
11
  a as FlowForgeCanvas,
12
+ s as FlowForgeHeader,
12
13
  T as RestApiNode,
13
- c as StartNode,
14
- s as SubWorkflowPreviewDrawer,
15
- v as TriggerNode,
16
- x as WebhookTriggerNode,
17
- r as WorkflowCanvas,
14
+ v as StartNode,
15
+ r as SubWorkflowPreviewDrawer,
16
+ x as TriggerNode,
17
+ A as WebhookTriggerNode,
18
+ l as WorkflowCanvas,
18
19
  t as WorkflowExecutionHistory,
19
- l as WorkflowTemplateLibrary,
20
+ d as WorkflowTemplateLibrary,
20
21
  n as accessRequestSkeleton,
21
- A as builtInNodeTypes,
22
- w as defaultFlowForgeMessages,
23
- p as loadWorkflowFromBpmn,
24
- d as offboardingSkeleton,
22
+ E as builtInNodeTypes,
23
+ k as defaultFlowForgeMessages,
24
+ F as loadWorkflowFromBpmn,
25
+ i as offboardingSkeleton,
25
26
  b as saveWorkflowToBpmn,
26
- i as userOnboardingSkeleton,
27
- f as webhookIntegrationSkeleton
27
+ f as userOnboardingSkeleton,
28
+ w as webhookIntegrationSkeleton
28
29
  };
29
30
  //# sourceMappingURL=canvas.js.map
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-CqMPyOkL.js"),a=require("./SchemaBuilderDrawer-CiSdfXzJ.js");require("react/jsx-runtime");require("react");require("@mui/material");require("react-icons/md");const r=require("./nodeRegistry.cjs"),l=require("./templateRegistry.cjs"),i=require("./templateSkeletons-BkdRPbV0.js"),d=require("./messages-O9Tw_XXR.js"),n=require("./bpmn-CcuE2X_Q.js"),o=require("./GatewayBranchEdge-DNSPjIZw.js");class u{constructor(){this.channels=new Map}register(t,s){this.channels.set(t,s)}get(t){return this.channels.get(t)}list(){return Array.from(this.channels.entries()).map(([t,s])=>({key:t,...s}))}has(t){return this.channels.has(t)}}const c=new u;exports.DynamicFormRenderer=e.DynamicFormRenderer;exports.FF=e.FF;exports.FlowForgeRegistry=e.FlowForgeRegistry;exports.FlowForm=e.FlowForm;exports.FormulaInput=e.FormulaInput;exports.InfiniteSelectField=e.InfiniteSelectField;exports.TablePickerField=e.TablePickerField;exports.VariablePicker=e.VariablePicker;exports.VariablePickerProvider=e.VariablePickerProvider;exports.astHasRefs=e.astHasRefs;exports.astToTokens=e.astToTokens;exports.buildEvaluationPayload=e.buildEvaluationPayload;exports.buildFieldConfig=e.buildFieldConfig;exports.buildFormulaPath=e.buildFormulaPath;exports.buildSelectStyles=e.buildSelectStyles;exports.buildValidationSchema=e.buildValidationSchema;exports.dataSourceRegistry=e.dataSourceRegistry;exports.errorTextStyle=e.errorTextStyle;exports.extractLabel=e.extractLabel;exports.fieldRegistry=e.fieldRegistry;exports.hasFormulaTokens=e.hasFormulaTokens;exports.helperTextStyle=e.helperTextStyle;exports.inputStyle=e.inputStyle;exports.isFormula=e.isFormula;exports.parseToAST=e.parseToAST;exports.serializeAST=e.serializeAST;exports.serializeASTAsConfig=e.serializeASTAsConfig;exports.serializeConditionExpressions=e.serializeConditionExpressions;exports.stripFormulaTokens=e.stripFormulaTokens;exports.tokenize=e.tokenize;exports.unwrapFormula=e.unwrapFormula;exports.useVariablePickerContext=e.useVariablePickerContext;exports.wrapFormula=e.wrapFormula;exports.FIELD_TYPE_OPTIONS=a.FIELD_TYPE_OPTIONS;exports.SchemaBuilder=a.SchemaBuilder;exports.SchemaBuilderDrawer=a.SchemaBuilderDrawer;exports.useFlowForm=a.useFlowForm;exports.NodeTypeRegistry=r.NodeTypeRegistry;exports.baseNodeDefaults=r.baseNodeDefaults;exports.conditionBranchDescriptor=r.conditionBranchDescriptor;exports.defineNode=r.defineNode;exports.endEventDescriptor=r.endEventDescriptor;exports.makeSubWorkflowDescriptor=r.makeSubWorkflowDescriptor;exports.nodeTypeRegistry=r.nodeTypeRegistry;exports.notificationDescriptor=r.notificationDescriptor;exports.restApiDescriptor=r.restApiDescriptor;exports.startEventDescriptor=r.startEventDescriptor;exports.subWorkflowDescriptor=r.subWorkflowDescriptor;exports.webhookTriggerDescriptor=r.webhookTriggerDescriptor;exports.webhookTriggerTemplate=r.webhookTriggerTemplate;exports.TemplateRegistry=l.TemplateRegistry;exports.templateRegistry=l.templateRegistry;exports.FlowForgeCanvas=i.FlowForgeCanvas;exports.SubWorkflowPreviewDrawer=i.SubWorkflowPreviewDrawer;exports.WorkflowCanvas=i.FlowForgeCanvas;exports.WorkflowExecutionHistory=i.WorkflowExecutionHistory;exports.WorkflowTemplateLibrary=i.WorkflowTemplateLibrary;exports.accessRequestSkeleton=i.accessRequestSkeleton;exports.offboardingSkeleton=i.offboardingSkeleton;exports.userOnboardingSkeleton=i.userOnboardingSkeleton;exports.webhookIntegrationSkeleton=i.webhookIntegrationSkeleton;exports.defaultFlowForgeMessages=d.defaultFlowForgeMessages;exports.loadWorkflowFromBpmn=n.loadWorkflowFromBpmn;exports.saveWorkflowToBpmn=n.saveWorkflowToBpmn;exports.ActionNode=o.ActionNode;exports.ApprovalNode=o.ApprovalNode;exports.EdgeWithPlusLabel=o.EdgeWithPlusLabel;exports.EndNode=o.EndNode;exports.FilterNode=o.FilterNode;exports.RestApiNode=o.RestApiNode;exports.StartNode=o.StartNode;exports.TriggerNode=o.TriggerNode;exports.WebhookTriggerNode=o.WebhookTriggerNode;exports.builtInNodeTypes=o.builtInNodeTypes;exports.notificationChannelRegistry=c;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-CqMPyOkL.js"),a=require("./SchemaBuilderDrawer-CiSdfXzJ.js");require("react/jsx-runtime");require("react");require("@mui/material");require("react-icons/md");const r=require("./nodeRegistry.cjs"),s=require("./templateRegistry.cjs"),o=require("./templateSkeletons-DyOZ6gBc.js"),d=require("./messages-O9Tw_XXR.js"),n=require("./bpmn-CcuE2X_Q.js"),i=require("./GatewayBranchEdge-DNSPjIZw.js");class u{constructor(){this.channels=new Map}register(t,l){this.channels.set(t,l)}get(t){return this.channels.get(t)}list(){return Array.from(this.channels.entries()).map(([t,l])=>({key:t,...l}))}has(t){return this.channels.has(t)}}const c=new u;exports.DynamicFormRenderer=e.DynamicFormRenderer;exports.FF=e.FF;exports.FlowForgeRegistry=e.FlowForgeRegistry;exports.FlowForm=e.FlowForm;exports.FormulaInput=e.FormulaInput;exports.InfiniteSelectField=e.InfiniteSelectField;exports.TablePickerField=e.TablePickerField;exports.VariablePicker=e.VariablePicker;exports.VariablePickerProvider=e.VariablePickerProvider;exports.astHasRefs=e.astHasRefs;exports.astToTokens=e.astToTokens;exports.buildEvaluationPayload=e.buildEvaluationPayload;exports.buildFieldConfig=e.buildFieldConfig;exports.buildFormulaPath=e.buildFormulaPath;exports.buildSelectStyles=e.buildSelectStyles;exports.buildValidationSchema=e.buildValidationSchema;exports.dataSourceRegistry=e.dataSourceRegistry;exports.errorTextStyle=e.errorTextStyle;exports.extractLabel=e.extractLabel;exports.fieldRegistry=e.fieldRegistry;exports.hasFormulaTokens=e.hasFormulaTokens;exports.helperTextStyle=e.helperTextStyle;exports.inputStyle=e.inputStyle;exports.isFormula=e.isFormula;exports.parseToAST=e.parseToAST;exports.serializeAST=e.serializeAST;exports.serializeASTAsConfig=e.serializeASTAsConfig;exports.serializeConditionExpressions=e.serializeConditionExpressions;exports.stripFormulaTokens=e.stripFormulaTokens;exports.tokenize=e.tokenize;exports.unwrapFormula=e.unwrapFormula;exports.useVariablePickerContext=e.useVariablePickerContext;exports.wrapFormula=e.wrapFormula;exports.FIELD_TYPE_OPTIONS=a.FIELD_TYPE_OPTIONS;exports.SchemaBuilder=a.SchemaBuilder;exports.SchemaBuilderDrawer=a.SchemaBuilderDrawer;exports.useFlowForm=a.useFlowForm;exports.NodeTypeRegistry=r.NodeTypeRegistry;exports.baseNodeDefaults=r.baseNodeDefaults;exports.conditionBranchDescriptor=r.conditionBranchDescriptor;exports.defineNode=r.defineNode;exports.endEventDescriptor=r.endEventDescriptor;exports.makeSubWorkflowDescriptor=r.makeSubWorkflowDescriptor;exports.nodeTypeRegistry=r.nodeTypeRegistry;exports.notificationDescriptor=r.notificationDescriptor;exports.restApiDescriptor=r.restApiDescriptor;exports.startEventDescriptor=r.startEventDescriptor;exports.subWorkflowDescriptor=r.subWorkflowDescriptor;exports.webhookTriggerDescriptor=r.webhookTriggerDescriptor;exports.webhookTriggerTemplate=r.webhookTriggerTemplate;exports.TemplateRegistry=s.TemplateRegistry;exports.templateRegistry=s.templateRegistry;exports.FlowForgeCanvas=o.FlowForgeCanvas;exports.FlowForgeHeader=o.FlowForgeHeader;exports.SubWorkflowPreviewDrawer=o.SubWorkflowPreviewDrawer;exports.WorkflowCanvas=o.FlowForgeCanvas;exports.WorkflowExecutionHistory=o.WorkflowExecutionHistory;exports.WorkflowTemplateLibrary=o.WorkflowTemplateLibrary;exports.accessRequestSkeleton=o.accessRequestSkeleton;exports.offboardingSkeleton=o.offboardingSkeleton;exports.userOnboardingSkeleton=o.userOnboardingSkeleton;exports.webhookIntegrationSkeleton=o.webhookIntegrationSkeleton;exports.defaultFlowForgeMessages=d.defaultFlowForgeMessages;exports.loadWorkflowFromBpmn=n.loadWorkflowFromBpmn;exports.saveWorkflowToBpmn=n.saveWorkflowToBpmn;exports.ActionNode=i.ActionNode;exports.ApprovalNode=i.ApprovalNode;exports.EdgeWithPlusLabel=i.EdgeWithPlusLabel;exports.EndNode=i.EndNode;exports.FilterNode=i.FilterNode;exports.RestApiNode=i.RestApiNode;exports.StartNode=i.StartNode;exports.TriggerNode=i.TriggerNode;exports.WebhookTriggerNode=i.WebhookTriggerNode;exports.builtInNodeTypes=i.builtInNodeTypes;exports.notificationChannelRegistry=c;
2
2
  //# sourceMappingURL=index.cjs.map
package/dist/index.d.ts CHANGED
@@ -583,7 +583,7 @@ declare interface FixedNode {
583
583
  deletable?: false;
584
584
  }
585
585
 
586
- declare const FlowForgeCanvas: ({ nodeRegistry, templateRegistry, initialValue, nodeTypes: consumerNodeTypes, edgeTypes: consumerEdgeTypes, onSave, readOnly, theme, messages: messageOverrides, canvasOptions, renderTriggerSelector, loadTriggerSources, renderNodePicker, renderNodeConfig, onNodeClick: onNodeClickProp, maxNodes, layoutDirection, executionRecord, onFetchWorkflow, }: FlowForgeCanvasProps) => JSX_2.Element;
586
+ declare const FlowForgeCanvas: ({ nodeRegistry, templateRegistry, initialValue, nodeTypes: consumerNodeTypes, edgeTypes: consumerEdgeTypes, onSave, readOnly, theme, messages: messageOverrides, canvasOptions, renderTriggerSelector, loadTriggerSources, renderNodePicker, renderNodeConfig, onNodeClick: onNodeClickProp, maxNodes, layoutDirection, executionRecord, onFetchWorkflow, hideHeader, workflowName, onWorkflowNameChange, onCancel, workflowStatus, workflowStatusColor, saveLabel, }: FlowForgeCanvasProps) => JSX_2.Element;
587
587
  export { FlowForgeCanvas }
588
588
  export { FlowForgeCanvas as WorkflowCanvas }
589
589
 
@@ -672,6 +672,19 @@ export declare interface FlowForgeCanvasProps {
672
672
  * Return the WorkflowState for the given workflowId to render it in a drawer.
673
673
  */
674
674
  onFetchWorkflow?: (workflowId: string) => Promise<WorkflowState>;
675
+ /** Hide the built-in top bar (Save / Cancel / name). Default false. */
676
+ hideHeader?: boolean;
677
+ /** Display name in the header. */
678
+ workflowName?: string;
679
+ /** Make the header name click-to-edit. */
680
+ onWorkflowNameChange?: (name: string) => void;
681
+ /** Cancel button shows only when this handler is provided. */
682
+ onCancel?: () => void;
683
+ /** Status pill text + color (e.g. 'Draft' / 'amber'). */
684
+ workflowStatus?: string;
685
+ workflowStatusColor?: 'gray' | 'green' | 'amber' | 'red' | string;
686
+ /** Override the Save button label. */
687
+ saveLabel?: string;
675
688
  }
676
689
 
677
690
  export declare interface FlowForgeFieldDefinition {
@@ -698,6 +711,38 @@ export declare interface FlowForgeFieldDefinition {
698
711
  buildValidation?: (field: FieldDescriptor) => Yup.Schema;
699
712
  }
700
713
 
714
+ export declare function FlowForgeHeader({ workflowName, onWorkflowNameChange, status, statusColor, onSave, onCancel, saveLabel, saveDisabled, }: FlowForgeHeaderProps): JSX_2.Element;
715
+
716
+ /**
717
+ * FlowForgeHeader — top bar that ships with FlowForgeCanvas by default.
718
+ *
719
+ * Renders the workflow name, a status pill, Cancel, and primary Save
720
+ * button. Calls back via `onSave` / `onCancel`. The canvas itself wires
721
+ * `onSave` to the latest WorkflowState behind the scenes — consumers
722
+ * only provide a callback that receives that state.
723
+ *
724
+ * Opt out of the built-in header by passing `hideHeader={true}` on
725
+ * FlowForgeCanvas; you can still mount this component standalone.
726
+ */
727
+ export declare interface FlowForgeHeaderProps {
728
+ /** Workflow display name shown on the left. */
729
+ workflowName?: string;
730
+ /** Optional editable callback — when provided, name becomes click-to-edit. */
731
+ onWorkflowNameChange?: (name: string) => void;
732
+ /** Status pill text (e.g. 'Draft', 'Published', 'Unsaved'). */
733
+ status?: string;
734
+ /** Status pill color — one of these or a custom hex. */
735
+ statusColor?: 'gray' | 'green' | 'amber' | 'red' | string;
736
+ /** Click handler for the primary Save button. Async-aware: spinner shows during await. */
737
+ onSave?: () => void | Promise<void>;
738
+ /** Click handler for Cancel. Button hidden when not provided. */
739
+ onCancel?: () => void;
740
+ /** Custom label for the Save button. Defaults to "Save". */
741
+ saveLabel?: string;
742
+ /** Disable Save button (e.g. while there are no unsaved changes). */
743
+ saveDisabled?: boolean;
744
+ }
745
+
701
746
  export declare interface FlowForgeMessages {
702
747
  addTriggerTitle: string;
703
748
  addTriggerTooltip: string;
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { D as c, F as u, a as m, b as f, c as g, I as F, T as h, V as b, d as k, e as T, f as w, g as S, h as y, i as x, j as D, k as N, B as R, l as W, m as A, n as P, o as v, p as E, q as C, r as I, s as B, t as z, u as V, v as L, w as O, x as q, y as H, z as M, A as _ } from "./index-B74jTc2b.js";
1
+ import { D as c, F as u, a as m, b as F, c as g, I as f, T as h, V as b, d as k, e as w, f as T, g as S, h as y, i as x, j as D, k as N, B as R, l as W, m as A, n as P, o as v, p as E, q as C, r as I, s as B, t as z, u as V, v as L, w as H, x as O, y as q, z as M, A as _ } from "./index-B74jTc2b.js";
2
2
  import { F as Y, S as G, a as J, u as K } from "./SchemaBuilderDrawer-CUzYWGCN.js";
3
3
  import "react/jsx-runtime";
4
4
  import "react";
@@ -6,10 +6,10 @@ import "@mui/material";
6
6
  import "react-icons/md";
7
7
  import { NodeTypeRegistry as U, baseNodeDefaults as X, conditionBranchDescriptor as Z, defineNode as $, endEventDescriptor as ee, makeSubWorkflowDescriptor as ae, nodeTypeRegistry as se, notificationDescriptor as re, restApiDescriptor as oe, startEventDescriptor as te, subWorkflowDescriptor as ie, webhookTriggerDescriptor as le, webhookTriggerTemplate as ne } from "./nodeRegistry.js";
8
8
  import { TemplateRegistry as de, templateRegistry as ce } from "./templateRegistry.js";
9
- import { F as me, S as fe, F as ge, W as Fe, a as he, b as be, o as ke, u as Te, w as we } from "./templateSkeletons-BB6jQ9r5.js";
10
- import { d as ye } from "./messages-CO299wPN.js";
11
- import { l as De, s as Ne } from "./bpmn-CtfWDaOY.js";
12
- import { A as We, b as Ae, E as Pe, c as ve, F as Ee, R as Ce, S as Ie, T as Be, W as ze, e as Ve } from "./GatewayBranchEdge-Diid9GtB.js";
9
+ import { F as me, a as Fe, S as ge, F as fe, W as he, b as be, c as ke, o as we, u as Te, w as Se } from "./templateSkeletons-DVeGC-Wx.js";
10
+ import { d as xe } from "./messages-CO299wPN.js";
11
+ import { l as Ne, s as Re } from "./bpmn-CtfWDaOY.js";
12
+ import { A as Ae, b as Pe, E as ve, c as Ee, F as Ce, R as Ie, S as Be, T as ze, W as Ve, e as Le } from "./GatewayBranchEdge-Diid9GtB.js";
13
13
  class s {
14
14
  constructor() {
15
15
  this.channels = /* @__PURE__ */ new Map();
@@ -29,47 +29,48 @@ class s {
29
29
  }
30
30
  const n = new s();
31
31
  export {
32
- We as ActionNode,
33
- Ae as ApprovalNode,
32
+ Ae as ActionNode,
33
+ Pe as ApprovalNode,
34
34
  c as DynamicFormRenderer,
35
- Pe as EdgeWithPlusLabel,
36
- ve as EndNode,
35
+ ve as EdgeWithPlusLabel,
36
+ Ee as EndNode,
37
37
  u as FF,
38
38
  Y as FIELD_TYPE_OPTIONS,
39
- Ee as FilterNode,
39
+ Ce as FilterNode,
40
40
  me as FlowForgeCanvas,
41
+ Fe as FlowForgeHeader,
41
42
  m as FlowForgeRegistry,
42
- f as FlowForm,
43
+ F as FlowForm,
43
44
  g as FormulaInput,
44
- F as InfiniteSelectField,
45
+ f as InfiniteSelectField,
45
46
  U as NodeTypeRegistry,
46
- Ce as RestApiNode,
47
+ Ie as RestApiNode,
47
48
  G as SchemaBuilder,
48
49
  J as SchemaBuilderDrawer,
49
- Ie as StartNode,
50
- fe as SubWorkflowPreviewDrawer,
50
+ Be as StartNode,
51
+ ge as SubWorkflowPreviewDrawer,
51
52
  h as TablePickerField,
52
53
  de as TemplateRegistry,
53
- Be as TriggerNode,
54
+ ze as TriggerNode,
54
55
  b as VariablePicker,
55
56
  k as VariablePickerProvider,
56
- ze as WebhookTriggerNode,
57
- ge as WorkflowCanvas,
58
- Fe as WorkflowExecutionHistory,
59
- he as WorkflowTemplateLibrary,
60
- be as accessRequestSkeleton,
61
- T as astHasRefs,
62
- w as astToTokens,
57
+ Ve as WebhookTriggerNode,
58
+ fe as WorkflowCanvas,
59
+ he as WorkflowExecutionHistory,
60
+ be as WorkflowTemplateLibrary,
61
+ ke as accessRequestSkeleton,
62
+ w as astHasRefs,
63
+ T as astToTokens,
63
64
  X as baseNodeDefaults,
64
65
  S as buildEvaluationPayload,
65
66
  y as buildFieldConfig,
66
67
  x as buildFormulaPath,
67
68
  D as buildSelectStyles,
68
69
  N as buildValidationSchema,
69
- Ve as builtInNodeTypes,
70
+ Le as builtInNodeTypes,
70
71
  Z as conditionBranchDescriptor,
71
72
  R as dataSourceRegistry,
72
- ye as defaultFlowForgeMessages,
73
+ xe as defaultFlowForgeMessages,
73
74
  $ as defineNode,
74
75
  ee as endEventDescriptor,
75
76
  W as errorTextStyle,
@@ -79,28 +80,28 @@ export {
79
80
  E as helperTextStyle,
80
81
  C as inputStyle,
81
82
  I as isFormula,
82
- De as loadWorkflowFromBpmn,
83
+ Ne as loadWorkflowFromBpmn,
83
84
  ae as makeSubWorkflowDescriptor,
84
85
  se as nodeTypeRegistry,
85
86
  n as notificationChannelRegistry,
86
87
  re as notificationDescriptor,
87
- ke as offboardingSkeleton,
88
+ we as offboardingSkeleton,
88
89
  B as parseToAST,
89
90
  oe as restApiDescriptor,
90
- Ne as saveWorkflowToBpmn,
91
+ Re as saveWorkflowToBpmn,
91
92
  z as serializeAST,
92
93
  V as serializeASTAsConfig,
93
94
  L as serializeConditionExpressions,
94
95
  te as startEventDescriptor,
95
- O as stripFormulaTokens,
96
+ H as stripFormulaTokens,
96
97
  ie as subWorkflowDescriptor,
97
98
  ce as templateRegistry,
98
- q as tokenize,
99
- H as unwrapFormula,
99
+ O as tokenize,
100
+ q as unwrapFormula,
100
101
  K as useFlowForm,
101
102
  M as useVariablePickerContext,
102
103
  Te as userOnboardingSkeleton,
103
- we as webhookIntegrationSkeleton,
104
+ Se as webhookIntegrationSkeleton,
104
105
  le as webhookTriggerDescriptor,
105
106
  ne as webhookTriggerTemplate,
106
107
  _ as wrapFormula