Skip to content

Release v2.1.0#39

Merged
piotrblaszczyk merged 9 commits into
releasefrom
main
Jun 16, 2026
Merged

Release v2.1.0#39
piotrblaszczyk merged 9 commits into
releasefrom
main

Conversation

@piotrblaszczyk

Copy link
Copy Markdown
Contributor

No description provided.

piotrblaszczyk and others added 9 commits June 3, 2026 16:50
* Update README.md

* Update README.md

---------

Co-authored-by: maciejteska <maciej.teska@synergycodes.com>
* feat(sdk): extract theme source-of-truth module

* refactor(sdk): make useTheme subscribe to shared theme store

* feat(sdk): add useWorkflowBuilderActions hook (WB-217)

* feat(sdk): export useWorkflowBuilderActions from barrel (WB-217)

* docs: WB-217 no-app-bar layout guide + SDK README link + changeset

* feat(no-app-bar): reference app demonstrating useWorkflowBuilderActions (WB-217)

* feat(sdk): add LayoutChangeOptions to layout-direction actions (WB-217)

* chore: remove no-app-bar reference app (WB-217)

* fix(sdk): apply persisted theme to DOM on load (WB-217)

* refactor(sdk): tighten layout-direction actions API (WB-217)

* fix(sdk): apply theme on Root mount, not module load

- export the `Theme` type from the barrel; `WorkflowBuilderActions`
  already speaks in it
- validate the stored theme on read instead of casting, so `''` or an
  unrecognized value falls back to `light`
- correct the hook JSDoc and the no-app-bar guide: the app bar has no
  layout-direction control, so that action is additive, not a mirror
- tests: Root paints persisted theme on mount, read-validation fallback
- trim the three WB-217 changesets to release-note length and codify
  "keep changeset bodies short" in RELEASE.md

* docs: fold no-app-bar guide into React Component quick-start

* refactor(sdk): use getStoreNodes action in diagram effect

---------

Co-authored-by: Piotr Blaszczyk <piotr.blaszczyk@synergycodes.com>
* feat(backend): introduce TenantContextPort seam for multi-tenant identity

* docs(backend): split TenantContextPort ADR from multi-tenancy wiring guide
* feat(sdk): expose edgeTemplates prop for custom edge renderers (WB-220)

* feat(demo): custom edge example via edgeTemplates (WB-220)

* fix(demo): reflect selection/hover state in custom DashedEdge (WB-220)

The demo custom edge painted a fixed stroke, so it didn't highlight on
select/hover like the built-in edges — a misleading reference. Delegate
styling to the SDK's exported useLabelEdgeHover (the same hook LabelEdge
uses), keeping only strokeDasharray on top. Selected/hover now match the
built-in edge while the edge stays visually dashed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs(sdk): document customizing edge selection (WB-220)

* docs(sdk): address review findings on edgeTemplates (WB-220)

* docs(sdk): clarify edge-types naming in DiagramContainer (WB-220)

Rename the vague `resolvedEdgeTypes` local to `baseEdgeTypes` and correct
the comment: the value is the built-in `labelEdge` renderer plus app-wide
`edgeTemplates` from <WorkflowBuilder.Root>, which the per-mount `edgeTypes`
prop overrides — not plugin- or ELK-injected edges.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs(sdk): refine edgeTemplates docs, trim changeset

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Piotr Blaszczyk <piotr.blaszczyk@synergycodes.com>
* feat(sdk): add isValidConnection and reactFlowProps to Root

Expose two opt-in props on <WorkflowBuilder.Root>:

- isValidConnection: validates connections live while the user drags them.
  Receives the candidate connection plus the resolved source/target nodes,
  so a rule branches on data.type without touching the store. A rejected
  drop creates no edge and does not flicker. Fails open when an endpoint
  cannot be resolved to a node.
- reactFlowProps: escape hatch that forwards extra props to the underlying
  ReactFlow canvas. SDK-owned props (graph data, connection/selection/change
  handlers, type maps, the connection line) plus colorMode are omitted from
  the type and spread last, so they always win and the editor cannot be
  broken from the outside. Theme via the SDK design tokens, not colorMode.

Config flows through module-level holders (same pattern as edge-templates),
written during Root render so descendants read current values on first paint.

Tests cover the holder, the isValidConnection adapter, and the spread-order
contract (owned props win, defaults stay overridable). Demo and SDK + site
docs updated. Changeset: minor.

* refactor(sdk): improvements

* docs(sdk): tighten and correct docs
* chore(sdk): release v2.1.0

* ci: match bracketed or bare version heading when extracting release notes

* docs: document CHANGELOG reformatting in the release process
@piotrblaszczyk piotrblaszczyk merged commit 1c7ada0 into release Jun 16, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants