[release] v0.19.0#1688
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Pull request overview
Release PR bumping all workspace packages from 0.18.3 to 0.19.0. Beyond version bumps, it ships a new @stylexjs/atoms package (compile-time atomic style helpers using property-access / call syntax) and wires its babel transform into @stylexjs/babel-plugin. Also fixes bail-out index tracking and adds module-level hoisting of compiled inline CSS objects in stylex.props, and re-exports CSSProperties from @stylexjs/stylex.
Changes:
- Add
@stylexjs/atomspackage (runtime Proxy that throws, Flow/TS types, babel transform, README) and integrate the visitor into the babel-plugin pipeline. - Update
stylex-propsvisitor to track only the earliest bail-out index, hoist compiled CSS objects, handleCallExpressionarguments, and bail out for dynamic style call expressions. - Bump version to
0.19.0across all packages and examples, add CHANGELOG entry and atoms demo page inexample-nextjs.
Reviewed changes
Copilot reviewed 47 out of 52 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| packages/@stylexjs/atoms/* (new) | New atomic styles package: runtime proxy, Flow/TS types, babel transform, README, package.json. |
| packages/@stylexjs/babel-plugin/src/index.js | Wires atoms visitor into Program.exit before stylex.props/call transforms. |
| packages/@stylexjs/babel-plugin/src/visitors/imports.js | Detects @stylexjs/atoms imports/requires and records them in state. |
| packages/@stylexjs/babel-plugin/src/utils/state-manager.js | Adds atomImports map. |
| packages/@stylexjs/babel-plugin/src/visitors/stylex-props.js | Tightens StyleObject type; preserves first bail-out index; supports CallExpression args; bails for dynamic style functions; hoists compiled $$css objects. |
| packages/@stylexjs/babel-plugin/tests/transform-stylex-props-test.js | Large new test block for atoms + props interactions. |
| packages/@stylexjs/stylex/src/stylex.js, types/StyleXTypes.{js,d.ts} | Re-export CSSProperties; simplify StyleX$DefineMarker marker typing. |
| examples/example-nextjs/app/atoms-demo/page.tsx (new) | Demo page exercising atoms across many cases. |
| examples/example-nextjs/tsconfig.json | Adds target: ES2017 and reformats JSON. |
| CHANGELOG.md | Adds 0.19.0 entry. |
| All other package.json files | Bump versions and inter-package deps from 0.18.3 → 0.19.0. |
| if (path.isCallExpression()) { | ||
| const callee = path.get('callee'); | ||
| if (callee.isMemberExpression()) { | ||
| const obj = callee.get('object'); | ||
| if (obj.isIdentifier() && state.styleMap.has(obj.node.name)) { | ||
| return 'other'; | ||
| } | ||
| } | ||
| return 'other'; | ||
| } |
51fbd7a to
921b823
Compare
workflow: benchmarks/perfComparison of performance test results, measured in operations per second. Larger is better.
|
workflow: benchmarks/sizeComparison of minified (terser) and compressed (brotli) size results, measured in bytes. Smaller is better.
|
0.19.0 (May 29, 2026)
@stylexjs/atomspackage for inline atomic styles.stylex.createandstylex.defineVars.unpluginbundler plugin.stylex-valid-styles.