Migrate consumers to @workflowbuilder/ui (2/3: consumers) - #45
Open
librowski wants to merge 6 commits into
Open
Conversation
This was referenced Jun 24, 2026
librowski
marked this pull request as ready for review
June 24, 2026 12:31
librowski
requested review from
lukasz-jazwa,
piotrblaszczyk and
szymon-t-sc
as code owners
June 24, 2026 12:31
librowski
force-pushed
the
ui-consumers
branch
6 times, most recently
from
June 30, 2026 10:36
df8c61a to
35613b2
Compare
librowski
force-pushed
the
ui-consumers
branch
3 times, most recently
from
July 31, 2026 14:02
6192878 to
882caa7
Compare
The SDK bundles @workflowbuilder/ui and @base-ui/react into its dist, but
declared them as runtime dependencies - so a published @workflowbuilder/sdk
would 404 on @workflowbuilder/ui (not published) at npm install. Move both to
devDependencies (they are inlined, consumers don't install them).
Add @workflowbuilder/ui to the dts plugin's bundledPackages so its types are
inlined into dist/index.d.ts instead of leaking unresolvable
import('@workflowbuilder/ui') references into the public type surface. Verified:
no real ui/base-ui imports remain in dist/index.d.ts.
Remove the obsolete docs/overflow-ui.md (described the old external
@synergycodes/overflow-ui local-dev flow this migration replaces).
… branch point Rebasing onto current main pulled in commits landed after this branch diverged (WB-339's use-on-connect.tsx, PR #48's language-selector spec, PR #48's ai-studio undo-redo buttons) that still imported the retired @synergycodes/overflow-ui package. Point them at @workflowbuilder/ui like every other already-migrated call site, and regenerate the lockfile for the fully rebased dependency graph.
…undle @workflowbuilder/ui is bundled (not externalized) into the SDK, so @base-ui/react was being inlined transitively into dist/index.js even though the SDK never imports it directly. @phosphor-icons/react was already a direct SDK dependency but was likewise getting bundled a second time on top of the copy demo/ai-studio install directly. Add both to the SDK's Vite external list and move @base-ui/react from devDependencies to dependencies, mirroring the treatment already used for i18next/jsonforms/immer/zustand and matching how packages/ui declares them.
The datepicker z-index fix (index.css) and the variable-suggestions backdrop suppression (variable-text.module.css) both keyed off `.base-Modal-root` and `.mantine-Popover-dropdown`, class names from the retired MUI Base + Mantine modal/popover. Neither selector matched anything after the Base UI migration, silently reintroducing both bugs: a datepicker opened inside a modal rendered behind it, and the variable-suggestions backdrop no longer disappeared when a modal opened on top of it. ModalProvider now toggles a `wb-modal-open` class on <body> whenever the SDK's modal store has a modal open - a stable signal owned by the SDK rather than coupled to @workflowbuilder/ui's internal markup. Both selectors are repointed at it; the datepicker fix additionally keys off Base UI's own `[data-open]` popup attribute, since the DatePicker's popover class is a hashed CSS module class internal to @workflowbuilder/ui.
Update the move-ui-library-in-repo changeset: @base-ui/react is now a regular dependency of the SDK rather than an inlined implementation detail, and note explicitly that internal DOM structure and class names of the bundled UI changed (MUI Base + Mantine -> Base UI), so consumer styles or tests written against internal class names may need updating. Stays a minor bump.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part 2 of 3. Stacked on #44 (base branch
librowski/ui-package) - review/merge that first. This PR's diff is only the consumer migration.Summary
Switches
sdk/demo/ai-studiooff the published@synergycodes/overflow-ui@1.0.0-beta.27(MUI) onto the in-repo@workflowbuilder/ui(Base UI) added in Part 1, and fixes the resulting API breaks.Changes
@synergycodes/overflow-ui→@workflowbuilder/ui; dependency →workspace:*;@base-ui/reactadded to sdk/demo/ai-studio.LOCAL_OVERFLOW_UIvite aliases, theoverflow-ui-cssalias, and thedev:localscript. SDKindex.cssnow pulls@workflowbuilder/ui/{tokens,index}.css.Switch.onChange(checked, event)and DatePickerdate-fnsvalueFormat. Menu / Select / IconSwitch / Tooltip were already compatible.@workflowbuilder/ui.@workflowbuilder/sdkincluded.Verification
pnpm installclean;build,build:lib,build:ai-studio,build:docsgreen;typecheck,lint,test(sdk 184 + execution-core 78) green.1.4.1pin (Part 1) is what keeps the modal backdrop fade working - 1.6.0 regressed it.@synergycodes/overflow-uifrom npm or the old local dist path.Update (2026-07-31): review fixes + rebase
Rebased onto the fixed #44 / current
main; review fixes landed on this branch.peerDependenciesshape (4 peers) with the demoted packages as regular dependencies; this PR's changes layered on top.@synergycodes/overflow-ui(use-on-connect.tsx+ spec, two stale spec mocks, ai-studio undo-redo buttons) - migrated to@workflowbuilder/ui.@base-ui/reactand@phosphor-icons/reactare now externalized from the SDK bundle and@base-ui/reactis a regular SDK dependency (supersedes the earlier framing that Base UI ships inlined). Verified in dist: real@base-ui/reactimports, no@workflowbuilder/uileakage in JS or.d.ts.ModalProvidernow toggles awb-modal-openclass onbody(driven by the existing modal store); the datepicker-in-modal z-index rule targets Base UI[data-open]popovers under that class, and the variable-suggestions backdrop suppression is repointed at it. Verified at mechanism level + compiled CSS; a quick visual pass (modal + datepicker, modal + variable suggestions) is recommended during review.minor, now calls out that internal DOM structure / class names changed across all bundled UI and that@base-ui/reactis a new regular dependency.Verification (fresh): full gates re-run 2026-07-30/31 on the stack (typecheck / lint / tests / all builds green);
pnpm install --frozen-lockfileverified on this tip. Note: pr-check only runs for PRs targetingmain, so this PR shows no checks until #44 merges.