Skip to content

Commit 7e8c312

Browse files
merge release-8.7.8 (#30762)
v8.7.8
2 parents 555c4fd + 66abc05 commit 7e8c312

Some content is hidden

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

49 files changed

+779
-146
lines changed

.github/workflows/stencil-nightly.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,3 +225,35 @@ jobs:
225225
- name: Check build matrix status
226226
if: ${{ needs.test-react-e2e.result != 'success' }}
227227
run: exit 1
228+
229+
send-success-messages:
230+
needs: [test-core-clean-build, test-core-lint, test-core-spec, verify-screenshots, verify-test-vue-e2e, verify-test-angular-e2e, verify-test-react-router-e2e, verify-test-react-e2e]
231+
runs-on: ubuntu-latest
232+
if: ${{ !cancelled() && contains(needs.*.result, 'success') }}
233+
steps:
234+
- name: Notify success on Discord
235+
run: |
236+
curl -H "Content-Type:application/json" \
237+
-d '{"embeds": [{"title": "✅ Workflow ${{github.workflow}} #${{github.run_number}} finished successfully", "color": 65280, "url": "${{github.server_url}}/${{github.repository}}/actions/runs/${{github.run_id}}"}]}' \
238+
${{secrets.DISCORD_NOTIFY_WEBHOOK}}
239+
- name: Notify success on Slack
240+
run: |
241+
curl -H "Content-Type:application/json" \
242+
-d '{"title": "✅ Workflow ${{github.workflow}} #${{github.run_number}} finished successfully", "url": "${{github.server_url}}/${{github.repository}}/actions/runs/${{github.run_id}}"}' \
243+
${{secrets.SLACK_NOTIFY_SUCCESS_WEBHOOK}}
244+
245+
send-failure-messages:
246+
needs: [test-core-clean-build, test-core-lint, test-core-spec, verify-screenshots, verify-test-vue-e2e, verify-test-angular-e2e, verify-test-react-router-e2e, verify-test-react-e2e]
247+
runs-on: ubuntu-latest
248+
if: ${{ !cancelled() && contains(needs.*.result, 'failure') }}
249+
steps:
250+
- name: Notify failure on Discord
251+
run: |
252+
curl -H "Content-Type:application/json" \
253+
-d '{"content": "Alerting <@&1347593178580254761>!", "embeds": [{"title": "❌ Workflow ${{github.workflow}} #${{github.run_number}} failed", "color": 16711680, "url": "${{github.server_url}}/${{github.repository}}/actions/runs/${{github.run_id}}"}]}' \
254+
${{secrets.DISCORD_NOTIFY_WEBHOOK}}
255+
- name: Notify failure on Slack
256+
run: |
257+
curl -H "Content-Type:application/json" \
258+
-d '{"title": "❌ Workflow ${{github.workflow}} #${{github.run_number}} failed", "url": "${{github.server_url}}/${{github.repository}}/actions/runs/${{github.run_id}}"}' \
259+
${{secrets.SLACK_NOTIFY_FAILURE_WEBHOOK}}

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,17 @@
33
All notable changes to this project will be documented in this file.
44
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
55

6+
## [8.7.8](https://github.com/ionic-team/ionic-framework/compare/v8.7.7...v8.7.8) (2025-10-29)
7+
8+
9+
### Bug Fixes
10+
11+
* **checkbox, toggle:** fire ionFocus and ionBlur ([#30733](https://github.com/ionic-team/ionic-framework/issues/30733)) ([54a1c86](https://github.com/ionic-team/ionic-framework/commit/54a1c86d6a5d533b0c8c2d18edc62454a7c17bab))
12+
13+
14+
15+
16+
617
## [8.7.7](https://github.com/ionic-team/ionic-framework/compare/v8.7.6...v8.7.7) (2025-10-15)
718

819

core/CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,17 @@
33
All notable changes to this project will be documented in this file.
44
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
55

6+
## [8.7.8](https://github.com/ionic-team/ionic-framework/compare/v8.7.7...v8.7.8) (2025-10-29)
7+
8+
9+
### Bug Fixes
10+
11+
* **checkbox, toggle:** fire ionFocus and ionBlur ([#30733](https://github.com/ionic-team/ionic-framework/issues/30733)) ([54a1c86](https://github.com/ionic-team/ionic-framework/commit/54a1c86d6a5d533b0c8c2d18edc62454a7c17bab))
12+
13+
14+
15+
16+
617
## [8.7.7](https://github.com/ionic-team/ionic-framework/compare/v8.7.6...v8.7.7) (2025-10-15)
718

819

core/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Get Playwright
2-
FROM mcr.microsoft.com/playwright:v1.56.0
2+
FROM mcr.microsoft.com/playwright:v1.56.1
33

44
# Set the working directory
55
WORKDIR /ionic

core/package-lock.json

Lines changed: 46 additions & 46 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

core/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@ionic/core",
3-
"version": "8.7.7",
3+
"version": "8.7.8",
44
"description": "Base components for Ionic",
55
"keywords": [
66
"ionic",
@@ -36,15 +36,15 @@
3636
"tslib": "^2.1.0"
3737
},
3838
"devDependencies": {
39-
"@axe-core/playwright": "^4.10.2",
39+
"@axe-core/playwright": "^4.11.0",
4040
"@capacitor/core": "^7.0.0",
4141
"@capacitor/haptics": "^7.0.0",
4242
"@capacitor/keyboard": "^7.0.0",
4343
"@capacitor/status-bar": "^7.0.0",
4444
"@clack/prompts": "^0.11.0",
4545
"@ionic/eslint-config": "^0.3.0",
4646
"@ionic/prettier-config": "^2.0.0",
47-
"@playwright/test": "^1.56.0",
47+
"@playwright/test": "^1.56.1",
4848
"@rollup/plugin-node-resolve": "^8.4.0",
4949
"@rollup/plugin-virtual": "^2.0.3",
5050
"@stencil/angular-output-target": "^0.10.0",

core/src/components/checkbox/checkbox.tsx

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ export class Checkbox implements ComponentInterface {
3434
private inputLabelId = `${this.inputId}-lbl`;
3535
private helperTextId = `${this.inputId}-helper-text`;
3636
private errorTextId = `${this.inputId}-error-text`;
37-
private focusEl?: HTMLElement;
3837
private inheritedAttributes: Attributes = {};
3938

4039
@Element() el!: HTMLIonCheckboxElement;
@@ -147,9 +146,7 @@ export class Checkbox implements ComponentInterface {
147146
/** @internal */
148147
@Method()
149148
async setFocus() {
150-
if (this.focusEl) {
151-
this.focusEl.focus();
152-
}
149+
this.el.focus();
153150
}
154151

155152
/**
@@ -169,7 +166,6 @@ export class Checkbox implements ComponentInterface {
169166
private toggleChecked = (ev: Event) => {
170167
ev.preventDefault();
171168

172-
this.setFocus();
173169
this.setChecked(!this.checked);
174170
this.indeterminate = false;
175171
};
@@ -285,6 +281,9 @@ export class Checkbox implements ComponentInterface {
285281
aria-disabled={disabled ? 'true' : null}
286282
tabindex={disabled ? undefined : 0}
287283
onKeyDown={this.onKeyDown}
284+
onFocus={this.onFocus}
285+
onBlur={this.onBlur}
286+
onClick={this.onClick}
288287
class={createColorClasses(color, {
289288
[mode]: true,
290289
'in-item': hostContext('ion-item', el),
@@ -296,7 +295,6 @@ export class Checkbox implements ComponentInterface {
296295
[`checkbox-alignment-${alignment}`]: alignment !== undefined,
297296
[`checkbox-label-placement-${labelPlacement}`]: true,
298297
})}
299-
onClick={this.onClick}
300298
>
301299
<label class="checkbox-wrapper" htmlFor={inputId}>
302300
{/*
@@ -309,9 +307,6 @@ export class Checkbox implements ComponentInterface {
309307
disabled={disabled}
310308
id={inputId}
311309
onChange={this.toggleChecked}
312-
onFocus={() => this.onFocus()}
313-
onBlur={() => this.onBlur()}
314-
ref={(focusEl) => (this.focusEl = focusEl)}
315310
required={required}
316311
{...inheritedAttributes}
317312
/>

0 commit comments

Comments
 (0)