2.2.0 - 2026-06-29
- Keyboard zoom in the editor:
Ctrl/Cmdwith+/=zooms in andCtrl/Cmdwith-zooms out while the canvas is focused.
- Render the app bar's "Duplicate to Drafts" menu item only when an
onDuplicateClickhandler is provided, removing the default no-op button.
- Stop the delete confirmation modal from opening when Delete or Backspace is pressed with nothing selected.
- Surface validation errors when nodes load before the palette. A race between node and palette loading previously dropped newly applicable errors (for example, for fields not evaluated earlier), so the node showed only a "!" indicator until selected.
- Block edge creation in read-only mode.
- Block cut and paste in the diagram in read-only mode; copying is still allowed.
- Use the SDK's own
templateSelector.titlestring for the template selector modal title instead of an unrelated plugin translation key.
2.1.0 - 2026-06-16
isValidConnectionandreactFlowPropsprops on<WorkflowBuilder.Root>.isValidConnectionvalidates connections as the user draws them;reactFlowPropsforwards extra props to the ReactFlow canvas.useWorkflowBuilderActions()hook for custom layouts that omit<WorkflowBuilder.TopBar />, exposing the imperative save / import / export / settings / read-only / theme / layout-direction actions. Also exports theWorkflowBuilderActions,LayoutChangeOptions, andThemetypes. See Custom toolbar without the app bar.edgeTemplatesprop on<WorkflowBuilder.Root>for custom edge renderers. Pass a{ [edgeType]: Component }map of components taking ReactFlow'sEdgeProps; edges whosetypematches a key render with your component, and unregistered types fall back to the built-inlabelEdge. Also exports theWorkflowBuilderEdgeTemplatestype.
- Re-measure node internals when
layoutDirectionchanges, so edges re-route to the new handle positions instead of the stale ones React Flow had cached. - Theme now lives in a shared store applied to the DOM on
<WorkflowBuilder.Root>mount, so a persisted theme paints on first load even without the app bar and multiple consumers stay in sync. Reads ofdocument/localStorageare guarded, so importing the SDK server-side no longer throws.
2.0.1 - 2026-05-29
- Stop
NodePropertiesfrom pushing a phantom undo entry when JsonForms re-emitsonChangeafter an externaldatachange (e.g. just afterundo()), which previously clearedfutureand broke redo. - Remove nested
var(var(...))from palettevariables.cssthat broke strict CSS parsers (e.g. Lightning CSS / Next.js Turbopack). - Drop
nodeIdfrom handle IDs. Compound nodes (decision, AI agent, conditional) can now declare default ports statically (e.g. in JSON-defineddefaultProperties) and copy/paste no longer requires custom handle rewriting after a node ID change.getHandleId({ nodeId })still compiles. The argument is optional, marked@deprecated, and ignored at runtime. Diagrams saved with the 2.0.0<nodeId>:<handleType>[:inner:<innerId>]format are auto-migrated to the new<handleType>[:inner:<innerId>]form onsetDiagramModelandsetStoreDataFromIntegration. - Stabilize horizontal port Y on built-in node templates so multi-line descriptions no longer shift the port and bend edges between adjacent nodes. Pins the resulting port to the NodeIcon's vertical center via a global CSS rule scoped to a SDK-owned anchor class. Also fixes a latent bug where
DecisionNodeTemplatehardcodedPosition.Righton the source handle instead of honoringlayoutDirection.
2.0.0 - 2026-05-22
First public npm release. The major bump continues the Workflow Builder version line (1.0 / 1.1 / 1.2 shipped as a monorepo bundled with the app); the redistribution as a standalone React SDK package is the breaking change that justifies 2.0.
<WorkflowBuilder.Root>compound component withTopBar,Palette,Canvas,PropertiesPanel, andDefaultLayoutsubcomponents.- Plugin API:
registerComponentDecorator,registerFunctionDecorator,registerPluginTranslation. - Integration types:
IntegrationStrategy,OnSaveExternal,IntegrationDataFormat. - Bundled CSS (
@workflowbuilder/sdk/style.css) covering the editor,@xyflow/react, and@synergycodes/overflow-uistyles. - Type definitions bundled into a single
dist/index.d.ts— all required types (icons, domain models, plugin API) are inlined, no extra installs needed.
- Distribution model: editor is now consumed via
npm install @workflowbuilder/sdkinstead of cloning the monorepo. Consumers no longer need monorepo tooling, tsconfig paths, or workspace symlinks.