Skip to content

chore(git): sync next with main#31044

Merged
brandyscarney merged 12 commits intonextfrom
chore-sync-main
Mar 27, 2026
Merged

chore(git): sync next with main#31044
brandyscarney merged 12 commits intonextfrom
chore-sync-main

Conversation

@brandyscarney
Copy link
Copy Markdown
Member

No description provided.

ShaneK and others added 10 commits March 19, 2026 17:09
…verOptions (#31022)

Issue number: resolves #31012

---------

<!-- 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?
`ModalOptions` and `PopoverOptions` in `@ionic/angular` are non-generic
type aliases. Using `ModalOptions<typeof MyComponent>` causes a
typescript error, even though the core `@ionic/core` types accept a
generic parameter.

## What is the new behavior?
`ModalOptions` and `PopoverOptions` now forward the generic type
parameter from their core counterparts, allowing usage like`
ModalOptions<typeof MyComponent>`. The default parameter preserves
backward compatibility and existing code using ModalOptions without a
generic should continue to work.

## Does this introduce a breaking change?

- [ ] Yes
- [X] No

## Other information

This was the initial and intended behavior, but got broken in
#30899
unintentionally. This PR fixes the issue and creates a test to ensure it
doesn't happen again.

Current dev build:
```
8.8.2-dev.11773931429.15b2a51c
```
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. -->

While working on the migration for the spinner to Ionic Modular, I
noticed that we had a [Transform test
page](https://github.com/ionic-team/ionic-framework/blob/2b5b9137fc164c2f3305e493510a884c0afbfcf0/core/src/components/spinner/test/transform/index.html#L5)
without any context of why it was there. I found out that it's meant for
a [bug](#19247) that
was reported in v4 and we did have a
[test](https://github.com/ionic-team/ionic-framework/pull/24643/changes#diff-7b7ff84d3845fbde015775aa2da960310e80f79ec01b1f4a5957d751eddce7c9R1)
for it at some point but it was removed at a later date because it was
[discovered](#25259)
that it wasn't doing anything.

So we don't have any coverage of it if there's a regression.

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

- Added a test to prevent a regression

## 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. Be on your local
2. Navigate to `spinner.scss`
3. Update the following code snippet:
```diff
- :host(.spinner-circular) svg {
+ :host(.spinner-circular) {
  animation: spinner-circular linear infinite;
}
```
4. By making this code change, we are introducing the [original
issue](https://github.com/ionic-team/ionic-framework/pull/24643/changes#diff-fa8f6fb72eceb39e2482c0dbc083f69ecdabd411be541c21947f8e8e9bf9ee48L118).
5. Run the test
6. Notice that it fails
7. Undo the code change
8. Run the test
9. Verify that it passes
v8.8.2

---------

Co-authored-by: ionitron <hi@ionicframework.com>
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?
When the user swipes to a previous month that has adjacent days and
selects one of the adjacent days from a previous month, the datetime
selects the day but fails to scroll to the previous month.

## What is the new behavior?
When a user clicks on a previous adjacent day after swiping the month,
the calendar scrolls to the previous month. The same is applied to the
next month.

## 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

The previous behavior was only reproducible on iOS real devices.
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) | Type |
Update |
|---|---|---|---|---|---|
|
[@axe-core/playwright](https://redirect.github.com/dequelabs/axe-core-npm)
| [`^4.11.0` →
`^4.11.1`](https://renovatebot.com/diffs/npm/@axe-core%2fplaywright/4.11.0/4.11.1)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@axe-core%2fplaywright/4.11.1?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@axe-core%2fplaywright/4.11.0/4.11.1?slim=true)
| devDependencies | patch |
| [@playwright/test](https://playwright.dev)
([source](https://redirect.github.com/microsoft/playwright)) |
[`^1.56.1` →
`^1.58.2`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.56.1/1.58.2)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2ftest/1.58.2?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2ftest/1.56.1/1.58.2?slim=true)
| devDependencies | minor |
| mcr.microsoft.com/playwright | `v1.56.1` → `v1.58.2` |
![age](https://developer.mend.io/api/mc/badges/age/docker/mcr.microsoft.com%2fplaywright/v1.58.2?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/docker/mcr.microsoft.com%2fplaywright/v1.56.1/v1.58.2?slim=true)
| final | minor |

---

### Release Notes

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

###
[`v4.11.1`](https://redirect.github.com/dequelabs/axe-core-npm/blob/HEAD/CHANGELOG.md#4111-2026-01-09)

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

##### Bug Fixes

- reorder exports to place types first
([#&#8203;1261](https://redirect.github.com/dequelabs/axe-core-npm/issues/1261))
([40d22e3](https://redirect.github.com/dequelabs/axe-core-npm/commit/40d22e3cd6381796d731802efc71bc21c924025e)),
closes
[#&#8203;1243](https://redirect.github.com/dequelabs/axe-core-npm/issues/1243)
- Update axe-core to v4.11.1
([#&#8203;1271](https://redirect.github.com/dequelabs/axe-core-npm/issues/1271))
([77f577e](https://redirect.github.com/dequelabs/axe-core-npm/commit/77f577ed47510045e75b939fa97ac1d4f91b219b))

</details>

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

###
[`v1.58.2`](https://redirect.github.com/microsoft/playwright/compare/v1.58.1...ce480a952553175eae75342aad2c5e86cdf2cbba)

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

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

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

##### Highlights


[#&#8203;39036](https://redirect.github.com/microsoft/playwright/issues/39036)
fix(msedge): fix local network permissions

[#&#8203;39037](https://redirect.github.com/microsoft/playwright/issues/39037)
chore: update cft download location

[#&#8203;38995](https://redirect.github.com/microsoft/playwright/issues/38995)
chore(webkit): disable frame sessions on fronzen builds

##### Browser Versions

- Chromium 145.0.7632.6
- Mozilla Firefox 146.0.1
- WebKit 26.0

###
[`v1.58.0`](https://redirect.github.com/microsoft/playwright/compare/v1.57.0...961381ec73a9fa2661d92504eab1a6bd6eaffc75)

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

###
[`v1.57.0`](https://redirect.github.com/microsoft/playwright/compare/v1.56.1...80581972582c9565e141c5fedd3c5fa10cc0e38b)

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

</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:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOS45IiwidXBkYXRlZEluVmVyIjoiNDMuNjYuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
Co-authored-by: ionitron <hi@ionicframework.com>
…30983)

Closes #30913

## Description

When `ion-input-otp` has the `readonly` prop set, typing is correctly
blocked but users are still able to delete characters using the
Backspace or Delete keys.

When `disabled` or `readonly` are set, users are still able to paste
into the component.

## Changes

- Added guard for `disabled` and `readonly` inside `onInput` and
`onPaste` handler
- Prevented default behavior for `Backspace` and `Delete` when
`readonly` is `true`
- Return in `onKeydown` when `disabled` is `true`
- Added e2e tests verifying the behavior

## How to Test

1. Add `readonly` to `ion-input-otp`
2. Attempt to type → no input allowed
3. Press Backspace/Delete → no characters removed

Behavior now matches expected readonly semantics.

---------

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [@capacitor/core](https://capacitorjs.com)
([source](https://redirect.github.com/ionic-team/capacitor)) | [`8.2.0`
→
`8.3.0`](https://renovatebot.com/diffs/npm/@capacitor%2fcore/8.2.0/8.3.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@capacitor%2fcore/8.3.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capacitor%2fcore/8.2.0/8.3.0?slim=true)
|
|
[@capacitor/keyboard](https://redirect.github.com/ionic-team/capacitor-keyboard)
| [`8.0.1` →
`8.0.2`](https://renovatebot.com/diffs/npm/@capacitor%2fkeyboard/8.0.1/8.0.2)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@capacitor%2fkeyboard/8.0.2?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capacitor%2fkeyboard/8.0.1/8.0.2?slim=true)
|
|
[@capacitor/status-bar](https://redirect.github.com/ionic-team/capacitor-plugins)
| [`8.0.1` →
`8.0.2`](https://renovatebot.com/diffs/npm/@capacitor%2fstatus-bar/8.0.1/8.0.2)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@capacitor%2fstatus-bar/8.0.2?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capacitor%2fstatus-bar/8.0.1/8.0.2?slim=true)
|

---

### Release Notes

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

###
[`v8.3.0`](https://redirect.github.com/ionic-team/capacitor/blob/HEAD/CHANGELOG.md#830-2026-03-25)

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

##### Bug Fixes

- **android:** correctly parsing `server.url` when they include paths
([#&#8203;8391](https://redirect.github.com/ionic-team/capacitor/issues/8391))
([a9f2181](https://redirect.github.com/ionic-team/capacitor/commit/a9f218179b60555d86b44bf2b33354da3e64e98c))
- **cli:** inline CSS sourcemaps in addition to JS sourcemaps
([#&#8203;8377](https://redirect.github.com/ionic-team/capacitor/issues/8377))
([69476ab](https://redirect.github.com/ionic-team/capacitor/commit/69476ab9c0b47911a14d2482cab53a877a5ae784))
- **http:** handle URL objects on fetch
([#&#8203;8386](https://redirect.github.com/ionic-team/capacitor/issues/8386))
([003099a](https://redirect.github.com/ionic-team/capacitor/commit/003099aef246adfd76d890074d46b1484951824b))
- **ios:** make getArray accesible on Objective-C plugins
([#&#8203;8392](https://redirect.github.com/ionic-team/capacitor/issues/8392))
([afb80f2](https://redirect.github.com/ionic-team/capacitor/commit/afb80f2fecb4bf85dbebe25e815de2a5564264d6))
- **SystemBars:** use native safe area insets on Android
([#&#8203;8384](https://redirect.github.com/ionic-team/capacitor/issues/8384))
([4e99598](https://redirect.github.com/ionic-team/capacitor/commit/4e99598a2a57ee97e82be1aaa09492744622fa60))

##### Features

- **cli:** Experimental config for swift-tools-version in SPM apps
([#&#8203;8372](https://redirect.github.com/ionic-team/capacitor/issues/8372))
([d2ee84f](https://redirect.github.com/ionic-team/capacitor/commit/d2ee84f8186909b142b418c02fc19f79d3c6a6ed))
- **cli:** support SPM package traits in generated Package.swift
([#&#8203;8351](https://redirect.github.com/ionic-team/capacitor/issues/8351))
([27e6aa8](https://redirect.github.com/ionic-team/capacitor/commit/27e6aa89cf22e0b1a6d46710faed9aa8899600b0))

</details>

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

###
[`v8.0.2`](https://redirect.github.com/ionic-team/capacitor-keyboard/blob/HEAD/CHANGELOG.md#802-2026-03-25)

[Compare
Source](https://redirect.github.com/ionic-team/capacitor-keyboard/compare/v8.0.1...v8.0.2)

##### Bug Fixes

- **android:** calling ViewCompat.onApplyWindowInsets
([#&#8203;59](https://redirect.github.com/ionic-team/capacitor-keyboard/issues/59))
([cc74b2d](https://redirect.github.com/ionic-team/capacitor-keyboard/commit/cc74b2dd62b719b450fe241cd1c802b103d62d5f))

</details>

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

###
[`v8.0.2`](https://redirect.github.com/ionic-team/capacitor-plugins/releases/tag/%40capacitor/local-notifications%408.0.2)

[Compare
Source](https://redirect.github.com/ionic-team/capacitor-plugins/compare/@capacitor/status-bar@8.0.1...@capacitor/status-bar@8.0.2)

##### Bug Fixes

- **android:** notification Bundles with non-string values
([#&#8203;2445](https://redirect.github.com/ionic-team/capacitor-plugins/issues/2445))
([2788f81](https://redirect.github.com/ionic-team/capacitor-plugins/commit/2788f81d5dfe53e5d72b32e3b724e0f1a41e8373))

</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 these
updates 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:eyJjcmVhdGVkSW5WZXIiOiI0My42Ni40IiwidXBkYXRlZEluVmVyIjoiNDMuNjYuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@vercel
Copy link
Copy Markdown

vercel bot commented Mar 27, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
ionic-framework Ready Ready Preview, Comment Mar 27, 2026 4:18pm

Request Review

@github-actions github-actions bot added package: core @ionic/core package package: angular @ionic/angular package package: vue @ionic/vue package package: react @ionic/react package labels Mar 27, 2026
@brandyscarney brandyscarney changed the title chore(git): sync main chore(git): sync next with main Mar 27, 2026
@brandyscarney brandyscarney marked this pull request as ready for review March 27, 2026 16:38
@brandyscarney brandyscarney requested a review from a team as a code owner March 27, 2026 16:38
@brandyscarney brandyscarney merged commit f62c3c9 into next Mar 27, 2026
73 of 94 checks passed
@brandyscarney brandyscarney deleted the chore-sync-main branch March 27, 2026 16:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

package: angular @ionic/angular package package: core @ionic/core package package: react @ionic/react package package: vue @ionic/vue package

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants