Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
23253db
chore(git): sync main (#30858)
ShaneK Dec 10, 2025
1886864
chore(git): sync main (#30994)
ShaneK Mar 5, 2026
ec4740a
Merge remote-tracking branch 'origin/main' into sync-major-9.0-with-main
ShaneK Apr 1, 2026
9c0bcb3
chore(git): sync with main (#31060)
ShaneK Apr 1, 2026
66a3e8a
feat(router-outlet): add swipeGesture prop to control swipe-to-go-bac…
ShaneK Apr 13, 2026
2bf8c97
chore(deps): update react and stencil/react-output-target (#31063)
OS-jacobbell Apr 15, 2026
346048b
feat(picker-legacy, picker-legacy-column): remove legacy components (…
thetaPC Apr 23, 2026
150ba3a
feat(react-router): upgrade to react router 6 (#30831)
ShaneK Apr 27, 2026
e4d7a6a
chore(deps): unpin @stencil/react-output-target to ^1.5.2 (#31098)
ShaneK Apr 28, 2026
0eed531
Merge remote-tracking branch 'origin/main' into sync-major-9.0-with-main
ShaneK Apr 30, 2026
aeff402
chore(): regenerate react-router package-lock
ShaneK Apr 30, 2026
9fb6430
chore(git): sync with main (#31104)
ShaneK Apr 30, 2026
33aafec
chore(vercel): add react-router preview build and fix dir-index navig…
ShaneK Apr 30, 2026
b40a6bc
Merge remote-tracking branch 'origin/main' into sync-major-9.0-with-main
ShaneK May 4, 2026
5ec8eaf
chore(git): sync with main (#31111)
ShaneK May 4, 2026
2c69d0f
chore(deps): update @stencil/vue-output-target (#31107)
OS-jacobbell May 6, 2026
71ff101
Merge remote-tracking branch 'origin/main' into sync-major-9.0-with-main
ShaneK May 6, 2026
29b20cd
chore(git): sync with main (#31121)
ShaneK May 6, 2026
071bf3c
fix(select): only emit ionChange when value changes (#31125)
ShaneK May 8, 2026
3bc8d8f
feat(vue-router): upgrade to vue-router 5 (#31117)
ShaneK May 8, 2026
15e062b
fix(vue-router): keep tab back button working after history rewrite (…
ShaneK May 12, 2026
9f69f50
fix(vue-router): set pushedByRoute on same-tab push with direction no…
ShaneK May 12, 2026
cb860e4
chore(ci): use latest stencil react-output-target in nightly (#31088)
OS-jacobbell May 14, 2026
1f5ef85
fix(vue-router): prevent out-of-bounds index when popping across tabs…
ShaneK May 15, 2026
9cd57dc
fix(vue-router): tab button works on a deep-loaded tab child (#31144)
ShaneK May 15, 2026
612ff06
fix(vue-router): honor caller-provided direction on replace navigatio…
ShaneK May 15, 2026
8eca177
fix(vue-router): sync URL with display on browser back after tab swit…
ShaneK May 15, 2026
ee190ee
fix(vue-router): invoke beforeRouteEnter next() callbacks with compon…
ShaneK May 19, 2026
55e73a2
Merge remote-tracking branch 'origin/main' into sync-major-9.0-with-main
ShaneK May 21, 2026
b4a3dce
chore(): add updated snapshots
Ionitron May 21, 2026
3a48117
chore(git): sync with main (#31163)
ShaneK May 21, 2026
726840d
Merge remote-tracking branch 'origin/main' into sync-major-9.0-with-main
ShaneK May 28, 2026
2527fab
chore(ci): bump @playwright/test to ^1.60.0 in vue3 and react-router …
ShaneK May 28, 2026
cc59f0c
chore(git): sync with main (#31177)
ShaneK May 28, 2026
312a3a7
feat(core): add package exports map for ESM subpath resolution (#31180)
ShaneK Jun 1, 2026
ba27083
feat(angular): support Angular 21, drop Angular 16 and 17 (#31185)
ShaneK Jun 5, 2026
a1eb6a1
feat(angular): default to zoneless change detection (#31196)
ShaneK Jun 9, 2026
30f6ae7
Merge remote-tracking branch 'origin/main' into sync-major-9.0-with-main
ShaneK Jun 11, 2026
9d9a1cc
chore(git): sync with main (#31211)
ShaneK Jun 11, 2026
bd21e00
feat(angular): support Angular 22 (#31205)
ShaneK Jun 11, 2026
5d201bd
feat(modal): default handleBehavior to "cycle" for sheet modals (#31222)
thetaPC Jun 17, 2026
e6cf649
feat(select): remove role from action sheet interface (#31221)
thetaPC Jun 17, 2026
b8c498b
Merge remote-tracking branch 'origin/main' into sync-major-9.0-with-main
ShaneK Jun 18, 2026
8cfdced
chore(git): sync with main (#31233)
ShaneK Jun 18, 2026
7a95d47
fix(react-router): sync child props through Routes wrapper on re-rend…
ShaneK Jun 22, 2026
a35e13d
feat(select): add labelPlacement prop, justify prop, and rich content…
thetaPC Jun 25, 2026
8ba507c
feat(angular): make standalone imports default (#31217)
OS-jacobbell Jul 1, 2026
ef7cd99
Merge remote-tracking branch 'origin/main' into sync-major-9.0-with-main
ShaneK Jul 1, 2026
ba1e9d9
test(angular): import nav-modal-root comps from @ionic/angular
ShaneK Jul 1, 2026
40d4aba
chore(git): sync with main (#31258)
ShaneK Jul 1, 2026
0eaba06
feat(img): deprecate ion-img (#31254)
brandyscarney Jul 9, 2026
17edecb
feat(datetime, datetime-button, picker-column, picker-column-option):…
thetaPC Jul 14, 2026
d7354b5
feat(nav): remove ion-router integration (#31266)
ShaneK Jul 17, 2026
37a903a
feat(platform): remove capacitor v2 isNative fallback from native det…
ShaneK Jul 18, 2026
1116afc
feat(angular): deprecate IonicModule (#31270)
thetaPC Jul 20, 2026
cff35f5
Merge remote-tracking branch 'origin/main' into sync-major-9.0-with-main
ShaneK Jul 23, 2026
8d162d2
fix(modal): keep dialog focus on present with cycle handle
ShaneK Jul 23, 2026
a334b43
chore(git): sync with main (#31290)
ShaneK Jul 23, 2026
ba85a75
chore(vue-router): upgrade vue-router to 5.2.0, vite to ^8 (#31300)
ShaneK Jul 27, 2026
d63ecbc
fix(react): don't render false boolean props as attributes (#31294)
ShaneK Jul 28, 2026
1a4d194
feat(migrate): add v8-to-v9 migration tool (#31285)
ShaneK Jul 31, 2026
3edc1c3
feat(icon): add font icon support to ion-icon (#31302)
brandyscarney Aug 3, 2026
a1706a3
chore(many): upgrade Typescript (#31280)
thetaPC Aug 4, 2026
0622f83
chore(ci): add lint and check diff steps to angular-server build (#31…
ShaneK Aug 5, 2026
ab5eb7b
Merge remote-tracking branch 'origin/main' into sync-major-9.0-with-main
ShaneK Aug 5, 2026
78eac41
chore(): add updated snapshots
Ionitron Aug 5, 2026
b07a15b
chore(git): sync with main (#31330)
ShaneK Aug 5, 2026
279fb16
chore(vue): enable strict type checking in vue and vue-router (#31320)
ShaneK Aug 6, 2026
212c5f0
chore(build): add typecheck step to react and react-router (#31334)
ShaneK Aug 6, 2026
88661e3
feat(modal): expose isDismissing on ionDragEnd (#31002)
aeharding Aug 7, 2026
77961f0
chore(many): align @types/node with CI's Node 24 (#31327)
ShaneK Aug 7, 2026
810268e
fix(many): gate debug logs behind the DEBUG log level (#31342)
ShaneK Aug 11, 2026
0631186
chore(migrate): add the migrate package to the deploy orchestrator (#…
ShaneK Aug 12, 2026
1048d10
Merge remote-tracking branch 'origin/main' into sync-major-9.0-with-main
ShaneK Aug 13, 2026
b723425
chore(git): sync with main (#31354)
ShaneK Aug 13, 2026
e83ac02
chore(react): enforce React 18 as the minimum supported version (#31358)
ShaneK Aug 14, 2026
a1927bf
chore(migrate): target v9 by major instead of a dev build pin (#31359)
ShaneK Aug 14, 2026
06034e0
chore(deps): bump stencil output target versions across packages (#31…
OS-jacobbell Aug 14, 2026
a292789
fix(input): support floating labels with slotted content (#31309)
brandyscarney Aug 14, 2026
9dc4ea3
fix(textarea): support floating labels with slotted content (#31321)
brandyscarney Aug 14, 2026
fad7c0a
fix(select): support floating labels with slotted content (#31326)
brandyscarney Aug 14, 2026
c7a9336
feat(angular): allow per-component standalone import paths for better…
OS-jacobbell Aug 14, 2026
37525a2
feat(migrate): cover the remaining v9 breaking changes (#31355)
ShaneK Aug 14, 2026
a4a1286
fix(migrate): cover angular's browser policy and gate zoneless on zon…
ShaneK Aug 14, 2026
38d5922
fix(react): clear reflected attributes for nullish props (#31361)
ShaneK Aug 17, 2026
cebd101
feat(react): type overlay hook component props (#31362)
ShaneK Aug 18, 2026
eae327d
test(angular): register Ionic components on the landing page (#31367)
ShaneK Aug 19, 2026
e01a9eb
Merge remote-tracking branch 'origin/main' into sync-major-9.0-with-main
ShaneK Aug 19, 2026
732936f
chore(git): sync with main (#31370)
ShaneK Aug 19, 2026
68a2fea
chore(migrate): release 1.0.0 (#31372)
ShaneK Aug 19, 2026
af99da3
v9.0.0
Ionitron Aug 19, 2026
def000d
chore(): update package lock files
Ionitron Aug 19, 2026
1d93b86
chore(github): update to include v9
brandyscarney Aug 19, 2026
b53c69d
docs(changelog): update to point to guides
brandyscarney Aug 19, 2026
6a78ddb
refactor(migrate): escape all regex metacharacters in exclude dirs
ShaneK Aug 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ body:
id: affected-versions
attributes:
label: Ionic Framework Version
description: Which version(s) of Ionic Framework does this issue impact? [Ionic Framework 1.x to 6.x are no longer supported](https://ionicframework.com/docs/reference/support#framework-maintenance-and-support-status). For extended support, considering visiting [Ionic's Enterprise offering](https://ionic.io/enterprise).
description: Which version(s) of Ionic Framework does this issue impact? [Ionic Framework 1.x to 7.x are no longer supported](https://ionicframework.com/docs/reference/support#framework-maintenance-and-support-status).
options:
- v7.x
- v8.x
- v9.x
- Nightly
multiple: true
validations:
Expand Down
15 changes: 15 additions & 0 deletions .github/workflows/actions/build-angular-server/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,25 @@ runs:
run: npm run sync
shell: bash
working-directory: ./packages/angular-server
- name: 🖌️ Lint
run: npm run lint
shell: bash
working-directory: ./packages/angular-server
# No Typecheck step here. Unlike the rollup-built packages, which report
# type errors as warnings and still exit 0, ng-packagr fails the build on
# them, so the Build step below already covers this.
- name: 🏗️ Build
run: npm run build.prod
shell: bash
working-directory: ./packages/angular-server
- name: Clean core package.json
run: git checkout ./package.json
shell: bash
working-directory: ./core
- name: 🔍 Check Diff
run: git diff --exit-code
shell: bash
working-directory: ./packages/angular-server
- uses: ./.github/workflows/actions/upload-archive
with:
name: ionic-angular-server
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/actions/build-angular/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ runs:
run: npm run lint
shell: bash
working-directory: ./packages/angular
# No Typecheck step here. Unlike the rollup-built packages, which report
# type errors as warnings and still exit 0, ng-packagr fails the build on
# them, so the Build step below already covers this.
- name: 🏗️ Build
run: npm run build
shell: bash
Expand All @@ -39,4 +42,4 @@ runs:
with:
name: ionic-angular
output: ./packages/angular/AngularBuild.zip
paths: ./packages/angular/dist
paths: ./packages/angular/dist ./packages/angular/css
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
name: 'Build Ionic Core with Stencil Prerelease'
description: 'Build Ionic Core with a Prerelease Build of Stencil'
inputs:
stencil-version:
stencil-core-version:
description: 'The NPM tag of @stencil/core to install.'
type: string
required: true
stencil-react-output-target-version:
description: 'The NPM tag of @stencil/react-output-target to install.'
type: string
required: true
runs:
using: 'composite'
steps:
Expand All @@ -13,13 +17,17 @@ runs:
with:
node-version: 24.x

- name: 🕸️ Install Dependencies
- name: 🕸️ Install Core Dependencies
run: npm ci
working-directory: ./core
shell: bash
- name: 📦 Install Stencil ${{ inputs.stencil-version }}
- name: 📦 Install Stencil Core ${{ inputs.stencil-core-version }}
working-directory: ./core
run: npm i @stencil/core@${{ inputs.stencil-core-version }}
shell: bash
- name: 📦 Install Stencil React Output Target ${{ inputs.stencil-react-output-target-version }}
working-directory: ./core
run: npm i @stencil/core@${{ inputs.stencil-version }}
run: npm i @stencil/react-output-target@${{ inputs.stencil-react-output-target-version }}
shell: bash
- name: 🏗️ Build Core
run: npm run build -- --ci --debug --verbose
Expand All @@ -29,8 +37,16 @@ runs:
run: npm run test.lazy-imports
working-directory: ./core
shell: bash
- name: 🕸️ Install React Package Dependencies
run: npm ci
working-directory: ./packages/react
shell: bash
- name: 🏗️ Lint React Package
run: npm run lint
working-directory: ./packages/react
shell: bash
- uses: ./.github/workflows/actions/upload-archive
with:
name: ionic-core
output: core/CoreBuild.zip
paths: core/dist core/components core/css core/hydrate core/loader core/src/components.d.ts core/package.json
paths: core/dist core/components core/css core/hydrate core/loader core/src/components.d.ts core/package.json packages/react/src/components/components.ts
2 changes: 1 addition & 1 deletion .github/workflows/actions/build-core/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,4 @@ runs:
output: core/CoreBuild.zip
# Include generated proxy files from Stencil output targets so
# framework builds can detect when they need to be updated
paths: core/dist core/components core/css core/hydrate core/loader core/src/components.d.ts core/api.txt packages/angular/src/directives/proxies.ts packages/angular/src/directives/proxies-list.ts packages/angular/standalone/src/directives/proxies.ts packages/vue/src/proxies.ts packages/react/src/components/proxies.ts packages/react/src/components/inner-proxies.ts packages/react/src/components/routing-proxies.ts
paths: core/dist core/components core/css core/hydrate core/loader core/src/components.d.ts core/api.txt packages/angular/src/lazy/directives/proxies.ts packages/angular/src/lazy/directives/proxies-list.ts packages/angular/src/standalone/directives packages/vue/src/proxies.ts packages/react/src/components/proxies.ts packages/react/src/components/inner-proxies.ts packages/react/src/components/routing-proxies.ts
12 changes: 12 additions & 0 deletions .github/workflows/actions/build-react-router/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,22 @@ runs:
run: npm run lint
shell: bash
working-directory: ./packages/react-router
# The rollup build reports type errors as warnings and still succeeds, so
# this step is what keeps the package type-clean.
- name: 🔎 Typecheck
run: npm run typecheck
shell: bash
working-directory: ./packages/react-router
- name: 🏗️ Build
run: npm run build
shell: bash
working-directory: ./packages/react-router
- name: Clean package.json updates
run: git checkout ./core/package.json ./packages/react/package.json
shell: bash
- name: 🔍 Check Diff
run: git diff --exit-code
shell: bash
- uses: ./.github/workflows/actions/upload-archive
with:
name: ionic-react-router
Expand Down
22 changes: 13 additions & 9 deletions .github/workflows/actions/build-react/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,12 @@ runs:
run: npm run lint
shell: bash
working-directory: ./packages/react
# The rollup build reports type errors as warnings and still succeeds, so
# this step is what keeps the package type-clean.
- name: 🔎 Typecheck
run: npm run typecheck
shell: bash
working-directory: ./packages/react
- name: 🏗️ Build
run: npm run build
shell: bash
Expand All @@ -31,16 +37,14 @@ runs:
run: npm run test.spec
shell: bash
working-directory: ./packages/react
- name: Clean core package.json
run: git checkout ./package.json
shell: bash
working-directory: ./core
- name: 🔍 Check Diff
run: git diff --exit-code
shell: bash
working-directory: ./packages/react
- uses: ./.github/workflows/actions/upload-archive
with:
name: ionic-react
output: packages/react/ReactBuild.zip
paths: packages/react/dist packages/react/css
paths: packages/react/dist packages/react/css packages/react/package.json
- name: Clean package.json updates
run: git checkout ./core/package.json ./packages/react/package.json
shell: bash
- name: 🔍 Check Diff
run: git diff --exit-code
shell: bash
14 changes: 11 additions & 3 deletions .github/workflows/actions/build-vue-router/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,22 @@ runs:
run: npm run lint
shell: bash
working-directory: ./packages/vue-router
# The rollup build reports type errors as warnings and still succeeds, so
# this step is what keeps the package type-clean.
- name: 🔎 Typecheck
run: npm run typecheck
shell: bash
working-directory: ./packages/vue-router
- name: 🏗️ Build
run: npm run build
shell: bash
working-directory: ./packages/vue-router
- name: 🧪 Test Spec
run: npm run test.spec
- name: Clean package.json updates
run: git checkout ./core/package.json
shell: bash
- name: 🔍 Check Diff
run: git diff --exit-code
shell: bash
working-directory: ./packages/vue-router
- uses: ./.github/workflows/actions/upload-archive
with:
name: ionic-vue-router
Expand Down
12 changes: 8 additions & 4 deletions .github/workflows/actions/build-vue/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,18 +23,22 @@ runs:
run: npm run lint
shell: bash
working-directory: ./packages/vue
# The rollup build reports type errors as warnings and still succeeds, so
# this step is what keeps the package type-clean.
- name: 🔎 Typecheck
run: npm run typecheck
shell: bash
working-directory: ./packages/vue
- name: 🏗️ Build
run: npm run build
shell: bash
working-directory: ./packages/vue
- name: Clean core package.json
run: git checkout ./package.json
- name: Clean package.json updates
run: git checkout ./core/package.json ./packages/react/package.json
shell: bash
working-directory: ./core
- name: 🔍 Check Diff
run: git diff --exit-code
shell: bash
working-directory: ./packages/vue
- uses: ./.github/workflows/actions/upload-archive
with:
name: ionic-vue
Expand Down
5 changes: 2 additions & 3 deletions .github/workflows/actions/test-core-clean-build/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,9 @@ runs:
name: ionic-core
path: ./core
filename: CoreBuild.zip
- name: Clean core package.json
run: git checkout ./package.json
- name: Clean package.json updates
run: git checkout ./core/package.json ./packages/react/package.json
shell: bash
working-directory: ./core
- name: 🔍 Check Diff
run: |
git diff --exit-code || {
Expand Down
12 changes: 11 additions & 1 deletion .github/workflows/actions/test-react-router-e2e/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ runs:
run: npm install
shell: bash
working-directory: ./packages/react-router/test/build/${{ inputs.app }}
- name: 📦 Install Playwright Browsers
run: npx playwright install chromium
shell: bash
working-directory: ./packages/react-router/test/build/${{ inputs.app }}
- name: 🔄 Sync Built Changes
run: npm run sync
shell: bash
Expand All @@ -40,7 +44,13 @@ runs:
run: npm run build
shell: bash
working-directory: ./packages/react-router/test/build/${{ inputs.app }}
- name: 🧪 Run Tests
- name: 🧪 Run Cypress Tests
run: npm run e2e
shell: bash
working-directory: ./packages/react-router/test/build/${{ inputs.app }}
- name: 🎭 Run Playwright Tests
run: npx playwright test --retries=2
env:
CI: true
shell: bash
working-directory: ./packages/react-router/test/build/${{ inputs.app }}
10 changes: 10 additions & 0 deletions .github/workflows/actions/test-vue-e2e/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ runs:
run: npm install
shell: bash
working-directory: ./packages/vue/test/build/${{ inputs.app }}
- name: 📦 Install Playwright Browsers
run: npx playwright install chromium
shell: bash
working-directory: ./packages/vue/test/build/${{ inputs.app }}
- name: 🔄 Sync
run: npm run sync
shell: bash
Expand All @@ -44,3 +48,9 @@ runs:
run: npm run test:e2e
shell: bash
working-directory: ./packages/vue/test/build/${{ inputs.app }}
- name: 🎭 Run Playwright Tests
run: npx playwright test --retries=2
env:
CI: true
shell: bash
working-directory: ./packages/vue/test/build/${{ inputs.app }}
6 changes: 3 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ jobs:
strategy:
fail-fast: false
matrix:
apps: [ng16, ng17, ng18, ng19, ng20]
apps: [ng18, ng19, ng20, ng21, ng22]
needs: [build-angular, build-angular-server]
runs-on: ubuntu-latest
steps:
Expand Down Expand Up @@ -176,7 +176,7 @@ jobs:
strategy:
fail-fast: false
matrix:
apps: [reactrouter5]
apps: [reactrouter6-react18, reactrouter6-react19]
needs: [build-react, build-react-router]
runs-on: ubuntu-latest
steps:
Expand All @@ -198,7 +198,7 @@ jobs:
strategy:
fail-fast: false
matrix:
apps: [react17, react18, react19]
apps: [react18, react19]
needs: [build-react, build-react-router]
runs-on: ubuntu-latest
steps:
Expand Down
Loading
Loading