Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
f4ba527
chore(deps): take @pathscale/ui 4.0.0
Sep 7, 2026
0b0ff85
fix(build): resolve solid-layouts to its Solid 2 arm
Sep 7, 2026
36e5bc2
refactor(showcases): convert to the 4.0 component API
Sep 7, 2026
139fa2b
docs: correct the usage and installation pages for 4.0
Sep 7, 2026
a788152
fix(deps): pin @pathscale/ui to ^3.1.0
Sep 7, 2026
664d2bc
chore(deps): resolve the lockfile onto @pathscale/ui 3.1.0
Sep 7, 2026
3f94c86
test(qa): check the showcase renders, against a real browser engine
Sep 8, 2026
f42f4b8
test(qa): open the component menu, so a dead page cannot pass
Sep 8, 2026
1f601bb
test(qa): reach every page in the navigation
Sep 8, 2026
da19a2c
build: stop committing the lockfiles
Sep 9, 2026
576d164
build: pin @solidjs/signals to the release solid-js was cut against
Sep 9, 2026
a4445d2
test(qa): drive the four documentation pages
Sep 9, 2026
7b2ceaf
test(qa): drive the theme editor and its live preview
Sep 9, 2026
52b013b
test(qa): drive the Actions component pages
Sep 9, 2026
61e1090
test(qa): drive the Data display component pages
Sep 9, 2026
5e9fe35
test(qa): drive the Feedback component pages
Sep 9, 2026
b946a75
test(qa): drive the Input component pages
Sep 9, 2026
80092c8
test(qa): drive the Layout component pages
Sep 9, 2026
6013b19
test(qa): drive the Navigation component pages
Sep 9, 2026
3b51fde
test(qa): drive the Surfaces component pages and the coverage lab
Sep 9, 2026
e5fc37f
test(qa): drive the six showcases the component menu omits
Sep 9, 2026
ec4f71d
test(qa): cover the landing page's own content
Sep 9, 2026
6f38564
ci(qa): run every check group
Sep 9, 2026
c445504
test(qa): stop the toast checks racing their own four-second timer
Sep 9, 2026
b6f7b5a
test(qa): drop the role from the dynamic toast subject
Sep 9, 2026
e1bda2f
test(qa): judge the calendar showcase, for when Intl exists
Sep 9, 2026
031b39b
test(qa): mark each surface by a padded control
Sep 9, 2026
0b1ac3b
test(qa): reach a component page by pressing its menu entry
Sep 9, 2026
0682e4d
test(qa): judge text-shaped subjects by presence rather than by paint
Sep 9, 2026
a216950
ci(qa): press zero-height controls by node id
Sep 9, 2026
d27e21d
fix(ui): verify all showcase routes with native QA
Sep 11, 2026
9513877
refactor(theming): finish the UI 3.2 showcase
Sep 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions .github/workflows/qa.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Every declared showcase group runs against the font-enabled native host.
name: QA

on:
pull_request:
push:
branches: [master]
workflow_dispatch:

jobs:
rendered-outcomes:
runs-on: ubicloud-standard-4
steps:
- uses: actions/checkout@v4

- uses: oven-sh/setup-bun@v2
with:
bun-version: latest

- name: Install dependencies
run: bun install

# The checks drive the built site, not the dev server: what ships is what
# is asked about.
- name: Build
run: bun run build

- name: Headless browser host
id: qa
uses: pathscale/chuzz/.github/actions/headless-host@master
with:
token: ${{ secrets.SIBLING_REPOS_TOKEN }}

- name: Rendered outcomes
env:
# A shared runner is slower than a laptop for outcomes that pass
# locally well inside the budget. This widens scheduling deadlines
# only; every declared transition is still required.
QA_TIMEOUT_SCALE: 2
run: |
for group in \
actions calendar data-display docs feedback input \
layout navigation showcase surfaces theming unlisted
do
ps-qa --app tests/ps-qa/ps-qa.ron \
qa-hosted \
--host "${{ steps.qa.outputs.host }}" \
--page dist --checks tests/ps-qa/checks "$group"
done
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,6 @@ node_modules
dist

# Tauri build artifacts
src-tauri/target
src-tauri/target
bun.lock
Cargo.lock
17 changes: 17 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,23 @@

The kitchen sink demo and documentation for our UI components.

## Native QA

Build the site, then run every declared outcome with the font-enabled chuzz host
and ps-qa 0.7.1 or newer:

```sh
bun run build
ps-qa --app tests/ps-qa/ps-qa.ron qa-hosted \
--host ../chuzz/target/release/chuzz-headless --page dist \
--checks tests/ps-qa/checks
```

The UI 3.2 registry build passes all 330 native checks across 12 groups,
including Calendar selection and month navigation. CI includes every group.
The Layouts route uses its own document marker, and decorative cards are
articles rather than controls that promise an action.

## Code Style

- Keep code clean and self-documenting through clear variable/function names
Expand Down
1,231 changes: 0 additions & 1,231 deletions bun.lock

This file was deleted.

5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
"@iconify-json/lucide": "^1.2.127",
"@iconify-json/mdi": "^1.2.3",
"@iconify/tailwind4": "^1.0.6",
"@pathscale/ui": "^2.11.10",
"@pathscale/ui": "^3.1.0",
"@rsbuild/core": "^1.3.20",
"@rsbuild/plugin-babel": "^1.0.5",
"@solidjs/router": "2.0.0-next.19",
Expand Down Expand Up @@ -65,10 +65,11 @@
"dependencies": {
"@solidjs/web": "2.0.0-rc.4",
"popmotion": "^11.0.5",
"solid-layouts": "^0.2.1",
"solid-layouts": "^0.2.4",
"zod": "^4.4.3"
},
"overrides": {
"@solidjs/signals": "2.0.0-rc.4",
"babel-preset-solid": "^2.0.0-rc.2"
}
}
18 changes: 17 additions & 1 deletion rsbuild.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,24 @@ export default defineConfig({
},
}),
],
resolve: {
alias: {
"~": "./src",
/*
* solid-layouts ships one build arm per Solid major and its bare entry is
* the 1.9 one, whose renderer calls `splitProps`. Solid 2 replaced that
* with `omit`, and a bundler links both arms of the package's runtime
* check, so the default entry fails at link time with "export
* 'createComponent' was not found in './renderer.js'". `./solid-2` is the
* arm built against this major; these aliases are how a consumer picks it.
*/
"solid-layouts/recipe": "solid-layouts/solid-2/recipe",
"solid-layouts/cx": "solid-layouts/solid-2/cx",
"solid-layouts/application-boundary": "solid-layouts/solid-2/application-boundary",
"solid-layouts$": "solid-layouts/solid-2",
},
},
source: {
alias: { "~": "./src" },
define: {
"import.meta.env.VERSION": JSON.stringify(
process.env.GITHUB_RUN_NUMBER || "0.0.1"
Expand Down
Loading
Loading