diff --git a/.github/workflows/actions/build-angular-server/action.yml b/.github/workflows/actions/build-angular-server/action.yml index cda8c10736d..b530d300788 100644 --- a/.github/workflows/actions/build-angular-server/action.yml +++ b/.github/workflows/actions/build-angular-server/action.yml @@ -5,7 +5,7 @@ runs: steps: - uses: actions/setup-node@v4 with: - node-version: 20.x + node-version: 22.x - uses: ./.github/workflows/actions/download-archive with: name: ionic-core diff --git a/.github/workflows/actions/build-angular/action.yml b/.github/workflows/actions/build-angular/action.yml index b573af298c4..80da1c353d7 100644 --- a/.github/workflows/actions/build-angular/action.yml +++ b/.github/workflows/actions/build-angular/action.yml @@ -5,7 +5,7 @@ runs: steps: - uses: actions/setup-node@v4 with: - node-version: 20.x + node-version: 22.x - uses: ./.github/workflows/actions/download-archive with: name: ionic-core diff --git a/.github/workflows/actions/build-core-stencil-prerelease/action.yml b/.github/workflows/actions/build-core-stencil-prerelease/action.yml index 3e31ea6c26a..de2a0ee98c5 100644 --- a/.github/workflows/actions/build-core-stencil-prerelease/action.yml +++ b/.github/workflows/actions/build-core-stencil-prerelease/action.yml @@ -11,7 +11,7 @@ runs: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: - node-version: 20.x + node-version: 22.x - name: Install Dependencies run: npm ci diff --git a/.github/workflows/actions/build-core/action.yml b/.github/workflows/actions/build-core/action.yml index 3a7ff82b61e..28006742feb 100644 --- a/.github/workflows/actions/build-core/action.yml +++ b/.github/workflows/actions/build-core/action.yml @@ -11,7 +11,7 @@ runs: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: - node-version: 20.x + node-version: 22.x - name: Install Dependencies run: npm install working-directory: ./core diff --git a/.github/workflows/actions/build-react-router/action.yml b/.github/workflows/actions/build-react-router/action.yml index 25945e6dc53..390378cb12d 100644 --- a/.github/workflows/actions/build-react-router/action.yml +++ b/.github/workflows/actions/build-react-router/action.yml @@ -5,7 +5,7 @@ runs: steps: - uses: actions/setup-node@v4 with: - node-version: 20.x + node-version: 22.x - uses: ./.github/workflows/actions/download-archive with: name: ionic-core diff --git a/.github/workflows/actions/build-react/action.yml b/.github/workflows/actions/build-react/action.yml index a3a9c95a81c..3ea565d62e3 100644 --- a/.github/workflows/actions/build-react/action.yml +++ b/.github/workflows/actions/build-react/action.yml @@ -5,7 +5,7 @@ runs: steps: - uses: actions/setup-node@v4 with: - node-version: 20.x + node-version: 22.x - uses: ./.github/workflows/actions/download-archive with: name: ionic-core diff --git a/.github/workflows/actions/build-vue-router/action.yml b/.github/workflows/actions/build-vue-router/action.yml index f5630acdee5..623bdc4c7a1 100644 --- a/.github/workflows/actions/build-vue-router/action.yml +++ b/.github/workflows/actions/build-vue-router/action.yml @@ -5,7 +5,7 @@ runs: steps: - uses: actions/setup-node@v4 with: - node-version: 20.x + node-version: 22.x - uses: ./.github/workflows/actions/download-archive with: name: ionic-core diff --git a/.github/workflows/actions/build-vue/action.yml b/.github/workflows/actions/build-vue/action.yml index 29e7966fc99..f2be91e1090 100644 --- a/.github/workflows/actions/build-vue/action.yml +++ b/.github/workflows/actions/build-vue/action.yml @@ -5,7 +5,7 @@ runs: steps: - uses: actions/setup-node@v4 with: - node-version: 20.x + node-version: 22.x - uses: ./.github/workflows/actions/download-archive with: name: ionic-core diff --git a/.github/workflows/actions/publish-npm/action.yml b/.github/workflows/actions/publish-npm/action.yml index 81ce77a0bd2..6bd557db3b9 100644 --- a/.github/workflows/actions/publish-npm/action.yml +++ b/.github/workflows/actions/publish-npm/action.yml @@ -21,7 +21,7 @@ runs: steps: - uses: actions/setup-node@v4 with: - node-version: 20.x + node-version: 22.x # Provenance requires npm 9.5.0+ - name: Install latest npm run: npm install -g npm@latest diff --git a/.github/workflows/actions/test-core-clean-build/action.yml b/.github/workflows/actions/test-core-clean-build/action.yml index 5039f5fa81a..d822e69468d 100644 --- a/.github/workflows/actions/test-core-clean-build/action.yml +++ b/.github/workflows/actions/test-core-clean-build/action.yml @@ -5,7 +5,7 @@ runs: steps: - uses: actions/setup-node@v4 with: - node-version: 20.x + node-version: 22.x - uses: ./.github/workflows/actions/download-archive with: diff --git a/.github/workflows/actions/test-core-lint/action.yml b/.github/workflows/actions/test-core-lint/action.yml index 9bea162758f..a4298c2c0a1 100644 --- a/.github/workflows/actions/test-core-lint/action.yml +++ b/.github/workflows/actions/test-core-lint/action.yml @@ -5,7 +5,7 @@ runs: steps: - uses: actions/setup-node@v4 with: - node-version: 20.x + node-version: 22.x - name: Install Dependencies run: npm ci working-directory: ./core diff --git a/.github/workflows/actions/test-core-screenshot/action.yml b/.github/workflows/actions/test-core-screenshot/action.yml index 2afdf38d8d4..588c310b462 100644 --- a/.github/workflows/actions/test-core-screenshot/action.yml +++ b/.github/workflows/actions/test-core-screenshot/action.yml @@ -15,7 +15,7 @@ runs: steps: - uses: actions/setup-node@v4 with: - node-version: 20.x + node-version: 22.x - uses: ./.github/workflows/actions/download-archive with: name: ionic-core diff --git a/.github/workflows/actions/test-core-spec/action.yml b/.github/workflows/actions/test-core-spec/action.yml index 34055327e89..f6246664066 100644 --- a/.github/workflows/actions/test-core-spec/action.yml +++ b/.github/workflows/actions/test-core-spec/action.yml @@ -8,7 +8,7 @@ runs: steps: - uses: actions/setup-node@v4 with: - node-version: 20.x + node-version: 22.x - name: Install Dependencies run: npm ci working-directory: ./core diff --git a/.github/workflows/actions/test-react-e2e/action.yml b/.github/workflows/actions/test-react-e2e/action.yml index dd7b4293fdd..ab056ac667b 100644 --- a/.github/workflows/actions/test-react-e2e/action.yml +++ b/.github/workflows/actions/test-react-e2e/action.yml @@ -8,7 +8,7 @@ runs: steps: - uses: actions/setup-node@v4 with: - node-version: 20.x + node-version: 22.x - uses: ./.github/workflows/actions/download-archive with: name: ionic-core diff --git a/.github/workflows/actions/test-react-router-e2e/action.yml b/.github/workflows/actions/test-react-router-e2e/action.yml index e3e5be56d34..cf71e4da5aa 100644 --- a/.github/workflows/actions/test-react-router-e2e/action.yml +++ b/.github/workflows/actions/test-react-router-e2e/action.yml @@ -8,7 +8,7 @@ runs: steps: - uses: actions/setup-node@v4 with: - node-version: 20.x + node-version: 22.x - uses: ./.github/workflows/actions/download-archive with: name: ionic-core diff --git a/.github/workflows/actions/test-vue-e2e/action.yml b/.github/workflows/actions/test-vue-e2e/action.yml index 26b713c3447..93a21db7855 100644 --- a/.github/workflows/actions/test-vue-e2e/action.yml +++ b/.github/workflows/actions/test-vue-e2e/action.yml @@ -8,7 +8,7 @@ runs: steps: - uses: actions/setup-node@v4 with: - node-version: 20.x + node-version: 22.x - uses: ./.github/workflows/actions/download-archive with: name: ionic-core diff --git a/.github/workflows/actions/update-reference-screenshots/action.yml b/.github/workflows/actions/update-reference-screenshots/action.yml index 0afcdbb7467..256676fe484 100644 --- a/.github/workflows/actions/update-reference-screenshots/action.yml +++ b/.github/workflows/actions/update-reference-screenshots/action.yml @@ -9,7 +9,7 @@ runs: steps: - uses: actions/setup-node@v4 with: - node-version: 20.x + node-version: 22.x - uses: actions/download-artifact@v4 with: path: ./artifacts diff --git a/CHANGELOG.md b/CHANGELOG.md index a4d23adbdcd..c8ead904454 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,20 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [8.5.5](https://github.com/ionic-team/ionic-framework/compare/v8.5.4...v8.5.5) (2025-04-16) + + +### Bug Fixes + +* **config:** allow LogLevel to work with isolatedModules and update all warns and errors to respect logLevel ([#30350](https://github.com/ionic-team/ionic-framework/issues/30350)) ([d52fca0](https://github.com/ionic-team/ionic-framework/commit/d52fca084cf5a9924d0f6a6c4d9ece0373b83213)) +* **modal:** add expandToScroll property to ModalOptions ([#30357](https://github.com/ionic-team/ionic-framework/issues/30357)) ([8dd566b](https://github.com/ionic-team/ionic-framework/commit/8dd566b5c1241022e26cc91c0f415de20c0d0f34)), closes [#30356](https://github.com/ionic-team/ionic-framework/issues/30356) +* **select:** update icon color and use correct focused class ([#30342](https://github.com/ionic-team/ionic-framework/issues/30342)) ([cad1c61](https://github.com/ionic-team/ionic-framework/commit/cad1c61528c52a53b2164f2ea46f49144d3b46ad)) +* **toggle:** ensure proper visual selection when navigating via VoiceOver in Safari ([#30349](https://github.com/ionic-team/ionic-framework/issues/30349)) ([b1bc58f](https://github.com/ionic-team/ionic-framework/commit/b1bc58f1c8ffdc859e3f4349040bb1ad6e383d1e)) + + + + + ## [8.5.4](https://github.com/ionic-team/ionic-framework/compare/v8.5.3...v8.5.4) (2025-04-09) diff --git a/core/CHANGELOG.md b/core/CHANGELOG.md index 1975017a0b6..21165dea9ea 100644 --- a/core/CHANGELOG.md +++ b/core/CHANGELOG.md @@ -3,6 +3,20 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [8.5.5](https://github.com/ionic-team/ionic-framework/compare/v8.5.4...v8.5.5) (2025-04-16) + + +### Bug Fixes + +* **config:** allow LogLevel to work with isolatedModules and update all warns and errors to respect logLevel ([#30350](https://github.com/ionic-team/ionic-framework/issues/30350)) ([d52fca0](https://github.com/ionic-team/ionic-framework/commit/d52fca084cf5a9924d0f6a6c4d9ece0373b83213)) +* **modal:** add expandToScroll property to ModalOptions ([#30357](https://github.com/ionic-team/ionic-framework/issues/30357)) ([8dd566b](https://github.com/ionic-team/ionic-framework/commit/8dd566b5c1241022e26cc91c0f415de20c0d0f34)), closes [#30356](https://github.com/ionic-team/ionic-framework/issues/30356) +* **select:** update icon color and use correct focused class ([#30342](https://github.com/ionic-team/ionic-framework/issues/30342)) ([cad1c61](https://github.com/ionic-team/ionic-framework/commit/cad1c61528c52a53b2164f2ea46f49144d3b46ad)) +* **toggle:** ensure proper visual selection when navigating via VoiceOver in Safari ([#30349](https://github.com/ionic-team/ionic-framework/issues/30349)) ([b1bc58f](https://github.com/ionic-team/ionic-framework/commit/b1bc58f1c8ffdc859e3f4349040bb1ad6e383d1e)) + + + + + ## [8.5.4](https://github.com/ionic-team/ionic-framework/compare/v8.5.3...v8.5.4) (2025-04-09) diff --git a/core/package-lock.json b/core/package-lock.json index 56b47dc724b..23bd8b3e077 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ionic/core", - "version": "8.5.4", + "version": "8.5.5", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/core", - "version": "8.5.4", + "version": "8.5.5", "license": "MIT", "dependencies": { "@stencil/core": "4.20.0", @@ -663,9 +663,9 @@ "dev": true }, "node_modules/@capacitor/core": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-7.1.0.tgz", - "integrity": "sha512-I0a4C8gux5sx+HDamJjCiWHEWRdJU3hejwURFOSwJjUmAMkfkrm4hOsI0dgd+S0eCkKKKYKz9WNm7DAIvhm2zw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-7.2.0.tgz", + "integrity": "sha512-2zCnA6RJeZ9ec4470o8QMZEQTWpekw9FNoqm5TLc10jeCrhvHVI8MPgxdZVc3mOdFlyieYu4AS1fNxSqbS57Pw==", "dev": true, "dependencies": { "tslib": "^2.1.0" @@ -702,9 +702,9 @@ } }, "node_modules/@clack/core": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@clack/core/-/core-0.4.1.tgz", - "integrity": "sha512-Pxhij4UXg8KSr7rPek6Zowm+5M22rbd2g1nfojHJkxp5YkFqiZ2+YLEM/XGVIzvGOcM0nqjIFxrpDwWRZYWYjA==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@clack/core/-/core-0.4.2.tgz", + "integrity": "sha512-NYQfcEy8MWIxrT5Fj8nIVchfRFA26yYKJcvBS7WlUIlw2OmQOY9DhGGXMovyI5J5PpxrCPGkgUi207EBrjpBvg==", "dev": true, "dependencies": { "picocolors": "^1.0.0", @@ -712,12 +712,12 @@ } }, "node_modules/@clack/prompts": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-0.10.0.tgz", - "integrity": "sha512-H3rCl6CwW1NdQt9rE3n373t7o5cthPv7yUoxF2ytZvyvlJv89C5RYMJu83Hed8ODgys5vpBU0GKxIRG83jd8NQ==", + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-0.10.1.tgz", + "integrity": "sha512-Q0T02vx8ZM9XSv9/Yde0jTmmBQufZhPJfYAg2XrrrxWWaZgq1rr8nU8Hv710BQ1dhoP8rtY7YUdpGej2Qza/cw==", "dev": true, "dependencies": { - "@clack/core": "0.4.1", + "@clack/core": "0.4.2", "picocolors": "^1.0.0", "sisteransi": "^1.0.5" } @@ -11004,9 +11004,9 @@ "dev": true }, "@capacitor/core": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-7.1.0.tgz", - "integrity": "sha512-I0a4C8gux5sx+HDamJjCiWHEWRdJU3hejwURFOSwJjUmAMkfkrm4hOsI0dgd+S0eCkKKKYKz9WNm7DAIvhm2zw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-7.2.0.tgz", + "integrity": "sha512-2zCnA6RJeZ9ec4470o8QMZEQTWpekw9FNoqm5TLc10jeCrhvHVI8MPgxdZVc3mOdFlyieYu4AS1fNxSqbS57Pw==", "dev": true, "requires": { "tslib": "^2.1.0" @@ -11034,9 +11034,9 @@ "requires": {} }, "@clack/core": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@clack/core/-/core-0.4.1.tgz", - "integrity": "sha512-Pxhij4UXg8KSr7rPek6Zowm+5M22rbd2g1nfojHJkxp5YkFqiZ2+YLEM/XGVIzvGOcM0nqjIFxrpDwWRZYWYjA==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@clack/core/-/core-0.4.2.tgz", + "integrity": "sha512-NYQfcEy8MWIxrT5Fj8nIVchfRFA26yYKJcvBS7WlUIlw2OmQOY9DhGGXMovyI5J5PpxrCPGkgUi207EBrjpBvg==", "dev": true, "requires": { "picocolors": "^1.0.0", @@ -11044,12 +11044,12 @@ } }, "@clack/prompts": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-0.10.0.tgz", - "integrity": "sha512-H3rCl6CwW1NdQt9rE3n373t7o5cthPv7yUoxF2ytZvyvlJv89C5RYMJu83Hed8ODgys5vpBU0GKxIRG83jd8NQ==", + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-0.10.1.tgz", + "integrity": "sha512-Q0T02vx8ZM9XSv9/Yde0jTmmBQufZhPJfYAg2XrrrxWWaZgq1rr8nU8Hv710BQ1dhoP8rtY7YUdpGej2Qza/cw==", "dev": true, "requires": { - "@clack/core": "0.4.1", + "@clack/core": "0.4.2", "picocolors": "^1.0.0", "sisteransi": "^1.0.5" } diff --git a/core/package.json b/core/package.json index fb54e386129..575b4ddaeb2 100644 --- a/core/package.json +++ b/core/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/core", - "version": "8.5.4", + "version": "8.5.5", "description": "Base components for Ionic", "keywords": [ "ionic", diff --git a/core/src/components/accordion-group/accordion-group.tsx b/core/src/components/accordion-group/accordion-group.tsx index b84d75b67a5..ba5b110c8b6 100644 --- a/core/src/components/accordion-group/accordion-group.tsx +++ b/core/src/components/accordion-group/accordion-group.tsx @@ -87,7 +87,7 @@ export class AccordionGroup implements ComponentInterface { * Custom behavior: ['a', 'b'] */ printIonWarning( - `ion-accordion-group was passed an array of values, but multiple="false". This is incorrect usage and may result in unexpected behaviors. To dismiss this warning, pass a string to the "value" property when multiple="false". + `[ion-accordion-group] - An array of values was passed, but multiple is "false". This is incorrect usage and may result in unexpected behaviors. To dismiss this warning, pass a string to the "value" property when multiple="false". Value Passed: [${value.map((v) => `'${v}'`).join(', ')}] `, diff --git a/core/src/components/alert/alert.tsx b/core/src/components/alert/alert.tsx index dc598fbdf0a..c126d9b0d2a 100644 --- a/core/src/components/alert/alert.tsx +++ b/core/src/components/alert/alert.tsx @@ -5,6 +5,7 @@ import type { Gesture } from '@utils/gesture'; import { createButtonActiveGesture } from '@utils/gesture/button-active'; import { raf } from '@utils/helpers'; import { createLockController } from '@utils/lock-controller'; +import { printIonWarning } from '@utils/logging'; import { createDelegateController, createTriggerController, @@ -318,8 +319,8 @@ export class Alert implements ComponentInterface, OverlayInterface { // checkboxes and inputs are all accepted, but they cannot be mixed. const inputTypes = new Set(inputs.map((i) => i.type)); if (inputTypes.has('checkbox') && inputTypes.has('radio')) { - console.warn( - `Alert cannot mix input types: ${Array.from(inputTypes.values()).join( + printIonWarning( + `[ion-alert] - Alert cannot mix input types: ${Array.from(inputTypes.values()).join( '/' )}. Please see alert docs for more info.` ); diff --git a/core/src/components/app/app.tsx b/core/src/components/app/app.tsx index fadfed3f04b..4f4919667f4 100644 --- a/core/src/components/app/app.tsx +++ b/core/src/components/app/app.tsx @@ -46,7 +46,7 @@ export class App implements ComponentInterface { */ if (shouldUseCloseWatcher()) { printIonWarning( - 'experimentalCloseWatcher was set to `true`, but hardwareBackButton was set to `false`. Both config options must be `true` for the Close Watcher API to be used.' + '[ion-app] - experimentalCloseWatcher was set to `true`, but hardwareBackButton was set to `false`. Both config options must be `true` for the Close Watcher API to be used.' ); } diff --git a/core/src/components/button/button.tsx b/core/src/components/button/button.tsx index b3dda48877e..4e63b8413ea 100644 --- a/core/src/components/button/button.tsx +++ b/core/src/components/button/button.tsx @@ -235,7 +235,7 @@ export class Button implements ComponentInterface, AnchorInterface, ButtonInterf * element with that id is not a form element. */ printIonWarning( - `Form with selector: "#${form}" could not be found. Verify that the id is attached to a