Skip to content

Commit f03dd1d

Browse files
authored
chore: sync with main
chore: sync with main
2 parents 9d20cab + 1e98976 commit f03dd1d

File tree

467 files changed

+2242
-1728
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

467 files changed

+2242
-1728
lines changed

.github/CODEOWNERS

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,3 @@
1212
# This should make it easy to add new rules without breaking existing ones.
1313

1414
* @ionic-team/framework
15-
16-
/_templates/ @mapsandapps

docs/angular/slides.md

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -244,10 +244,10 @@ Let's say in an app with `ion-slides` we used the `ionSlideDidChange` event:
244244
</ion-slides>
245245
```
246246

247-
To migrate, we would change the name of the event to `slidechange`:
247+
To migrate, we would change the name of the event to `swiperslidechange`:
248248

249249
```html
250-
<swiper-container (slidechange)="onSlideChange()">
250+
<swiper-container (swiperslidechange)="onSlideChange()">
251251
<swiper-slide>Slide 1</swiper-slide>
252252
<swiper-slide>Slide 2</swiper-slide>
253253
<swiper-slide>Slide 3</swiper-slide>
@@ -256,27 +256,27 @@ To migrate, we would change the name of the event to `slidechange`:
256256

257257
Below is a full list of event name changes when going from `ion-slides` to Swiper Angular:
258258

259-
| ion-slides Event | Swiper Event |
260-
| ------------------------- | ---------------------------- |
261-
| `ionSlideWillChange` | `slidechangetransitionstart` |
262-
| `ionSlideDidChange` | `slidechangetransitionend` |
263-
| `ionSlideDoubleTap` | `doubletap` |
264-
| `ionSlideDrag` | `slidermove` |
265-
| `ionSlideNextStart` | `slidenexttransitionstart` |
266-
| `ionSlideNextEnd` | `slidenexttransitionend` |
267-
| `ionSlidePrevStart` | `slideprevtransitionstart` |
268-
| `ionSlidePrevEnd` | `slideprevtransitionend` |
269-
| `ionSlideReachStart` | `reachbeginning` |
270-
| `ionSlideReachEnd` | `reachend` |
271-
| `ionSlideTap` | `tap` |
272-
| `ionSlideTouchStart` | `touchstart` |
273-
| `ionSlideTouchEnd` | `touchend` |
274-
| `ionSlideTransitionStart` | `transitionstart` |
275-
| `ionSlideTransitionEnd` | `transitionend` |
276-
| `ionSlidesDidLoad` | `init` |
259+
| ion-slides Event | Swiper Event |
260+
| ------------------------- | ---------------------------------- |
261+
| `ionSlideWillChange` | `swiperslidechangetransitionstart` |
262+
| `ionSlideDidChange` | `swiperslidechange` |
263+
| `ionSlideDoubleTap` | `swiperdoubletap` |
264+
| `ionSlideDrag` | `swiperslidermove` |
265+
| `ionSlideNextStart` | `swiperslidenexttransitionstart` |
266+
| `ionSlideNextEnd` | `swiperslidenexttransitionend` |
267+
| `ionSlidePrevStart` | `swiperslideprevtransitionstart` |
268+
| `ionSlidePrevEnd` | `swiperslideprevtransitionend` |
269+
| `ionSlideReachStart` | `swiperreachbeginning` |
270+
| `ionSlideReachEnd` | `swiperreachend` |
271+
| `ionSlideTap` | `swipertap` |
272+
| `ionSlideTouchStart` | `swipertouchstart` |
273+
| `ionSlideTouchEnd` | `swipertouchend` |
274+
| `ionSlideTransitionStart` | `swipertransitionstart` |
275+
| `ionSlideTransitionEnd` | `swipertransitionend` |
276+
| `ionSlidesDidLoad` | `swiperinit` |
277277

278278
:::note
279-
All events available in Swiper Element can be found at <a href="https://swiperjs.com/swiper-api#events" target="_blank" rel="noopener noreferrer">https://swiperjs.com/swiper-api#events</a>.
279+
All events available in Swiper Element can be found at <a href="https://swiperjs.com/swiper-api#events" target="_blank" rel="noopener noreferrer">https://swiperjs.com/swiper-api#events</a> and should be lowercased and prefixed with the word `swiper`.
280280
:::
281281

282282
## Methods

docs/api/checkbox.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,14 @@ import Justify from '@site/static/usage/v8/checkbox/justify/index.md';
6565
import Indeterminate from '@site/static/usage/v8/checkbox/indeterminate/index.md';
6666

6767
<Indeterminate />
68+
69+
## Links inside of Labels
70+
71+
Checkbox labels can sometimes be accompanied with links. These links can provide more information related to the checkbox. However, clicking the link should not check the checkbox. To achieve this, we can use [stopPropagation](https://developer.mozilla.org/en-US/docs/Web/API/Event/stopPropagation) to prevent the click event from bubbling. When using this approach, the rest of the label still remains clickable.
72+
73+
import LabelLink from '@site/static/usage/v8/checkbox/label-link/index.md';
74+
75+
<LabelLink />
6876

6977
## Theming
7078

docs/api/modal.md

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -98,10 +98,8 @@ Here's a simplified example illustrating how a child component can interact with
9898
import CanDismissChildStateExample from '@site/static/usage/v8/modal/can-dismiss/child-state/index.md';
9999

100100
<CanDismissChildStateExample />
101-
102-
## Types of modals
103101

104-
### Card Modal
102+
## Card Modal
105103

106104
Developers can create a card modal effect where the modal appears as a card stacked on top of your app's main content. To create a card modal, developers need to set the `presentingElement` property on `ion-modal`.
107105

@@ -117,7 +115,11 @@ import CardExample from '@site/static/usage/v8/modal/card/basic/index.md';
117115

118116
<CardExample />
119117

120-
### Sheet Modal
118+
## Sheet Modal
119+
120+
:::info
121+
[Content](./content) should be used inside of the sheet modal if you want your modal content to be scrollable.
122+
:::
121123

122124
Developers can create a sheet modal effect similar to the drawer components available in maps applications. To create a sheet modal, developers need to set the `breakpoints` and `initialBreakpoint` properties on `ion-modal`.
123125

@@ -131,19 +133,23 @@ import SheetExample from '@site/static/usage/v8/modal/sheet/basic/index.md';
131133

132134
<SheetExample />
133135

134-
#### Interacting with background content
136+
### Interacting with background content
135137

136138
import SheetBackgroundContentExample from '@site/static/usage/v8/modal/sheet/background-content/index.md';
137139

138140
<SheetBackgroundContentExample />
139141

140-
#### Auto Height Sheet
142+
### Custom Sheet Height
143+
144+
Developers should use the `--height` CSS Variable to change the height of the sheet modal instead of changing the last breakpoint in the `breakpoints` array. The reason for this is changing the last breakpoint in the `breakpoints` array to a value less than `1` will cause some of the modal to be inaccessible outside of the viewport.
145+
146+
The following example shows how to get a sheet modal that is automatically sized based on its content. Note that by keeping the maximum breakpoint at `1` we ensure that the entire modal is accessible in the viewport.
141147

142148
import SheetAutoHeightExample from '@site/static/usage/v8/modal/sheet/auto-height/index.md';
143149

144150
<SheetAutoHeightExample />
145151

146-
#### Handle Behavior
152+
### Handle Behavior
147153

148154
Sheet modals can optionally render a handle indicator used for dragging the sheet between breakpoints. The `handleBehavior` property can be used to configure the behavior of when the handle is activated by the user.
149155

docs/api/title.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,18 @@ import CollapsibleLargeTitleButtons from '@site/static/usage/v8/title/collapsibl
4949

5050
<CollapsibleLargeTitleButtons />
5151

52+
## Accessibility
53+
54+
### Headings
55+
56+
When creating headings, we typically recommend using [semantic heading elements (h1-h6)](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Heading_Elements). However, there may be instances where you need to update Title to be treated as a particular heading by assistive technologies. For example, if you have a Title at the top of a view, you may want this to be considered a level 1 heading.
57+
58+
To achieve this, developers should use the [`heading` role](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/heading_role) on Title. This will indicate to assistive technologies that Title is a type of heading. From there, developers should use the [`aria-level` attribute](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-level) to set the heading level.
59+
60+
For example, if we wanted to make a Title behave like an `h1` element, we would set `role="heading"` and `aria-level="1"` on the Title.
61+
62+
Since multiple Title elements can be used on a view in conjunction with semantic heading elements, Ionic does not automatically set the Title's `role` or `aria-level`. It is the responsibility of the developer to handle this.
63+
5264
## Theming
5365

5466
The collapsible large title should appear seamless in relation to the rest of your content. This means that the background color of the toolbar containing the collapsible large title should always match the background color of the content.

docs/core-concepts/webview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,4 @@ For Cordova apps, the [Ionic Web View plugin](https://github.com/ionic-team/cord
4747
### Implementations
4848

4949
- **iOS**: <a href="https://developer.apple.com/documentation/webkit/wkwebview" target="_blank">WKWebView</a>
50-
- **Android**: <a href="https://developer.chrome.com/multidevice/webview/overview" target="_blank">Web View for Android</a>
50+
- **Android**: <a href="https://developer.android.com/reference/android/webkit/WebView" target="_blank">WebView for Android</a>

docs/react/your-first-app/5-adding-mobile.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ First, we’ll update the photo saving functionality to support mobile. In the `
1414

1515
```tsx
1616
const savePicture = async (photo: Photo, fileName: string): Promise<UserPhoto> => {
17-
let base64Data: string;
17+
let base64Data: string | Blob;
1818
// "hybrid" will detect Cordova or Capacitor;
1919
if (isPlatform('hybrid')) {
2020
const file = await Filesystem.readFile({

docs/reference/support.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,16 @@ Given the reality of time and resource constraints as well as the desire to keep
2020

2121
The current status of each Ionic Framework version is:
2222

23-
| Version | Status | Released | Maintenance Ends | Ext. Support Ends |
24-
| :-----: | :--------------: | :----------: | :--------------: | :---------------: |
25-
| V8 | Pre-Release | TBD | TBD | TBD |
26-
| V7 | **Active** | Mar 29, 2023 | TBD | TBD |
27-
| V6 | Extended Support | Dec 8, 2021 | Sep 29, 2023 | Mar 29, 2024 |
28-
| V5 | End of Support | Feb 11, 2020 | June 8, 2022 | Dec 8, 2022 |
29-
| V4 | End of Support | Jan 23, 2019 | Aug 11, 2020 | Sept 30, 2022 |
30-
| V3 | End of Support | Apr 5, 2017 | Oct 30, 2019 | Aug 11, 2020 |
31-
| V2 | End of Support | Jan 25, 2017 | Apr 5, 2017 | Apr 5, 2017 |
32-
| V1 | End of Support | May 12, 2015 | Jan 25, 2017 | Jan 25, 2017 |
23+
| Version | Status | Released | Maintenance Ends | Ext. Support Ends |
24+
| :-----: | :------------: | :----------: | :--------------: | :---------------: |
25+
| V8 | **Active** | Apr 17, 2024 | TBD | TBD |
26+
| V7 | Maintenance | Mar 29, 2023 | Oct 17, 2024 | Apr 17, 2025 |
27+
| V6 | End of Support | Dec 8, 2021 | Sep 29, 2023 | Mar 29, 2024 |
28+
| V5 | End of Support | Feb 11, 2020 | June 8, 2022 | Dec 8, 2022 |
29+
| V4 | End of Support | Jan 23, 2019 | Aug 11, 2020 | Sept 30, 2022 |
30+
| V3 | End of Support | Apr 5, 2017 | Oct 30, 2019 | Aug 11, 2020 |
31+
| V2 | End of Support | Jan 25, 2017 | Apr 5, 2017 | Apr 5, 2017 |
32+
| V1 | End of Support | May 12, 2015 | Jan 25, 2017 | Jan 25, 2017 |
3333

3434
- **Maintenance**: Only critical bug and security fixes. No major feature improvements.
3535
- **Extended Support**: For teams and organizations that require additional long term maintenance support, Ionic has extended support options available. To learn more, see our [Enterprise offerings](https://ionicframework.com/enterprise).

docs/theming/dark-mode.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ color-scheme: light dark;
194194
| ------------------------------------------------------------------------ | -------------------------------------------------------------------- |
195195
| ![Application without color-scheme](/img/theming/color-scheme-light.png) | ![Application with color-scheme](/img/theming/color-scheme-dark.png) |
196196

197-
For more information regarding `color-scheme` please see https://web.dev/color-scheme/.
197+
For more information regarding `color-scheme`, please see the [Web.dev guide on color schemes](https://web.dev/color-scheme/).
198198

199199
:::note
200200
`color-scheme` does not apply to the keyboard. For details on how dark mode works with the keyboard, see [Keyboard Documentation](../developing/keyboard.md#dark-mode).
@@ -225,7 +225,7 @@ It is important to pay attention to the specificity if you want to override any
225225
:::
226226

227227
:::info
228-
The contents of Ionic's dark palette can be [viewed on GitHub](https://github.com/ionic-team/ionic-framework/blob/feature-8.0/core/src/css/palettes/dark.scss). The CSS used to apply the **always** dark palette can be found [here](https://github.com/ionic-team/ionic-framework/blob/feature-8.0/core/src/css/palettes/dark.always.scss).
228+
The contents of Ionic's dark palette can be [viewed on GitHub](https://github.com/ionic-team/ionic-framework/blob/main/core/src/css/palettes/dark.scss). The CSS used to apply the **always** dark palette can be found in the [repository](https://github.com/ionic-team/ionic-framework/blob/main/core/src/css/palettes/dark.always.scss).
229229
:::
230230

231231
</TabItem>
@@ -244,7 +244,7 @@ It is important to pay attention to the specificity if you want to override any
244244
:::
245245

246246
:::info
247-
The contents of Ionic's dark palette can be [viewed on GitHub](https://github.com/ionic-team/ionic-framework/blob/feature-8.0/core/src/css/palettes/dark.scss). The CSS used to apply the **system** dark palette can be found [here](https://github.com/ionic-team/ionic-framework/blob/feature-8.0/core/src/css/palettes/dark.system.scss).
247+
The contents of Ionic's dark palette can be [viewed on GitHub](https://github.com/ionic-team/ionic-framework/blob/main/core/src/css/palettes/dark.scss). The CSS used to apply the **system** dark palette can be found in the [repository](https://github.com/ionic-team/ionic-framework/blob/main/core/src/css/palettes/dark.system.scsss).
248248
:::
249249

250250
</TabItem>
@@ -262,7 +262,7 @@ It is important to pay attention to the specificity if you want to override any
262262
:::
263263

264264
:::info
265-
The contents of Ionic's dark palette can be [viewed on GitHub](https://github.com/ionic-team/ionic-framework/blob/feature-8.0/core/src/css/palettes/dark.scss). The CSS used to apply the **class** dark palette can be found [here](https://github.com/ionic-team/ionic-framework/blob/feature-8.0/core/src/css/palettes/dark.class.scss).
265+
The contents of Ionic's dark palette can be [viewed on GitHub](https://github.com/ionic-team/ionic-framework/blob/main/core/src/css/palettes/dark.scss). The CSS used to apply the **class** dark palette can be found in the [repository](https://github.com/ionic-team/ionic-framework/blob/main/core/src/css/palettes/dark.class.scss).
266266
:::
267267

268268
</TabItem>

docs/theming/high-contrast-mode.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ The high contrast palette can be enabled by importing the following stylesheet i
3131

3232
<TabItem value="angular">
3333

34-
```css
34+
```scss
3535
@import '@ionic/angular/css/palettes/high-contrast.always.css'; // Light palette
36-
// @import '@ionic/angular/css/palettes/high-contrast.always.css'; // Dark palette
36+
// @import '@ionic/angular/css/palettes/high-contrast-dark.always.css'; // Dark palette
3737
```
3838

3939
</TabItem>

0 commit comments

Comments
 (0)