Skip to content

chore(git): sync with main - #31370

Merged
ShaneK merged 8 commits into
major-9.0from
sync-major-9.0-with-main
Aug 19, 2026
Merged

chore(git): sync with main#31370
ShaneK merged 8 commits into
major-9.0from
sync-major-9.0-with-main

Conversation

@ShaneK

@ShaneK ShaneK commented Aug 19, 2026

Copy link
Copy Markdown
Member

Sync major-9.0 with main.

renovate Bot and others added 8 commits August 14, 2026 14:10
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github/codeql-action](https://redirect.github.com/github/codeql-action)
| action | patch | `v4.37.6` → `v4.37.7` |

---

### Release Notes

<details>
<summary>github/codeql-action (github/codeql-action)</summary>

###
[`v4.37.7`](https://redirect.github.com/github/codeql-action/releases/tag/v4.37.7)

[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.37.6...v4.37.7)

- Update default CodeQL bundle version to
[2.26.3](https://redirect.github.com/github/codeql-action/releases/tag/codeql-bundle-v2.26.3).
[#&#8203;4085](https://redirect.github.com/github/codeql-action/pull/4085)

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "every weekday before 11am"
- 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:eyJjcmVhdGVkSW5WZXIiOiI0NC4yNC4wIiwidXBkYXRlZEluVmVyIjoiNDQuMjQuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
)

Issue number: resolves #30226

---------

## What is the current behavior?

When `dir="rtl"` is set on `<ion-app>` (but not on `document`), the
hamburger menu appears on the right side visually, but the **open
animation still slides in from the left**. This happens because
`isEndSide()` only checked `document.dir`, not the nearest ancestor
`dir` attribute.

## What is the new behavior?

- `isEndSide()` takes an optional host element and delegates to
`isRTL()` instead of reading `document.dir` itself.
- `isRTL()` now walks up from the given element to the nearest ancestor
that declares a `dir`, so `<ion-app dir="rtl">` applies to everything
inside it even when the document is `ltr`. It previously read only the
element's own `dir` before falling back to `document.dir`.
- `sideChanged()` in `ion-menu` also passes the menu element so the side
is correct before the first animation.
- Unit tests added for the `ion-app dir="rtl"` case.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

---------

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
Co-authored-by: Austin-Spriggs <aspriggs@madisoncollege.edu>
…eck (#31363)

Issue number: resolves #30539

---------

## What is the current behavior?

Currently, `supportsPassive` in the gesture listener utils detects
passive listener support by attaching a real `optsTest` listener to the
element and reading the `passive` getter, but it never removes that
listener. The result is a listener permanently attached to whichever
element runs the first gesture.

There's a second failure mode in the same function. The `_sPassive ===
undefined` guard only clears if the getter fires or if
`addEventListener` throws, so a runtime that does neither leaves
`_sPassive` undefined and every subsequent call attaches another
`optsTest` listener that's never cleaned up.

## What is the new behavior?

We now always pass the options object, and the detection is removed
entirely. The check was already dead code, because passive options
object support landed in Chrome 51, Safari 10, Firefox 49, and Edge 16,
all in 2016, while our lowest supported versions are Chrome 89, Safari
15, Firefox 75, and Edge 89. The function returned `true` on every
browser we support, so both branches of the removed ternary collapse to
the same value and there's no behavior change.

## Does this introduce a breaking change?

- [ ] Yes
- [X] No

## Other information
Issue number: resolves #31026

---------

## What is the current behavior?
Opening an `ion-range` with `dualKnobs` set to `true` with a value set
inside of a modal does not render the values properly.

## What is the new behavior?

- Added a watcher for `dualKnobs` that calls `updateRatio()`, ensuring
knob ratios are recomputed whenever `dualKnobs` changes. The `min`,
`max`, and `value` properties already had watchers. `dualKnobs` was the
only ratio-affecting property without one.
- Knobs are now positioned correctly regardless of whether `value` or
`dualKnobs` is assigned first. They are also repositioned correctly when
`dualKnobs` is toggled at runtime in either direction.
- Range now sets the correct values when used inside a modal, including
when `dualKnobs` and `value` are assigned in different orders.
- Improved the `dualKnobs` property description.
- Added e2e tests covering both property assignment orders and runtime
toggling of `dualKnobs`.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

---------

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
Co-authored-by: pratyushjaiswal0806-dot <pratyushjaiswal0806@gmail.com>
# Conflicts:
#	core/src/utils/gesture/listener.ts
#	lerna.json
#	packages/react-router/package-lock.json
#	packages/react/package-lock.json
#	packages/react/package.json
#	packages/vue-router/package-lock.json
#	packages/vue/package-lock.json
#	packages/vue/package.json
@ShaneK
ShaneK requested a review from a team as a code owner August 19, 2026 15:49
@ShaneK
ShaneK requested a review from OS-jacobbell August 19, 2026 15:50
@vercel

vercel Bot commented Aug 19, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
ionic-framework Ready Ready Preview Aug 19, 2026 3:56pm

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 Aug 19, 2026
@ShaneK
ShaneK merged commit 732936f into major-9.0 Aug 19, 2026
52 checks passed
@ShaneK
ShaneK deleted the sync-major-9.0-with-main branch August 19, 2026 16:03
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.

4 participants