chore: sync with next - #31465
Merged
Merged
chore: sync with next#31465
Conversation
Issue number: resolves #31220 --------- ## What is the current behavior? Currently, a component opened through `ModalController` that binds a value from `componentProps` in its template, like `<ion-nav [root]="rootPage()">`, can render empty. `attachView` only runs the creation pass, so the `[root]` binding is applied on a later tick, after `ion-nav` has already finished loading and read `root` as undefined. Wrapping the nav in `@if (rootPage())` worked around it. ## What is the new behavior? After this fix, `attachView` runs `detectChanges()` on the view right after attaching it, so template bindings apply before the web component loads. `ion-nav` now sees its `root` during load and renders it. This matches the `detectChanges` call already on `major-9.0`. ## Does this introduce a breaking change? - [ ] Yes - [X] No ## Other information The actual fix for this PR is fairly small, most of it is just testing. It's also important to note that this is already fixed in v9 in the same exact way, we're just backporting it to v8 here. Dev build: ``` 8.8.12-dev.11781813448.16e7a064 ```
…er (#31226) Issue number: resolves #31157 (the RR6 version of this issue, anyway) --------- ## What is the current behavior? When a parent re-renders with new props for a child rendered inside an `IonRouterOutlet`, the child's props go stale. `ReactRouterViewStack` re-syncs the stored `viewItem.reactElement` by iterating `ionRouterOutlet.props.children` directly with `React.Children.forEach` and matching each child's `path` against the stored view items. When the routes are wrapped in a `<Routes>` element (the RR6 equivalent of the v5 `<Switch>`), that wrapper has no `path` of its own, so nothing matches and the child element is never refreshed. The stored `reactElement` keeps its original props, so state passed down from the parent never reaches the child. ## What is the new behavior? The sync now runs the outlet's children through `extractRouteChildren`, which unwraps the `<Routes>` wrapper and returns the actual `<Route>` elements with their paths. Those match the stored view items, so the `reactElement` is refreshed on each re-render. This is the same unwrapping already used on the render path elsewhere in the file, so direct-child routes and `<Routes>`-wrapped routes now behave the same. Prop changes from a parent re-render reach the child in both shapes. ## Does this introduce a breaking change? - [ ] Yes - [x] No ## Other information Preview (React Router test app): - Routes wrapper: https://ionic-framework-git-fix-sync-props-ionic1.vercel.app/react-router/props-update-routes/child - Direct children: https://ionic-framework-git-fix-sync-props-ionic1.vercel.app/react-router/props-update-direct/child
v8.8.12
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.3` → `^4.12.1`](https://renovatebot.com/diffs/npm/@axe-core%2fplaywright/4.11.3/4.12.1) |  |  | devDependencies | minor | | [@playwright/test](https://playwright.dev) ([source](https://redirect.github.com/microsoft/playwright)) | [`^1.61.0` → `^1.61.1`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.61.0/1.61.1) |  |  | devDependencies | patch | | mcr.microsoft.com/playwright | `v1.61.0` → `v1.61.1` |  |  | final | patch | | [playwright-core](https://playwright.dev) ([source](https://redirect.github.com/microsoft/playwright)) | [`^1.61.0` → `^1.61.1`](https://renovatebot.com/diffs/npm/playwright-core/1.61.0/1.61.1) |  |  | devDependencies | patch | --- ### Release Notes <details> <summary>dequelabs/axe-core-npm (@​axe-core/playwright)</summary> ### [`v4.12.1`](https://redirect.github.com/dequelabs/axe-core-npm/compare/v4.11.3...5f587f3a6a8aebfd1ca1bfdde5d93d6b4e1abe8f) [Compare Source](https://redirect.github.com/dequelabs/axe-core-npm/compare/v4.11.3...5f587f3a6a8aebfd1ca1bfdde5d93d6b4e1abe8f) </details> <details> <summary>microsoft/playwright (@​playwright/test)</summary> ### [`v1.61.1`](https://redirect.github.com/microsoft/playwright/compare/v1.61.0...39e3553a4f283a41134d75d7e404484bd9e6865a) [Compare Source](https://redirect.github.com/microsoft/playwright/compare/v1.61.0...v1.61.1) </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. 👻 **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:eyJjcmVhdGVkSW5WZXIiOiI0My4yMzUuMCIsInVwZGF0ZWRJblZlciI6IjQzLjIzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [actions/checkout](https://redirect.github.com/actions/checkout) | action | major | `v6.0.3` → `v7.0.0` | --- ### Release Notes <details> <summary>actions/checkout (actions/checkout)</summary> ### [`v7.0.0`](https://redirect.github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v700) [Compare Source](https://redirect.github.com/actions/checkout/compare/v7.0.0...v7.0.0) - Block checking out fork PR for pull\_request\_target and workflow\_run by [@​aiqiaoy](https://redirect.github.com/aiqiaoy) in [#​2454](https://redirect.github.com/actions/checkout/pull/2454) - Bump actions/publish-immutable-action from 0.0.3 to 0.0.4 in the minor-actions-dependencies group across 1 directory by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​2458](https://redirect.github.com/actions/checkout/pull/2458) - Bump flatted from 3.3.1 to 3.4.2 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​2460](https://redirect.github.com/actions/checkout/pull/2460) - Bump js-yaml from 4.1.0 to 4.2.0 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​2461](https://redirect.github.com/actions/checkout/pull/2461) - Bump [@​actions/core](https://redirect.github.com/actions/core) and [@​actions/tool-cache](https://redirect.github.com/actions/tool-cache) and Remove uuid by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​2459](https://redirect.github.com/actions/checkout/pull/2459) - upgrade module to esm and update dependencies by [@​aiqiaoy](https://redirect.github.com/aiqiaoy) in [#​2463](https://redirect.github.com/actions/checkout/pull/2463) - Bump the minor-npm-dependencies group across 1 directory with 3 updates by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​2462](https://redirect.github.com/actions/checkout/pull/2462) ### [`v7`](https://redirect.github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v700) [Compare Source](https://redirect.github.com/actions/checkout/compare/v6.0.3...v7.0.0) - Block checking out fork PR for pull\_request\_target and workflow\_run by [@​aiqiaoy](https://redirect.github.com/aiqiaoy) in [#​2454](https://redirect.github.com/actions/checkout/pull/2454) - Bump actions/publish-immutable-action from 0.0.3 to 0.0.4 in the minor-actions-dependencies group across 1 directory by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​2458](https://redirect.github.com/actions/checkout/pull/2458) - Bump flatted from 3.3.1 to 3.4.2 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​2460](https://redirect.github.com/actions/checkout/pull/2460) - Bump js-yaml from 4.1.0 to 4.2.0 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​2461](https://redirect.github.com/actions/checkout/pull/2461) - Bump [@​actions/core](https://redirect.github.com/actions/core) and [@​actions/tool-cache](https://redirect.github.com/actions/tool-cache) and Remove uuid by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​2459](https://redirect.github.com/actions/checkout/pull/2459) - upgrade module to esm and update dependencies by [@​aiqiaoy](https://redirect.github.com/aiqiaoy) in [#​2463](https://redirect.github.com/actions/checkout/pull/2463) - Bump the minor-npm-dependencies group across 1 directory with 3 updates by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​2462](https://redirect.github.com/actions/checkout/pull/2462) </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:eyJjcmVhdGVkSW5WZXIiOiI0My4yMzEuMSIsInVwZGF0ZWRJblZlciI6IjQzLjIzMS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…ndar (#31227) Issue number: resolves #30484 --------- ## What is the current behavior? Paging through the month calendar in an <IonDatetime> always scrolls smoothly regardless of the `animated` property in global config ## What is the new behavior? Paging will scroll instantly (no animation) if `animated` is false, otherwise the previous smooth scroll behavior persists ## Does this introduce a breaking change? - [ ] Yes - [x] No
Issue number: resolves #30968 --------- <!-- 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. --> `<ion-button>` with type="submit" does not cause the associated `<form>` to be submitted even though it is not disabled. When the text of the input field is cleared and then input re-added, you can submit the input. ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> The visible and hidden button should always have the same disabled state. `<ion-button>` with type="submit" should always submit the associated `<form>` when it is enabled. - Add `formButtonEl.disabled = this.disabled;` and `formButtonEl.type = this.type;` to button.tsx in `renderHiddenButton()`. This addition syncs the disabled status and type of the button when that happens. - Add a test in to to `packages/angular/test/base/e2e/src/lazy/form.spec.ts` which should ensure any changes in button type are synced. The test gets the hidden button type, changes the visible button state, and then expects the hidden button state to change as well. - Per conversations around this PR, testing disabled state sync will need a dev build due to the nature of the issue. ## 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. --> Related to a stencil update that affected when @watch('disabled') fires. --------- Co-authored-by: Shane <shane@shanessite.net>
…ple=true (#31248) Issue number: resolves #29673 --------- ## What is the current behavior? Using the month/year selection wheels on an `ion-datetime` with `multiple=true` changes the selection in an unintuitive manner and changing the value of one of the wheels often reverts the value of the other wheel. ## What is the new behavior? - The month and year wheels in an `ion-datetime` no longer change the selection when `multiple=true` - The behavior of a single-select `ion-datetime` is unchanged. - The fix has only been applied to `renderMonthPickerColumn` and `renderYearPickerColumn`, as [per the docs](https://ionicframework.com/docs/api/datetime#multiple-date-selection), the `multiple` property is only supported on `presentation=date preferWheel=false`, which only shows those two wheels. - Four new datetime e2e tests have been added to test these changes ## Does this introduce a breaking change? - [ ] Yes - [x] No
<!-- 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. --> Tab buttons in the ionic-md theme are slightly shorter than the tab bar. This is inconsistent when dev tools are in use in Firefox, causing screenshot tests to fail. ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - Tab buttons completely fill available vertical space by adding a margin above the button's icon. ## 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. --> The tab bar content height is 48px while the buttons are 44px high with the styles specified. Usually the buttons render 44px high, but sometimes when the button is focused with Firefox dev tools, they render 48px high. When the buttons are made to be 48px high, matching the container, we don't see this issue. --------- Co-authored-by: ionitron <hi@ionicframework.com> Co-authored-by: Maria Hutt <thetaPC@users.noreply.github.com>
## What is the current behavior? The default path for imports is `@ionic/angular` and imports the lazy-loaded angular components. `@ionic/angular/standalone` imports the standalone components. ## What is the new behavior? The default path, `@ionic/angular`, imports standalone components. Lazy-loaded components are imported from `@ionic/angular/lazy`. ## Does this introduce a breaking change? - [X] Yes - [ ] No BREAKING CHANGE: Public import paths have changed. Applications that use lazy-loaded angular components will need to update their import paths from `@ionic/angular` to `@ionic/angular/lazy`. Applications that use standalone angular components will need to update their import paths from `@ionic/angular/standalone` to `@ionic/angular`. --------- Co-authored-by: Brandy Smith <brandyscarney@users.noreply.github.com>
v8.8.13
# Conflicts: # .github/workflows/stencil-nightly.yml # packages/angular/common/src/providers/angular-delegate.ts # packages/angular/test/base/src/app/standalone/router-link/router-link.component.ts # 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
major-9.0 dropped the @ionic/angular/standalone subpath export (standalone is the default entry). The nav-modal-root test comps came in from main still using the old subpath, breaking the ng21/ng22 zoneless test-app builds.
Sync major-9.0 with main.
# Conflicts: # core/package-lock.json # core/package.json # core/src/components.d.ts # core/src/components/datetime/datetime.tsx
Sync next with main.
## What is the current behavior? `ion-img` exists solely to lazily load images, from a time when browsers had no native way to do so. That capability is now a standard `<img>` feature, `loading="lazy"`. ## What is the new behavior? Deprecates the `ion-img` component, with removal planned for v10. ## Does this introduce a breaking change? - [ ] Yes - [x] No The deprecation of `ion-img` in v9 does not affect its functionality. However, the minimum supported Safari and iOS versions are raised to 16, the first major release that supports native `loading="lazy"` on `<img>` elements. --------- 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.4.0` → `8.4.1`](https://renovatebot.com/diffs/npm/@capacitor%2fcore/8.4.0/8.4.1) |  |  | --- ### Release Notes <details> <summary>ionic-team/capacitor (@​capacitor/core)</summary> ### [`v8.4.1`](https://redirect.github.com/ionic-team/capacitor/blob/HEAD/CHANGELOG.md#841-2026-06-19) [Compare Source](https://redirect.github.com/ionic-team/capacitor/compare/8.4.0...8.4.1) ##### Bug Fixes - **cli:** make SPM dependency patch work on prereleases ([#​8508](https://redirect.github.com/ionic-team/capacitor/issues/8508)) ([6048e90](https://redirect.github.com/ionic-team/capacitor/commit/6048e90171afa0229a3c25b52a23c377c6bb804c)) - **cli:** patch Capacitor SPM dependency version in plugins ([#​8492](https://redirect.github.com/ionic-team/capacitor/issues/8492)) ([28bb2c6](https://redirect.github.com/ionic-team/capacitor/commit/28bb2c687069dfdd6aa7abc866004a1c6388d103)) </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:eyJjcmVhdGVkSW5WZXIiOiI0My4yMzEuMSIsInVwZGF0ZWRJblZlciI6IjQzLjIzMS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Issue number: resolves #30145 --------- ## What is the current behavior? `ionic-react`'s `IonTabBar` tries to reference `this.props.onIonTabsWillChange` and `this.props.onIonTabsDidChange`, which do not exist, causing the `onIonTabsWillChange` and `onIonTabsDidChange` events to never fire. ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - Update usage of `this.props.onIonTabsWillChange` to `this.props.tabsContext.tabBarProps.onIonTabsWillChange` - Update usage of `this.props.onIonTabsDidChange` to `this.props.tabsContext.tabBarProps.onIonTabsDidChange` - Add check to make sure `this.props.tabsContext` is truthy before using it - `onIonTabsWillChange` and `onIonTabsDidChange` fire as expected ## Does this introduce a breaking change? - [ ] Yes - [x] No
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [actions/setup-node](https://redirect.github.com/actions/setup-node) | action | minor | `v6.4.0` → `v6.5.0` | --- ### Release Notes <details> <summary>actions/setup-node (actions/setup-node)</summary> ### [`v6.5.0`](https://redirect.github.com/actions/setup-node/compare/v6.4.0...v6.5.0) [Compare Source](https://redirect.github.com/actions/setup-node/compare/v6.4.0...v6.5.0) </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:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTkuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI1OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
… improve styling flexibility by removing default color prop (#31261) Issue number: resolves internal Co-authored-by: Brandy Carney <6577830+brandyscarney@users.noreply.github.com> Co-authored-by: Shane <shane.king@outsystems.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.4.1` → `8.4.2`](https://renovatebot.com/diffs/npm/@capacitor%2fcore/8.4.1/8.4.2) |  |  | --- ### Release Notes <details> <summary>ionic-team/capacitor (@​capacitor/core)</summary> ### [`v8.4.2`](https://redirect.github.com/ionic-team/capacitor/blob/HEAD/CHANGELOG.md#842-2026-07-14) [Compare Source](https://redirect.github.com/ionic-team/capacitor/compare/8.4.1...8.4.2) ##### Bug Fixes - **android:** explicitly grant URI permissions for image capture intent ([#​8526](https://redirect.github.com/ionic-team/capacitor/issues/8526)) ([6f2d328](https://redirect.github.com/ionic-team/capacitor/commit/6f2d3283897a375d09ca9ec8784a9f0d65f0a530)) </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:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTkuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI1OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [actions/setup-node](https://redirect.github.com/actions/setup-node) | action | major | `v6.5.0` → `v7.0.0` | | [actions/setup-node](https://redirect.github.com/actions/setup-node) | action | major | `v6` → `v7` | --- ### Release Notes <details> <summary>actions/setup-node (actions/setup-node)</summary> ### [`v7.0.0`](https://redirect.github.com/actions/setup-node/compare/v6.5.0...v7.0.0) [Compare Source](https://redirect.github.com/actions/setup-node/compare/v7.0.0...v7.0.0) ### [`v7`](https://redirect.github.com/actions/setup-node/compare/v6.5.0...v7.0.0) [Compare Source](https://redirect.github.com/actions/setup-node/compare/v6.5.0...v7.0.0) </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 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:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTkuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI1OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
v9.0.5
Issue number: N/A (docs-only link fix)
---------
## What is the current behavior?
`docs/component-guide.md` links to Angular source files that no longer
exist, so every link in the "Angular value accessors" and "Interface
Exports" steps returns a 404 on GitHub:
-
`/packages/angular/src/directives/control-value-accessors/{text,numeric,boolean,select}-value-accessor.ts`
(5 links)
- `/packages/angular/src/index.ts`
`packages/angular/src/` now only contains `common/`, `lazy/` and
`standalone/`.
## What is the new behavior?
- The value accessor links point at
`packages/angular/src/lazy/directives/control-value-accessors/`, where
the four directives live (their selectors match the ones the guide
quotes).
- The Angular interface-export step points at
`packages/angular/src/lazy/index.ts` and
`packages/angular/src/standalone/index.ts`, which are the two files that
export the `*CustomEvent` / `*EventDetail` types today.
## Does this introduce a breaking change?
- [ ] Yes
- [x] No
## Other information
Docs only, no code changes. Found and prepared with AI assistance
(Claude Code); I checked every new path exists on `main`.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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, the `update-package-lock` job fails the release with `ETARGET No matching version found for @ionic/core@^9.0.x`. Since 9.0.4 npm processes publishes asynchronously, so `npm publish` returns before the version resolves. The registry recorded `@ionic/core` 4s after the publish step on 9.0.3, but 5m11s on 9.0.4 and 5m10s on 9.0.5, against a near constant 5m04s gap from publishing to that job, so the last two releases each missed by about six seconds and needed the job re-run by hand. Separately, `purge-cdn-cache` has never done anything. A missing comma before the `@next` CSS entry made the body invalid JSON, so jsDelivr rejected every purge with `InvalidContent` while `curl` exited 0 and the step stayed green. That has been true since #29121. ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> The `Bump Package Lock` step is split into `Resolve Package Locks`, which retries `lerna exec "npm install --package-lock-only --prefer-online"` every 15s against a 900s wall clock deadline, and `Commit Package Locks`, which does the commit and the push. We retry the install rather than probing with `npm view` first, because the two read separately cached documents and a passing probe wouldn't mean the install resolves. The `--prefer-online` flag is required because a failed install caches the version-less packument locally for 300s, so plain retries never reach the registry. The bound is wall clock rather than an attempt count since one attempt costs about 45s and a fixed count would overrun `timeout-minutes`. The `purge-cdn-cache` job now runs after `update-package-lock` and gates on a new `resolved` output rather than the job's result, so a failed lockfile push still purges but an unresolved version doesn't. The comma is fixed and the step checks the HTTP status, failing on a 4xx because a bad payload is otherwise silent, and warning on anything else so a jsDelivr outage doesn't fail a release. ## 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. --> The `release.yml` workflow only runs on a real production release, so I couldn't test this end to end. I ran each step's shell against stubs for the failure paths, but the first real signal will be the next release.
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@stencil/core](https://stenciljs.com/) ([source](https://redirect.github.com/stenciljs/core)) | [`4.45.0` → `4.45.1`](https://renovatebot.com/diffs/npm/@stencil%2fcore/4.45.0/4.45.1) |  |  | --- ### Release Notes <details> <summary>stenciljs/core (@​stencil/core)</summary> ### [`v4.45.1`](https://redirect.github.com/stenciljs/core/blob/HEAD/CHANGELOG.md#-4451-2026-09-23) [Compare Source](https://redirect.github.com/stenciljs/core/compare/v4.45.0...v4.45.1) ##### Bug Fixes - **compiler:** correct CSS minifier selector-list splitting ([#​6895](https://redirect.github.com/stenciljs/core/issues/6895)) ([332a8fa](https://redirect.github.com/stenciljs/core/commit/332a8fad6358db92b21c8b69a669fd5e4b70d0a4)) - **docs:** derive CEM readonly from getter/setter instead of mutable ([#​6900](https://redirect.github.com/stenciljs/core/issues/6900)) ([1c81131](https://redirect.github.com/stenciljs/core/commit/1c81131f659dd0beaf9bdadd59d5f2a5f895dd38)) - **runtime:** pre-hydrate getter / setter attribute ([#​6890](https://redirect.github.com/stenciljs/core/issues/6890)) ([171d0ce](https://redirect.github.com/stenciljs/core/commit/171d0ce3f0b854cc848a324972c4371b6309743c)) - **ssr:** clear modeResolutionChain on `setMode`. Fixes memory leak ([#​6903](https://redirect.github.com/stenciljs/core/issues/6903)) ([ca9273d](https://redirect.github.com/stenciljs/core/commit/ca9273dfddd60b398725de65559f6a2f355ffe72)) </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:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMDMuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjEwMy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Issue number: N/A (docs-only link fix) --------- ## What is the current behavior? Two links in the Vue contributor docs point at sections that don't exist: - `docs/vue/testing.md` step 1 links "Build" to `../README.md#building`. `docs/README.md` has no Building section. - `packages/vue/README.md` links "test-app directory" to `test/README.md#syncing-local-changes`. `packages/vue/test/README.md` is now a two-line pointer with no such section; the syncing steps live in `docs/vue/testing.md`. ## What is the new behavior? - "Build" points at the Building section of `packages/vue/README.md`, which walks through building `core`, `packages/vue` and `packages/vue-router`, the three projects step 1 names. - The sync sentence links to `docs/vue/testing.md#syncing-local-changes` with an absolute GitHub URL, following the Contributing Guide link in the same README, so it also works on npmjs.com where this README is published. ## Does this introduce a breaking change? - [ ] Yes - [x] No ## Other information Docs only, no code changes. Found and prepared with AI assistance (Claude Code); I checked both target headings exist on `main`, and ran a GitHub Copilot review over the diff. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.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? The translucent in Ionic theme only applies an opacity to the entire header. ## What is the new behavior? On the Ionic theme, a translucent header now uses a progressive blur instead of a single uniform blur. Content scrolling behind `ion-header translucent` is heavily blurred near the top of the header and eases to no blur toward the bottom. iOS and MD translucent headers are unchanged. The `translucent` API is unchanged. ## 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: Cursor <cursoragent@cursor.com> Co-authored-by: ionitron <hi@ionicframework.com>
brandyscarney
force-pushed
the
chore/sync-next-modular
branch
from
September 28, 2026 15:29
a610777 to
b6364a5
Compare
Brings in the tokens major release (outsystems-design-tokens v1.3.9 -> v2.3.0) and the other 6 commits added to next. Conflict resolutions: - Snapshots (207 .png): took next's versions as the baseline; these need regenerating in CI now that the tokens release changed rendering. - badge/chip/progress-bar .ionic.scss: kept modular's deletion. These components are migrated to CSS custom properties fed by the theme layer, so next's token renames in them have no modular equivalent to port. - ionic.theme.default.scss: kept modular's deletion of $ionic-colors. next only tweaked values inside it, and nothing in modular references the map. - Angular proxies (9 files): kept modular's prop membership and ordering, applied next's nullableBooleanAttribute transforms. No 'theme' input re-added for the migrated components. - overlays.ts: imported focusRedirectedElement only; componentOnReady is unused in modular, which uses waitForComponentReady. - core/package.json: took next's build.tokens flags, kept modular's build.themes script. - BREAKING.md: union of both sides' sections, TOC ordered to match the body. - testing/styles.css: took next's CI font override; the --token-font-family hook and the ionic theme both still exist in modular. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
brandyscarney
added this pull request to stack #31499
September 28, 2026 17:37
Sync next with main.
Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
thetaPC
reviewed
Sep 28, 2026
Contributor
Member
Author
There was a problem hiding this comment.
Yes I opened a separate PR to remove them already: #31498
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Syncs the
nextbranch with the following additional commits: