Skip to content

Commit ac01423

Browse files
authored
chore: sync with main (#29142)
2 parents a0a77f7 + 8f0ea0d commit ac01423

File tree

92 files changed

+944
-1916
lines changed

Some content is hidden

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

92 files changed

+944
-1916
lines changed

.github/COMPONENT-GUIDE.md

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,11 @@ The following styles should be set for the CSS to work properly. Note that the `
9393

9494
The activated state should be enabled for elements with actions on "press". It usually changes the opacity or background of an element.
9595

96+
> [!WARNING]
97+
>`:active` should not be used here as it is not received on mobile Safari unless the element has a `touchstart` listener (which we don't necessarily want to have to add to every element). From [Safari Web Content Guide](https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/AdjustingtheTextSize/AdjustingtheTextSize.html):
98+
>
99+
>> On iOS, mouse events are sent so quickly that the down or active state is never received. Therefore, the `:active` pseudo state is triggered only when there is a touch event set on the HTML element
100+
96101
> Make sure the component has the correct [component structure](#component-structure) before continuing.
97102
98103
#### JavaScript
@@ -109,7 +114,7 @@ render() {
109114
}
110115
```
111116

112-
Once that is done, the element will get the `ion-activated` class added on press.
117+
Once that is done, the element will get the `ion-activated` class added on press after a small delay. This delay exists so that the active state does not show up when an activatable element is tapped while scrolling.
113118

114119
In addition to setting that class, `ion-activatable-instant` can be set in order to have an instant press with no delay:
115120

@@ -212,7 +217,13 @@ TODO
212217

213218
### Focused
214219

215-
The focused state should be enabled for elements with actions when tabbed to via the keyboard. This will only work inside of an `ion-app`. It usually changes the opacity or background of an element.
220+
The focused state should be enabled for elements with actions when tabbed to via the keyboard. This will only work inside of an `ion-app`. It usually changes the opacity or background of an element.
221+
222+
> [!WARNING]
223+
> Do not use `:focus` because that will cause the focus to apply even when an element is tapped (because the element is now focused). Instead, we only want the focus state to be shown when it makes sense which is what the `.ion-focusable` utility mentioned below does.
224+
225+
> [!NOTE]
226+
> The [`:focus-visible`](https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible) pseudo-class mostly does the same thing as our JavaScript-driven utility. However, it does not work well with Shadow DOM components as the element that receives focus is typically inside of the Shadow DOM, but we usually want to set the `:focus-visible` state on the host so we can style other parts of the component. Using other combinations such as `:has(:focus-visible)` does not work because `:has` does not pierce the Shadow DOM (as that would leak implementation details about the Shadow DOM contents). `:focus-within` does work with the Shadow DOM, but that has the same problem as `:focus` that was mentioned before. Unfortunately, a [`:focus-visible-within` pseudo-class does not exist yet](https://github.com/WICG/focus-visible/issues/151).
216227
217228
> Make sure the component has the correct [component structure](#component-structure) before continuing.
218229
@@ -275,7 +286,10 @@ ion-button {
275286

276287
### Hover
277288

278-
The [hover state](https://developer.mozilla.org/en-US/docs/Web/CSS/:hover) happens when a user moves their cursor on top of an element without pressing on it. It should not happen on mobile, only on desktop devices that support hover.
289+
The [hover state](https://developer.mozilla.org/en-US/docs/Web/CSS/:hover) happens when a user moves their cursor on top of an element without pressing on it. It should not happen on mobile, only on desktop devices that support hover.
290+
291+
> [!NOTE]
292+
> Some Android devices [incorrectly report their inputs](https://issues.chromium.org/issues/40855702) which can result in certain devices receiving hover events when they should not.
279293
280294
> Make sure the component has the correct [component structure](#component-structure) before continuing.
281295

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,10 @@ body:
2020
id: affected-versions
2121
attributes:
2222
label: Ionic Framework Version
23-
description: Which version(s) of Ionic Framework does this issue impact? For Ionic Framework 1.x issues, please use https://github.com/ionic-team/ionic-v1. For Ionic Framework 2.x and 3.x issues, please use https://github.com/ionic-team/ionic-v3.
23+
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).
2424
options:
25-
- v4.x
26-
- v5.x
27-
- v6.x
2825
- v7.x
26+
- v8.x (Beta)
2927
- Nightly
3028
multiple: true
3129
validations:
@@ -51,20 +49,27 @@ body:
5149
id: steps-to-reproduce
5250
attributes:
5351
label: Steps to Reproduce
54-
description: Please explain the steps required to duplicate this issue.
52+
description: Explain the steps required to reproduce this issue.
5553
placeholder: |
56-
1.
57-
2.
58-
3.
54+
1. Go to '...'
55+
2. Click on '...'
56+
3. Observe: '...'
5957
validations:
6058
required: true
6159

6260
- type: input
6361
id: reproduction-url
6462
attributes:
6563
label: Code Reproduction URL
66-
description: Please reproduce this issue in a blank Ionic Framework starter application and provide a link to the repo. Try out our [Getting Started Wizard](https://ionicframework.com/start#basics) to quickly spin up an Ionic Framework starter app. This is the best way to ensure this issue is triaged quickly. Issues without a code reproduction may be closed if the Ionic Team cannot reproduce the issue you are reporting.
64+
description: |
65+
Reproduce this issue in a blank [Ionic Framework starter application](https://ionicframework.com/start#basics) or a Stackblitz example.
66+
67+
You can use the Stackblitz button available on any of the [component playgrounds](https://ionicframework.com/docs/components) to open an editable example. Remember to save your changes to obtain a link to copy.
68+
69+
Reproductions cases must be minimal and focused around the specific problem you are experiencing. This is the best way to ensure this issue is triaged quickly. Issues without a code reproduction may be closed if the Ionic Team cannot reproduce the issue you are reporting.
6770
placeholder: https://github.com/...
71+
validations:
72+
required: true
6873

6974
- type: textarea
7075
id: ionic-info

.github/workflows/actions/build-angular-server/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ description: 'Build Ionic Angular Server'
33
runs:
44
using: 'composite'
55
steps:
6-
- uses: actions/setup-node@v3
6+
- uses: actions/setup-node@v4
77
with:
88
node-version: 18.x
99

.github/workflows/actions/build-angular/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ description: 'Build Ionic Angular'
33
runs:
44
using: 'composite'
55
steps:
6-
- uses: actions/setup-node@v3
6+
- uses: actions/setup-node@v4
77
with:
88
node-version: 18.x
99
- uses: ./.github/workflows/actions/download-archive

.github/workflows/actions/build-core-stencil-prerelease/action.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ inputs:
88
runs:
99
using: 'composite'
1010
steps:
11-
- uses: actions/checkout@v3
12-
- uses: actions/setup-node@v3
11+
- uses: actions/checkout@v4
12+
- uses: actions/setup-node@v4
1313
with:
1414
node-version: 18.x
1515

@@ -22,7 +22,7 @@ runs:
2222
run: npm i @stencil/core@${{ inputs.stencil-version }}
2323
shell: bash
2424
- name: Build Core
25-
run: npm run build -- --ci
25+
run: npm run build -- --ci --debug --verbose
2626
working-directory: ./core
2727
shell: bash
2828
- uses: ./.github/workflows/actions/upload-archive

.github/workflows/actions/build-core/action.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ inputs:
88
runs:
99
using: 'composite'
1010
steps:
11-
- uses: actions/checkout@v3
12-
- uses: actions/setup-node@v3
11+
- uses: actions/checkout@v4
12+
- uses: actions/setup-node@v4
1313
with:
1414
node-version: 18.x
1515
- name: Install Dependencies

.github/workflows/actions/build-react-router/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ description: 'Build Ionic React Router'
33
runs:
44
using: 'composite'
55
steps:
6-
- uses: actions/setup-node@v3
6+
- uses: actions/setup-node@v4
77
with:
88
node-version: 18.x
99
- uses: ./.github/workflows/actions/download-archive

.github/workflows/actions/build-react/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ description: 'Build Ionic React'
33
runs:
44
using: 'composite'
55
steps:
6-
- uses: actions/setup-node@v3
6+
- uses: actions/setup-node@v4
77
with:
88
node-version: 18.x
99
- uses: ./.github/workflows/actions/download-archive

.github/workflows/actions/build-vue-router/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ description: 'Builds Ionic Vue Router'
33
runs:
44
using: 'composite'
55
steps:
6-
- uses: actions/setup-node@v3
6+
- uses: actions/setup-node@v4
77
with:
88
node-version: 18.x
99
- uses: ./.github/workflows/actions/download-archive

.github/workflows/actions/build-vue/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ description: 'Build Ionic Vue'
33
runs:
44
using: 'composite'
55
steps:
6-
- uses: actions/setup-node@v3
6+
- uses: actions/setup-node@v4
77
with:
88
node-version: 18.x
99
- uses: ./.github/workflows/actions/download-archive

0 commit comments

Comments
 (0)