Skip to content

Commit a28d22d

Browse files
feat(ui): add @workflowbuilder/ui and @workflowbuilder/ui-tokens packages
1 parent 620f9b7 commit a28d22d

178 files changed

Lines changed: 13566 additions & 50 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CLAUDE.md

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,21 @@ Visual workflow editor SDK (React) with a reference backend and Temporal-based e
66

77
Three onboarding paths (A installs from npm; B, C run the repo locally). README "Get started" covers all three. Path A ("Embed the SDK") installs `@workflowbuilder/sdk` from npm; the README has install + a minimal snippet, and the full guide lives in the [docs site](https://www.workflowbuilder.io/docs/get-started/quick-start/wb-as-react-component/).
88

9-
| Command | Path | What it does |
10-
| ---------------------------- | ---- | --------------------------------------------------------------------------- |
11-
| `pnpm preflight` | B/C | Verify Node / pnpm / Docker / ports / `.env` files. Add `--json` for agents |
12-
| `pnpm dev` / `pnpm dev:demo` | B | Demo (UI only, port 4200). No backend, no Docker |
13-
| `pnpm infra:up` | C | Start Postgres + Temporal in Docker. Required before backend/worker |
14-
| `pnpm -F backend db:migrate` | C | Apply Drizzle migrations. First run, or after schema changes |
15-
| `pnpm dev:ai-studio` | C | Full stack: infra + backend (3001) + worker + AI Studio frontend (4201) |
16-
| `pnpm dev:backend` | C | Backend only (debug). Needs infra up |
17-
| `pnpm dev:worker` | C | Execution worker only (debug). Needs infra up |
18-
| `pnpm infra:down` | C | Stop the Docker stack |
19-
| `pnpm dev:docs` | - | Docs site (Astro + Starlight) |
20-
| `pnpm build:lib` | - | Build the SDK package (`packages/sdk`) |
21-
| `pnpm build` | - | Build the demo app |
22-
| `pnpm test` | - | Run tests in `packages/sdk` and `packages/execution-core` |
23-
| `pnpm check` | - | Lint + typecheck + format + knip |
9+
| Command | Path | What it does |
10+
| ---------------------------- | ---- | --------------------------------------------------------------------------------------- |
11+
| `pnpm preflight` | B/C | Verify Node / pnpm / Docker / ports / `.env` files. Add `--json` for agents |
12+
| `pnpm dev` / `pnpm dev:demo` | B | Demo (UI only, port 4200). No backend, no Docker |
13+
| `pnpm infra:up` | C | Start Postgres + Temporal in Docker. Required before backend/worker |
14+
| `pnpm -F backend db:migrate` | C | Apply Drizzle migrations. First run, or after schema changes |
15+
| `pnpm dev:ai-studio` | C | Full stack: infra + backend (3001) + worker + AI Studio frontend (4201) |
16+
| `pnpm dev:backend` | C | Backend only (debug). Needs infra up |
17+
| `pnpm dev:worker` | C | Execution worker only (debug). Needs infra up |
18+
| `pnpm infra:down` | C | Stop the Docker stack |
19+
| `pnpm dev:docs` | - | Docs site (Astro + Starlight) |
20+
| `pnpm build:lib` | - | Build the publishable chain: `ui-tokens` -> `ui` -> SDK (`build:ui` does the first two) |
21+
| `pnpm build` | - | Build the demo app |
22+
| `pnpm test` | - | Run tests in `packages/sdk` and `packages/execution-core` |
23+
| `pnpm check` | - | Lint + typecheck + format + knip |
2424

2525
Path B is UI-only and does not need Docker. Path C requires `pnpm infra:up` before backend/worker can start, and `db:migrate` on the first run.
2626

@@ -52,6 +52,8 @@ apps/
5252
tools/ - @workflow-builder/tools workspace (decision-log collector, lint-staged config)
5353
packages/
5454
sdk/ - @workflowbuilder/sdk public package (WorkflowBuilder compound component, plugin API, components)
55+
ui/ - @workflowbuilder/ui published component library (Base UI), consumed by sdk/demo/ai-studio
56+
tokens/ - @workflowbuilder/ui-tokens private design-token build (style-dictionary), feeds packages/ui
5557
execution-core/ - Pure topological graph runner + node executor registry
5658
types/ - Shared TypeScript types
5759
```
@@ -62,20 +64,22 @@ Where to put a new script: root `tools/` for pure-Node bootstrap (runs before an
6264

6365
Each workspace has its own context. Read the relevant file before extending a workspace.
6466

65-
| Workspace | Authoritative docs |
66-
| ------------------------- | ----------------------------------- |
67-
| `packages/sdk` | `packages/sdk/README.md` |
68-
| `packages/execution-core` | `packages/execution-core/README.md` |
69-
| `apps/demo` | `apps/demo/CLAUDE.md` |
70-
| `apps/ai-studio` | `apps/ai-studio/README.md` |
71-
| `apps/backend` | `apps/backend/README.md` |
72-
| `apps/execution-worker` | `apps/execution-worker/README.md` |
67+
| Workspace | Authoritative docs |
68+
| ------------------------- | ------------------------------------------------------- |
69+
| `packages/sdk` | `packages/sdk/README.md` |
70+
| `packages/ui` | `packages/ui/README.md` (+ `packages/ui/css-layers.md`) |
71+
| `packages/execution-core` | `packages/execution-core/README.md` |
72+
| `apps/demo` | `apps/demo/CLAUDE.md` |
73+
| `apps/ai-studio` | `apps/ai-studio/README.md` |
74+
| `apps/backend` | `apps/backend/README.md` |
75+
| `apps/execution-worker` | `apps/execution-worker/README.md` |
7376

7477
## Types & Aliases
7578

7679
Shared types: `packages/types/` (imported as `@workflow-builder/types/*`).
7780
Icons: `apps/icons/` (imported as `@workflow-builder/icons`).
7881
SDK: `packages/sdk/` (imported as `@workflowbuilder/sdk`).
82+
UI: `packages/ui/` (imported as `@workflowbuilder/ui`; styles via `@workflowbuilder/ui/styles.css`, `/index.css`, `/tokens.css`).
7983

8084
## Local Infrastructure
8185

@@ -130,7 +134,7 @@ If you're new to this repo and want to build your own consumer app or POC, follo
130134

131135
### Releasing `@workflowbuilder/sdk`
132136

133-
The SDK is the only npm-published workspace; everything else under `apps/` and `packages/` is private (and listed under `ignore` in `.changeset/config.json`).
137+
Two workspaces are npm-published: `@workflowbuilder/sdk` and `@workflowbuilder/ui` (the component library, built on Base UI). Everything else under `apps/` and `packages/` is private (`@workflowbuilder/ui-tokens` is private too) and listed under `ignore` in `.changeset/config.json`. Because there are now two publishable packages, the release tag scheme below (single-package `v*`) still needs migrating to scoped tags (`@workflowbuilder/sdk@X.Y.Z`) before publishing `@workflowbuilder/ui` from this repo - see § "Tag format" and `packages/sdk/RELEASE.md`.
134138

135139
**Commit format is enforced.** Every commit goes through `commitlint` via the `commit-msg` husky hook — Conventional Commits format only (`<type>(<scope>): <subject>`, types from `feat / fix / perf / refactor / docs / test / chore / build / ci / style / revert`). Bad messages are rejected before they land in git history.
136140

@@ -155,7 +159,7 @@ The SDK is the only npm-published workspace; everything else under `apps/` and `
155159
4. GitHub Action triggered by the tag runs lint + typecheck + test + `pnpm publish --provenance` (authenticated via npm Trusted Publisher / OIDC, no `NPM_TOKEN` stored anywhere) + creates a GitHub Release.
156160
5. Sync back: `git checkout main && git merge release && git push` so main picks up the bumped version + clean `.changeset/`.
157161

158-
Tag format follows the ng-diagram convention (single-package monorepo, `v*` regex). If we ever publish a second package we'll migrate to scoped (`@workflowbuilder/sdk@X.Y.Z`) — ~1h of work, see `packages/sdk/RELEASE.md` § "Why these decisions".
162+
Tag format currently follows the ng-diagram convention (single-package monorepo, `v*` regex). A second publishable package (`@workflowbuilder/ui`) now exists, so this needs migrating to scoped tags (`@workflowbuilder/sdk@X.Y.Z`) — ~1h of work, see `packages/sdk/RELEASE.md` § "Why these decisions".
159163

160164
Canonical procedure with edge cases and rollback: [`packages/sdk/RELEASE.md`](packages/sdk/RELEASE.md).
161165

0 commit comments

Comments
 (0)