Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
f7bddad
feat(auth-field-group): author as a Layout
Aug 13, 2026
565f6b2
feat(auth-form): author as a Layout
Aug 13, 2026
0be703c
feat(auth-error-message): author as a Layout
Aug 13, 2026
5ec5eda
feat(auth-success-message): author as a Layout
Aug 13, 2026
d9aae54
feat(auth-submit-button): author as a Layout
Aug 13, 2026
fb1ca06
feat(auth-powered-by): author as a Layout
Aug 13, 2026
d49c299
feat(auth-footer-links): author as a Layout
Aug 13, 2026
142a9c1
feat(auth-card): author as a Layout
Aug 13, 2026
0c05b22
feat(password-requirements): author as a Layout
Aug 13, 2026
3867f3d
feat(password-field): author as a Layout
Aug 13, 2026
3ad30ea
docs: describe the auth kit as Layouts
Aug 13, 2026
2a3faf1
feat: add the shared parameter vocabulary
Aug 13, 2026
9d64765
feat(button): move onto the shared vocabulary
Aug 13, 2026
145bcb3
refactor: name the semantic axis state, not tone
Aug 13, 2026
df6b43b
feat(callout): replace Alert, which was named after its own state
Aug 13, 2026
36839e1
refactor: delete every *Root alias
Aug 13, 2026
4051f56
refactor: delete twelve components that duplicated a survivor
Aug 13, 2026
0bf7f59
refactor(spinner): absorb Loading, and name the shape axis shape
Aug 13, 2026
c3d9ef7
feat(skeleton): give it the API it never had
Aug 13, 2026
636f1da
refactor: park unadopted components behind @pathscale/ui/lab
Aug 13, 2026
680ba40
feat: split the colour axis into flavor and state
Aug 13, 2026
7accb3a
feat(card): absorb Surface and GlassPanel, split the conflated axes
Aug 13, 2026
0f93fd1
fix: restore four components wrongly parked in lab
Aug 13, 2026
0e7e141
feat: make flavor open-ended, and mirror it to data-flavor
Aug 13, 2026
f27850f
refactor: conditions move onto state, semantics onto flavor
Aug 13, 2026
05988fd
docs: generate the complete component reference from the built types
Aug 13, 2026
78a29ca
docs: generate the proposed 2.2 interface for every component
Aug 13, 2026
73d0df4
feat: validation results and event reasons in the vocabulary
Aug 13, 2026
d0d9cc1
feat: inline validation as a first-class contract
Aug 13, 2026
6b3b773
refactor: invalid is derived from issues, not a state
Aug 13, 2026
2f8d5e0
fix: invalid is a rendered state even though it is not a settable one
Aug 13, 2026
041f687
fix: one State type, invalid derived by default and settable
Aug 13, 2026
92f541c
feat: error is a state, distinct from invalid
Aug 14, 2026
05f1047
docs: specify Status and ConnectionStatus
Aug 14, 2026
5ebe16d
feat(status): aggregate many conditions to a root cause
Aug 14, 2026
da2acb3
feat(status): quality, recoverability and auth, from reading nofilter.io
Aug 14, 2026
a5192b3
feat(status): transitions are emitted, not just rendered
Aug 14, 2026
76acf89
feat(status): connecting versus reconnecting, and flapping
Aug 14, 2026
a15908c
feat(status): flapping is a Health value
Aug 14, 2026
99e892e
feat(status): connecting and reconnecting as health, and health from …
Aug 14, 2026
6a885a0
fix(button): finish the port so flavor carries colour and state carri…
Aug 14, 2026
480a66d
feat(address): the on-chain address, shown the way people read one
Aug 14, 2026
38d8ff9
feat(composer): the box you type a message into
Aug 14, 2026
a7a578f
docs: regenerate the proposed 2.2 reference
Aug 14, 2026
48897eb
refactor: migrate the internal Button call sites off the removed props
Aug 14, 2026
84f0c1c
docs: drop the em dashes from the new section
Aug 14, 2026
e12cd0a
fix(button): drop the duplicate loading rule
Aug 14, 2026
b5b74a6
release: 2.2.0, on the fixed Layout compiler
Aug 14, 2026
deda58e
chore: lock the published Layout packages
Aug 14, 2026
71688ab
refactor!: apply the eleven industry renames for real
Aug 14, 2026
348bbf8
refactor(playground): follow the renames and split the lab imports
Aug 14, 2026
a6df5c8
fix(layouts): bring the declared exports back in step with the barrel
Aug 14, 2026
32a7ca4
refactor(icon): color becomes flavor, and starts working
Aug 14, 2026
bb9e34a
fix(icon): restore the default export its barrel re-exports
Aug 14, 2026
7728c87
refactor: delete the password-rules shim
Aug 14, 2026
cab9258
docs: delete the proposed-2.2 generator and its output
Aug 14, 2026
e32ef6d
docs: delete the component-reference generator and its output
Aug 14, 2026
2a7f2c8
refactor: finish the eleven renames in the slot class names
Aug 14, 2026
de61d4d
feat(icon): one glyph prop, taking a preload token or inline SVG
Aug 14, 2026
23a8da2
build: stop shipping icon glyphs from the library
Aug 14, 2026
fed1ef1
feat(theme): elevation, focus ring and shading tokens
Aug 14, 2026
f5811d6
refactor(css): borders, pill radii and focus rings onto tokens
Aug 14, 2026
be76b93
refactor(css): shadow and scrim colours come from the theme
Aug 14, 2026
e8987b1
refactor!: every component onto UIBaseProps, and className is gone
Aug 14, 2026
aa4d1cb
refactor(badge)!: colour becomes flavor, and fifteen compound rules b…
Aug 14, 2026
8932902
fix(icon): an empty src no longer throws, and the old base type is gone
Aug 14, 2026
44d1472
fix(playground): make the typecheck actually run
Aug 14, 2026
188df0c
refactor(colour)!: six more components onto flavor
Aug 14, 2026
8e13d5d
refactor(colour)!: ChatBubble and Navbar onto flavor, and ghost is a …
Aug 14, 2026
a58f04e
refactor!: isDisabled becomes the state axis
Aug 14, 2026
6015927
refactor!: isInvalid, isRequired and isLoading follow isDisabled off …
Aug 14, 2026
b191f2d
refactor!: isOpen becomes open, completing the controlled triple
Aug 14, 2026
0e65fc7
fix: clsx is a runtime dependency, not a dev one
Aug 14, 2026
379a0ce
chore!: delete the playground
Aug 14, 2026
1ae1420
test(smoke): exercise the 2.2 API, and bundle rather than execute
Aug 14, 2026
5d57ed9
docs: how to set up a playground, and wire the tests into CI
Aug 14, 2026
9298bf2
test: fail the build when the docs and the API disagree
Aug 14, 2026
11e5619
fix: git was tracking Textarea's files under their old case
Aug 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
16 changes: 16 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,19 @@ jobs:

- name: Build
run: bun run build

- name: Test
run: bun test

# Fails when docs/api-contract.md and the shipped types disagree, in
# either direction. Never runs with --write: regenerating the document on
# every build is what made the last one unable to disagree with the code.
- name: API Contract
run: bun run check:api

# Packs the tarball, installs it into a fresh consumer and builds against
# it. The only step that tests the artifact a consumer receives, and the
# one that catches a package dist imports but the manifest does not
# declare.
- name: Consumer Smoke
run: bun run smoke
73 changes: 0 additions & 73 deletions .github/workflows/preview.yml

This file was deleted.

3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,6 @@ bun.lockb
# Finder (MacOS) folder config
.DS_Store
*.generated.tsx

# Generated by the application-side iconify build, never by this library.
src/styles/icons/
19 changes: 12 additions & 7 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,23 @@ bun run lint
bun run format
```

### Playground — hot-test without rebuilding
### Trying a change

The fastest way to try a change. Run from the repository root:
There is no in-repo playground. It demoed every component against the pre-2.2 API
and had become 477 typecheck errors of dead demos, so it was deleted rather than
rewritten: a copy of the API living beside the API only ever drifts from it. The
showcase belongs in [js.software](https://github.com/pathscale/js.software).

[`docs/how-to-setup-playground.md`](docs/how-to-setup-playground.md) has two
recipes, one aliased at `src/` for hot reload and one installed from the tarball.

The quickest check without either:

```bash
bun run playground:dev
bun run build
bun run smoke # scripts/smoke-consumer.ts, imports the built artifact
```

The playground aliases `@pathscale/ui` to local `src/` via Vite, so edits under `src/` and
`src/styles/` refresh immediately — no rebuild, no relink. `playground/src/App.tsx` demos
every component, with longer examples in `playground/src/examples/`.

## Commit Convention

```
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ import — the published size is the whole library, not what ships to your users
|---|---|
| **[Live showcase](https://js.software)** | every component, rendered and interactive |
| **[Usage reference](https://github.com/pathscale/ui/blob/master/docs/ui-usage.md)** | theming, conventions, forms, table, toast, icons, dates |
| **[Contributing](https://github.com/pathscale/ui/blob/master/CONTRIBUTING.md)** | local setup, playground, component checklist, proposal template |
| **[Contributing](https://github.com/pathscale/ui/blob/master/CONTRIBUTING.md)** | local setup, component checklist, proposal template |

## License

Expand Down
14 changes: 7 additions & 7 deletions bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading