Upgrading from 1.x? The
2.0 migration guide
walks through every breaking change step by step.
Finishes the navbar/theme defaults pass and adds the Drafter blueprint theme.

- Drafter blueprint theme — a third built-in editor theme (light + dark): a mint canvas, a subtle emerald line grid, and translucent green-tinted nodes. Ships with per-theme canvas grids (
dots|lines|cross) via the newFlowDropGridVariant. - Navbar & theme defaults — the navbar is now opt-in on every mount path (
showNavbardefaults tofalse),lightis the default theme for embeds with no saved choice, and the header shows the FlowDrop wordmark. - Keyboard navigation & focus — each node is a single tab stop again (the config gear left the tab order, deferring to xyflow’s node focus), backed by one centralized focus ring across the whole library.
- Full editor renders built-in editors out of the box — markdown / code / template config fields no longer fall back to a textarea after the beta.2 light-entry split; add
features: { builtinEditors: false }to opt out.
Tightens the 2.0 package boundaries and finishes the auth work.
- Light entries stay light —
core,form, andeditorno longer statically pull heavy deps (CodeMirror,@xyflow/svelte,marked, DOMPurify), enforced by a new CI bundle guard (pnpm run check:bundle). AuthProviderreaches every runtime surface — playground, chat, interrupt, settings, editor, and pipeline requests all route through the configured provider, including standalone mounts.- 500-node editor render benchmark added to the e2e suite.
The headline 2.0 release: state, API, and registries are now instance-scoped.
- Multiple FlowDrop instances per page — every mount creates an isolated
FlowDropInstance; module-level singleton stores are gone (app.instance.workflow,fd.api,fd.nodes, …). modeprop ('edit' | 'readonly' | 'locked') replacesreadOnly+lockWorkflow.- Auth via
AuthProvider—EndpointConfig.authis removed in favour ofStaticAuthProvider/NoAuthProvider/CallbackAuthProvider. - Slim main entry —
@flowdrop/flowdropexposes only the bootstrap surface; everything else moves to its owning sub-module. - Workflow
metadatais required, andmetadata.versionis renamed tometadata.schemaVersion(1.x JSON heals automatically on load).