Conversation
🦋 Changeset detectedLatest commit: e55774a The changes in this PR will be included in the next version bump. This PR includes changesets to release 2 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThis pull request adds compatibility support for Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @lynx-js/react@0.118.0 ### Minor Changes - refactor: create SnapshotInstance in renderToString directly ([#2393](#2393)) - Add `removeCall` for shake function calls. Its initial default value matches the hooks that were previously in `removeCallParams`, and `removeCallParams` now defaults to empty. ([#2423](#2423)) `removeCall` removes matched runtime hook calls entirely, replacing them with `undefined` in expression positions and dropping them in statement positions. `removeCallParams` keeps the existing behavior of preserving the call while stripping its arguments. ### Patch Changes - Improve `shake.removeCall` and `shake.removeCallParams` in the React transform so they also match aliased runtime imports such as `import { useEffect as myUseEffect } ...` and member calls such as `ReactLynxRuntime.useEffect(...)` from default or namespace runtime imports. ([#2437](#2437)) - Create element without ref for suspense in main thread. ([#2426](#2426)) - refactor: make `useEffect`, `useLayoutEffect` and `useImperativeHandle` no-op on the main thread ([#2424](#2424)) ## @lynx-js/react-rsbuild-plugin@0.15.0 ### Minor Changes - Add `removeCall` for shake function calls. Its initial default value matches the hooks that were previously in `removeCallParams`, and `removeCallParams` now defaults to empty. ([#2423](#2423)) `removeCall` removes matched runtime hook calls entirely, replacing them with `undefined` in expression positions and dropping them in statement positions. `removeCallParams` keeps the existing behavior of preserving the call while stripping its arguments. ### Patch Changes - Support `@lynx-js/react` 0.118.0. ([#2432](#2432)) - Updated dependencies \[[`1f4f117`](1f4f117)]: - @lynx-js/react-webpack-plugin@0.9.0 - @lynx-js/react-alias-rsbuild-plugin@0.15.0 - @lynx-js/use-sync-external-store@1.5.0 - @lynx-js/react-refresh-webpack-plugin@0.3.5 - @lynx-js/css-extract-webpack-plugin@0.7.0 - @lynx-js/template-webpack-plugin@0.10.8 ## @lynx-js/react-webpack-plugin@0.9.0 ### Minor Changes - Add `removeCall` for shake function calls. Its initial default value matches the hooks that were previously in `removeCallParams`, and `removeCallParams` now defaults to empty. ([#2423](#2423)) `removeCall` removes matched runtime hook calls entirely, replacing them with `undefined` in expression positions and dropping them in statement positions. `removeCallParams` keeps the existing behavior of preserving the call while stripping its arguments. ## @lynx-js/rspeedy@0.14.1 ### Patch Changes - Updated dependencies \[]: - @lynx-js/web-rsbuild-server-middleware@0.20.1 ## create-rspeedy@0.14.1 ### Patch Changes - Fix the error when installing Lynx DevTool skill. ([#2427](#2427)) ## @lynx-js/lynx-bundle-rslib-config@0.3.1 ### Patch Changes - Updated dependencies \[[`156d64d`](156d64d), [`59d11b2`](59d11b2)]: - @lynx-js/css-serializer@0.1.5 ## @lynx-js/config-rsbuild-plugin@0.0.2 ### Patch Changes - Support `@lynx-js/rspeedy` 0.14.0. ([#2431](#2431)) ## @lynx-js/css-serializer@0.1.5 ### Patch Changes - feat: add support for @media, @supports, and @layer at-rules ([#2330](#2330)) Add support for additional CSS at-rules in the CSS serializer: - `@media` - for media queries - `@supports` - for feature queries - `@layer` - for cascade layers (both named and anonymous) The parser now handles these at-rules with proper recursive parsing support for nested at-rules. - feat: support custom property declaration in keyframe rule ([#2429](#2429)) ## @lynx-js/web-core@0.20.1 ### Patch Changes - Added support for the `global-bind` event handling modifier in the web platform runtime. ([#2438](#2438)) This mechanism enables seamless cross-element event communication without requiring a formal DOM tree relationship, allowing decoupled elements to observe and respond to standard events occurring anywhere within the component tree. ### Usage Global bindings allow an observer element to react to events triggered on another target element. #### 1. Define the Global Subscription Attach `global-bindTap` (or any equivalent standard event alias) to your observer element: ```jsx <view id="observer" global-bindTap={(event) => { // This will trigger whenever 'tap' is caught by a globally bound event. console.log("Global tap handled!", event); }} /> ``` #### 2. Trigger the Event anywhere The event will be triggered via normal user interaction (such as `tap`) on any other constituent elements: ```jsx <view id="target" bindTap={(event) => { // Note: To successfully propagate globally, ensure the event bubbles. }} /> ``` - feat(web-core): add support for configurable rem unit transform ([#2403](#2403)) - **Description**: Added a new configuration option `transformREM` (also exposed as `transform_rem` on the Rust layer) to the Web Core renderer. When enabled, it recursively converts static `rem` unit values in your styles into dynamic CSS custom properties (`calc(VALUE * var(--rem-unit))`) during template decoding and evaluation. This enables developers to implement responsive font scaling and layout sizing dynamically on the client side simply by modifying the root CSS variable `--rem-unit`. - **Usage**: You can enable this feature when working with `LynxView` by setting `transformREM` to `true`, or directly as an HTML attribute `transform-rem`: ```html <lynx-view url="https://example.com/template.js" transform-rem="true" ></lynx-view> ``` ```javascript const lynxView = document.createElement("lynx-view"); lynxView.transformREM = true; ``` With this enabled, a CSS declaration like `font-size: 1.5rem;` is transparently evaluated as `font-size: calc(1.5 * var(--rem-unit));` by the runtime engine. - Updated dependencies \[[`156d64d`](156d64d), [`59d11b2`](59d11b2)]: - @lynx-js/css-serializer@0.1.5 - @lynx-js/web-worker-rpc@0.20.1 ## @lynx-js/template-webpack-plugin@0.10.8 ### Patch Changes - Updated dependencies \[[`156d64d`](156d64d), [`5151fcf`](5151fcf), [`b630df2`](b630df2), [`59d11b2`](59d11b2)]: - @lynx-js/css-serializer@0.1.5 - @lynx-js/web-core@0.20.1 ## @lynx-js/react-umd@0.118.0 ## @lynx-js/react-alias-rsbuild-plugin@0.15.0 ## upgrade-rspeedy@0.14.1 ## @lynx-js/web-rsbuild-server-middleware@0.20.1 ## @lynx-js/web-worker-rpc@0.20.1 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Summary by CodeRabbit
Checklist