Skip to content

Commit f6528c3

Browse files
committed
merge: update PR #762 with PR #758
No conflicted files; retain PR changes and merge updated parent #758, which contains main 11790be.
2 parents ca0d716 + f21efa1 commit f6528c3

69 files changed

Lines changed: 4781 additions & 2647 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.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"changes": {
3+
"packages/bun-plugin/package.json": "Patch"
4+
},
5+
"note": "Bun plugin works with Bun.build: `DevupUI()` (from `@devup-ui/bun-plugin/register`) serves the generated stylesheet to the bundler's CSS loader once every other module is loaded, so the build emits a CSS output with the styles of the whole bundle instead of an empty module; class names are short there and readable under the runtime (`debug` option). Files importing the packages Devup UI takes the place of (`@emotion/react`, `@emotion/styled`, `styled-components`, `@vanilla-extract/css`), `@stylexjs/stylex`, or a subpath or re-export of these or `@devup-ui/react`, are compiled instead of skipped",
6+
"date": "2026-09-30T00:00:00.000Z"
7+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"changes": {
3+
"packages/webpack-plugin/package.json": "Patch",
4+
"packages/rsbuild-plugin/package.json": "Patch",
5+
"packages/plugin-utils/package.json": "Patch"
6+
},
7+
"note": "Webpack and Rsbuild builds hold every style in their stylesheets: a stylesheet module is built on its first import, so styles extracted later (the global styles of files webpack or Rsbuild reached late, often outside `src`) were missing from the output. The files the entries reach under `src` are now extracted before the build, the shared base on disk is kept current, and when a stylesheet still changed during the build it is compiled once more, writing only the complete result. Rsbuild serves each stylesheet from the current sheet instead of a module-wide string kept only when it grew, which left edits that shortened the CSS and later builds in the same process stale. plugin-utils adds computeReachableFiles",
8+
"date": "2026-09-30T00:00:00.000Z"
9+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"changes": {
3+
"packages/eslint-plugin/package.json": "Patch",
4+
"bindings/devup-ui-wasm/package.json": "Patch"
5+
},
6+
"note": "style-order-range only checks styleOrder where the build reads it: a prop of a Devup UI component and a top-level key of a style object passed to css/globalCss/keyframes. A styleOrder key in nested data, in a prop value such as an element passed as a prop, or in a call of a function sharing a name with an Object.prototype member is no longer reported. The array, typography and media rules already skip non-style data, and css-utils-literal-only accepts a css()/keyframes() result held in a const inside a function. No new build errors.",
7+
"date": "2026-10-01T00:00:00.000Z"
8+
}

‎.changepacks/changepack_log_global_css_fixes.json‎

Lines changed: 0 additions & 7 deletions
This file was deleted.

‎.changepacks/changepack_log_lint_style_positions.json‎

Lines changed: 0 additions & 7 deletions
This file was deleted.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"changes": {
3+
"bindings/devup-ui-wasm/package.json": "Patch"
4+
},
5+
"note": "Tailwind classes in a className: each class compiles on its own and every class Tailwind does not define (custom, plugin and analytics classes) stays as written, where any recognized class used to rebuild the whole className without them and could rewrite part of another class; a class touching a template interpolation (icon-${name}) is left as written, and template classNames no longer get spaces inserted around interpolations. A class whose variant is not understood stays as written instead of applying unconditionally; variants follow Tailwind v4: stacked variants compose (hover:focus: matches the element itself), hover is guarded by @media (hover: hover), group-*/peer-* use the group/peer marker classes (and group-hover/name), and data-*, aria-*, has-*, nth-*, *, **, supports-[…] and [&…]/[@media …] variants compile. Utilities emit all their declarations (size-*, rounded-t-*, truncate, sr-only, not-sr-only, text-sm with its line height, text-sm/6, leading-*), translate/rotate/scale/skew compose through Tailwind's individual properties and registered variables (@property) with negative values kept negative, and arbitrary values follow Tailwind's grammar: spaces for underscores except in url() and var() names, \\_ for an underscore, spaces around math operators, type hints, [property:value] and (--variable) shorthands. Words that only share a utility's prefix (select-wrapper, order-summary, cursor-foo) are no longer compiled",
6+
"date": "2026-10-01T00:00:00.000Z"
7+
}

‎.changepacks/changepack_log_theme_output.json‎

Lines changed: 0 additions & 8 deletions
This file was deleted.

‎.github/workflows/publish.yml‎

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,65 @@ jobs:
138138
path: playwright-report/
139139
retention-days: 1
140140

141+
# @devup-ui/vite-plugin must keep the CSS every server page needs when the
142+
# build is vinext/RSC. The fixture shares one Devup UI header between server
143+
# list pages and a client page, and the tests read the styles the browser
144+
# actually applies when each route is entered directly, so a dropped
145+
# stylesheet dependency fails here whatever the CSS files are called.
146+
vinext-rsc-css-e2e:
147+
runs-on: ubuntu-latest
148+
timeout-minutes: 30
149+
steps:
150+
- name: Checkout
151+
uses: actions/checkout@v7
152+
153+
- uses: actions-rust-lang/setup-rust-toolchain@v2
154+
155+
- name: Cache cargo registry + target
156+
uses: actions/cache@v6
157+
with:
158+
path: |
159+
~/.cargo/registry/index/
160+
~/.cargo/registry/cache/
161+
~/.cargo/git/db/
162+
target/
163+
key: cargo-vinext-rsc-css-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}
164+
- uses: oven-sh/setup-bun@v2
165+
with:
166+
bun-version: "1.4.0"
167+
name: Install bun
168+
169+
- name: Cache bun dependencies
170+
uses: actions/cache@v6
171+
with:
172+
path: ~/.bun/install/cache
173+
key: bun-vinext-rsc-css-${{ runner.os }}-${{ hashFiles('**/bun.lock') }}
174+
- uses: jetli/wasm-pack-action@v0.4.0
175+
with:
176+
version: "latest"
177+
- name: Install Node.js
178+
uses: actions/setup-node@v7
179+
with:
180+
node-version: 24
181+
- run: bun install
182+
- run: bun run build
183+
- name: Cache Playwright Browsers
184+
uses: actions/cache@v6
185+
with:
186+
path: ~/.cache/ms-playwright
187+
key: playwright-vinext-rsc-css-${{ runner.os }}-${{ hashFiles('**/bun.lock') }}
188+
- name: Install Playwright Browsers
189+
run: bunx playwright install chromium --with-deps
190+
- name: Build fixture (per-file CSS)
191+
run: bun run --filter vinext-rsc-css-repro build
192+
- name: Run E2E Tests (per-file CSS)
193+
run: bun run test:e2e:rsc-css
194+
- name: Build fixture (singleCss)
195+
run: |
196+
rm -rf apps/vinext-rsc-css-repro/dist apps/vinext-rsc-css-repro/.vinext apps/vinext-rsc-css-repro/df
197+
DEVUP_SINGLE_CSS=1 bun run --filter vinext-rsc-css-repro build
198+
- name: Run E2E Tests (singleCss)
199+
run: bun run test:e2e:rsc-css
141200
publish:
142201
runs-on: ubuntu-latest
143202
permissions:
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/dist/
2+
/.vinext/
3+
/.next/
4+
/df/
5+
/node_modules/
6+
next-env.d.ts
7+
*.tsbuildinfo
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{ "theme": {} }

0 commit comments

Comments
 (0)