Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
201 commits
Select commit Hold shift + click to select a range
e8252e0
chore(deps): update ionic to v8.7.12 (#4354)
renovate[bot] Dec 11, 2025
19a2b58
chore(deps): update dependency vite to v7.2.7 (#4353)
renovate[bot] Dec 11, 2025
73b77aa
chore(deps): update react to v19.2.1 (#4349)
renovate[bot] Dec 12, 2025
8738ac5
chore(deps): update dependency @types/node to v24.10.2 (#4357)
renovate[bot] Dec 12, 2025
fc40566
chore(deps): update dependency vite to v7.2.7 (#4352)
renovate[bot] Dec 12, 2025
2d1f0e0
chore(deps): update dependency vite to v7.2.7 (#4351)
renovate[bot] Dec 12, 2025
e2103cc
chore(deps): update dependency vue-tsc to v3.1.6 (#4350)
renovate[bot] Dec 12, 2025
8eadaa4
chore(deps): update ionic to v8.7.13 (#4363)
renovate[bot] Dec 15, 2025
4bd962d
chore(deps): update dependency @types/node to v24.10.3 (#4358)
renovate[bot] Dec 15, 2025
7182c04
chore(deps): update dependency @vitejs/plugin-react to v5.1.2 (#4359)
renovate[bot] Dec 15, 2025
3877d9d
chore(deps): update dependency vue-router to v4.6.4 (#4360)
renovate[bot] Dec 15, 2025
6febeab
chore(deps): update dependency vue-tsc to v3.1.8 (#4361)
renovate[bot] Dec 15, 2025
8d8ca84
chore(deps): update dependency @vitejs/plugin-vue to v6.0.3 (#4362)
renovate[bot] Dec 15, 2025
91fecdb
chore(deps): update react to v19.2.3 (#4364)
renovate[bot] Dec 16, 2025
6c33611
docs(tabs): add IonPage wrapper to React router examples (#4356)
ShaneK Dec 16, 2025
31ff735
chore(deps): update ionic to v8.7.14 (#4366)
renovate[bot] Dec 18, 2025
612fd1f
chore(deps): update dependency @types/node to v24.10.4 (#4365)
renovate[bot] Dec 18, 2025
b90465c
chore(deps): update dependency vite to v7.3.0 (#4367)
renovate[bot] Dec 19, 2025
8824fbd
chore(deps): update dependency vite to v7.3.0 (#4368)
renovate[bot] Dec 19, 2025
d902de0
chore(deps): update dependency vite to v7.3.0 (#4369)
renovate[bot] Dec 19, 2025
f744648
chore(deps): update dependency vue to v3.5.26 (#4370)
renovate[bot] Dec 22, 2025
37c7812
chore(deps): update dependency vue-tsc to v3.2.0 (#4371)
renovate[bot] Jan 8, 2026
8181201
chore(deps): update angular to v20.3.13 (#4373)
renovate[bot] Jan 8, 2026
1c2d199
chore(deps): update dependency vite to v7.3.1 (#4375)
renovate[bot] Jan 12, 2026
567b445
chore(deps): update dependency @types/react to v19.2.8 (#4379)
renovate[bot] Jan 14, 2026
0e4b7e8
chore(deps): update dependency @types/node to v24.10.6 (#4378)
renovate[bot] Jan 14, 2026
95d1849
chore(deps): update dependency vite to v7.3.1 (#4377)
renovate[bot] Jan 14, 2026
82a6742
chore(deps): update dependency vue-tsc to v3.2.2 (#4374)
renovate[bot] Jan 14, 2026
df6595f
chore(deps): update dependency vite to v7.3.1 (#4376)
renovate[bot] Jan 14, 2026
2ca0224
chore(deps): update dependency vue to v3.5.27 (#4382)
renovate[bot] Jan 22, 2026
349e8c6
chore(deps): update dependency @types/node to v24.10.7 (#4380)
renovate[bot] Jan 22, 2026
a81f926
chore(deps): update dependency vue-tsc to v3.2.3 (#4387)
renovate[bot] Jan 27, 2026
67163cf
chore(deps): update dependency @types/react to v19.2.9 (#4386)
renovate[bot] Jan 27, 2026
5b9ef44
chore(deps): update dependency vite-plugin-static-copy to v3.1.5 (#4385)
renovate[bot] Jan 27, 2026
300ad1f
chore(deps): update dependency @types/node to v24.10.9 (#4384)
renovate[bot] Jan 27, 2026
5404bcf
chore(deps): update dependency vite-plugin-static-copy to v3.1.6 (#4388)
renovate[bot] Jan 28, 2026
d175dc0
docs(datetime): add wheel part to styling section (#4383)
thetaPC Jan 29, 2026
2f4c0b9
chore(deps): update dependency vue-tsc to v3.2.4 (#4389)
renovate[bot] Jan 29, 2026
5e3ced0
docs(angular): adding overlays documentation with explanation of 8.8'…
ShaneK Jan 29, 2026
bd3b28f
chore(deps): update dependency vite-plugin-static-copy to v3.2.0 (#4391)
renovate[bot] Jan 30, 2026
94b7b3f
chore(deps): update react to v19.2.4 (#4390)
renovate[bot] Jan 30, 2026
44c702c
chore(deps): update dependency vue-router to v5 (#4394)
renovate[bot] Feb 4, 2026
5d021f2
chore(deps): update dependency @types/react to v19.2.10 (#4393)
renovate[bot] Feb 4, 2026
387003f
chore(deps): update angular to v20.3.15 (#4392)
renovate[bot] Feb 4, 2026
f159f7e
chore(deps): update dependency @vitejs/plugin-vue to v6.0.4 (#4399)
renovate[bot] Feb 6, 2026
6def4c5
chore(deps): update dependency @types/node to v24.10.10 (#4400)
renovate[bot] Feb 6, 2026
acf01aa
chore(deps): update dependency @vitejs/plugin-react to v5.1.3 (#4398)
renovate[bot] Feb 6, 2026
c28627b
chore(deps): update dependency vue-router to v5.0.1 (#4396)
renovate[bot] Feb 6, 2026
5195f65
docs(datetime): add header section for parts styling (#4395)
thetaPC Feb 6, 2026
19e1541
Merge remote-tracking branch 'origin/main' into chore-sync-feat8.8-wi…
thetaPC Feb 6, 2026
1c9e5ee
chore(git): sync main
thetaPC Feb 6, 2026
5f66d46
chore(deps): update dependency @types/node to v24.10.11 (#4404)
renovate[bot] Feb 9, 2026
b3b7226
chore(deps): update dependency vue-router to v5.0.2 (#4406)
renovate[bot] Feb 9, 2026
fb712a9
chore(deps): update dependency @types/react to v19.2.13 (#4405)
renovate[bot] Feb 9, 2026
eaf5598
chore(deps): update dependency @types/react to v19.2.14 (#4410)
renovate[bot] Feb 17, 2026
4558836
chore(deps): update dependency @vitejs/plugin-react to v5.1.4 (#4409)
renovate[bot] Feb 17, 2026
ec26a67
chore(deps): update dependency vue to v3.5.28 (#4408)
renovate[bot] Feb 17, 2026
9fca1bc
chore(deps): update dependency @types/node to v24.10.12 (#4407)
renovate[bot] Feb 17, 2026
a259d4a
docs(refresher): adding documentation for refresher changes (#4397)
ShaneK Feb 19, 2026
2f3018f
chore(deps): update dependency @types/node to v24.10.13 (#4411)
renovate[bot] Feb 20, 2026
4080b0d
feat(datetime): add new header parts (#4402)
thetaPC Feb 20, 2026
287cff5
chore(deps): update dependency vue-router to v5.0.3 (#4413)
renovate[bot] Feb 23, 2026
1ff280d
chore(deps): update dependency vue-tsc to v3.2.5 (#4414)
renovate[bot] Feb 26, 2026
848d219
chore(deps): update dependency @types/node to v24.10.15 (#4418)
renovate[bot] Mar 2, 2026
c8da45d
chore(deps): update angular to v20.3.17 (#4417)
renovate[bot] Mar 2, 2026
fa5a8db
chore(deps): update dependency vue to v3.5.29 (#4416)
renovate[bot] Mar 2, 2026
aab088f
chore(deps): update dependency @types/node to v24.11.0 (#4419)
renovate[bot] Mar 3, 2026
e360ac8
docs(range): add new parts for dual knobs to css shadow parts section…
brandyscarney Mar 4, 2026
5583717
docs(modal): add playgrounds for sheet and card modal drag events (#4…
thetaPC Mar 4, 2026
4cc648d
docs(refresher): add new section for pull start and end events (#4421)
brandyscarney Mar 5, 2026
c25bd4f
chore(deps): update ionic to v8.8.1 (#4423)
renovate[bot] Mar 6, 2026
bc430df
Merge branch 'main' into merge-main
brandyscarney Mar 6, 2026
9938d4a
merge main
brandyscarney Mar 6, 2026
005d32e
merge feature-8.8
brandyscarney Mar 6, 2026
7b5aa8f
fix(dynamic-font-scaling): fix markdown (#4428)
rdlabo Mar 16, 2026
b8797f2
chore(deps): update dependency vue to v3.5.30 (#4429)
renovate[bot] Mar 16, 2026
3278608
chore(deps): update dependency @types/node to v24.11.2 (#4427)
renovate[bot] Mar 16, 2026
0009231
chore(deps): update dependency @vitejs/plugin-vue to v6.0.5 (#4431)
renovate[bot] Mar 16, 2026
41b0fbd
chore(deps): update dependency @vitejs/plugin-react to v5.2.0 (#4432)
renovate[bot] Mar 16, 2026
3204e52
chore(deps): update dependency vite-plugin-static-copy to v3.3.0 (#4435)
renovate[bot] Mar 16, 2026
7baa74f
chore(deps): update dependency vite to v8 (#4434)
renovate[bot] Mar 16, 2026
f385e7c
chore(deps): update vite-react (#4436)
renovate[bot] Mar 16, 2026
d997c6b
chore(deps): update dependency vite to v8 (#4433)
renovate[bot] Mar 16, 2026
c343d1d
chore(deps): update dependency @types/node to v24.12.0 (#4437)
renovate[bot] Mar 17, 2026
a262b73
chore(deps): update dependency vite-plugin-static-copy to v4 (#4443)
renovate[bot] Mar 25, 2026
9dc0625
chore(deps): update dependency vue-tsc to v3.2.6 (#4442)
renovate[bot] Mar 25, 2026
e7e9952
chore(deps): update dependency vue-router to v5.0.4 (#4441)
renovate[bot] Mar 25, 2026
9dcf151
chore(deps): update dependency vite to v8.0.1 (#4438)
renovate[bot] Mar 25, 2026
5cd8b66
chore(deps): update dependency vite to v8.0.1 (#4440)
renovate[bot] Mar 25, 2026
3fe5523
chore(deps): update dependency vite to v8.0.1 (#4439)
renovate[bot] Mar 25, 2026
c367c6d
chore(deps): update ionic to v8.8.2 (#4444)
renovate[bot] Mar 26, 2026
59b6aad
chore(deps): update dependency vite to v8.0.2 (#4446)
renovate[bot] Mar 27, 2026
64aec7f
chore(deps): update dependency vite to v8.0.2 (#4445)
renovate[bot] Mar 27, 2026
1dccc44
chore(deps): update dependency vite to v8.0.2 (#4447)
renovate[bot] Mar 27, 2026
ee3b6ba
chore(deps): update dependency vite to v8.0.3 (#4449)
renovate[bot] Mar 30, 2026
ff4db96
chore(deps): update dependency vite to v8.0.3 (#4450)
renovate[bot] Mar 30, 2026
ee0d86e
chore(deps): update dependency vite to v8.0.3 (#4451)
renovate[bot] Mar 30, 2026
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
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
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
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
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
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
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
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
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
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
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
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
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
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
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,4 @@ yarn-debug.log*
yarn-error.log*

static/**/node_modules/
.idea
28 changes: 28 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ Thanks for your interest in contributing to Ionic's documentation! :tada: Check
- [Reporting Issues](#reporting-issues)
- [Pull Request Guidelines](#pull-request-guidelines)
- [Deploying](#deploying)
- [Archiving a Version](#archiving-a-version)
- [License](#license)

---
Expand Down Expand Up @@ -175,6 +176,33 @@ When submitting pull requests, please keep the scope of your change contained to

The Ionic documentation's `main` branch is deployed automatically and separately from the [Ionic site](https://github.com/ionic-team/ionic-site) itself. The Ionic site then uses a proxy for paths under `/docs` to request the deployed documentation.

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

- [`versions.json`](./versions.json): lists the versions Docusaurus rebuilds on every deploy.
- [`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`:

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):

```json
{
"v6": "https://ionic-docs-<hash>-ionic1.vercel.app/docs/v6"
}
```

5. **Open a PR.** Once merged, the version picker links to the archive and `main` stops building that version.

Removed versions keep their `versioned_docs/` and `versioned_sidebars/` content, so they can be rebuilt anytime by adding them back to `versions.json`.

> [!NOTE]
> Ionic v3 and v4 use other build tools and are not managed here.

---

## License
Expand Down
2 changes: 1 addition & 1 deletion _templates/playground/new/vue.md.ejs.t
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
arbitrary: <% pascalComponent = h.changeCase.pascal(component) %>
to: "<%= `static/usage/v${version}/${name}/${path}/vue.md` %>"
---
```html
```vue
<template>
<<%= component %>></<%= component %>>
</template>
Expand Down
1 change: 1 addition & 0 deletions cspell-wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ Udemy
Vetur
Wistia
WCAG
CDK

actionsheet
fabs
Expand Down
213 changes: 213 additions & 0 deletions docs/angular/overlays.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,213 @@
---
title: Overlay Components
sidebar_label: Overlays
---

<head>
<title>Angular Overlay Components: Modals, Popovers with Custom Injectors</title>
<meta
name="description"
content="Learn how to use overlay components like modals and popovers in Ionic Angular, including passing custom injectors for dependency injection."
/>
</head>

Ionic provides overlay components such as modals and popovers that display content on top of your application. In Angular, these overlays can be created using controllers like `ModalController` and `PopoverController`.

## Creating Overlays

Overlays can be created programmatically using their respective controllers:

```typescript
import { Component } from '@angular/core';
import { ModalController } from '@ionic/angular/standalone';
import { MyModalComponent } from './my-modal.component';

@Component({
selector: 'app-home',
templateUrl: './home.component.html',
})
export class HomeComponent {
constructor(private modalController: ModalController) {}

async openModal() {
const modal = await this.modalController.create({
component: MyModalComponent,
componentProps: {
title: 'My Modal',
},
});
await modal.present();
}
}
```

## Custom Injectors

By default, overlay components use the root injector for dependency injection. This means that services or tokens provided at the route level or within a specific component tree are not accessible inside the overlay.

The `injector` option allows you to pass a custom Angular `Injector` when creating a modal or popover. This enables overlay components to access services and tokens that are not available in the root injector.

### Use Cases

Custom injectors are useful when you need to:

- Access route-scoped services from within an overlay
- Use Angular CDK's `Dir` directive for bidirectional text support
- Access any providers that are not registered at the root level

### Usage

To use a custom injector, pass it to the `create()` method:

```typescript
import { Component, Injector } from '@angular/core';
import { ModalController } from '@ionic/angular/standalone';
import { MyModalComponent } from './my-modal.component';
import { MyRouteService } from './my-route.service';

@Component({
selector: 'app-feature',
templateUrl: './feature.component.html',
providers: [MyRouteService], // Service provided at route level
})
export class FeatureComponent {
constructor(private modalController: ModalController, private injector: Injector) {}

async openModal() {
const modal = await this.modalController.create({
component: MyModalComponent,
injector: this.injector, // Pass the component's injector
});
await modal.present();
}
}
```

The modal component can now inject `MyRouteService`:

```typescript
import { Component, inject } from '@angular/core';
import { MyRouteService } from '../my-route.service';

@Component({
selector: 'app-my-modal',
templateUrl: './my-modal.component.html',
})
export class MyModalComponent {
private myRouteService = inject(MyRouteService);
}
```

### Creating a Custom Injector

You can also create a custom injector with specific providers:

```typescript
import { Component, Injector } from '@angular/core';
import { ModalController } from '@ionic/angular/standalone';
import { MyModalComponent } from './my-modal.component';
import { MyService } from './my.service';

@Component({
selector: 'app-feature',
templateUrl: './feature.component.html',
})
export class FeatureComponent {
constructor(private modalController: ModalController, private injector: Injector) {}

async openModal() {
const myService = new MyService();
myService.configure({ someOption: true });

const customInjector = Injector.create({
providers: [{ provide: MyService, useValue: myService }],
parent: this.injector,
});

const modal = await this.modalController.create({
component: MyModalComponent,
injector: customInjector,
});
await modal.present();
}
}
```

### Using with Angular CDK Directionality

A common use case is providing the Angular CDK `Dir` directive to overlays for bidirectional text support:

```typescript
import { Component, Injector } from '@angular/core';
import { Dir } from '@angular/cdk/bidi';
import { ModalController } from '@ionic/angular/standalone';
import { MyModalComponent } from './my-modal.component';

@Component({
selector: 'app-feature',
templateUrl: './feature.component.html',
})
export class FeatureComponent {
constructor(private modalController: ModalController, private injector: Injector) {}

async openModal() {
const modal = await this.modalController.create({
component: MyModalComponent,
injector: this.injector, // Includes Dir from component tree
});
await modal.present();
}
}
```

### Popover Controller

The `PopoverController` supports the same `injector` option:

```typescript
import { Component, Injector } from '@angular/core';
import { PopoverController } from '@ionic/angular/standalone';
import { MyPopoverComponent } from './my-popover.component';

@Component({
selector: 'app-feature',
templateUrl: './feature.component.html',
})
export class FeatureComponent {
constructor(private popoverController: PopoverController, private injector: Injector) {}

async openPopover(event: Event) {
const popover = await this.popoverController.create({
component: MyPopoverComponent,
event: event,
injector: this.injector,
});
await popover.present();
}
}
```

## Angular Options Types

Ionic Angular exports its own `ModalOptions` and `PopoverOptions` types that extend the core options with Angular-specific properties like `injector`:

- `ModalOptions` - Extends core `ModalOptions` with the `injector` property
- `PopoverOptions` - Extends core `PopoverOptions` with the `injector` property

These types are exported from `@ionic/angular` and `@ionic/angular/standalone`:

```typescript
import type { ModalOptions, PopoverOptions } from '@ionic/angular/standalone';
```

## Docs for Overlays in Ionic

For full docs and to see usage examples, visit the docs page for each of the overlays in Ionic:

- [Action Sheet](https://ionicframework.com/docs/api/action-sheet)
- [Alert](https://ionicframework.com/docs/api/alert)
- [Loading](https://ionicframework.com/docs/api/loading)
- [Modal](https://ionicframework.com/docs/api/modal)
- [Picker](https://ionicframework.com/docs/api/picker)
- [Popover](https://ionicframework.com/docs/api/popover)
- [Toast](https://ionicframework.com/docs/api/toast)
2 changes: 1 addition & 1 deletion docs/angular/quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ And the template, in the `home.page.html` file, uses those components:
</ion-content>
```

This creates a page with a header and scrollable content area. The second header shows a [collapsible large title](/docs/api/title.md#collapsible-large-titles) that displays when at the top of the content, then condenses to show the smaller title in the first header when scrolling down.
This creates a page with a header and scrollable content area. The second header shows a [collapsible large title](/docs/api/title.md#collapsible-large-titles) that displays on iOS devices when at the top of the content, then condenses to show the smaller title in the first header when scrolling down.

:::tip Learn More
For detailed information about Ionic layout components, see the [Header](/docs/api/header.md), [Toolbar](/docs/api/toolbar.md), [Title](/docs/api/title.md), and [Content](/docs/api/content.md) documentation.
Expand Down
2 changes: 1 addition & 1 deletion docs/api/datetime-button.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Datetime Button links with a [Datetime](./datetime) component to display the for

Datetime Button should be used when space is constrained. This component displays buttons which show the current date and time values. When the buttons are tapped, the date or time pickers open in the overlay.

When using Datetime Button with a JavaScript framework such as Angular, React, or Vue be sure to use the [keepContentsMounted property on ion-modal](./modal#keepcontentsmounted) or the [keepContentsMounted property on ion-popover](./popover#keepcontentsmounted). This allows the linked datetime instance to be mounted even if the overlay has not been presented yet.
When using Datetime Button with a JavaScript framework such as Angular, React, or Vue be sure to use the [keepContentsMounted property on ion-modal](./modal#prop-keep-contents-mounted) or the [keepContentsMounted property on ion-popover](./popover#prop-keep-contents-mounted). This allows the linked datetime instance to be mounted even if the overlay has not been presented yet.

## Basic Usage

Expand Down
22 changes: 21 additions & 1 deletion docs/api/datetime.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,9 @@ import ShowAdjacentDays from '@site/static/usage/v9/datetime/show-adjacent-days/
import MultipleDateSelection from '@site/static/usage/v9/datetime/multiple/index.md';

import GlobalTheming from '@site/static/usage/v9/datetime/styling/global-theming/index.md';
import CalendarHeaderStyling from '@site/static/usage/v9/datetime/styling/calendar-header/index.md';
import CalendarDaysStyling from '@site/static/usage/v9/datetime/styling/calendar-days/index.md';
import DatetimeHeaderStyling from '@site/static/usage/v9/datetime/styling/datetime-header/index.md';
import WheelStyling from '@site/static/usage/v9/datetime/styling/wheel-styling/index.md';

<head>
Expand Down Expand Up @@ -300,7 +302,7 @@ By default, `ionChange` is emitted with the new datetime value whenever a new da

### Showing Confirmation Buttons

The default Done and Cancel buttons are already preconfigured to call the [`confirm`](#confirm) and [`cancel`](#cancel) methods, respectively.
The default Done and Cancel buttons are already preconfigured to call the [`confirm`](#method-confirm) and [`cancel`](#method-cancel) methods, respectively.

<ShowingConfirmationButtons />

Expand Down Expand Up @@ -352,6 +354,24 @@ The benefit of this approach is that every component, not just `ion-datetime`, c

<GlobalTheming />

### Datetime Header

The datetime header manages the content for the `title` slot and the selected date.

:::note
The selected date will not render if `preferWheel` is set to `true`.
:::

<DatetimeHeaderStyling />

### Calendar Header

The calendar header manages the date navigation controls (month/year picker and prev/next buttons) and the days of the week when using a grid style layout.

The header can be styled using CSS shadow parts.

<CalendarHeaderStyling />

### Calendar Days

The calendar days in a grid-style `ion-datetime` can be styled using CSS shadow parts.
Expand Down
2 changes: 1 addition & 1 deletion docs/api/loading.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ import Controller from '@site/static/usage/v9/loading/controller/index.md';

### Spinners

The spinner that is used can be customized using the `spinner` property. See the [spinner property documentation](#spinner) for a full list of options.
The spinner that is used can be customized using the `spinner` property. See the [spinner property documentation](#prop-spinner) for a full list of options.

import Spinners from '@site/static/usage/v9/loading/spinners/index.md';

Expand Down
Loading
Loading