Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1763 commits
Select commit Hold shift + click to select a range
d65ddb5
chore(deps): update dependency vue to v3.5.31 (#4452)
renovate[bot] Mar 30, 2026
9443312
chore(deps): update dependency web-vitals to v5.2.0 (#4453)
renovate[bot] Mar 30, 2026
fa4901b
docs(react): add utility functions page with useIonRouter docs (#4455)
ShaneK Mar 31, 2026
fbf2799
docs(react,angular): use ionPage prop for nested outlets and add navi…
ShaneK Mar 31, 2026
ba23835
docs(item): add routing section explaining how routerLink works (#4456)
ShaneK Mar 31, 2026
20de9bb
chore(deps): update ionic to v8.8.3 (#4458)
renovate[bot] Apr 2, 2026
12d2c6d
chore(deps): update angular to v20.3.22 (#4457)
renovate[bot] Apr 2, 2026
f5a0b79
chore(deps): update dependency vite to v8.0.4 (#4463)
renovate[bot] Apr 9, 2026
0f1bbf9
chore(deps): update dependency vite to v8.0.4 (#4462)
renovate[bot] Apr 9, 2026
b36147c
chore(deps): update dependency vite-plugin-static-copy to v4.0.1 (#4461)
renovate[bot] Apr 9, 2026
b65802c
chore(deps): update dependency vue to v3.5.32 (#4459)
renovate[bot] Apr 9, 2026
724240c
chore(deps): update dependency @types/node to v24.12.2 (#4460)
renovate[bot] Apr 9, 2026
5a6271a
chore(deps): update react to v19.2.5 (#4467)
renovate[bot] Apr 13, 2026
4afc53e
chore(deps): update dependency vite to v8.0.5 (#4466)
renovate[bot] Apr 13, 2026
217b3f7
chore(deps): update dependency vite to v8.0.5 (#4465)
renovate[bot] Apr 13, 2026
76c95dd
chore(deps): update dependency vite to v8.0.5 (#4464)
renovate[bot] Apr 13, 2026
1eb78c2
docs(item): document required react version for ionic v9 (#4472)
OS-jacobbell Apr 15, 2026
741f563
docs(picker-legacy): remove legacy component (#4468)
thetaPC Apr 23, 2026
2f37cb6
chore(deps): update ionic to v8.8.4 (#4473)
renovate[bot] Apr 24, 2026
784db39
chore(deps): update dependency vue-tsc to v3.2.7 (#4474)
renovate[bot] Apr 24, 2026
0929324
chore(deps): update dependency vite to v8.0.8 (#4471)
renovate[bot] Apr 24, 2026
1851f81
chore(deps): update dependency vite to v8.0.8 (#4470)
renovate[bot] Apr 24, 2026
66d84d8
chore(deps): update dependency vite to v8.0.8 (#4469)
renovate[bot] Apr 24, 2026
4c99103
chore(deps): update dependency vue to v3.5.33 (#4476)
renovate[bot] Apr 27, 2026
3e0d9fb
chore(deps): update vite-vue (#4479)
renovate[bot] Apr 27, 2026
d854b10
chore(deps): update vite-html (#4478)
renovate[bot] Apr 27, 2026
41f95bd
chore(deps): update dependency vue-router to v5.0.6 (#4477)
renovate[bot] Apr 27, 2026
a1721d2
chore(deps): update dependency vite to v8.0.10 (#4475)
renovate[bot] Apr 27, 2026
1ba4b1b
chore(deps): update ionic to v8.8.5 (#4480)
renovate[bot] Apr 30, 2026
1c612e7
docs(usage): update index files to point to v9 usage folder (#4481)
brandyscarney Apr 30, 2026
30c1bf6
fix(api): do not render a code block for unnamed slots (#4482)
brandyscarney Apr 30, 2026
1fefcdc
chore(deps): update angular to v20.3.24 (#4485)
renovate[bot] May 1, 2026
7635acd
chore(playground): use vue code fence in Vue playground template (#4487)
thetaPC May 6, 2026
cf994d3
chore(deps): update dependency vue-tsc to v3.2.8 (#4489)
renovate[bot] May 7, 2026
13885f8
chore(deps): update ionic to v8.8.6 (#4488)
renovate[bot] May 7, 2026
1ab61c6
docs(select): document ionChange behavior change in v9 upgrade guide …
ShaneK May 8, 2026
65f9fd1
docs(updating): add vue router 5 migration guidance for ionic 9 (#4491)
ShaneK May 8, 2026
d78af53
chore(deps): update dependency vite to v8.0.11 (#4495)
renovate[bot] May 12, 2026
4677855
chore(deps): update dependency vite to v8.0.11 (#4494)
renovate[bot] May 12, 2026
b611ae8
chore(deps): update dependency vite to v8.0.11 (#4493)
renovate[bot] May 12, 2026
798f3c3
chore(deps): update dependency @types/node to v24.12.3 (#4492)
renovate[bot] May 12, 2026
04e4250
chore(deps): update react to v19.2.6 (#4497)
renovate[bot] May 12, 2026
2f7196a
chore(deps): update dependency vue to v3.5.34 (#4496)
renovate[bot] May 12, 2026
5cadddd
fix(api): prefix the property and method headings to avoid duplicates…
brandyscarney May 13, 2026
21618d6
chore(deps): update dependency vite to v8.0.12 (#4502)
renovate[bot] May 14, 2026
5032f53
chore(deps): update dependency vite to v8.0.12 (#4501)
renovate[bot] May 14, 2026
2502b2c
chore(deps): update ionic to v8.8.7 (#4500)
renovate[bot] May 14, 2026
efc5cce
docs(vue): add troubleshooting entry for blank screen in Capacitor bu…
ShaneK May 19, 2026
aab649b
chore(deps): update vite-react (#4509)
renovate[bot] May 19, 2026
4b93fb7
chore(deps): update dependency vue-tsc to v3.2.9 (#4508)
renovate[bot] May 19, 2026
2b1c3e7
chore(deps): update dependency vue-router to v5.0.7 (#4507)
renovate[bot] May 19, 2026
f95932f
chore(deps): update dependency vite to v8.0.13 (#4506)
renovate[bot] May 19, 2026
cb9c076
chore(deps): update dependency @types/node to v24.12.4 (#4503)
renovate[bot] May 19, 2026
70bf773
chore(deps): update dependency vite to v8.0.12 (#4504)
renovate[bot] May 19, 2026
2a91264
chore(deps): update vite-vue (#4511)
renovate[bot] May 20, 2026
6ea351b
docs(gallery): add documentation for new gallery component (#4484)
brandyscarney May 20, 2026
97775bb
chore(deps): update ionic to v8.8.8 (#4513)
renovate[bot] May 21, 2026
92f1786
chore(deps): update dependency vite to v8.0.14 (#4517)
renovate[bot] May 26, 2026
92c527a
chore(deps): update dependency vue-tsc to v3.3.1 (#4520)
renovate[bot] May 26, 2026
4c4bd23
chore(deps): update dependency vite to v8.0.14 (#4518)
renovate[bot] May 26, 2026
247e4ac
chore(deps): update dependency @types/react to v19.2.15 (#4516)
renovate[bot] May 26, 2026
5e3b2cf
chore(deps): update dependency vite to v8.0.14 (#4519)
renovate[bot] May 26, 2026
ee99eb9
docs(vue): recommend passing URL parameters as props instead of useRo…
ShaneK May 26, 2026
a52dd0b
docs(updating): document @ionic/core package exports field in v9 upgr…
ShaneK Jun 1, 2026
48a3c93
chore(deps): update dependency vue to v3.5.35 (#4525)
renovate[bot] Jun 1, 2026
4430596
chore(deps): update angular to v20.3.26 (#4524)
renovate[bot] Jun 1, 2026
80a5ef4
chore(deps): update dependency vue-tsc to v3.3.2 (#4521)
renovate[bot] Jun 1, 2026
cb38860
chore(deps): update dependency web-vitals to v5.3.0 (#4527)
renovate[bot] Jun 2, 2026
300ef22
chore(deps): update ionic to v8.8.9 (#4533)
renovate[bot] Jun 4, 2026
51fe936
docs(gallery): add a note about supporting css variables in gap (#4532)
brandyscarney Jun 4, 2026
2a7928a
chore(deps): update dependency vue-router to v5.1.0 (#4526)
renovate[bot] Jun 4, 2026
b2c7dbd
chore(deps): update vue-language-tools monorepo to v3.3.3 (#4530)
renovate[bot] Jun 4, 2026
87800e3
docs(datetime): fix a spelling mistake in the API documentation (#4528)
bipoza Jun 4, 2026
13d677e
chore(deps): update vite-react to v8.0.15 (#4535)
renovate[bot] Jun 4, 2026
6100934
chore(deps): update vite-html to v8.0.15 (#4534)
renovate[bot] Jun 4, 2026
f54f3ed
chore(deps): update vite-vue to v8.0.16 (#4536)
renovate[bot] Jun 4, 2026
0a95f6d
chore(deps): update react monorepo to v19.2.16 (#4537)
renovate[bot] Jun 5, 2026
877fe7a
docs(angular): document Angular 21 support and bump playground scaffo…
ShaneK Jun 5, 2026
bc40ee2
chore(deps): update react monorepo to v19.2.17 (#4545)
renovate[bot] Jun 9, 2026
15f27bf
chore(deps): update dependency @types/node to v24.13.0 (#4543)
renovate[bot] Jun 9, 2026
fd05f60
chore(deps): update vite-react to v8.0.16 (#4540)
renovate[bot] Jun 9, 2026
900c079
chore(deps): update vite-html to v8.0.16 (#4539)
renovate[bot] Jun 9, 2026
d0b4a97
chore(deps): update react to v19.2.7 (#4538)
renovate[bot] Jun 9, 2026
dc14906
docs(angular): add zoneless change detection guide and update v9 upgr…
ShaneK Jun 9, 2026
cafa744
docs(select): add new section on rich content options (#4512)
brandyscarney Jun 9, 2026
ade66fa
chore(deps): update dependency @types/node to v24.13.1 (#4547)
renovate[bot] Jun 10, 2026
e9c0347
chore(deps): update vite-html to v4.1.1 (#4548)
renovate[bot] Jun 10, 2026
ee4068c
docs(deployment): update Play Store deployment instructions (#4522)
Prinzhorn Jun 10, 2026
d90a6ba
docs(react): update pwa Firebase instructions for public directory (#…
VictorNorman Jun 10, 2026
70d8be8
docs(angular): bump v9 playground to Angular 21 and document Angular …
ShaneK Jun 11, 2026
46ae99e
chore(deps): update vue-language-tools monorepo to v3.3.4 (#4553)
renovate[bot] Jun 12, 2026
3d0029c
chore(deps): update ionic to v8.8.10 (#4552)
renovate[bot] Jun 12, 2026
9173d31
feat: add docusaurus-plugin-copy-page-button (#4499)
portdeveloper Jun 12, 2026
8011a45
docs(gallery): add documentation for new gallery-item component (#4544)
brandyscarney Jun 12, 2026
0e0dd19
chore(deps): update vue monorepo to v3.5.38 (#4556)
renovate[bot] Jun 15, 2026
144b11c
chore(deps): update dependency @types/node to v24.13.2 (#4555)
renovate[bot] Jun 15, 2026
1f92c87
docs(quickstart): clarify collapsible large title is iOS-only (#4551)
Austin-Spriggs Jun 15, 2026
a46d5d4
chore(deps): update ionic to v8.8.11 (#4558)
renovate[bot] Jun 18, 2026
f168f12
chore(deps): update ionic to v8.8.12 (#4560)
renovate[bot] Jun 25, 2026
9cb4ef4
chore(deps): update vue-language-tools monorepo to v3.3.5 (#4557)
renovate[bot] Jun 29, 2026
30001ae
chore(deps): update dependency vue to v3.5.39 (#4561)
renovate[bot] Jun 29, 2026
020575b
chore(deps): update vite-react (#4562)
renovate[bot] Jun 29, 2026
0ab6f80
fix(v6): redeploy v6 documentation (#4567)
brandyscarney Jul 1, 2026
a344502
chore(deps): update ionic to v8.8.13 (#4570)
renovate[bot] Jul 2, 2026
586ea6e
docs(angular): migrate your-first-app tutorial to standalone componen…
ShaneK Jul 2, 2026
10521fe
chore(deps): update dependency vite to v8.1.0 (#4563)
renovate[bot] Jul 2, 2026
d94ff32
chore(deps): update dependency vite to v8.1.0 (#4564)
renovate[bot] Jul 2, 2026
bad9d9d
chore(deps): update angular to v20.3.30 (#4566)
renovate[bot] Jul 2, 2026
6453547
chore(deps): update dependency vite to v8.1.3 (#4573)
renovate[bot] Jul 7, 2026
89f26f8
chore(deps): update dependency vite to v8.1.3 (#4572)
renovate[bot] Jul 7, 2026
99f7a6e
chore(deps): update dependency vite to v8.1.3 (#4574)
renovate[bot] Jul 7, 2026
fbdc0e8
chore(deps): update dependency vue-tsc to v3.3.6 (#4575)
renovate[bot] Jul 7, 2026
63d34b9
docs(img): deprecate ion-img and update migration guide to reflect th…
brandyscarney Jul 9, 2026
17d640b
docs(your-first-app): replace ion-img usage with img (#4571)
brandyscarney Jul 9, 2026
07cd724
docs(support): update support tables for v9 and enterprise (#4568)
brandyscarney Jul 9, 2026
28d7bf3
chore(deps): update dependency vite to v8.1.4 (#4580)
renovate[bot] Jul 13, 2026
97fe68d
chore(deps): update dependency vite to v8.1.4 (#4579)
renovate[bot] Jul 13, 2026
e8a5025
chore(deps): update dependency vite to v8.1.4 (#4578)
renovate[bot] Jul 13, 2026
d8a4700
chore(deps): update dependency @types/node to v24.13.3 (#4577)
renovate[bot] Jul 13, 2026
4f748ae
chore(deps): update dependency vue-tsc to v3.3.7 (#4582)
renovate[bot] Jul 15, 2026
23f289d
docs(datetime): update method links for confirmation buttons section …
thetaPC Jul 15, 2026
9f4f14e
chore: merge main into major-9.0
ShaneK Jul 15, 2026
c915c9d
fix(docs): add angular/overlays to v8 sidebar
ShaneK Jul 15, 2026
231f8e0
fix(docs): update API prop anchor links for the prop- prefix change
ShaneK Jul 15, 2026
5a2a7c7
chore(deps): update ionic to v8.8.14 (#4587)
renovate[bot] Jul 16, 2026
39ad5c8
docs(angular): document standalone and lazy import path changes (#4576)
OS-jacobbell Jul 16, 2026
afb3920
docs(angular): update standalone import paths in v9 static assets (#4…
OS-jacobbell Jul 16, 2026
8f47fa3
Merge pull request #4586 from ionic-team/chore/merge-main-2026-07-15
ShaneK Jul 16, 2026
8ebfbc5
chore(deps): update dependency @vitejs/plugin-vue to v6.0.8 (#4590)
renovate[bot] Jul 17, 2026
8305a5b
docs(router): remove ion-nav from coordinated navigation outlets (#4585)
ShaneK Jul 17, 2026
eb2c6ab
docs(capacitor): document Capacitor 7 minimum and v2 removal for v9 (…
ShaneK Jul 18, 2026
849c356
docs(angular): upgrade v9 playground to Angular 22 zoneless (#4591)
ShaneK Jul 18, 2026
744beaf
docs(angular): deprecate IonicModule (#4589)
thetaPC Jul 20, 2026
ac062bd
fix(release-notes): require token on CI, warn for local development (…
brandyscarney Jul 21, 2026
a16558a
chore(deps): update dependency vite to v8.1.5 (#4594)
renovate[bot] Jul 21, 2026
abea869
chore(deps): update dependency vite to v8.1.5 (#4595)
renovate[bot] Jul 21, 2026
ca380e1
chore(deps): update dependency vite to v8.1.5 (#4596)
renovate[bot] Jul 21, 2026
edf24ef
chore(deps): update dependency vue to v3.5.40 (#4597)
renovate[bot] Jul 21, 2026
e01eade
chore(deps): update dependency vue-router to v5.2.0 (#4599)
renovate[bot] Jul 21, 2026
fa7ddcf
chore(deps): update ionic to v8.8.15 (#4600)
renovate[bot] Jul 23, 2026
f21d2f1
chore(deps): update dependency web-vitals to v6 (#4604)
renovate[bot] Jul 27, 2026
445d13a
chore(deps): update react to v19.2.8 (#4603)
renovate[bot] Jul 27, 2026
6d101f1
chore(deps): update dependency vue-tsc to v3.3.8 (#4602)
renovate[bot] Jul 27, 2026
8a087a7
chore(deps): update dependency @vitejs/plugin-react to v6.0.4 (#4601)
renovate[bot] Jul 27, 2026
0def016
fix(stackblitz): pin vite to v7 to avoid rolldown wasm failure in web…
ShaneK Jul 28, 2026
9b06fe7
chore(deps): update ionic to v8.8.16 (#4610)
renovate[bot] Jul 30, 2026
e202367
docs(angular): remove standalone true from v8 and v9 playgrounds (#4609)
brandyscarney Jul 30, 2026
4dafaf4
chore(deps): update react monorepo to v19.2.18 (#4614)
renovate[bot] Aug 3, 2026
b812b9c
chore(deps): update angular to v20.3.32 (#4613)
renovate[bot] Aug 3, 2026
50a619e
docs(icon): add font icon and custom svg documentation (#4608)
brandyscarney Aug 3, 2026
e62fb5a
chore(deps): update dependency vue-tsc to v3.3.9 (#4615)
renovate[bot] Aug 4, 2026
1e952fc
chore(react): upgrade to v19 (#4616)
thetaPC Aug 5, 2026
7ba02fc
chore(deps): update ionic to v8.8.17 (#4618)
renovate[bot] Aug 6, 2026
3be6ed2
fix(i18n): add unique keys to duplicate sidebar categories (#4621)
thetaPC Aug 7, 2026
aa8c42b
docs(modal): document isDismissing on ModalDragEventDetail (#4612)
thetaPC Aug 7, 2026
52829ef
docs(testing): add componentOnReady guidance and a Vue testing page (…
Zac-Smucker-Bryan Aug 7, 2026
9d9760b
chore(deps): update dependency web-vitals to v6.1.0 (#4626)
renovate[bot] Aug 10, 2026
d2013d3
chore(deps): update dependency vue to v3.5.41 (#4625)
renovate[bot] Aug 10, 2026
76e2700
chore(ci): check translation keys on pull requests (#4622)
thetaPC Aug 10, 2026
08bfddf
chore(docusaurus): enable faster (#4619)
thetaPC Aug 11, 2026
f8cd04b
chore(ci): pin github actions to commit shas (#4630)
thetaPC Aug 11, 2026
d43d86e
chore(tooling): add mdx to prettier and cspell, ignore archived docs …
thetaPC Aug 11, 2026
405f3dc
chore(docs): migrate admonition titles and heading IDs to MDX syntax …
thetaPC Aug 11, 2026
aa890ae
chore(docs): migrate HTML comments to MDX comment syntax (#4629)
thetaPC Aug 11, 2026
827e73c
Merge remote-tracking branch 'origin/main' into chore/merge-main-2026…
thetaPC Aug 11, 2026
552ae37
chore(deps): update dependency ionicons to v8.1.0 (#4607)
renovate[bot] Aug 12, 2026
c915b8b
docs(gallery): move gallery documentation to v10 (#4627)
ShaneK Aug 12, 2026
17f257a
docs(a11y): use descriptive link text and inclusive wording (#4632)
thetaPC Aug 12, 2026
9bd623f
chore(prettier): ignore ejected swizzles, not wrapped ones (#4617)
thetaPC Aug 12, 2026
d56603f
chore(deps): update ionic to v8.8.18 (#4635)
renovate[bot] Aug 13, 2026
b5096fb
docs(angular): update overlay imports for v9 (#4636)
ShaneK Aug 13, 2026
1426984
chore(docs): remove obsolete TODO and placeholder comments (#4633)
thetaPC Aug 13, 2026
9f7a034
Merge remote-tracking branch 'origin/major-9.0' into chore/merge-main…
thetaPC Aug 13, 2026
96dd6b7
Merge remote-tracking branch 'origin/main' into chore/merge-main-2026…
thetaPC Aug 13, 2026
0b5c59b
docs(updating): document automated migration tool and zone.js polyfil…
ShaneK Aug 13, 2026
f7efbdb
Merge remote-tracking branch 'origin/major-9.0' into chore/merge-main…
thetaPC Aug 13, 2026
e282780
chore(sync): apply main's docs/api and docs/cli changes to version-v8
thetaPC Aug 13, 2026
7c83ffd
chore(sync): backfill version-v8 api docs missed since the v9 fork
thetaPC Aug 13, 2026
6dffc4f
chore: merge main into major-9.0
thetaPC Aug 13, 2026
31b2943
docs(v9): update demos and support info to use v9 version (#4642)
brandyscarney Aug 14, 2026
5ca6eb4
docs(updating): update v9 migration guide to add missing breaking cha…
brandyscarney Aug 14, 2026
6a9d2b8
docs(react): document typed overlay hook props and typescript 5.4 req…
ShaneK Aug 18, 2026
6afee64
docs(support): correct v9 release date to Aug 19, 2026
ShaneK Aug 19, 2026
d6f761c
docs(support): update maintenance and ext support dates
brandyscarney Aug 19, 2026
29dcb75
Merge pull request #4646 from ionic-team/major-9.0
ShaneK Aug 19, 2026
0350c41
docs(v8): version docs-demo (#4648)
brandyscarney Aug 19, 2026
94b7349
chore(docs): archive v7 (#4647)
brandyscarney Aug 19, 2026
a5909da
chore(deps): update dependency @types/node to v24.13.3 (#4654)
renovate[bot] Aug 20, 2026
40baa13
chore(deps): update react to v19.2.8 (#4653)
renovate[bot] Aug 20, 2026
0011497
chore(deps): update ionic to v8.8.19 (#4651)
renovate[bot] Aug 20, 2026
887c575
chore(deps): update react monorepo to v19.2.18 (#4652)
renovate[bot] Aug 20, 2026
d783e43
chore(deps): update dependency vue to v3.5.41 (#4650)
renovate[bot] Aug 20, 2026
5aaf626
chore(deps): update dependency @vitejs/plugin-vue to v6.0.8 (#4649)
renovate[bot] Aug 20, 2026
eb73b96
chore(deps): update renovate to ignore v7 and add v9 (#4655)
brandyscarney Aug 20, 2026
0e09d59
chore(deps): update dependency web-vitals to v6.1.1 (#4645)
renovate[bot] Aug 20, 2026
e4442ab
chore(deps): update dependency vue-tsc to v3.3.10 (#4644)
renovate[bot] Aug 20, 2026
567f3cb
docs(your-first-app): update code to match tutorial gallery repositor…
brandyscarney Aug 20, 2026
28780dc
chore(deps): update dependency vue-router to v5.2.0 (#4658)
renovate[bot] Aug 21, 2026
1d305b3
chore(prettierignore): add versioned api (#4638)
thetaPC Aug 21, 2026
b3a1b92
chore(api): generate heading IDs with MDX comment syntax (#4639)
thetaPC Aug 21, 2026
7d887e7
docs(your-first-app): use base64FromPath function (#4659)
brandyscarney Aug 24, 2026
88ead04
chore(api): generate component API partials as .mdx, keeping .md name…
thetaPC Aug 25, 2026
f205928
chore(deps): update dependency vue-tsc to v3.3.11 (#4661)
renovate[bot] Aug 25, 2026
769232c
chore(archive): add missing lint ignores and document archiving (#4660)
thetaPC Aug 26, 2026
2eefac3
chore(deps): upgrade dependencies and drop unused ones (#4634)
thetaPC Aug 26, 2026
372bc08
chore(deps): update ionic to v9.0.1 (#4669)
renovate[bot] Aug 27, 2026
b70a43e
chore(deps): update dependency @types/react-dom to v19.2.5 (#4668)
renovate[bot] Aug 27, 2026
54fe46e
chore(docs): use markdown syntax for external links (#4667)
thetaPC Aug 27, 2026
5a8b318
chore(renovate): update syntax and ignore specific versions (#4673)
brandyscarney Aug 27, 2026
84cc7b2
chore(usage): rename playground index partials to .mdx (#4662)
thetaPC Aug 27, 2026
dc11861
chore(docs): correct ignore lists and drop archived playground versio…
thetaPC Aug 27, 2026
ab9d770
chore(scripts): stop generating content for archived versions (#4671)
thetaPC Aug 27, 2026
9d5afc6
chore(docs): pad admonitions with blank lines (#4676)
thetaPC Aug 28, 2026
2d6e347
feat(theme): add system color mode to the theme toggle (#4675)
thetaPC Aug 28, 2026
1244214
chore(deps): update dependency react-router-dom to v6.30.6 (#4677)
renovate[bot] Aug 28, 2026
b47372f
chore(deps): update dependency web-vitals to v6.2.0 (#4678)
renovate[bot] Aug 28, 2026
01a5344
chore(deps): upgrade prettier to v3 (#4674)
thetaPC Aug 28, 2026
d3a6683
chore(deps): update dependency web-vitals to v6.2.1 (#4683)
renovate[bot] Aug 31, 2026
7e48482
chore(deps): update dependency vue to v3.5.42 (#4682)
renovate[bot] Aug 31, 2026
5f84515
chore(deps): update dependency vue-router to v5.3.0 (#4687)
renovate[bot] Sep 1, 2026
6784c85
chore(typescript): scope typechecking to src and add it to CI (#4688)
thetaPC Sep 1, 2026
fd7d120
chore(docs): rename doc pages to .mdx (#4684)
thetaPC Sep 1, 2026
07f9946
chore(typescript): enable strict mode (#4690)
thetaPC Sep 2, 2026
cd094cd
docs(angular): correct OnPush guidance in lifecycle note (#4694)
ShaneK Sep 2, 2026
b7e1b10
chore(deps): replace the deprecated crowdin package with @crowdin/cli…
thetaPC Sep 2, 2026
91e9eb9
chore(scripts): generate CLI and native pages as .mdx (#4692)
thetaPC Sep 2, 2026
b6e468a
chore(renovate): manage the root package.json and scope every rule (#…
thetaPC Sep 4, 2026
574505e
chore(styles): remove ion-icon and share the arrow mask mixin (#4703)
thetaPC Sep 4, 2026
cd13465
chore(cleanup): remove commented-out code and fix what it pointed at …
thetaPC Sep 4, 2026
863f4b5
chore(v7): rename archived v7 pages and usage partials to .mdx (#4698)
thetaPC Sep 4, 2026
5a84385
chore(v6): rename archived v6 pages and usage partials to .mdx (#4699)
thetaPC Sep 4, 2026
ca61448
chore(v5): rename archived v5 pages to .mdx (#4700)
thetaPC Sep 4, 2026
658ad7e
chore(deps): update dependency @crowdin/cli to v5.0.2 (#4713)
renovate[bot] Sep 8, 2026
b0e335b
chore(deps): update dependency @types/react-dom to v19.2.7 (#4711)
renovate[bot] Sep 8, 2026
7a0bc48
chore(deps): update dependency vitest to v4.1.11 (#4714)
renovate[bot] Sep 8, 2026
072d9a5
chore(deps): update dependency docusaurus-plugin-sass to v0.2.7 (#4712)
renovate[bot] Sep 8, 2026
ff6ef40
chore(deps): update ionic to v9.0.3 (#4719)
renovate[bot] Sep 10, 2026
9b4d6d4
chore(deps): update dependency vue-router to v5.3.1 (#4718)
renovate[bot] Sep 10, 2026
18ec915
chore(deps): update dependency cspell to v10.2.2 (#4720)
renovate[bot] Sep 10, 2026
81f9966
chore(deps): update dependency sass to v1.104.0 (#4721)
renovate[bot] Sep 10, 2026
6e355b1
chore(mdx): adopt strict MDX syntax and remove the transitional shims…
thetaPC Sep 10, 2026
2240d1b
chore(deps): update dependency cspell to v10.3.0 (#4726)
renovate[bot] Sep 11, 2026
86d51cb
chore(deps): update dependency vitest to v5 (#4727)
renovate[bot] Sep 11, 2026
84f3b1c
chore(mdx): enable the v4 strict MDX flag and guard admonition syntax…
thetaPC Sep 11, 2026
fa41ddc
Merge remote-tracking branch 'origin/main' into chore/merge-main-into-jp
thetaPC Sep 11, 2026
b307f48
chore(i18n): repair conflict markers and converge markup with main
thetaPC Sep 11, 2026
27b7a9a
chore(i18n): restore translations dropped by the merge resolution
thetaPC Sep 12, 2026
0db1b46
chore(i18n): add the Babel glossary entry from main
thetaPC Sep 12, 2026
a112b1e
chore(i18n): keep nested <b> tags in native troubleshooting
thetaPC Sep 12, 2026
232448f
chore(i18n): restore v6 translations lost to the versioned_docs rule
thetaPC Sep 12, 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
  •  
  •  
  •  
9 changes: 5 additions & 4 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,24 +12,25 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
node_version: [20]
# Build processes work differently across operating systems, so the
# checks run on each one to make sure anyone can contribute to the
# docs.
os: [windows-latest, macOS-latest]

steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: ⚙️ Use Node.js ${{ matrix.node_version }}
- name: ⚙️ Use Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: ${{ matrix.node_version }}
node-version: 24
- name: 🕸️ Install Dependencies
run: npm ci --legacy-peer-deps
run: npm ci
- name: 🖌️ Lint
run: npm run lint
- name: Test
run: npm run test
- name: 🧩 Typecheck
run: npm run typecheck
- name: 🔤 Spell Check
run: npm run spellcheck
- uses: ./.github/workflows/actions/check-admonitions
Expand Down
16 changes: 9 additions & 7 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
# Wrapped components are our own code, so they follow the repo's formatting.
src/theme/DocItem/Layout/index.tsx
src/theme/EditMetaRow/index.tsx
src/theme/Icon/DarkMode/index.tsx
src/theme/Icon/Edit/index.tsx
src/theme/Icon/LightMode/index.tsx
src/theme/Icon/Language/index.tsx
src/theme/Layout/index.tsx
src/theme/NavbarItem/LocaleDropdownNavbarItem/index.tsx
Expand All @@ -12,25 +14,25 @@ src/theme/prism-include-languages.ts
legacy-stencil-components
scripts/bak

docs/api
# Auto-generated files
docs/native
versioned_docs/version-v*/native
docs/cli/commands
# Each definition in these files is one line of prose inside a JSX <section>.
# Prettier's mdx parser reflows those children and moves link text onto its own
# line, which MDX then wraps in a paragraph, rendering invalid HTML such as
# <a><p>Android SDK</p></a>. Formatting these files reintroduces that markup.
docs/reference/glossary.mdx
versioned_docs/version-v*/reference/glossary.md*
versioned_docs/version-v*/cli/commands

# Archived versions
versioned_docs/version-v5
versioned_docs/version-v6
versioned_docs/version-v7
static/usage/v6
static/usage/v7

static/code/stackblitz

.docusaurus
.github
build
node_modules

# Source material for the Japanese translation tooling, not documentation.
src/translate
11 changes: 11 additions & 0 deletions .prettierrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* Prettier configuration for the docs site.
*/

const ionicConfig = require('@ionic/prettier-config');

module.exports = {
...ionicConfig,
// Override the trailingComma setting to avoid trailing commas in function arguments and JSX props.
trailingComma: 'es5',
};
112 changes: 102 additions & 10 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -214,27 +214,119 @@ The Ionic documentation's `main` branch is deployed automatically and separately

### Archiving a Version

Archived versions are served from a frozen Vercel deployment instead of being rebuilt on every `main` deploy, which keeps build times and memory usage low. Two files control this:
Archived versions are served from a frozen Vercel deployment instead of being rebuilt on every `main` deploy, which keeps build times and memory usage low. That deployment is a full snapshot of the site, so it serves every version that was in the build. Two files control this:

- [`versions.json`](./versions.json): lists the versions Docusaurus rebuilds on every deploy.
- [`versions.json`](./versions.json): lists the older versions Docusaurus rebuilds on every deploy. It does not include the current version, which is built from `docs/` and takes its label from `versions.current` in `docusaurus.config.js`.
- [`versionsArchived.json`](./versionsArchived.json): maps each archived version to the frozen deployment URL the version picker links to.

The archived URL has to point at a build that _included_ the version, so you build it first, then move it to `versionsArchived.json`:
The docs keep the current version plus one older version rebuildable, so each major release archives one version and involves two different version numbers. The steps below refer to them as:

1. **Build the version.** Make sure it is in `versions.json`. If you are refreshing an already-archived version, move it out of `versionsArchived.json` and back into `versions.json`. Commit, push and let Vercel deploy.
2. **Promote the deployment.** In the Vercel dashboard, open that deployment and **Promote to Production** so it does not get cleaned up. Wait for the build to finish before pushing again, or it may get canceled.
3. **Copy its URL.** Use the deployment's unique `ionic-docs-<hash>-ionic1.vercel.app` URL, not the branch or production alias.
4. **Archive it.** Remove the version from `versions.json`, then add it to `versionsArchived.json` with `/docs/<version>` appended and no trailing slash (a trailing slash causes a brief 404 flash):
- `<archiving>`: the version being frozen and removed from `versions.json`.
- `<last-current>`: the version that just stopped being current and moved into `versions.json`. It is not being archived, but step 1 has to account for it.

For example, when `v9` becomes current: `v8` is `<last-current>` and `v7` is `<archiving>`.

The archived URL has to point at a build that _included_ `<archiving>`, so you build it first, then move it to `versionsArchived.json`:

1. **Check the `vercel.json` redirects.** The frozen deployment bakes in whatever `vercel.json` looked like at build time, and it serves every version in that build. Any `:version(...)` group missing a version therefore stays broken on that host for good. Make sure the groups already list `<last-current>`, which is the one most likely to be missing since it only just moved into `versions.json`. The `angular`, `react`, `vue` and `javascript` landing pages each need a group, as no version ships an index page for them:

```json
{
"source": "/docs/:version(v6|v7|<last-current>)/angular",
"destination": "/docs/:version/angular/overview"
},
{
"source": "/docs/:version(<last-current>)/javascript",
"destination": "/docs/:version/javascript/overview"
}
```

The groups accumulate, so existing entries stay in place whether or not that version is archived and you are only ever adding to them. The `javascript` group only covers versions that have a `javascript/` section.

Everything from here on refers to `<archiving>`:

2. **Build `<archiving>`.** Make sure it is in `versions.json`. If you are refreshing an already-archived version, move it out of `versionsArchived.json` and back into `versions.json`, and add it back to the generation scripts in step 10. Commit, push and let Vercel deploy.
3. **Promote the deployment.** In the Vercel dashboard, open that deployment and **Promote to Production** so it does not get cleaned up. Wait for the build to finish before pushing again, or it may get canceled.
4. **Copy its URL.** Use the deployment's unique `ionic-docs-<hash>-ionic1.vercel.app` URL, not the branch or production alias.
5. **Archive it.** Remove `<archiving>` from `versions.json`, then add it to `versionsArchived.json` with `/docs/<archiving>` appended and no trailing slash (a trailing slash causes a brief 404 flash):

_`versions.json`_

```diff
[
- "v8",
- "<archiving>"
+ "v8"
]
```

_`versionsArchived.json`_

```json
{
"v6": "https://ionic-docs-<hash>-ionic1.vercel.app/docs/v6"
"<archiving>": "https://ionic-docs-<hash>-ionic1.vercel.app/docs/<archiving>",
"v6": "https://ionic-docs-lq0if04rc-ionic1.vercel.app/docs/v6",
"v5": "https://ionic-docs-5utg8ms4c-ionic1.vercel.app/docs/v5"
}
```

5. **Open a PR.** Once merged, the version picker links to the archive and `main` stops building that version.
6. **Update `.prettierignore`.** Add the archived version folders to the archived versions group to keep Prettier from formatting generated files:

```
static/usage/<archiving>
versioned_docs/version-<archiving>
```

7. **Update `cspell.json`.** Add the archived version to the `ignorePaths` array so the spell checker skips generated files:

```diff
"ignorePaths": [
...
"versioned_docs/version-v5",
"versioned_docs/version-v6",
+ "versioned_docs/version-<archiving>"
]
```

8. **Update `renovate.json`.** Add the archived version's StackBlitz examples to `ignorePaths` so Renovate stops opening dependency PRs against frozen examples:

```diff
"ignorePaths": [
"static/code/stackblitz/v6/**",
+ "static/code/stackblitz/<archiving>/**"
]
```

Then remove that version's `@ionic/` `allowedVersions` rule from `packageRules`, since it no longer has anything to match.

9. **Update the playground generator.** Remove `<archiving>` from the version choices in [`_templates/playground/new/index.js`](./_templates/playground/new/index.js) so `npm run playground:new` stops offering a version that is no longer built. The choices are bare numbers, without the `v`:

```diff
- choices: ['<archiving>', '8', '9'],
+ choices: ['8', '9'],
```

10. **Update the generation scripts.** Remove `<archiving>` from the write lists in [`scripts/native.mjs`](./scripts/native.mjs) and [`scripts/cli.mjs`](./scripts/cli.mjs), so every build stops regenerating content for a version served from a frozen deployment. The remaining targets are `docs/` (the current version) and the one older version still in `versions.json`.

_`scripts/native.mjs`_

```diff
writeFileSync(`docs/native/${fileName}`, apiContent);
- writeFileSync(`versioned_docs/version-<archiving>/native/${fileName}`, apiContent);
writeFileSync(`versioned_docs/version-v8/native/${fileName}`, apiContent);
```

_`scripts/cli.mjs`_

```diff
writeFileSync(`docs/${path}`, data);
- writeFileSync(`versioned_docs/version-<archiving>/${path}`, data);
writeFileSync(`versioned_docs/version-v8/${path}`, data);
```

11. **Open a PR.** Once merged, the version picker links to the archive and `main` stops building `<archiving>`.

Removed versions keep their `versioned_docs/` and `versioned_sidebars/` content, so they can be rebuilt anytime by adding them back to `versions.json`.
Removed versions keep their authored `versioned_docs/` and `versioned_sidebars/` content, so they can be rebuilt anytime by adding them back to `versions.json`. Their `native/` and `cli/commands/` pages are generated rather than committed, so a rebuild also needs the version back in the write lists from step 10. Without it those sections build empty.

> [!NOTE]
> Ionic v3 and v4 use other build tools and are not managed here.
Expand Down
4 changes: 2 additions & 2 deletions _templates/playground/new/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ module.exports = {
name: 'version',
message: 'Select the Ionic Framework version for the playground',
initial: '9',
choices: ['6', '7', '8', '9'],
choices: ['8', '9'],
},
{
type: 'toggle',
Expand All @@ -72,7 +72,7 @@ module.exports = {

const playgroundName = changeCase.pascal(answers.path.split('/').pop());
console.log(
`\nTo use this playground in a docs markdown file, include\nthe following:\n\n## ${playgroundName}\n\nimport ${playgroundName} from '@site/static/usage/v${answers.version}/${answers.name}/${answers.path}/index.md';\n\n<${playgroundName} />\n`
`\nTo use this playground in a docs markdown file, include\nthe following:\n\n## ${playgroundName}\n\nimport ${playgroundName} from '@site/static/usage/v${answers.version}/${answers.name}/${answers.path}/index.mdx';\n\n<${playgroundName} />\n`
);

return answers;
Expand Down
48 changes: 48 additions & 0 deletions _templates/playground/new/index.mdx.ejs.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
to: "<%= `static/usage/v${version}/${name}/${path}/index.mdx` %>"
---
import Playground from '@site/src/components/global/Playground';

import javascript from './javascript.md';
<% if (css){ %>
import react_main_tsx from './react/main_tsx.md';
import react_main_css from './react/main_css.md';

<% } else { -%>
import react from './react.md';
<% } -%>
import vue from './vue.md';

import angular_example_component_html from './angular/example_component_html.md';
<% if (css){ -%>
import angular_example_component_css from './angular/example_component_css.md';
<% } -%>
import angular_example_component_ts from './angular/example_component_ts.md';

<Playground
version="<%= version %>"
code={{
javascript,
<% if (css){ -%>
react: {
files: {
'src/main.tsx': react_main_tsx,
'src/main.css': react_main_css,
},
},
<% } else { -%>
react,
<% } -%>
vue,
angular: {
files: {
'src/app/example.component.html': angular_example_component_html,
<% if (css){ -%>
'src/app/example.component.css': angular_example_component_css,
<% } -%>
'src/app/example.component.ts': angular_example_component_ts,
},
},
}}
src="usage/v<%= version %>/<%= name %>/<%= path %>/demo.html"
/>
Loading