14703 Commits

Author SHA1 Message Date
bb40a1efe7 fix(checkbox): ensure proper visual selection when navigating via VoiceOver in Safari (#30300)
Issue number: resolves internal

---------

<!-- Please do not submit updates to dependencies unless it fixes an
issue. -->

<!-- Please try to limit your pull request to one type (bugfix, feature,
etc). Submit multiple pull requests if needed. -->

## What is the current behavior?
<!-- Please describe the current behavior that you are modifying. -->
Currently, MacOS voice over on Safari does not recognize ion-checkbox
correctly and fails to highlight the element properly


## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->
By adding the role property to the host element, we're correctly
identifying ion-checkbox as a checkbox so Safari knows how to handle it.

## Does this introduce a breaking change?

- [ ] Yes
- [X] No

<!--
  If this introduces a breaking change:
1. Describe the impact and migration path for existing applications
below.
  2. Update the BREAKING.md file with the breaking change.
3. Add "BREAKING CHANGE: [...]" to the commit description when merging.
See
https://github.com/ionic-team/ionic-framework/blob/main/docs/CONTRIBUTING.md#footer
for more information.
-->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->

---------

Co-authored-by: Brandy Smith <brandyscarney@users.noreply.github.com>
Co-authored-by: Maria Hutt <thetaPC@users.noreply.github.com>
2025-03-28 16:15:03 +00:00
8f05689f95 chore(tokens): update design-tokens dependency to 1.2.2 (#30319)
Issue number: internal

---------

<!-- Please do not submit updates to dependencies unless it fixes an
issue. -->

<!-- Please try to limit your pull request to one type (bugfix, feature,
etc). Submit multiple pull requests if needed. -->

## What is the current behavior?
<!-- Please describe the current behavior that you are modifying. -->

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Update tokens dependency to 1.2.2.
- Update generated tokens.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!--
  If this introduces a breaking change:
1. Describe the impact and migration path for existing applications
below.
  2. Update the BREAKING.md file with the breaking change.
3. Add "BREAKING CHANGE: [...]" to the commit description when merging.
See
https://github.com/ionic-team/ionic-framework/blob/main/docs/CONTRIBUTING.md#footer
for more information.
-->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->
2025-03-28 14:56:58 +00:00
23b7a29b27 merge release-8.5.2 (#30314)
v8.5.2
2025-03-26 17:52:53 -04:00
27816d17d8 chore(): update package lock files 2025-03-26 17:42:45 -04:00
ca51d64557 chore(): update package lock files 2025-03-26 21:34:31 +00:00
4fb15feb0c v8.5.2 v8.5.2 2025-03-26 21:33:58 +00:00
0893703769 test(angular): add a landing page to go between lazy and standalone apps (#30286)
## What is the new behavior?
Adds a landing page to the Angular test app to make it easier to get to
and debug standalone.

## Does this introduce a breaking change?
- [ ] Yes
- [x] No

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
2025-03-26 20:55:04 +00:00
ac6e6a0317 fix(datetime): support typing time values in a 24-hour format (#30147)
- Adjusted the `selectMultiColumn` logic to handle keyboard values like
20 and 22 dynamically.
- Introduced checks for the maximum column value to enable flexible
input behavior.
- Added e2e tests to verify correct value selection for both 12-hour and
24-hour formats.

Issue number: resolves #28877

---------

## What is the current behavior?

In the ion-datetime component, when typing 2000 in the keyboard the
resulted time value is 02:00 (in 24-hour format)

Examples:
https://forum.ionicframework.com/t/ion-datetime-disable-opening-keyboard/224558/6?u=dennisskylegs

## What is the new behavior?
In the ion-datetime component, when typing 2000 in the keyboard the
resulted time value is 20:00 (in 24-hour format)

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

---------

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
Co-authored-by: ShaneK <shane@shanessite.net>
2025-03-26 19:06:04 +00:00
1cfa915e8f fix(segment-button): ensure consistent disabled state for segment-content error handling (#30288)
Issue number: N/A

---------

<!-- Please do not submit updates to dependencies unless it fixes an
issue. -->

<!-- Please try to limit your pull request to one type (bugfix, feature,
etc). Submit multiple pull requests if needed. -->

## What is the current behavior?
<!-- Please describe the current behavior that you are modifying. -->

Segment buttons do not consistently set themselves to a disabled state.
When disabling them and rapidly refreshing the page, their state may
vary—sometimes they appear disabled, and other times they do not.

This was due to this
[PR](https://github.com/ionic-team/ionic-framework/pull/30138). The
reason that this PR was created was due to the console errors being
shown too early when segment buttons and contents were dynamically
rendered.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- I reverted the changes added through the other PR since the
`setTimeout` was causing the inconsistency.
- By moving the console errors to `componentWillLoad`, it provides
`ion-segment-content` time to render before the console errors are
thrown.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!--
  If this introduces a breaking change:
1. Describe the impact and migration path for existing applications
below.
  2. Update the BREAKING.md file with the breaking change.
3. Add "BREAKING CHANGE: [...]" to the commit description when merging.
See
https://github.com/ionic-team/ionic-framework/blob/main/docs/CONTRIBUTING.md#footer
for more information.
-->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->

Dev build: `8.5.2-dev.11742514102.1b51674d`

How to test:
1. Run the server locally
2. Navigate to the [segment view
disabled](http://localhost:3333/src/components/segment-view/test/disabled)
page
3. Verify that the "Paid", "Free", and "Top" buttons disabled
4. Rapid fire some hard refreshes
5.  Verify that the "Paid", "Free", and "Top" buttons disabled
6. Navigate to this StackBlitz
[repro](https://stackblitz.com/edit/yhktpj19-wxmxpmw7?file=src%2Fmain.tsx)
7. Install the dev build: `npm i
@ionic/react@8.5.2-dev.11742514102.1b51674d
@ionic/react-router@8.5.2-dev.11742514102.1b51674d`
8. Open the console log
9. Click on the "Add last child" button
10. Verify that there are no console errors like `Segment Button: Unable
to find Segment Content with id="content3".`
2025-03-25 18:21:31 +00:00
b57d432675 fix(textarea): use proper design for helper and error text (#30283)
- Updates the common and native stylesheets to separate the bottom content styles
- Fixes an improperly updated counter text color for native
- Adds missing styles for valid/invalid states and screenshot tests for the highlight

---------

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
2025-03-25 11:42:23 -04:00
1865e50d7a feat(toggle): add helper and error text to the ionic theme (#30281)
- Adds design for helper and error text to the toggle for the ionic theme
- Updates tests to add screenshots for ionic theme

---------

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
2025-03-25 11:17:14 -04:00
7f24ba006f feat(select): add helper and error text to the ionic theme (#30280)
- Adds design for helper and error text to the select for the ionic
theme.
- Updates tests to add screenshots for ionic theme

---------

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
2025-03-25 11:02:38 -04:00
7f23c60ffd fix(input): remove css variable and update helper text to use valid highlight in ionic theme (#30272)
- Splits the common and native stylesheets
- Removes the `--text-color-invalid` variable so the customization
across components and themes for helper & error text is consistent.
- Sets the color of the helper text when valid to
`--highlight-color-valid` to ensure customization works the same as
invalid

---------

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
2025-03-25 10:46:25 -04:00
f0516e6569 feat(checkbox): add helper and error text to the ionic theme (#30278)
- Adds the common stylesheet for the shared styles
- Adds design for helper and error text to the checkbox for the ionic
theme.
- Updates tests to add screenshots for ionic theme

---------

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
2025-03-25 10:17:46 -04:00
e24fcf530a feat(radio-group): add helper and error text to the ionic theme (#30271)
- Adds the common stylesheet for the shared styles
- Adds design for helper and error text to the radio group for the ionic
theme.
- Updates tests to add screenshots for ionic theme

---------

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
2025-03-25 10:05:14 -04:00
c37eaabae9 feat(divider): add new ion-divider component (#30270)
Issue number: internal
---------

## What is the new behavior?
- Introduces a new component, `ion-divider` which has two props,
`spacing` and `inset`.
- Adds e2e tests to both `spacing` and `inset` props

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

## Other information
- As discussed with the PO, using this new component inside an
`ion-item` is out of scope , for now.

---------

Co-authored-by: Brandy Smith <brandyscarney@users.noreply.github.com>
Co-authored-by: Gonçalo M. <goncalo.martins@outsystems.com>
Co-authored-by: Maria Hutt <thetaPC@users.noreply.github.com>
2025-03-25 09:04:19 +00:00
7789bb59ee fix(range): emit ionInput when value changes (#30293)
Issue number: resolves #29619 

---------

<!-- Please do not submit updates to dependencies unless it fixes an
issue. -->

<!-- Please try to limit your pull request to one type (bugfix, feature,
etc). Submit multiple pull requests if needed. -->

## What is the current behavior?
<!-- Please describe the current behavior that you are modifying. -->

The `ionInput` emits for range even when the value hasn't changed. This
does not match our documentation. It should only emit when the value
changes (and continuously while the user is dragging the knob).

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Moved the emitter to the value watch function, to determine if the
value has changed.
- Added a test
-

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!--
  If this introduces a breaking change:
1. Describe the impact and migration path for existing applications
below.
  2. Update the BREAKING.md file with the breaking change.
3. Add "BREAKING CHANGE: [...]" to the commit description when merging.
See
https://github.com/ionic-team/ionic-framework/blob/main/docs/CONTRIBUTING.md#footer
for more information.
-->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->

How to test:
1. Navigate to the [range basic HTML
file](8ed08fcba5/core/src/components/range/test/basic/index.html (L77))
2. Add the following script
```
const ionicRanges = document.querySelectorAll('ion-range');

ionicRanges.forEach(range => {  
  range.addEventListener('ionInput', function(ev) {
    console.log('ionInput', ev.currentTarget.value);
  });
});
```
3. Navigate to the [range test
page](http://localhost:3333/src/components/range/test/basic)
4. Open the console
5. Move the single knob range (let go when you're done)
6. Verify that the value is shown in the console
7. Tap as close to the middle of the knob. The goal is to tap it without
the value moving.
8. Verify that the value does not show in the console

---------

Co-authored-by: Brandy Smith <brandyscarney@users.noreply.github.com>
2025-03-24 21:06:08 +00:00
0f23526224 chore(deps): update dependency @playwright/test to ^1.51.1 (#30289)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@playwright/test](https://playwright.dev)
([source](https://redirect.github.com/microsoft/playwright)) |
[`^1.51.0` ->
`^1.51.1`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.51.0/1.51.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2ftest/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@playwright%2ftest/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@playwright%2ftest/1.51.0/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2ftest/1.51.0/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>microsoft/playwright (@&#8203;playwright/test)</summary>

###
[`v1.51.1`](https://redirect.github.com/microsoft/playwright/releases/tag/v1.51.1)

[Compare
Source](https://redirect.github.com/microsoft/playwright/compare/v1.51.0...v1.51.1)

##### Highlights


[https://github.com/microsoft/playwright/issues/35093](https://redirect.github.com/microsoft/playwright/issues/35093)
- \[Regression]: TimeoutOverflowWarning:
[`2149630`](https://redirect.github.com/microsoft/playwright/commit/2149630296).634
does not fit into a 32-bit signed integer

[https://github.com/microsoft/playwright/issues/35138](https://redirect.github.com/microsoft/playwright/issues/35138)
- \[Regression]: TypeError: Cannot read properties of undefined (reading
'expectInfo')

#### Browser Versions

-   Chromium 134.0.6998.35
-   Mozilla Firefox 135.0
-   WebKit 18.4

This version was also tested against the following stable channels:

-   Google Chrome 133
-   Microsoft Edge 133

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekday before 11am" (UTC),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/ionic-team/ionic-framework).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-24 18:53:18 +00:00
02c9d64ca5 feat(avatar): add disabled property (#30284)
Issue number: internal

---------

## What is the current behavior?
Avatar does not have a disabled state for the ionic theme.

## What is the new behavior?
- Added styles for ionic theme disabled state
- Added states e2e test & snapshots

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->

[Preview](https://ionic-framework-git-rou-11728-ionic1.vercel.app/src/components/avatar/test/states?ionic:theme=ionic)

---------

Co-authored-by: Brandy Smith <brandyscarney@users.noreply.github.com>
Co-authored-by: ionitron <hi@ionicframework.com>
2025-03-24 09:57:54 +00:00
c5fb051be3 feat(tab-button): support new badge hint features (#30246)
Issue number: internal

## What is the current behavior?
- tab-button with badge only supports status badges (small circle with
specific color), missing cases with text or icon.

## What is the new behavior?
- Added css on tab-button to support new badge hint functionalities such
text and icon
- Added css on badge to support the existence of a icon inside it
- Added support on ionic theme for different position (top and button)
- Added badge test case for this use case
- There's no figma for md/iOS implementation, so just added for now a
best effort on how it looks.

**Theme md:**
<img width="418" alt="md"
src="https://github.com/user-attachments/assets/0281b616-12aa-4107-bf4c-e8fdbe72d7d3"
/>


**Theme iOS:**
<img width="417" alt="ios"
src="https://github.com/user-attachments/assets/6102d874-b608-4527-91fb-4ed8b7e536a0"
/>


**Theme ionic:**
<img width="418" alt="ionic"
src="https://github.com/user-attachments/assets/10f59d57-0c30-4f04-bbe8-de625b93eb46"
/>


### Notes:
- All the styles added are based on the [vertical] attribute in order to
prevent breaking changes and only affect the badge hint with the new
features implemented.
- Also top and bottom position under the context of md/iOS themes are
not exactly the same as ionic theme due the usage of an
`overflow:hidden;` attribute at the `.button-native` context. This
`overflow:hidden;` attribute has been overwritten to `overflow:visible;`
for ionic theme.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

## Other information


[Sample](https://ionic-framework-git-rou-11666-ionic1.vercel.app/src/components/badge/test/hint)
2025-03-21 17:44:29 +00:00
a7233c296a fix(input): remove z-index target-area for ionic theme (#30261)
Issue number: internal
---------

## What is the current behavior?
Currently, operations associated with gestures aren’t working, for the
ionic theme:
- can’t select the text using double tap
- can’t longpress
- can’t move the cursor to any positions

## What is the new behavior?
- It's now possible to select text using double tap, long press and move
the cursor to different positions
- Adds new tests for double clicks

| Before | Now |
|--------|-----|

|![prev](https://github.com/user-attachments/assets/c1c54710-e534-44bf-9ef9-6ddc990996d9)
|
![now](https://github.com/user-attachments/assets/b10b8696-e0bb-4e99-9d3d-fe5a92d384e8)
|

## Does this introduce a breaking change?
- [ ] Yes
- [x] No

## Notes
Currently, the double click text selection is not working (the text
isn't selected) on the automated tests for:
- ionic theme, on firefox and safari
- md/ios themes, on firefox

as manual tests do not have this problem, we'll be skipping these tests
for now and come back to them at a later date

---------

Co-authored-by: Maria Hutt <thetaPC@users.noreply.github.com>
2025-03-21 16:11:56 +00:00
9e11fcb2bb test(angular): fixing over-import of RouterModule in the standalone router-link test (#30285)
Issue number: resolves internal

---------

<!-- Please do not submit updates to dependencies unless it fixes an
issue. -->

<!-- Please try to limit your pull request to one type (bugfix, feature,
etc). Submit multiple pull requests if needed. -->

## What is the current behavior?
<!-- Please describe the current behavior that you are modifying. -->
Currently the standalone test app for router-link in Angular imports all
of `RouterModule` when it only needs to import `RouterLink` from
`@angular/router`

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

Now, the Angular test app will import only what it needs from router
instead of over-importing.

## Does this introduce a breaking change?

- [ ] Yes
- [X] No

<!--
  If this introduces a breaking change:
1. Describe the impact and migration path for existing applications
below.
  2. Update the BREAKING.md file with the breaking change.
3. Add "BREAKING CHANGE: [...]" to the commit description when merging.
See
https://github.com/ionic-team/ionic-framework/blob/main/docs/CONTRIBUTING.md#footer
for more information.
-->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->

This PR helps align our Angular test apps with a more real-world
implementation expectation
2025-03-20 20:17:25 +00:00
40932d7b2d chore(): sync main into next (#30277) 2025-03-19 17:15:24 -04:00
7713cbe5b5 Merge branch 'main' into chore/sync-main 2025-03-19 16:58:48 -04:00
21f49b0b46 merge release-8.5.1 (#30274)
v8.5.1
2025-03-19 16:37:01 -04:00
b0fc4e4777 docs(changelog): update component name 2025-03-19 16:23:50 -04:00
743eb250a8 docs(changelog): include hotfix release 2025-03-19 16:19:31 -04:00
6550fca347 chore(): update package lock files 2025-03-19 16:13:36 -04:00
75f5e9d70a chore(): update package lock files 2025-03-19 20:09:39 +00:00
9496c193ce v8.5.1 v8.5.1 2025-03-19 20:08:09 +00:00
c4b9212640 perf(sheet): fixing performance regression on modal sheets when expandToScroll is false (#30267)
Issue number: internal

---------

<!-- Please do not submit updates to dependencies unless it fixes an
issue. -->

<!-- Please try to limit your pull request to one type (bugfix, feature,
etc). Submit multiple pull requests if needed. -->

## What is the current behavior?

<!-- Please describe the current behavior that you are modifying. -->
Currently, when a sheet is moved while `expandToScroll` is disabled, the
DOM is queried excessively causing performance degradation.


## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

We now cache the targeted element in `onStart` and refer to it in
`onMove` and `onEnd`, preventing over-querying the DOM

## Does this introduce a breaking change?

- [ ] Yes
- [X] No

<!--
  If this introduces a breaking change:
1. Describe the impact and migration path for existing applications
below.
  2. Update the BREAKING.md file with the breaking change.
3. Add "BREAKING CHANGE: [...]" to the commit description when merging.
See
https://github.com/ionic-team/ionic-framework/blob/main/docs/CONTRIBUTING.md#footer
for more information.
-->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->
This regression was introduced in #30257 and quickly highlighted by a
member of the community
2025-03-19 18:55:46 +00:00
b67259edae feat(datetime): add showAdjacentDays to display days from the previous and next months (#30262)
Issue number: Internal


## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->
Adds a new property to datetime, showAdjacentDays, that when true will
show the last days of the previous month and the first days of the next
month. This will just occupy empty "cells" at the beginning of the month
"table" and add rows to the table until a maximum of 6 rows are
displayed.

## Changes
- add styles for adjacent day button
- add `showAdjacentDays` property to datetime component
- change month generation to respect new property
- add visual tests to new feature

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

## Other information


[Preview](https://ionic-framework-git-rou-11118v2-ionic1.vercel.app/src/components/datetime/test/show-adjacent-days)

---------

Co-authored-by: Brandy Smith <brandyscarney@users.noreply.github.com>
Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
Co-authored-by: Maria Hutt <thetaPC@users.noreply.github.com>
2025-03-19 16:39:01 +00:00
a0fa3b3bdb chore(git): merge main into next (#30269) 2025-03-19 11:35:28 -04:00
a7a36fb3a2 chore(): add updated snapshots 2025-03-19 15:00:35 +00:00
5dae2dc1dc Merge branch 'next' into chore-merge-main-into-next 2025-03-19 10:47:25 -04:00
723868df9e refactor(searchbar): update according to design (#30245)
Issue number: internal

---------

<!-- Please do not submit updates to dependencies unless it fixes an
issue. -->

<!-- Please try to limit your pull request to one type (bugfix, feature,
etc). Submit multiple pull requests if needed. -->

## What is the current behavior?
The searchbar component does not currently match our UX designs for the
ionic theme.

## What is the new behavior?
Updated the searchbar so that it does:
- Adjusted the searchbar input paddings when no leading or trailing
icons are rendered;
- Added an ellipsis text overflow to the searchbar input;
- Updated the background, text and icon colors so that they are reactive
to state changes like having inserted text and being disabled (some
design tokens are still TBD);
- The clear button is now hidden when the searchbar is disabled.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!--
  If this introduces a breaking change:
1. Describe the impact and migration path for existing applications
below.
  2. Update the BREAKING.md file with the breaking change.
3. Add "BREAKING CHANGE: [...]" to the commit description when merging.
See
https://github.com/ionic-team/ionic-framework/blob/main/docs/CONTRIBUTING.md#footer
for more information.
-->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->

---------

Co-authored-by: Maria Hutt <thetaPC@users.noreply.github.com>
2025-03-19 12:57:08 +00:00
e6c131876d chore(): add updated snapshots 2025-03-18 22:36:17 +00:00
36fb7ee073 chore: generate vue overlays 2025-03-18 18:16:08 -04:00
e0f3008c5c chore(): add updated snapshots 2025-03-18 18:09:44 -04:00
5cd85049e0 refactor(): fix incorrect merges 2025-03-18 18:08:51 -04:00
b8b5984150 Merge branch 'main' into chore-merge-main-into-next 2025-03-18 18:05:14 -04:00
2018a045ab chore(deps): update dependency @capacitor/core to v7.1.0 (#30258)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@capacitor/core](https://capacitorjs.com)
([source](https://redirect.github.com/ionic-team/capacitor)) | [`7.0.1`
->
`7.1.0`](https://renovatebot.com/diffs/npm/@capacitor%2fcore/7.0.1/7.1.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@capacitor%2fcore/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@capacitor%2fcore/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@capacitor%2fcore/7.0.1/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capacitor%2fcore/7.0.1/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>ionic-team/capacitor (@&#8203;capacitor/core)</summary>

###
[`v7.1.0`](https://redirect.github.com/ionic-team/capacitor/blob/HEAD/CHANGELOG.md#710-2025-03-12)

[Compare
Source](https://redirect.github.com/ionic-team/capacitor/compare/7.0.1...7.1.0)

##### Bug Fixes

- **android:** add EdgeToEdge compatibility
([#&#8203;7871](https://redirect.github.com/ionic-team/capacitor/issues/7871))
([64a8bc4](64a8bc40de))
- **android:** sanitize portable file name
([#&#8203;7894](https://redirect.github.com/ionic-team/capacitor/issues/7894))
([5f09297](5f092970e3))
- **cli:** don't run bundle if not installed
([#&#8203;7896](https://redirect.github.com/ionic-team/capacitor/issues/7896))
([ee55f6c](ee55f6c546))
- **core:** use getPlatform instead of platform in cordova.js
([#&#8203;7902](https://redirect.github.com/ionic-team/capacitor/issues/7902))
([277db7b](277db7b48c))
- **http:** boundary not added for Request objects
([#&#8203;7897](https://redirect.github.com/ionic-team/capacitor/issues/7897))
([bdaa6f3](bdaa6f3c38))
- **ios:** don't check isMediaExtension on range requests
([#&#8203;7868](https://redirect.github.com/ionic-team/capacitor/issues/7868))
([028caa5](028caa5378))
- **ios:** listen for CapacitorViewDidAppear
([#&#8203;7850](https://redirect.github.com/ionic-team/capacitor/issues/7850))
([e24ffb7](e24ffb7d4d))
- **ios:** Reset plugin listeners when WebView process is terminated
([#&#8203;7905](https://redirect.github.com/ionic-team/capacitor/issues/7905))
([d039157](d039157672))

##### Features

- Add function to inject external JS into WebView before document load
([#&#8203;7864](https://redirect.github.com/ionic-team/capacitor/issues/7864))
([ec0954c](ec0954c197))
- **android:** add adjustMarginsForEdgeToEdge configuration option
([#&#8203;7885](https://redirect.github.com/ionic-team/capacitor/issues/7885))
([1ea86d1](1ea86d166a))
- **cli:** add more configurations to build command
([#&#8203;7769](https://redirect.github.com/ionic-team/capacitor/issues/7769))
([90f95d1](90f95d1a82))

####
[7.0.1](https://redirect.github.com/ionic-team/capacitor/compare/7.0.0...7.0.1)
(2025-01-21)

##### Bug Fixes

- make migrate use 7.0.0
([#&#8203;7837](https://redirect.github.com/ionic-team/capacitor/issues/7837))
([5dc309e](5dc309ea8d))
- use Capacitor 7 for SPM dependency
([#&#8203;7835](https://redirect.github.com/ionic-team/capacitor/issues/7835))
([640c3cb](640c3cb22a))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekday before 11am" (UTC),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/ionic-team/ionic-framework).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDAuMCIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-18 15:17:33 +00:00
484cc274ac chore(deps): update mcr.microsoft.com/playwright docker tag to v1.51.1 (#30265)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| mcr.microsoft.com/playwright | final | patch | `v1.51.0` -> `v1.51.1`
|

---

### Configuration

📅 **Schedule**: Branch creation - "every weekday before 11am" (UTC),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/ionic-team/ionic-framework).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-18 14:44:33 +00:00
f4186c6761 fix(vue): update output target and fix incorrect types (#30259)
Issue number: resolves #30254

---------

## What is the current behavior?
The type for `routerLink` was incorrectly set as `symbol`.

## What is the new behavior?
The new update of the Vue output target to sets it to `string | symbol`

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

## Other information

Dev build: `8.5.1-dev.11742238707.15ce0fe2`

---------

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
2025-03-18 14:42:09 +00:00
68be8e915c fix(modal): consider scrollable content while dragging when expandToScroll is false (#30257)
Issue number: internal

---------
## What is the current behavior?
Changes introduced by #30235 caused two major issues:
- Animations were not being played when increasing breakpoints.
- When the scrollable content was at the top, and a big scroll to the
bottom of the list was made, the modal would jump to a higher
breakpoint.

## What is the new behavior?
- When `expandToScroll` is false, the swipe gesture is allowed unless
it's a pull down within scrollable content.
- When `expandToScroll` is false, we cancel the `moveSheetToBreakpoint`
when a scroll to top is being done within the scrollable content

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

## Other information
| Before | After |
|--------|-------|
| <video
src="https://github.com/user-attachments/assets/e1c22f48-f990-45cf-a6c4-1aec0d019c6d">
| <video
src="https://github.com/user-attachments/assets/f01e0480-748f-40af-ac11-94f790f0e197">
|
2025-03-18 13:16:57 +00:00
d36283e8c9 chore(snapshots): use default value for cmd line argument (#30263)
Issue number: N/A

---------

<!-- Please do not submit updates to dependencies unless it fixes an
issue. -->

<!-- Please try to limit your pull request to one type (bugfix, feature,
etc). Submit multiple pull requests if needed. -->

## What is the current behavior?
<!-- Please describe the current behavior that you are modifying. -->

Certain custom commands related to Playwright are failing. Specifically:
- `npm run test.e2e.update-snapshots ${component}`
- `npm run test.e2e.docker.update-snapshots ${component}`

The failures are due to Playwright [v1.50
changing](https://playwright.dev/docs/release-notes#breaking) it's
accepted values for `update-snapshots`. Possible values are "all",
"changed", "missing", and "none". By default, it's "all". All snapshots
will be updated when no value is passed or a wrong value is passed.

Our scripts end up running (doesn't matter if it's local or through the
docker):
- `npx playwright test --update-snapshots ${component}`

It used to only update the snapshots that have changed. However, with
the update, the argument thinks that the component is its value but
since it's not an accepted one, it leads to the default.


## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

Set our default value when it comes to updating snapshots. By using
`changed` then we would only update snapshots for those tests that have
a difference. This aligns with how it used to work before the update.


## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!--
  If this introduces a breaking change:
1. Describe the impact and migration path for existing applications
below.
  2. Update the BREAKING.md file with the breaking change.
3. Add "BREAKING CHANGE: [...]" to the commit description when merging.
See
https://github.com/ionic-team/ionic-framework/blob/main/docs/CONTRIBUTING.md#footer
for more information.
-->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->

N/A
2025-03-17 21:30:13 +00:00
39f636f679 test(infinite): disable flaky test when running in CI (#30264)
Issue number: N/A

---------

<!-- Please do not submit updates to dependencies unless it fixes an
issue. -->

<!-- Please try to limit your pull request to one type (bugfix, feature,
etc). Submit multiple pull requests if needed. -->

## What is the current behavior?
<!-- Please describe the current behavior that you are modifying. -->

Test is flaky with Safari but only on CI.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Disabled test for now

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!--
  If this introduces a breaking change:
1. Describe the impact and migration path for existing applications
below.
  2. Update the BREAKING.md file with the breaking change.
3. Add "BREAKING CHANGE: [...]" to the commit description when merging.
See
https://github.com/ionic-team/ionic-framework/blob/main/docs/CONTRIBUTING.md#footer
for more information.
-->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->
2025-03-17 21:17:19 +00:00
355af73288 chore(tokens): update design-tokens dependency to 1.2.1 (#30260)
Issue number: internal

---------

<!-- Please do not submit updates to dependencies unless it fixes an
issue. -->

<!-- Please try to limit your pull request to one type (bugfix, feature,
etc). Submit multiple pull requests if needed. -->

## What is the current behavior?
<!-- Please describe the current behavior that you are modifying. -->

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Update tokens dependency to 1.2.1.
- Update generated tokens.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!--
  If this introduces a breaking change:
1. Describe the impact and migration path for existing applications
below.
  2. Update the BREAKING.md file with the breaking change.
3. Add "BREAKING CHANGE: [...]" to the commit description when merging.
See
https://github.com/ionic-team/ionic-framework/blob/main/docs/CONTRIBUTING.md#footer
for more information.
-->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->
2025-03-17 15:46:09 +00:00
c63ec2e98d chore(deps): update playwright (#29840)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type |
Update |
|---|---|---|---|---|---|---|---|
|
[@axe-core/playwright](https://redirect.github.com/dequelabs/axe-core-npm)
| [`^4.10.0` ->
`^4.10.1`](https://renovatebot.com/diffs/npm/@axe-core%2fplaywright/4.10.0/4.10.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@axe-core%2fplaywright/4.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@axe-core%2fplaywright/4.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@axe-core%2fplaywright/4.10.0/4.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@axe-core%2fplaywright/4.10.0/4.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [@playwright/test](https://playwright.dev)
([source](https://redirect.github.com/microsoft/playwright)) |
[`^1.46.1` ->
`^1.51.0`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.46.1/1.51.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2ftest/1.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@playwright%2ftest/1.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@playwright%2ftest/1.46.1/1.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2ftest/1.46.1/1.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| mcr.microsoft.com/playwright | `v1.46.1` -> `v1.51.0` |
[![age](https://developer.mend.io/api/mc/badges/age/docker/mcr.microsoft.com%2fplaywright/v1.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/docker/mcr.microsoft.com%2fplaywright/v1.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/docker/mcr.microsoft.com%2fplaywright/v1.46.1/v1.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/docker/mcr.microsoft.com%2fplaywright/v1.46.1/v1.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| final | minor |

---

### Release Notes

<details>
<summary>dequelabs/axe-core-npm (@&#8203;axe-core/playwright)</summary>

###
[`v4.10.1`](https://redirect.github.com/dequelabs/axe-core-npm/blob/HEAD/CHANGELOG.md#4101-2024-10-29)

[Compare
Source](https://redirect.github.com/dequelabs/axe-core-npm/compare/v4.10.0...v4.10.1)

##### Bug Fixes

- Update axe-core to v4.10.1
([#&#8203;1124](https://redirect.github.com/dequelabs/axe-core-npm/issues/1124))
([099818b](099818bcef))
- Update axe-core to v4.10.2
([#&#8203;1128](https://redirect.github.com/dequelabs/axe-core-npm/issues/1128))
([aaaa34e](aaaa34e7c3))

</details>

<details>
<summary>microsoft/playwright (@&#8203;playwright/test)</summary>

###
[`v1.51.0`](https://redirect.github.com/microsoft/playwright/compare/v1.50.1...3707a93754368ec1e0e2876767e8a9209f036f8a)

[Compare
Source](https://redirect.github.com/microsoft/playwright/compare/v1.50.1...v1.51.0)

###
[`v1.50.1`](https://redirect.github.com/microsoft/playwright/releases/tag/v1.50.1)

[Compare
Source](https://redirect.github.com/microsoft/playwright/compare/v1.50.0...v1.50.1)

##### Highlights


[https://github.com/microsoft/playwright/issues/34483](https://redirect.github.com/microsoft/playwright/issues/34483)
- \[Feature]: single aria snapshot for different
engines/browsers[https://github.com/microsoft/playwright/issues/34497](https://redirect.github.com/microsoft/playwright/issues/34497)7
- \[Bug]: Firefox not handling keepalive: true fetch
request[https://github.com/microsoft/playwright/issues/34504](https://redirect.github.com/microsoft/playwright/issues/34504)04
- \[Bug]: update snapshots not creating good
dif[https://github.com/microsoft/playwright/issues/34507](https://redirect.github.com/microsoft/playwright/issues/34507)507
- \[Bug]: snapshotPathTemplate doesnt work when multiple
proje[https://github.com/microsoft/playwright/issues/34462](https://redirect.github.com/microsoft/playwright/issues/34462)4462
- \[Bug]: updateSnapshots "changed" throws an error

#### Browser Versions

-   Chromium 133.0.6943.16
-   Mozilla Firefox 134.0
-   WebKit 18.2

This version was also tested against the following stable channels:

-   Google Chrome 132
-   Microsoft Edge 132

###
[`v1.50.0`](https://redirect.github.com/microsoft/playwright/releases/tag/v1.50.0)

[Compare
Source](https://redirect.github.com/microsoft/playwright/compare/v1.49.1...v1.50.0)

#### Test runner

- New option
[`timeout`](https://playwright.dev/docs/api/class-test#test-step-option-timeout)
allows specifying a maximum run time for an individual test step. A
timed-out step will fail the execution of the test.

    ```js
    test('some test', async ({ page }) => {
      await test.step('a step', async () => {
        // This step can time out separately from the test
      }, { timeout: 1000 });
    });
    ```

- New method
[test.step.skip()](https://playwright.dev/docs/api/class-test#test-step-skip)
to disable execution of a test step.

    ```js
    test('some test', async ({ page }) => {
      await test.step('before running step', async () => {
        // Normal step
      });

      await test.step.skip('not yet ready', async () => {
        // This step is skipped
      });

      await test.step('after running step', async () => {
        // This step still runs even though the previous one was skipped
      });
    });
    ```

- Expanded
[expect(locator).toMatchAriaSnapshot()](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-match-aria-snapshot-2)
to allow storing of aria snapshots in separate YAML files.

- Added method
[expect(locator).toHaveAccessibleErrorMessage()](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-have-accessible-error-message)
to assert the Locator points to an element with a given [aria
errormessage](https://w3c.github.io/aria/#aria-errormessage).

- Option
[testConfig.updateSnapshots](https://playwright.dev/docs/api/class-testconfig#test-config-update-snapshots)
added the configuration enum `changed`. `changed` updates only the
snapshots that have changed, whereas `all` now updates all snapshots,
regardless of whether there are any differences.

- New option
[testConfig.updateSourceMethod](https://playwright.dev/docs/api/class-testconfig#test-config-update-source-method)
defines the way source code is updated when
[testConfig.updateSnapshots](https://playwright.dev/docs/api/class-testconfig#test-config-update-snapshots)
is configured. Added `overwrite` and `3-way` modes that write the
changes into source code, on top of existing `patch` mode that creates a
patch file.

    ```bash
npx playwright test --update-snapshots=changed
--update-source-method=3way
    ```

- Option
[testConfig.webServer](https://playwright.dev/docs/api/class-testconfig#test-config-web-server)
added a `gracefulShutdown` field for specifying a process kill signal
other than the default `SIGKILL`.

- Exposed
[testStep.attachments](https://playwright.dev/docs/api/class-teststep#test-step-attachments)
from the reporter API to allow retrieval of all attachments created by
that step.

- New option `pathTemplate` for `toHaveScreenshot` and
`toMatchAriaSnapshot` assertions in the
[testConfig.expect](https://playwright.dev/docs/api/class-testconfig#test-config-expect)
configuration.

#### UI updates

-   Updated default HTML reporter to improve display of attachments.
-   New button for picking elements to produce aria snapshots.
- Additional details (such as keys pressed) are now displayed alongside
action API calls in traces.
- Display of `canvas` content in traces is error-prone. Display is now
disabled by default, and can be enabled via the `Display canvas content`
UI setting.
-   `Call` and `Network` panels now display additional time information.

#### Breaking

-
[expect(locator).toBeEditable()](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-be-editable)
and
[locator.isEditable()](https://playwright.dev/docs/api/class-locator#locator-is-editable)
now throw if the target element is not `<input>`, `<select>`, or a
number of other editable elements.
- Option
[testConfig.updateSnapshots](https://playwright.dev/docs/api/class-testconfig#test-config-update-snapshots)
now updates all snapshots when set to `all`, rather than only the
failed/changed snapshots. Use the new enum `changed` to keep the old
functionality of only updating the changed snapshots.

#### Browser Versions

-   Chromium 133.0.6943.16
-   Mozilla Firefox 134.0
-   WebKit 18.2

This version was also tested against the following stable channels:

-   Google Chrome 132
-   Microsoft Edge 132

###
[`v1.49.1`](https://redirect.github.com/microsoft/playwright/releases/tag/v1.49.1)

[Compare
Source](https://redirect.github.com/microsoft/playwright/compare/v1.49.0...v1.49.1)

##### Highlights


[https://github.com/microsoft/playwright/issues/33802](https://redirect.github.com/microsoft/playwright/issues/33802)
- \[Bug]: Codegen's Clear button doesn't work if not
recording[https://github.com/microsoft/playwright/issues/33806](https://redirect.github.com/microsoft/playwright/issues/33806)6
- \[Bug]: playwright hangs while waiting for pending
navigation[https://github.com/microsoft/playwright/issues/33787](https://redirect.github.com/microsoft/playwright/issues/33787)87
- \[Bug]: VSC extension isn't capturing all entered
te[https://github.com/microsoft/playwright/issues/33788](https://redirect.github.com/microsoft/playwright/issues/33788)788
- \[Regression]: Double clicking the steps in trace viewer doesn't
filter
acti[https://github.com/microsoft/playwright/issues/33772](https://redirect.github.com/microsoft/playwright/issues/33772)3772
- \[Bug]: aria_snapshot generates invalid yaml when combined with an
aria-label
attr[https://github.com/microsoft/playwright/issues/33791](https://redirect.github.com/microsoft/playwright/issues/33791)33791
- \[Bug]: text input with number value raises "container is not
iterable" with
to_match_aria_sna[https://github.com/microsoft/playwright/issues/33644](https://redirect.github.com/microsoft/playwright/issues/33644)/33644
- \[Bug]: getByRole can't find element with the accessible name from
label element when aria-labelledby is
not[https://github.com/microsoft/playwright/issues/33660](https://redirect.github.com/microsoft/playwright/issues/33660)s/33660
- \[Regression]: Unable to open Playwright UI in Dark Mode

#### Browser Versions

-   Chromium 131.0.6778.33
-   Mozilla Firefox 132.0
-   WebKit 18.2

This version was also tested against the following stable channels:

-   Google Chrome 130
-   Microsoft Edge 130

###
[`v1.49.0`](https://redirect.github.com/microsoft/playwright/releases/tag/v1.49.0)

[Compare
Source](https://redirect.github.com/microsoft/playwright/compare/v1.48.2...v1.49.0)

#### Aria snapshots

New assertion
[expect(locator).toMatchAriaSnapshot()](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-match-aria-snapshot)
verifies page structure by comparing to an expected accessibility tree,
represented as YAML.

```js
await page.goto('https://playwright.dev');
await expect(page.locator('body')).toMatchAriaSnapshot(`
  - banner:
    - heading /Playwright enables reliable/ [level=1]
    - link "Get started"
    - link "Star microsoft/playwright on GitHub"
  - main:
    - img "Browsers (Chromium, Firefox, WebKit)"
    - heading "Any browser • Any platform • One API"
`);
```

You can generate this assertion with [Test
Generator](https://playwright.dev/docs/codegen) and update the expected
snapshot with `--update-snapshots` command line flag.

Learn more in the [aria snapshots
guide](https://playwright.dev/docs/aria-snapshots).

#### Test runner

- New option
[testConfig.tsconfig](https://playwright.dev/docs/api/class-testconfig#test-config-tsconfig)
allows to specify a single `tsconfig` to be used for all tests.
- New method
[test.fail.only()](https://playwright.dev/docs/api/class-test#test-fail-only)
to focus on a failing test.
- Options
[testConfig.globalSetup](https://playwright.dev/docs/api/class-testconfig#test-config-global-setup)
and
[testConfig.globalTeardown](https://playwright.dev/docs/api/class-testconfig#test-config-global-teardown)
now support multiple setups/teardowns.
- New value `'on-first-failure'` for
[testOptions.screenshot](https://playwright.dev/docs/api/class-testoptions#test-options-screenshot).
- Added "previous" and "next" buttons to the HTML report to quickly
switch between test cases.
- New properties
[testInfoError.cause](https://playwright.dev/docs/api/class-testinfoerror#test-info-error-cause)
and
[testError.cause](https://playwright.dev/docs/api/class-testerror#test-error-cause)
mirroring
[`Error.cause`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/cause).

#### Breaking: channels `chrome`, `msedge` and similar switch to new
headless

This change affects you if you're using one of the following channels in
your `playwright.config.ts`:

-   `chrome`, `chrome-dev`, `chrome-beta`, or `chrome-canary`
-   `msedge`, `msedge-dev`, `msedge-beta`, or `msedge-canary`

##### What do I need to do?

After updating to Playwright v1.49, run your test suite. If it still
passes, you're good to go. If not, you will probably need to update your
snapshots, and adapt some of your test code around PDF viewers and
extensions. See [issue
#&#8203;33566](https://redirect.github.com/microsoft/playwright/issues/33566)
for more details.

#### Other breaking changes

- There will be no more updates for WebKit on Ubuntu 20.04 and Debian
11. We recommend updating your OS to a later version.
- Package `@playwright/experimental-ct-vue2` will no longer be updated.
- Package `@playwright/experimental-ct-solid` will no longer be updated.

#### Try new Chromium headless

You can opt into the new headless mode by using `'chromium'` channel. As
[official Chrome documentation puts
it](https://developer.chrome.com/blog/chrome-headless-shell):

> New Headless on the other hand is the real Chrome browser, and is thus
more authentic, reliable, and offers more features. This makes it more
suitable for high-accuracy end-to-end web app testing or browser
extension testing.

See [issue
#&#8203;33566](https://redirect.github.com/microsoft/playwright/issues/33566)
for the list of possible breakages you could encounter and more details
on Chromium headless. Please file an issue if you see any problems after
opting in.

```js
import { defineConfig, devices } from '@&#8203;playwright/test';

export default defineConfig({
  projects: [
    {
      name: 'chromium',
      use: { ...devices['Desktop Chrome'], channel: 'chromium' },
    },
  ],
});
```

#### Miscellaneous

-   `<canvas>` elements inside a snapshot now draw a preview.
- New method
[tracing.group()](https://playwright.dev/docs/api/class-tracing#tracing-group)
to visually group actions in the trace.
- Playwright docker images switched from Node.js v20 to Node.js v22 LTS.

#### Browser Versions

-   Chromium 131.0.6778.33
-   Mozilla Firefox 132.0
-   WebKit 18.2

This version was also tested against the following stable channels:

-   Google Chrome 130
-   Microsoft Edge 130

###
[`v1.48.2`](https://redirect.github.com/microsoft/playwright/releases/tag/v1.48.2)

[Compare
Source](https://redirect.github.com/microsoft/playwright/compare/v1.48.1...v1.48.2)

##### Highlights


[https://github.com/microsoft/playwright/issues/33141](https://redirect.github.com/microsoft/playwright/issues/33141)
- \[Bug]: UI Mode
crashed[https://github.com/microsoft/playwright/issues/33219](https://redirect.github.com/microsoft/playwright/issues/33219)9
- \[BUG] Trace Viewer PWA crashes with "Aw,
Snap![https://github.com/microsoft/playwright/issues/33086](https://redirect.github.com/microsoft/playwright/issues/33086)86
- \[Bug]: UI Mode Memory
probl[https://github.com/microsoft/playwright/issues/33000](https://redirect.github.com/microsoft/playwright/issues/33000)000
- \[Regression]: Inspector and Browser doesn't close on
CTR[https://github.com/microsoft/playwright/issues/33204](https://redirect.github.com/microsoft/playwright/issues/33204)3204
- \[Bug]: Chrome tab and inspector not closing after terminating session
in terminal

#### Browser Versions

-   Chromium 130.0.6723.19
-   Mozilla Firefox 130.0
-   WebKit 18.0

This version was also tested against the following stable channels:

-   Google Chrome 129
-   Microsoft Edge 129

###
[`v1.48.1`](https://redirect.github.com/microsoft/playwright/releases/tag/v1.48.1)

[Compare
Source](https://redirect.github.com/microsoft/playwright/compare/v1.48.0...v1.48.1)

##### Highlights


[https://github.com/microsoft/playwright/issues/33023](https://redirect.github.com/microsoft/playwright/issues/33023)
- \[Bug]: command line flag --headed has no effect in ui
mode[https://github.com/microsoft/playwright/issues/33107](https://redirect.github.com/microsoft/playwright/issues/33107)7
- \[REGRESSION]: page.waitForRequest does not get resolved since
1.48.[https://github.com/microsoft/playwright/issues/33085](https://redirect.github.com/microsoft/playwright/issues/33085)85
- \[Bug]: WebSocket route does not handle full URLs in
Playwrig[https://github.com/microsoft/playwright/issues/33052](https://redirect.github.com/microsoft/playwright/issues/33052)052
- \[Regression]: Inspector not showing recorded
st[https://github.com/microsoft/playwright/issues/33132](https://redirect.github.com/microsoft/playwright/issues/33132)3132
- \[Bug]: Wrong Ubuntu release name in
Dockerfile.n[https://github.com/microsoft/playwright/pull/32996](https://redirect.github.com/microsoft/playwright/pull/32996)32996
- \[BUG] Trace attachments have small unusable height

#### Browser Versions

-   Chromium 130.0.6723.19
-   Mozilla Firefox 130.0
-   WebKit 18.0

This version was also tested against the following stable channels:

-   Google Chrome 129
-   Microsoft Edge 129

###
[`v1.48.0`](https://redirect.github.com/microsoft/playwright/releases/tag/v1.48.0)

[Compare
Source](https://redirect.github.com/microsoft/playwright/compare/v1.47.2...v1.48.0)

#### WebSocket routing

New methods
[page.routeWebSocket()](https://playwright.dev/docs/api/class-page#page-route-web-socket)
and
[browserContext.routeWebSocket()](https://playwright.dev/docs/api/class-browsercontext#browser-context-route-web-socket)
allow to intercept, modify and mock WebSocket connections initiated in
the page. Below is a simple example that mocks WebSocket communication
by responding to a `"request"` with a `"response"`.

```js
await page.routeWebSocket('/ws', ws => {
  ws.onMessage(message => {
    if (message === 'request')
      ws.send('response');
  });
});
```

See
[WebSocketRoute](https://playwright.dev/docs/api/class-websocketroute)
for more details.

#### UI updates

- New "copy" buttons for annotations and test location in the HTML
report.
- Route method calls like
[route.fulfill()](https://playwright.dev/docs/api/class-route#route-fulfill)
are not shown in the report and trace viewer anymore. You can see which
network requests were routed in the network tab instead.
- New "Copy as cURL" and "Copy as fetch" buttons for requests in the
network tab.

#### Miscellaneous

- Option
[`form`](https://playwright.dev/docs/api/class-apirequestcontext#api-request-context-fetch-option-form)
and similar ones now accept
[FormData](https://playwright.dev/docs/api/class-formdata).
- New method
[page.requestGC()](https://playwright.dev/docs/api/class-page#page-request-gc)
may help detect memory leaks.
- New option
[`location`](https://playwright.dev/docs/api/class-test#test-step-option-location)
to pass custom step location.
- Requests made by
[APIRequestContext](https://playwright.dev/docs/api/class-apirequestcontext)
now record detailed timing and security information in the HAR.

#### Browser Versions

-   Chromium 130.0.6723.19
-   Mozilla Firefox 130.0
-   WebKit 18.0

This version was also tested against the following stable channels:

-   Google Chrome 129
-   Microsoft Edge 129

###
[`v1.47.2`](https://redirect.github.com/microsoft/playwright/releases/tag/v1.47.2)

[Compare
Source](https://redirect.github.com/microsoft/playwright/compare/v1.47.1...v1.47.2)

##### Highlights


[https://github.com/microsoft/playwright/pull/32699](https://redirect.github.com/microsoft/playwright/pull/32699)-
\[REGRESSION]: fix(codegen): use content_frame property in
python/.NET[https://github.com/microsoft/playwright/issues/32706](https://redirect.github.com/microsoft/playwright/issues/32706)6-
\[REGRESSION]: page.pause() does not pause test timeout after
1.4[https://github.com/microsoft/playwright/pull/32661](https://redirect.github.com/microsoft/playwright/pull/32661)61
- fix(trace-viewer): time delta between local and remote actions

#### Browser Versions

-   Chromium 129.0.6668.29
-   Mozilla Firefox 130.0
-   WebKit 18.0

This version was also tested against the following stable channels:

-   Google Chrome 128
-   Microsoft Edge 128

###
[`v1.47.1`](https://redirect.github.com/microsoft/playwright/releases/tag/v1.47.1)

[Compare
Source](https://redirect.github.com/microsoft/playwright/compare/v1.47.0...v1.47.1)

##### Highlights


[https://github.com/microsoft/playwright/issues/32480](https://redirect.github.com/microsoft/playwright/issues/32480)
- \[REGRESSION]: tsconfig.json's compilerOptions.paths no longer working
in
1.47[https://github.com/microsoft/playwright/issues/32552](https://redirect.github.com/microsoft/playwright/issues/32552)2
- \[REGRESSION]: broken UI in Trace Viewer while showing network
response body

#### Browser Versions

-   Chromium 129.0.6668.29
-   Mozilla Firefox 130.0
-   WebKit 18.0

This version was also tested against the following stable channels:

-   Google Chrome 128
-   Microsoft Edge 128

###
[`v1.47.0`](https://redirect.github.com/microsoft/playwright/releases/tag/v1.47.0)

[Compare
Source](https://redirect.github.com/microsoft/playwright/compare/v1.46.1...v1.47.0)

#### Network Tab improvements

The Network tab in the UI mode and trace viewer has several nice
improvements:

-   filtering by asset type and URL
-   better display of query string parameters
-   preview of font assets

![Network tab now has
filters](https://redirect.github.com/user-attachments/assets/4bd1b67d-90bd-438b-a227-00b9e86872e2)

Credit to [@&#8203;kubajanik](https://redirect.github.com/kubajanik) for
these wonderful improvements!

#### `--tsconfig` CLI option

By default, Playwright will look up the closest tsconfig for each
imported file using a heuristic. You can now specify a single tsconfig
file in the command line, and Playwright will use it for all imported
files, not only test files:

```sh

### Pass a specific tsconfig
npx playwright test --tsconfig tsconfig.test.json
```

####
[APIRequestContext](https://playwright.dev/docs/api/class-apirequestcontext)
now accepts
[`URLSearchParams`](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams)
and `string` as query parameters

You can now pass
[`URLSearchParams`](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams)
and `string` as query parameters to
[APIRequestContext](https://playwright.dev/docs/api/class-apirequestcontext):

```ts
test('query params', async ({ request }) => {
  const searchParams = new URLSearchParams();
  searchParams.set('userId', 1);
  const response = await request.get(
      'https://jsonplaceholder.typicode.com/posts',
      {
        params: searchParams // or as a string: 'userId=1'
      }
  );
  // ...
});
```

#### Miscellaneous

- The `mcr.microsoft.com/playwright:v1.47.0` now serves a Playwright
image based on Ubuntu 24.04 Noble.
To use the 22.04 jammy-based image, please use
`mcr.microsoft.com/playwright:v1.47.0-jammy` instead.
- The `:latest`/`:focal`/`:jammy` tag for Playwright Docker images is no
longer being published. Pin to a specific version for better stability
and reproducibility.
- New option `behavior` in
[page.removeAllListeners()](https://playwright.dev/docs/api/class-page#page-remove-all-listeners),
[browser.removeAllListeners()](https://playwright.dev/docs/api/class-browser#browser-remove-all-listeners)
and
[browserContext.removeAllListeners()](https://playwright.dev/docs/api/class-browsercontext#browser-context-remove-all-listeners)
to wait for ongoing listeners to complete.
- TLS client certificates can now be passed from memory by passing
`cert` and `key` as buffers instead of file paths.
- Attachments with a `text/html` content type can now be opened in a new
tab in the HTML report. This is useful for including third-party reports
or other HTML content in the Playwright test report and distributing it
to your team.
- `noWaitAfter` in
[locator.selectOption()](https://playwright.dev/docs/api/class-locator#locator-select-option)
was deprecated.
- We've seen reports of WebGL in Webkit misbehaving on GitHub Actions
`macos-13`. We recommend upgrading GitHub Actions to `macos-14`.

#### Browser Versions

-   Chromium 129.0.6668.29
-   Mozilla Firefox 130.0
-   WebKit 18.0

This version was also tested against the following stable channels:

-   Google Chrome 128
-   Microsoft Edge 128

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekday before 11am" (UTC),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/ionic-team/ionic-framework).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41OS4yIiwidXBkYXRlZEluVmVyIjoiMzkuMjAwLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: ionitron <hi@ionicframework.com>
2025-03-14 16:54:45 +00:00
b8ce56b658 merge release-8.5.0 (#30253)
v8.5.0
2025-03-13 19:30:03 -04:00