Skip to content

Conversation

@Sherry-hue
Copy link
Collaborator

Summary

feat(web): Web Platform supports list with waterfall

Checklist

  • Tests updated (or not required).
  • Documentation updated (or not required).

@Sherry-hue Sherry-hue requested a review from PupilTong as a code owner March 25, 2025 09:30
@changeset-bot
Copy link

changeset-bot bot commented Mar 25, 2025

🦋 Changeset detected

Latest commit: 39a9c05

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@lynx-js/web-elements Patch

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

@Sherry-hue Sherry-hue self-assigned this Mar 25, 2025
@Sherry-hue Sherry-hue added enhancement New feature or request platform:Web labels Mar 25, 2025
@Sherry-hue Sherry-hue linked an issue Mar 25, 2025 that may be closed by this pull request
@codecov
Copy link

codecov bot commented Mar 25, 2025

❌ 7 Tests Failed:

Tests completed Failed Passed Skipped
2322 7 2315 73
View the top 3 failed test(s) by shortest run time
web-elements.spec.ts web-elements test suitex-listbasic-waterfall-insert
Stack Traces | 0.45s run time
web-elements.spec.ts:2121:5 basic-waterfall-insert
web-elements.spec.ts web-elements test suitex-listaxios-gap-waterfall
Stack Traces | 0.871s run time
web-elements.spec.ts:2160:5 axios-gap-waterfall
web-elements.spec.ts web-elements test suitex-listbasic-waterfall
Stack Traces | 0.904s run time
web-elements.spec.ts:2110:5 basic-waterfall

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@codspeed-hq
Copy link

codspeed-hq bot commented Mar 25, 2025

CodSpeed Performance Report

Merging #331 will not alter performance

Comparing Sherry-hue:feat/list-waterfall (39a9c05) with main (1c71861)

Summary

✅ 1 untouched benchmarks

@Sherry-hue Sherry-hue force-pushed the feat/list-waterfall branch from e900a9b to 50d7191 Compare April 1, 2025 02:36
@codecov
Copy link

codecov bot commented Apr 1, 2025

Bundle Report

Changes will increase total bundle size by 4.1kB (0.65%) ⬆️. This is within the configured threshold ✅

Detailed changes
Bundle name Size Change
@lynx-js/web-explorer-web-array-push 314.78kB 4.1kB (1.32%) ⬆️

Affected Assets, Files, and Routes:

view changes for bundle: @lynx-js/web-explorer-web-array-push

Assets Changed:

Asset Name Size Change Total Size Change (%)
static/js/index.js 2.49kB 147.92kB 1.71%
static/css/index.css 1.61kB 38.19kB 4.39%

@Sherry-hue Sherry-hue force-pushed the feat/list-waterfall branch 2 times, most recently from ff91c4c to 8ac9803 Compare April 1, 2025 06:06
@PupilTong PupilTong requested a review from Copilot April 1, 2025 06:10
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces waterfall layout functionality to the web platform's list component, enabling a new visual presentation for list items. Key changes include new tests for waterfall behavior, a new XListWaterfall module implementing the layout logic, and updates to the XList component to integrate the new behavior.

Reviewed Changes

Copilot reviewed 6 out of 8 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
packages/web-platform/web-tests/tests/web-elements.spec.ts Added tests for waterfall interactions and removed unused commented code.
packages/web-platform/web-elements/src/XList/XListWaterfall.ts New module implementing waterfall layout with container creation, layout logic, and mutation handling.
packages/web-platform/web-elements/src/XList/XListAttributes.ts Defined constant for waterfall slot to support the new waterfall layout.
packages/web-platform/web-elements/src/XList/XList.ts Updated component registration to include the new waterfall support.
.changeset/thick-cameras-smash.md Changeset for releasing the new waterfall feature.
Files not reviewed (2)
  • packages/web-platform/web-elements/src/XList/x-list.css: Language not supported
  • packages/web-platform/web-tests/tests/web-elements/x-list/basic-waterfall.html: Language not supported
Comments suppressed due to low confidence (2)

packages/web-platform/web-elements/src/XList/XListWaterfall.ts:69

  • The attribute 'estimated-main-axis-size-px' is used directly in an arithmetic operation, which may lead to unexpected behavior if its string value is not parsed to a number. Consider converting the attribute value to a numeric type before using it.
heights[shortestColumnIndex] += listItem?.getBoundingClientRect().height || listItem?.getAttribute('estimated-main-axis-size-px') || listHeight;

packages/web-platform/web-elements/src/XList/XListAttributes.ts:14

  • The constant 'WATERFALL_SLOT' is defined in multiple modules, which could lead to maintenance issues. Consider centralizing this constant in a shared module to avoid inconsistencies.
const WATERFALL_SLOT = 'waterfall-slot';

@Sherry-hue Sherry-hue force-pushed the feat/list-waterfall branch from a1657d2 to caf5508 Compare April 1, 2025 06:23
@Sherry-hue Sherry-hue force-pushed the feat/list-waterfall branch 4 times, most recently from 7a6efb9 to 4e7f583 Compare April 14, 2025 08:17
@PupilTong PupilTong requested a review from Copilot April 14, 2025 08:37
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot reviewed 55 out of 56 changed files in this pull request and generated 2 comments.

Files not reviewed (1)
  • packages/web-platform/web-elements/src/XList/x-list.css: Language not supported

@Sherry-hue Sherry-hue force-pushed the feat/list-waterfall branch from 22f777e to a0b3cf4 Compare April 14, 2025 09:04
PupilTong
PupilTong previously approved these changes Apr 14, 2025
Copy link
Collaborator

@PupilTong PupilTong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Great Job

@PupilTong
Copy link
Collaborator

@Sherry-hue Could you please avoid to use text 1, 2, 3, .... ?
Using background color could be a better solution, like background-color: rgb(calc(1 * var(--index)), calc(1 * var(--index)), calc(1 * var(--index))). (note you could replace the number 1 by another number.

@Sherry-hue
Copy link
Collaborator Author

@Sherry-hue Could you please avoid to use text 1, 2, 3, .... ? Using background color could be a better solution, like background-color: rgb(calc(1 * var(--index)), calc(1 * var(--index)), calc(1 * var(--index))). (note you could replace the number 1 by another number.

Looks nice, I will open a separate PR to fix this problem

Sherry-hue and others added 4 commits April 14, 2025 17:39
feat: remove waterfall-content when list-type is not waterfall

feat: use slots to impl waterfall

feat: use absolute to impl waterfall && add tests

feat: add snapshots && move lower style set to XListWaterfall
feat: remove waterfall-content when list-type is not waterfall

feat: use slots to impl waterfall

feat: use absolute to impl waterfall && add tests

feat: add snapshots && move lower style set to XListWaterfall
@Sherry-hue Sherry-hue force-pushed the feat/list-waterfall branch from a425670 to 39a9c05 Compare April 14, 2025 09:39
@Sherry-hue Sherry-hue requested a review from PupilTong April 14, 2025 09:40
@Sherry-hue Sherry-hue added this pull request to the merge queue Apr 14, 2025
Merged via the queue into lynx-family:main with commit ffff577 Apr 14, 2025
22 checks passed
@Sherry-hue Sherry-hue deleted the feat/list-waterfall branch April 14, 2025 10:11
colinaaa pushed a commit that referenced this pull request Apr 21, 2025
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/[email protected]

### Minor Changes

- feat: improve compatibility for chrome 108 & support linear-gradient
for nested x-text
([#590](#590))

    **This is a breaking change**

    -   Please upgrade your `@lynx-js/web-elements` to >=0.6.0
    -   Please upgrade your `@lynx-js/web-core` to >=0.12.0
    -   The compiled lynx template json won't be impacted.

On chrome 108, the `-webkit-background-clip:text` cannot be computed by
a `var(--css-var-value-text)`

    Therefore we move the logic into style transformation logic.

    Now the following status is supported

        <text style="color:linear-gradient()">
          <text>
          <text>
        </text>

### Patch Changes

- feat: allow user to implement custom template load function
([#587](#587))

    ```js
    lynxView.customTemplateLoader = (url) => {
      return (await (await fetch(url, {
        method: 'GET',
      })).json());
    };
    ```

- feat: support mts event with target methods
([#564](#564))

After this commit, developers are allowed to invoke
`event.target.setStyleProperty` in mts handler

- fix: crash on removing a id attribute
([#582](#582))

- Updated dependencies
\[[`f1ca29b`](f1ca29b)]:
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]

## @lynx-js/[email protected]

### Minor Changes

- fix: When list-type is not specified, it is treated as single
formatting. ([#535](#535))

- feat: improve compatibility for chrome 108 & support linear-gradient
for nested x-text
([#590](#590))

    **This is a breaking change**

    -   Please upgrade your `@lynx-js/web-elements` to >=0.6.0
    -   Please upgrade your `@lynx-js/web-core` to >=0.12.0
    -   The compiled lynx template json won't be impacted.

On chrome 108, the `-webkit-background-clip:text` cannot be computed by
a `var(--css-var-value-text)`

    Therefore we move the logic into style transformation logic.

    Now the following status is supported

        <text style="color:linear-gradient()">
          <text>
          <text>
        </text>

### Patch Changes

- feat: fully support MTS
([#569](#569))

    Now use support the following usage

    -   mainthread event
    -   mainthread ref
    -   runOnMainThread/runOnBackground
    -   ref.current.xx

- feat: support `layoutchange` event for x-overlay-ng
([#519](#519))

- fix: position:fixed not work in scroll-view
([#580](#580))

- fix: x-list may cause error: 'Resizeobserver loop completed with
undelivered notifications'.
([#541](#541))

- fix: refactor foldview slot offset logic
([#575](#575))

- fix: improve x-foldview-ng
([#513](#513))

    -   support fling for touch event driven scrolling
- allow the height of `x-foldview-slot-ng` + `x-foldview-toolbar-ng` >
`x-foldview-ng`
- do not prevent horizontal gesture. After this commit we only allow one
direction gesture for one touch (start -> end)

- feat: add list with waterfall
([#331](#331))

## @lynx-js/[email protected]

### Minor Changes

- feat: improve compatibility for chrome 108 & support linear-gradient
for nested x-text
([#590](#590))

    **This is a breaking change**

    -   Please upgrade your `@lynx-js/web-elements` to >=0.6.0
    -   Please upgrade your `@lynx-js/web-core` to >=0.12.0
    -   The compiled lynx template json won't be impacted.

On chrome 108, the `-webkit-background-clip:text` cannot be computed by
a `var(--css-var-value-text)`

    Therefore we move the logic into style transformation logic.

    Now the following status is supported

        <text style="color:linear-gradient()">
          <text>
          <text>
        </text>

## @lynx-js/[email protected]

### Patch Changes

- Fix `lynx.loadLazyBundle` is not a function
([#568](#568))

- fix: flushDelayedLifecycleEvents stack overflow error
([#540](#540))

## @lynx-js/[email protected]

### Patch Changes

- Support cli option `--no-env` to disable loading of .env files
([#483](#483))

- Bump Rsbuild v1.3.8 with Rspack v1.3.5.
([#579](#579))

## @lynx-js/[email protected]

### Patch Changes

- Support overriding SWC configuration.
([#563](#563))

Now you can override configuration like `useDefineForClassFields` using
`tools.swc`.

    ```js
    import { defineConfig } from "@lynx-js/rspeedy";

    export default defineConfig({
      tools: {
        swc: {
          jsc: {
            transform: {
              useDefineForClassFields: true,
            },
          },
        },
      },
    });
    ```

- Updated dependencies
\[[`f1ca29b`](f1ca29b)]:
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]

## @lynx-js/[email protected]

### Patch Changes

- feat: fully support MTS
([#569](#569))

    Now use support the following usage

    -   mainthread event
    -   mainthread ref
    -   runOnMainThread/runOnBackground
    -   ref.current.xx

-   Updated dependencies \[]:
    -   @lynx-js/[email protected]

## @lynx-js/[email protected]

### Patch Changes

- fix: create a new lynx-view for lynxjs.org
([#566](#566))

- fix: blank screen issue for 0.0.4
([#543](#543))

## @lynx-js/[email protected]

### Patch Changes

- feat: fully support MTS
([#569](#569))

    Now use support the following usage

    -   mainthread event
    -   mainthread ref
    -   runOnMainThread/runOnBackground
    -   ref.current.xx

- feat: support mts event with target methods
([#564](#564))

After this commit, developers are allowed to invoke
`event.target.setStyleProperty` in mts handler

- fix: crash on removing a id attribute
([#582](#582))

- Updated dependencies
\[[`f1ca29b`](f1ca29b),
[`7edf478`](7edf478)]:
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]

## @lynx-js/[email protected]

### Patch Changes

- feat: fully support MTS
([#569](#569))

    Now use support the following usage

    -   mainthread event
    -   mainthread ref
    -   runOnMainThread/runOnBackground
    -   ref.current.xx

- Updated dependencies
\[[`f1ca29b`](f1ca29b),
[`8ca9fcb`](8ca9fcb),
[`efe6fd7`](efe6fd7)]:
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]

## @lynx-js/[email protected]

### Patch Changes

- feat: fully support MTS
([#569](#569))

    Now use support the following usage

    -   mainthread event
    -   mainthread ref
    -   runOnMainThread/runOnBackground
    -   ref.current.xx

## @lynx-js/[email protected]

### Patch Changes

- Updated dependencies
\[[`7edf478`](7edf478)]:
    -   @lynx-js/[email protected]

## [email protected]



## @lynx-js/[email protected]



## [email protected]



## @lynx-js/[email protected]

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
upupming pushed a commit to upupming/lynx-stack that referenced this pull request Apr 22, 2025
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/[email protected]

### Minor Changes

- feat: improve compatibility for chrome 108 & support linear-gradient
for nested x-text
([lynx-family#590](lynx-family#590))

    **This is a breaking change**

    -   Please upgrade your `@lynx-js/web-elements` to >=0.6.0
    -   Please upgrade your `@lynx-js/web-core` to >=0.12.0
    -   The compiled lynx template json won't be impacted.

On chrome 108, the `-webkit-background-clip:text` cannot be computed by
a `var(--css-var-value-text)`

    Therefore we move the logic into style transformation logic.

    Now the following status is supported

        <text style="color:linear-gradient()">
          <text>
          <text>
        </text>

### Patch Changes

- feat: allow user to implement custom template load function
([lynx-family#587](lynx-family#587))

    ```js
    lynxView.customTemplateLoader = (url) => {
      return (await (await fetch(url, {
        method: 'GET',
      })).json());
    };
    ```

- feat: support mts event with target methods
([lynx-family#564](lynx-family#564))

After this commit, developers are allowed to invoke
`event.target.setStyleProperty` in mts handler

- fix: crash on removing a id attribute
([lynx-family#582](lynx-family#582))

- Updated dependencies
\[[`f1ca29b`](lynx-family@f1ca29b)]:
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]

## @lynx-js/[email protected]

### Minor Changes

- fix: When list-type is not specified, it is treated as single
formatting. ([lynx-family#535](lynx-family#535))

- feat: improve compatibility for chrome 108 & support linear-gradient
for nested x-text
([lynx-family#590](lynx-family#590))

    **This is a breaking change**

    -   Please upgrade your `@lynx-js/web-elements` to >=0.6.0
    -   Please upgrade your `@lynx-js/web-core` to >=0.12.0
    -   The compiled lynx template json won't be impacted.

On chrome 108, the `-webkit-background-clip:text` cannot be computed by
a `var(--css-var-value-text)`

    Therefore we move the logic into style transformation logic.

    Now the following status is supported

        <text style="color:linear-gradient()">
          <text>
          <text>
        </text>

### Patch Changes

- feat: fully support MTS
([lynx-family#569](lynx-family#569))

    Now use support the following usage

    -   mainthread event
    -   mainthread ref
    -   runOnMainThread/runOnBackground
    -   ref.current.xx

- feat: support `layoutchange` event for x-overlay-ng
([lynx-family#519](lynx-family#519))

- fix: position:fixed not work in scroll-view
([lynx-family#580](lynx-family#580))

- fix: x-list may cause error: 'Resizeobserver loop completed with
undelivered notifications'.
([lynx-family#541](lynx-family#541))

- fix: refactor foldview slot offset logic
([lynx-family#575](lynx-family#575))

- fix: improve x-foldview-ng
([lynx-family#513](lynx-family#513))

    -   support fling for touch event driven scrolling
- allow the height of `x-foldview-slot-ng` + `x-foldview-toolbar-ng` >
`x-foldview-ng`
- do not prevent horizontal gesture. After this commit we only allow one
direction gesture for one touch (start -> end)

- feat: add list with waterfall
([lynx-family#331](lynx-family#331))

## @lynx-js/[email protected]

### Minor Changes

- feat: improve compatibility for chrome 108 & support linear-gradient
for nested x-text
([lynx-family#590](lynx-family#590))

    **This is a breaking change**

    -   Please upgrade your `@lynx-js/web-elements` to >=0.6.0
    -   Please upgrade your `@lynx-js/web-core` to >=0.12.0
    -   The compiled lynx template json won't be impacted.

On chrome 108, the `-webkit-background-clip:text` cannot be computed by
a `var(--css-var-value-text)`

    Therefore we move the logic into style transformation logic.

    Now the following status is supported

        <text style="color:linear-gradient()">
          <text>
          <text>
        </text>

## @lynx-js/[email protected]

### Patch Changes

- Fix `lynx.loadLazyBundle` is not a function
([lynx-family#568](lynx-family#568))

- fix: flushDelayedLifecycleEvents stack overflow error
([lynx-family#540](lynx-family#540))

## @lynx-js/[email protected]

### Patch Changes

- Support cli option `--no-env` to disable loading of .env files
([lynx-family#483](lynx-family#483))

- Bump Rsbuild v1.3.8 with Rspack v1.3.5.
([lynx-family#579](lynx-family#579))

## @lynx-js/[email protected]

### Patch Changes

- Support overriding SWC configuration.
([lynx-family#563](lynx-family#563))

Now you can override configuration like `useDefineForClassFields` using
`tools.swc`.

    ```js
    import { defineConfig } from "@lynx-js/rspeedy";

    export default defineConfig({
      tools: {
        swc: {
          jsc: {
            transform: {
              useDefineForClassFields: true,
            },
          },
        },
      },
    });
    ```

- Updated dependencies
\[[`f1ca29b`](lynx-family@f1ca29b)]:
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]

## @lynx-js/[email protected]

### Patch Changes

- feat: fully support MTS
([lynx-family#569](lynx-family#569))

    Now use support the following usage

    -   mainthread event
    -   mainthread ref
    -   runOnMainThread/runOnBackground
    -   ref.current.xx

-   Updated dependencies \[]:
    -   @lynx-js/[email protected]

## @lynx-js/[email protected]

### Patch Changes

- fix: create a new lynx-view for lynxjs.org
([lynx-family#566](lynx-family#566))

- fix: blank screen issue for 0.0.4
([lynx-family#543](lynx-family#543))

## @lynx-js/[email protected]

### Patch Changes

- feat: fully support MTS
([lynx-family#569](lynx-family#569))

    Now use support the following usage

    -   mainthread event
    -   mainthread ref
    -   runOnMainThread/runOnBackground
    -   ref.current.xx

- feat: support mts event with target methods
([lynx-family#564](lynx-family#564))

After this commit, developers are allowed to invoke
`event.target.setStyleProperty` in mts handler

- fix: crash on removing a id attribute
([lynx-family#582](lynx-family#582))

- Updated dependencies
\[[`f1ca29b`](lynx-family@f1ca29b),
[`7edf478`](lynx-family@7edf478)]:
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]

## @lynx-js/[email protected]

### Patch Changes

- feat: fully support MTS
([lynx-family#569](lynx-family#569))

    Now use support the following usage

    -   mainthread event
    -   mainthread ref
    -   runOnMainThread/runOnBackground
    -   ref.current.xx

- Updated dependencies
\[[`f1ca29b`](lynx-family@f1ca29b),
[`8ca9fcb`](lynx-family@8ca9fcb),
[`efe6fd7`](lynx-family@efe6fd7)]:
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]

## @lynx-js/[email protected]

### Patch Changes

- feat: fully support MTS
([lynx-family#569](lynx-family#569))

    Now use support the following usage

    -   mainthread event
    -   mainthread ref
    -   runOnMainThread/runOnBackground
    -   ref.current.xx

## @lynx-js/[email protected]

### Patch Changes

- Updated dependencies
\[[`7edf478`](lynx-family@7edf478)]:
    -   @lynx-js/[email protected]

## [email protected]



## @lynx-js/[email protected]



## [email protected]



## @lynx-js/[email protected]

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
colinaaa pushed a commit that referenced this pull request Apr 24, 2025
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/[email protected]

### Minor Changes

- feat: improve compatibility for chrome 108 & support linear-gradient
for nested x-text
([#590](#590))

    **This is a breaking change**

    -   Please upgrade your `@lynx-js/web-elements` to >=0.6.0
    -   Please upgrade your `@lynx-js/web-core` to >=0.12.0
    -   The compiled lynx template json won't be impacted.

On chrome 108, the `-webkit-background-clip:text` cannot be computed by
a `var(--css-var-value-text)`

    Therefore we move the logic into style transformation logic.

    Now the following status is supported

        <text style="color:linear-gradient()">
          <text>
          <text>
        </text>

### Patch Changes

- feat: allow user to implement custom template load function
([#587](#587))

    ```js
    lynxView.customTemplateLoader = (url) => {
      return (await (await fetch(url, {
        method: 'GET',
      })).json());
    };
    ```

- feat: support mts event with target methods
([#564](#564))

After this commit, developers are allowed to invoke
`event.target.setStyleProperty` in mts handler

- fix: crash on removing a id attribute
([#582](#582))

- Updated dependencies
\[[`f1ca29b`](f1ca29b)]:
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]

## @lynx-js/[email protected]

### Minor Changes

- fix: When list-type is not specified, it is treated as single
formatting. ([#535](#535))

- feat: improve compatibility for chrome 108 & support linear-gradient
for nested x-text
([#590](#590))

    **This is a breaking change**

    -   Please upgrade your `@lynx-js/web-elements` to >=0.6.0
    -   Please upgrade your `@lynx-js/web-core` to >=0.12.0
    -   The compiled lynx template json won't be impacted.

On chrome 108, the `-webkit-background-clip:text` cannot be computed by
a `var(--css-var-value-text)`

    Therefore we move the logic into style transformation logic.

    Now the following status is supported

        <text style="color:linear-gradient()">
          <text>
          <text>
        </text>

### Patch Changes

- feat: fully support MTS
([#569](#569))

    Now use support the following usage

    -   mainthread event
    -   mainthread ref
    -   runOnMainThread/runOnBackground
    -   ref.current.xx

- feat: support `layoutchange` event for x-overlay-ng
([#519](#519))

- fix: position:fixed not work in scroll-view
([#580](#580))

- fix: x-list may cause error: 'Resizeobserver loop completed with
undelivered notifications'.
([#541](#541))

- fix: refactor foldview slot offset logic
([#575](#575))

- fix: improve x-foldview-ng
([#513](#513))

    -   support fling for touch event driven scrolling
- allow the height of `x-foldview-slot-ng` + `x-foldview-toolbar-ng` >
`x-foldview-ng`
- do not prevent horizontal gesture. After this commit we only allow one
direction gesture for one touch (start -> end)

- feat: add list with waterfall
([#331](#331))

## @lynx-js/[email protected]

### Minor Changes

- feat: improve compatibility for chrome 108 & support linear-gradient
for nested x-text
([#590](#590))

    **This is a breaking change**

    -   Please upgrade your `@lynx-js/web-elements` to >=0.6.0
    -   Please upgrade your `@lynx-js/web-core` to >=0.12.0
    -   The compiled lynx template json won't be impacted.

On chrome 108, the `-webkit-background-clip:text` cannot be computed by
a `var(--css-var-value-text)`

    Therefore we move the logic into style transformation logic.

    Now the following status is supported

        <text style="color:linear-gradient()">
          <text>
          <text>
        </text>

## @lynx-js/[email protected]

### Patch Changes

- Fix `lynx.loadLazyBundle` is not a function
([#568](#568))

- fix: flushDelayedLifecycleEvents stack overflow error
([#540](#540))

## @lynx-js/[email protected]

### Patch Changes

- Support cli option `--no-env` to disable loading of .env files
([#483](#483))

- Bump Rsbuild v1.3.8 with Rspack v1.3.5.
([#579](#579))

## @lynx-js/[email protected]

### Patch Changes

- Support overriding SWC configuration.
([#563](#563))

Now you can override configuration like `useDefineForClassFields` using
`tools.swc`.

    ```js
    import { defineConfig } from "@lynx-js/rspeedy";

    export default defineConfig({
      tools: {
        swc: {
          jsc: {
            transform: {
              useDefineForClassFields: true,
            },
          },
        },
      },
    });
    ```

- Updated dependencies
\[[`f1ca29b`](f1ca29b)]:
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]

## @lynx-js/[email protected]

### Patch Changes

- feat: fully support MTS
([#569](#569))

    Now use support the following usage

    -   mainthread event
    -   mainthread ref
    -   runOnMainThread/runOnBackground
    -   ref.current.xx

-   Updated dependencies \[]:
    -   @lynx-js/[email protected]

## @lynx-js/[email protected]

### Patch Changes

- fix: create a new lynx-view for lynxjs.org
([#566](#566))

- fix: blank screen issue for 0.0.4
([#543](#543))

## @lynx-js/[email protected]

### Patch Changes

- feat: fully support MTS
([#569](#569))

    Now use support the following usage

    -   mainthread event
    -   mainthread ref
    -   runOnMainThread/runOnBackground
    -   ref.current.xx

- feat: support mts event with target methods
([#564](#564))

After this commit, developers are allowed to invoke
`event.target.setStyleProperty` in mts handler

- fix: crash on removing a id attribute
([#582](#582))

- Updated dependencies
\[[`f1ca29b`](f1ca29b),
[`7edf478`](7edf478)]:
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]

## @lynx-js/[email protected]

### Patch Changes

- feat: fully support MTS
([#569](#569))

    Now use support the following usage

    -   mainthread event
    -   mainthread ref
    -   runOnMainThread/runOnBackground
    -   ref.current.xx

- Updated dependencies
\[[`f1ca29b`](f1ca29b),
[`8ca9fcb`](8ca9fcb),
[`efe6fd7`](efe6fd7)]:
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]

## @lynx-js/[email protected]

### Patch Changes

- feat: fully support MTS
([#569](#569))

    Now use support the following usage

    -   mainthread event
    -   mainthread ref
    -   runOnMainThread/runOnBackground
    -   ref.current.xx

## @lynx-js/[email protected]

### Patch Changes

- Updated dependencies
\[[`7edf478`](7edf478)]:
    -   @lynx-js/[email protected]

## [email protected]



## @lynx-js/[email protected]



## [email protected]



## @lynx-js/[email protected]

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
colinaaa pushed a commit to colinaaa/lynx-stack that referenced this pull request Apr 24, 2025
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/[email protected]

### Minor Changes

- feat: improve compatibility for chrome 108 & support linear-gradient
for nested x-text
([lynx-family#590](lynx-family#590))

    **This is a breaking change**

    -   Please upgrade your `@lynx-js/web-elements` to >=0.6.0
    -   Please upgrade your `@lynx-js/web-core` to >=0.12.0
    -   The compiled lynx template json won't be impacted.

On chrome 108, the `-webkit-background-clip:text` cannot be computed by
a `var(--css-var-value-text)`

    Therefore we move the logic into style transformation logic.

    Now the following status is supported

        <text style="color:linear-gradient()">
          <text>
          <text>
        </text>

### Patch Changes

- feat: allow user to implement custom template load function
([lynx-family#587](lynx-family#587))

    ```js
    lynxView.customTemplateLoader = (url) => {
      return (await (await fetch(url, {
        method: 'GET',
      })).json());
    };
    ```

- feat: support mts event with target methods
([lynx-family#564](lynx-family#564))

After this commit, developers are allowed to invoke
`event.target.setStyleProperty` in mts handler

- fix: crash on removing a id attribute
([lynx-family#582](lynx-family#582))

- Updated dependencies
\[[`f1ca29b`](lynx-family@f1ca29b)]:
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]

## @lynx-js/[email protected]

### Minor Changes

- fix: When list-type is not specified, it is treated as single
formatting. ([lynx-family#535](lynx-family#535))

- feat: improve compatibility for chrome 108 & support linear-gradient
for nested x-text
([lynx-family#590](lynx-family#590))

    **This is a breaking change**

    -   Please upgrade your `@lynx-js/web-elements` to >=0.6.0
    -   Please upgrade your `@lynx-js/web-core` to >=0.12.0
    -   The compiled lynx template json won't be impacted.

On chrome 108, the `-webkit-background-clip:text` cannot be computed by
a `var(--css-var-value-text)`

    Therefore we move the logic into style transformation logic.

    Now the following status is supported

        <text style="color:linear-gradient()">
          <text>
          <text>
        </text>

### Patch Changes

- feat: fully support MTS
([lynx-family#569](lynx-family#569))

    Now use support the following usage

    -   mainthread event
    -   mainthread ref
    -   runOnMainThread/runOnBackground
    -   ref.current.xx

- feat: support `layoutchange` event for x-overlay-ng
([lynx-family#519](lynx-family#519))

- fix: position:fixed not work in scroll-view
([lynx-family#580](lynx-family#580))

- fix: x-list may cause error: 'Resizeobserver loop completed with
undelivered notifications'.
([lynx-family#541](lynx-family#541))

- fix: refactor foldview slot offset logic
([lynx-family#575](lynx-family#575))

- fix: improve x-foldview-ng
([lynx-family#513](lynx-family#513))

    -   support fling for touch event driven scrolling
- allow the height of `x-foldview-slot-ng` + `x-foldview-toolbar-ng` >
`x-foldview-ng`
- do not prevent horizontal gesture. After this commit we only allow one
direction gesture for one touch (start -> end)

- feat: add list with waterfall
([#331](lynx-family#331))

## @lynx-js/[email protected]

### Minor Changes

- feat: improve compatibility for chrome 108 & support linear-gradient
for nested x-text
([lynx-family#590](lynx-family#590))

    **This is a breaking change**

    -   Please upgrade your `@lynx-js/web-elements` to >=0.6.0
    -   Please upgrade your `@lynx-js/web-core` to >=0.12.0
    -   The compiled lynx template json won't be impacted.

On chrome 108, the `-webkit-background-clip:text` cannot be computed by
a `var(--css-var-value-text)`

    Therefore we move the logic into style transformation logic.

    Now the following status is supported

        <text style="color:linear-gradient()">
          <text>
          <text>
        </text>

## @lynx-js/[email protected]

### Patch Changes

- Fix `lynx.loadLazyBundle` is not a function
([lynx-family#568](lynx-family#568))

- fix: flushDelayedLifecycleEvents stack overflow error
([lynx-family#540](lynx-family#540))

## @lynx-js/[email protected]

### Patch Changes

- Support cli option `--no-env` to disable loading of .env files
([#483](lynx-family#483))

- Bump Rsbuild v1.3.8 with Rspack v1.3.5.
([lynx-family#579](lynx-family#579))

## @lynx-js/[email protected]

### Patch Changes

- Support overriding SWC configuration.
([lynx-family#563](lynx-family#563))

Now you can override configuration like `useDefineForClassFields` using
`tools.swc`.

    ```js
    import { defineConfig } from "@lynx-js/rspeedy";

    export default defineConfig({
      tools: {
        swc: {
          jsc: {
            transform: {
              useDefineForClassFields: true,
            },
          },
        },
      },
    });
    ```

- Updated dependencies
\[[`f1ca29b`](lynx-family@f1ca29b)]:
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]

## @lynx-js/[email protected]

### Patch Changes

- feat: fully support MTS
([lynx-family#569](lynx-family#569))

    Now use support the following usage

    -   mainthread event
    -   mainthread ref
    -   runOnMainThread/runOnBackground
    -   ref.current.xx

-   Updated dependencies \[]:
    -   @lynx-js/[email protected]

## @lynx-js/[email protected]

### Patch Changes

- fix: create a new lynx-view for lynxjs.org
([lynx-family#566](lynx-family#566))

- fix: blank screen issue for 0.0.4
([lynx-family#543](lynx-family#543))

## @lynx-js/[email protected]

### Patch Changes

- feat: fully support MTS
([lynx-family#569](lynx-family#569))

    Now use support the following usage

    -   mainthread event
    -   mainthread ref
    -   runOnMainThread/runOnBackground
    -   ref.current.xx

- feat: support mts event with target methods
([lynx-family#564](lynx-family#564))

After this commit, developers are allowed to invoke
`event.target.setStyleProperty` in mts handler

- fix: crash on removing a id attribute
([lynx-family#582](lynx-family#582))

- Updated dependencies
\[[`f1ca29b`](lynx-family@f1ca29b),
[`7edf478`](lynx-family@7edf478)]:
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]

## @lynx-js/[email protected]

### Patch Changes

- feat: fully support MTS
([lynx-family#569](lynx-family#569))

    Now use support the following usage

    -   mainthread event
    -   mainthread ref
    -   runOnMainThread/runOnBackground
    -   ref.current.xx

- Updated dependencies
\[[`f1ca29b`](lynx-family@f1ca29b),
[`8ca9fcb`](lynx-family@8ca9fcb),
[`efe6fd7`](lynx-family@efe6fd7)]:
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]

## @lynx-js/[email protected]

### Patch Changes

- feat: fully support MTS
([lynx-family#569](lynx-family#569))

    Now use support the following usage

    -   mainthread event
    -   mainthread ref
    -   runOnMainThread/runOnBackground
    -   ref.current.xx

## @lynx-js/[email protected]

### Patch Changes

- Updated dependencies
\[[`7edf478`](lynx-family@7edf478)]:
    -   @lynx-js/[email protected]

## [email protected]



## @lynx-js/[email protected]



## [email protected]



## @lynx-js/[email protected]

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request platform:Web

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

[Feature]: Web Platform list with waterfall

2 participants