From 4f298682549e09f50f5ef46f52811ba2a2320e11 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 3 Jul 2025 09:48:45 -0400 Subject: [PATCH 01/58] chore(deps): update ionic to v8.6.3 (#4173) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../code/stackblitz/v8/angular/package.json | 4 +- static/code/stackblitz/v8/html/package.json | 2 +- .../stackblitz/v8/react/package-lock.json | 48 +++++++++---------- static/code/stackblitz/v8/react/package.json | 4 +- .../code/stackblitz/v8/vue/package-lock.json | 48 +++++++++---------- static/code/stackblitz/v8/vue/package.json | 4 +- 6 files changed, 55 insertions(+), 55 deletions(-) diff --git a/static/code/stackblitz/v8/angular/package.json b/static/code/stackblitz/v8/angular/package.json index f13be41d5e3..d0d53375904 100644 --- a/static/code/stackblitz/v8/angular/package.json +++ b/static/code/stackblitz/v8/angular/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@ionic/angular": "8.6.2", - "@ionic/core": "8.6.2", + "@ionic/angular": "8.6.3", + "@ionic/core": "8.6.3", "ionicons": "8.0.9", "rxjs": "^7.8.1", "tslib": "^2.5.0", diff --git a/static/code/stackblitz/v8/html/package.json b/static/code/stackblitz/v8/html/package.json index f32b562a61f..7d1b321ec83 100644 --- a/static/code/stackblitz/v8/html/package.json +++ b/static/code/stackblitz/v8/html/package.json @@ -1,6 +1,6 @@ { "dependencies": { - "@ionic/core": "8.6.2", + "@ionic/core": "8.6.3", "ionicons": "8.0.9" } } diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index 2c477241a81..b2d7e17586f 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -8,8 +8,8 @@ "name": "vite-react-typescript", "version": "0.1.0", "dependencies": { - "@ionic/react": "8.6.2", - "@ionic/react-router": "8.6.2", + "@ionic/react": "8.6.3", + "@ionic/react-router": "8.6.3", "@types/node": "^22.0.0", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", @@ -661,9 +661,9 @@ } }, "node_modules/@ionic/core": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.6.2.tgz", - "integrity": "sha512-CGZ9CDp/XHtm9WrK3wt0ZtR2f2B76qEvJIaF/juCqmpza9Al6u2L9R/NTEwInDRCWfbkAIF22nHNH54/VvN78Q==", + "version": "8.6.3", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.6.3.tgz", + "integrity": "sha512-N/mkw+sPecLEoO1lrnKDS0uZgl6PWSyFprCkkqoK1nHlfBkgFiHm5M9rvWlnGaFC/5xrhNGHdUtYHDFM+F8gRw==", "dependencies": { "@stencil/core": "4.33.1", "ionicons": "^7.2.2", @@ -671,11 +671,11 @@ } }, "node_modules/@ionic/react": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.6.2.tgz", - "integrity": "sha512-SXE1RnzGqj0MGKGs6D4UCk4rOghbLYI5qwANdZJuBxlIcrcBJuAySjneuTGt+Y3UHS8W3YZHFujRv2Gvb+zvqQ==", + "version": "8.6.3", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.6.3.tgz", + "integrity": "sha512-wBFn6cOKuRKJfUNBz1SyexLkqs+QdaSImEJJ5wepaIF5A94rKlG0JQGCCZjT0KaLbJ+UaQuCgRRQWUrT0XJKDQ==", "dependencies": { - "@ionic/core": "8.6.2", + "@ionic/core": "8.6.3", "ionicons": "^7.0.0", "tslib": "*" }, @@ -685,11 +685,11 @@ } }, "node_modules/@ionic/react-router": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-8.6.2.tgz", - "integrity": "sha512-wNVYZHEHkRkNimiK24bJ8KsWjuQyug7C+J/rNER7BKtZDzU3kWKVjvzD3P7kaiOf/DtVo+OrZNvYQJOuoIEhWg==", + "version": "8.6.3", + "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-8.6.3.tgz", + "integrity": "sha512-hjBTtvltDccgBkZbZRgvnHAB+IxtjXBIJVuRRWAgyTovlJJAdm7oP8RxabblsZqYgdAup9LTI/L5X/uLDlzGIg==", "dependencies": { - "@ionic/react": "8.6.2", + "@ionic/react": "8.6.3", "tslib": "*" }, "peerDependencies": { @@ -2215,9 +2215,9 @@ "optional": true }, "@ionic/core": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.6.2.tgz", - "integrity": "sha512-CGZ9CDp/XHtm9WrK3wt0ZtR2f2B76qEvJIaF/juCqmpza9Al6u2L9R/NTEwInDRCWfbkAIF22nHNH54/VvN78Q==", + "version": "8.6.3", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.6.3.tgz", + "integrity": "sha512-N/mkw+sPecLEoO1lrnKDS0uZgl6PWSyFprCkkqoK1nHlfBkgFiHm5M9rvWlnGaFC/5xrhNGHdUtYHDFM+F8gRw==", "requires": { "@stencil/core": "4.33.1", "ionicons": "^7.2.2", @@ -2225,21 +2225,21 @@ } }, "@ionic/react": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.6.2.tgz", - "integrity": "sha512-SXE1RnzGqj0MGKGs6D4UCk4rOghbLYI5qwANdZJuBxlIcrcBJuAySjneuTGt+Y3UHS8W3YZHFujRv2Gvb+zvqQ==", + "version": "8.6.3", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.6.3.tgz", + "integrity": "sha512-wBFn6cOKuRKJfUNBz1SyexLkqs+QdaSImEJJ5wepaIF5A94rKlG0JQGCCZjT0KaLbJ+UaQuCgRRQWUrT0XJKDQ==", "requires": { - "@ionic/core": "8.6.2", + "@ionic/core": "8.6.3", "ionicons": "^7.0.0", "tslib": "*" } }, "@ionic/react-router": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-8.6.2.tgz", - "integrity": "sha512-wNVYZHEHkRkNimiK24bJ8KsWjuQyug7C+J/rNER7BKtZDzU3kWKVjvzD3P7kaiOf/DtVo+OrZNvYQJOuoIEhWg==", + "version": "8.6.3", + "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-8.6.3.tgz", + "integrity": "sha512-hjBTtvltDccgBkZbZRgvnHAB+IxtjXBIJVuRRWAgyTovlJJAdm7oP8RxabblsZqYgdAup9LTI/L5X/uLDlzGIg==", "requires": { - "@ionic/react": "8.6.2", + "@ionic/react": "8.6.3", "tslib": "*" } }, diff --git a/static/code/stackblitz/v8/react/package.json b/static/code/stackblitz/v8/react/package.json index 8491f5fd6e5..352ee595212 100644 --- a/static/code/stackblitz/v8/react/package.json +++ b/static/code/stackblitz/v8/react/package.json @@ -3,8 +3,8 @@ "version": "0.1.0", "private": true, "dependencies": { - "@ionic/react": "8.6.2", - "@ionic/react-router": "8.6.2", + "@ionic/react": "8.6.3", + "@ionic/react-router": "8.6.3", "@types/node": "^22.0.0", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", diff --git a/static/code/stackblitz/v8/vue/package-lock.json b/static/code/stackblitz/v8/vue/package-lock.json index b8a14f759b9..e1948cab717 100644 --- a/static/code/stackblitz/v8/vue/package-lock.json +++ b/static/code/stackblitz/v8/vue/package-lock.json @@ -8,8 +8,8 @@ "name": "vite-vue-starter", "version": "0.0.0", "dependencies": { - "@ionic/vue": "8.6.2", - "@ionic/vue-router": "8.6.2", + "@ionic/vue": "8.6.3", + "@ionic/vue-router": "8.6.3", "vue": "^3.2.25", "vue-router": "4.5.1" }, @@ -463,9 +463,9 @@ } }, "node_modules/@ionic/core": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.6.2.tgz", - "integrity": "sha512-CGZ9CDp/XHtm9WrK3wt0ZtR2f2B76qEvJIaF/juCqmpza9Al6u2L9R/NTEwInDRCWfbkAIF22nHNH54/VvN78Q==", + "version": "8.6.3", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.6.3.tgz", + "integrity": "sha512-N/mkw+sPecLEoO1lrnKDS0uZgl6PWSyFprCkkqoK1nHlfBkgFiHm5M9rvWlnGaFC/5xrhNGHdUtYHDFM+F8gRw==", "dependencies": { "@stencil/core": "4.33.1", "ionicons": "^7.2.2", @@ -473,21 +473,21 @@ } }, "node_modules/@ionic/vue": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.6.2.tgz", - "integrity": "sha512-bqhKOxKwxp/aK9DR8NkXeaaPyth0TjgIGpzy28JKd/Q3fJ5eICkEn+gctRlC1L/4nBr6DponSEHfncSeEBQfoQ==", + "version": "8.6.3", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.6.3.tgz", + "integrity": "sha512-vQb0lMs3TKbcEZQz1SF7E4TzZf0wRf3elJaIFd0PRa4+Shcn5zpliid8uCJTlPY5k943axIrPNxKaQPJFQXdrw==", "dependencies": { - "@ionic/core": "8.6.2", + "@ionic/core": "8.6.3", "@stencil/vue-output-target": "0.10.7", "ionicons": "^7.0.0" } }, "node_modules/@ionic/vue-router": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-8.6.2.tgz", - "integrity": "sha512-Qx+xhNgqLqACH665vMKP4ZjIagqepKCXJ9cyCpwKaS76SeXxTK4OLSSGv6oOT7UIjGAe8xZH8DQ6LRLFpvvEtw==", + "version": "8.6.3", + "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-8.6.3.tgz", + "integrity": "sha512-WRGPfwCiBjX84Hi55pitRknmnXtOA4VnejU8SSz3tP4tnvFwfLnT7YZcpV9HSMEthb7epHoW9/R2GyZQA3puTA==", "dependencies": { - "@ionic/vue": "8.6.2" + "@ionic/vue": "8.6.3" } }, "node_modules/@jridgewell/sourcemap-codec": { @@ -1757,9 +1757,9 @@ "optional": true }, "@ionic/core": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.6.2.tgz", - "integrity": "sha512-CGZ9CDp/XHtm9WrK3wt0ZtR2f2B76qEvJIaF/juCqmpza9Al6u2L9R/NTEwInDRCWfbkAIF22nHNH54/VvN78Q==", + "version": "8.6.3", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.6.3.tgz", + "integrity": "sha512-N/mkw+sPecLEoO1lrnKDS0uZgl6PWSyFprCkkqoK1nHlfBkgFiHm5M9rvWlnGaFC/5xrhNGHdUtYHDFM+F8gRw==", "requires": { "@stencil/core": "4.33.1", "ionicons": "^7.2.2", @@ -1767,21 +1767,21 @@ } }, "@ionic/vue": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.6.2.tgz", - "integrity": "sha512-bqhKOxKwxp/aK9DR8NkXeaaPyth0TjgIGpzy28JKd/Q3fJ5eICkEn+gctRlC1L/4nBr6DponSEHfncSeEBQfoQ==", + "version": "8.6.3", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.6.3.tgz", + "integrity": "sha512-vQb0lMs3TKbcEZQz1SF7E4TzZf0wRf3elJaIFd0PRa4+Shcn5zpliid8uCJTlPY5k943axIrPNxKaQPJFQXdrw==", "requires": { - "@ionic/core": "8.6.2", + "@ionic/core": "8.6.3", "@stencil/vue-output-target": "0.10.7", "ionicons": "^7.0.0" } }, "@ionic/vue-router": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-8.6.2.tgz", - "integrity": "sha512-Qx+xhNgqLqACH665vMKP4ZjIagqepKCXJ9cyCpwKaS76SeXxTK4OLSSGv6oOT7UIjGAe8xZH8DQ6LRLFpvvEtw==", + "version": "8.6.3", + "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-8.6.3.tgz", + "integrity": "sha512-WRGPfwCiBjX84Hi55pitRknmnXtOA4VnejU8SSz3tP4tnvFwfLnT7YZcpV9HSMEthb7epHoW9/R2GyZQA3puTA==", "requires": { - "@ionic/vue": "8.6.2" + "@ionic/vue": "8.6.3" } }, "@jridgewell/sourcemap-codec": { diff --git a/static/code/stackblitz/v8/vue/package.json b/static/code/stackblitz/v8/vue/package.json index e62f0405cae..bbae5db5630 100644 --- a/static/code/stackblitz/v8/vue/package.json +++ b/static/code/stackblitz/v8/vue/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@ionic/vue": "8.6.2", - "@ionic/vue-router": "8.6.2", + "@ionic/vue": "8.6.3", + "@ionic/vue-router": "8.6.3", "vue": "^3.2.25", "vue-router": "4.5.1" }, From 10e2827748c9b7a16ab22f81db7412cef67dfdb9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 3 Jul 2025 10:00:32 -0400 Subject: [PATCH 02/58] chore(deps): update dependency @types/node to v22.15.34 (#4171) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v7/react/package-lock.json | 12 ++++++------ static/code/stackblitz/v8/react/package-lock.json | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/static/code/stackblitz/v7/react/package-lock.json b/static/code/stackblitz/v7/react/package-lock.json index 39a3442c710..7c3df785a87 100644 --- a/static/code/stackblitz/v7/react/package-lock.json +++ b/static/code/stackblitz/v7/react/package-lock.json @@ -1047,9 +1047,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "node_modules/@types/node": { - "version": "22.15.33", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.33.tgz", - "integrity": "sha512-wzoocdnnpSxZ+6CjW4ADCK1jVmd1S/J3ArNWfn8FDDQtRm8dkDg7TA+mvek2wNrfCgwuZxqEOiB9B1XCJ6+dbw==", + "version": "22.15.34", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.34.tgz", + "integrity": "sha512-8Y6E5WUupYy1Dd0II32BsWAx5MWdcnRd8L84Oys3veg1YrYtNtzgO4CFhiBg6MDSjk7Ay36HYOnU7/tuOzIzcw==", "dependencies": { "undici-types": "~6.21.0" } @@ -2349,9 +2349,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "@types/node": { - "version": "22.15.33", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.33.tgz", - "integrity": "sha512-wzoocdnnpSxZ+6CjW4ADCK1jVmd1S/J3ArNWfn8FDDQtRm8dkDg7TA+mvek2wNrfCgwuZxqEOiB9B1XCJ6+dbw==", + "version": "22.15.34", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.34.tgz", + "integrity": "sha512-8Y6E5WUupYy1Dd0II32BsWAx5MWdcnRd8L84Oys3veg1YrYtNtzgO4CFhiBg6MDSjk7Ay36HYOnU7/tuOzIzcw==", "requires": { "undici-types": "~6.21.0" } diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index b2d7e17586f..15dd41870ca 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -1153,9 +1153,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "node_modules/@types/node": { - "version": "22.15.33", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.33.tgz", - "integrity": "sha512-wzoocdnnpSxZ+6CjW4ADCK1jVmd1S/J3ArNWfn8FDDQtRm8dkDg7TA+mvek2wNrfCgwuZxqEOiB9B1XCJ6+dbw==", + "version": "22.15.34", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.34.tgz", + "integrity": "sha512-8Y6E5WUupYy1Dd0II32BsWAx5MWdcnRd8L84Oys3veg1YrYtNtzgO4CFhiBg6MDSjk7Ay36HYOnU7/tuOzIzcw==", "dependencies": { "undici-types": "~6.21.0" } @@ -2515,9 +2515,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "@types/node": { - "version": "22.15.33", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.33.tgz", - "integrity": "sha512-wzoocdnnpSxZ+6CjW4ADCK1jVmd1S/J3ArNWfn8FDDQtRm8dkDg7TA+mvek2wNrfCgwuZxqEOiB9B1XCJ6+dbw==", + "version": "22.15.34", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.34.tgz", + "integrity": "sha512-8Y6E5WUupYy1Dd0II32BsWAx5MWdcnRd8L84Oys3veg1YrYtNtzgO4CFhiBg6MDSjk7Ay36HYOnU7/tuOzIzcw==", "requires": { "undici-types": "~6.21.0" } From d9ffaf68d2865af1926536a75ccd6d5283a3f52d Mon Sep 17 00:00:00 2001 From: Minh <46137516+minhperry@users.noreply.github.com> Date: Thu, 3 Jul 2025 16:46:24 +0200 Subject: [PATCH 03/58] docs(theming): fix broken link in high contrast mode guide (#4174) --- docs/theming/high-contrast-mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/theming/high-contrast-mode.md b/docs/theming/high-contrast-mode.md index 9896eac1180..148f7c72157 100644 --- a/docs/theming/high-contrast-mode.md +++ b/docs/theming/high-contrast-mode.md @@ -120,7 +120,7 @@ This approach activates the high contrast palette when the [CSS media query for The following example uses the system settings to decide when to show high contrast mode. :::info -Not sure how to change the system settings? Here's how to enable high contrast mode on [Windows 11](hhttps://support.microsoft.com/en-us/windows/turn-high-contrast-mode-on-or-off-in-windows-909e9d89-a0f9-a3a9-b993-7a6dcee85025) and on [macOS](https://support.apple.com/guide/mac-help/change-display-settings-for-accessibility-unac089/mac). +Not sure how to change the system settings? Here's how to enable high contrast mode on [Windows 11](https://support.microsoft.com/en-us/windows/turn-high-contrast-mode-on-or-off-in-windows-909e9d89-a0f9-a3a9-b993-7a6dcee85025) and on [macOS](https://support.apple.com/guide/mac-help/change-display-settings-for-accessibility-unac089/mac). ::: import SystemHighContrastMode from '@site/static/usage/v8/theming/system-high-contrast-mode/index.md'; @@ -178,7 +178,7 @@ This approach activates the high contrast palette when the `.ion-palette-high-co The following example combines site settings, system settings, and the toggle to decide when to show high contrast mode. The site's palette takes precedence over system settings. If your system settings differ from the site's palette when the demo loads, it will use the site's palette. :::info -Not sure how to change the system settings? Here's how to enable high contrast mode on [Windows 11](hhttps://support.microsoft.com/en-us/windows/turn-high-contrast-mode-on-or-off-in-windows-909e9d89-a0f9-a3a9-b993-7a6dcee85025) and on [macOS](https://support.apple.com/guide/mac-help/change-display-settings-for-accessibility-unac089/mac). +Not sure how to change the system settings? Here's how to enable high contrast mode on [Windows 11](https://support.microsoft.com/en-us/windows/turn-high-contrast-mode-on-or-off-in-windows-909e9d89-a0f9-a3a9-b993-7a6dcee85025) and on [macOS](https://support.apple.com/guide/mac-help/change-display-settings-for-accessibility-unac089/mac). ::: import ClassHighContrastMode from '@site/static/usage/v8/theming/class-high-contrast-mode/index.md'; From 9f1709f51251ef400d2af501b32a6abb4ae34328 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 7 Jul 2025 09:33:27 -0400 Subject: [PATCH 04/58] chore(deps): update dependency vite to v7.0.2 (#4177) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v7/vue/package-lock.json | 12 ++++++------ static/code/stackblitz/v8/vue/package-lock.json | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/static/code/stackblitz/v7/vue/package-lock.json b/static/code/stackblitz/v7/vue/package-lock.json index bec257c24a8..12e45b5ba18 100644 --- a/static/code/stackblitz/v7/vue/package-lock.json +++ b/static/code/stackblitz/v7/vue/package-lock.json @@ -1278,9 +1278,9 @@ } }, "node_modules/vite": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.0.tgz", - "integrity": "sha512-ixXJB1YRgDIw2OszKQS9WxGHKwLdCsbQNkpJN171udl6szi/rIySHL6/Os3s2+oE4P/FLD4dxg4mD7Wust+u5g==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.2.tgz", + "integrity": "sha512-hxdyZDY1CM6SNpKI4w4lcUc3Mtkd9ej4ECWVHSMrOdSinVc2zYOAppHeGc/hzmRo3pxM5blMzkuWHOJA/3NiFw==", "dev": true, "dependencies": { "esbuild": "^0.25.0", @@ -2194,9 +2194,9 @@ "devOptional": true }, "vite": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.0.tgz", - "integrity": "sha512-ixXJB1YRgDIw2OszKQS9WxGHKwLdCsbQNkpJN171udl6szi/rIySHL6/Os3s2+oE4P/FLD4dxg4mD7Wust+u5g==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.2.tgz", + "integrity": "sha512-hxdyZDY1CM6SNpKI4w4lcUc3Mtkd9ej4ECWVHSMrOdSinVc2zYOAppHeGc/hzmRo3pxM5blMzkuWHOJA/3NiFw==", "dev": true, "requires": { "esbuild": "^0.25.0", diff --git a/static/code/stackblitz/v8/vue/package-lock.json b/static/code/stackblitz/v8/vue/package-lock.json index e1948cab717..c43dcb7d660 100644 --- a/static/code/stackblitz/v8/vue/package-lock.json +++ b/static/code/stackblitz/v8/vue/package-lock.json @@ -1406,9 +1406,9 @@ } }, "node_modules/vite": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.0.tgz", - "integrity": "sha512-ixXJB1YRgDIw2OszKQS9WxGHKwLdCsbQNkpJN171udl6szi/rIySHL6/Os3s2+oE4P/FLD4dxg4mD7Wust+u5g==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.2.tgz", + "integrity": "sha512-hxdyZDY1CM6SNpKI4w4lcUc3Mtkd9ej4ECWVHSMrOdSinVc2zYOAppHeGc/hzmRo3pxM5blMzkuWHOJA/3NiFw==", "dev": true, "dependencies": { "esbuild": "^0.25.0", @@ -2389,9 +2389,9 @@ "devOptional": true }, "vite": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.0.tgz", - "integrity": "sha512-ixXJB1YRgDIw2OszKQS9WxGHKwLdCsbQNkpJN171udl6szi/rIySHL6/Os3s2+oE4P/FLD4dxg4mD7Wust+u5g==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.2.tgz", + "integrity": "sha512-hxdyZDY1CM6SNpKI4w4lcUc3Mtkd9ej4ECWVHSMrOdSinVc2zYOAppHeGc/hzmRo3pxM5blMzkuWHOJA/3NiFw==", "dev": true, "requires": { "esbuild": "^0.25.0", From 281b4ad975c5285bda3bf0079960100dd650d4e5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 7 Jul 2025 09:34:35 -0400 Subject: [PATCH 05/58] chore(deps): update dependency @types/node to v22.16.0 (#4178) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v7/react/package-lock.json | 12 ++++++------ static/code/stackblitz/v8/react/package-lock.json | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/static/code/stackblitz/v7/react/package-lock.json b/static/code/stackblitz/v7/react/package-lock.json index 7c3df785a87..5913d7a992c 100644 --- a/static/code/stackblitz/v7/react/package-lock.json +++ b/static/code/stackblitz/v7/react/package-lock.json @@ -1047,9 +1047,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "node_modules/@types/node": { - "version": "22.15.34", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.34.tgz", - "integrity": "sha512-8Y6E5WUupYy1Dd0II32BsWAx5MWdcnRd8L84Oys3veg1YrYtNtzgO4CFhiBg6MDSjk7Ay36HYOnU7/tuOzIzcw==", + "version": "22.16.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.0.tgz", + "integrity": "sha512-B2egV9wALML1JCpv3VQoQ+yesQKAmNMBIAY7OteVrikcOcAkWm+dGL6qpeCktPjAv6N1JLnhbNiqS35UpFyBsQ==", "dependencies": { "undici-types": "~6.21.0" } @@ -2349,9 +2349,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "@types/node": { - "version": "22.15.34", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.34.tgz", - "integrity": "sha512-8Y6E5WUupYy1Dd0II32BsWAx5MWdcnRd8L84Oys3veg1YrYtNtzgO4CFhiBg6MDSjk7Ay36HYOnU7/tuOzIzcw==", + "version": "22.16.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.0.tgz", + "integrity": "sha512-B2egV9wALML1JCpv3VQoQ+yesQKAmNMBIAY7OteVrikcOcAkWm+dGL6qpeCktPjAv6N1JLnhbNiqS35UpFyBsQ==", "requires": { "undici-types": "~6.21.0" } diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index 15dd41870ca..fc0986c7c07 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -1153,9 +1153,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "node_modules/@types/node": { - "version": "22.15.34", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.34.tgz", - "integrity": "sha512-8Y6E5WUupYy1Dd0II32BsWAx5MWdcnRd8L84Oys3veg1YrYtNtzgO4CFhiBg6MDSjk7Ay36HYOnU7/tuOzIzcw==", + "version": "22.16.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.0.tgz", + "integrity": "sha512-B2egV9wALML1JCpv3VQoQ+yesQKAmNMBIAY7OteVrikcOcAkWm+dGL6qpeCktPjAv6N1JLnhbNiqS35UpFyBsQ==", "dependencies": { "undici-types": "~6.21.0" } @@ -2515,9 +2515,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "@types/node": { - "version": "22.15.34", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.34.tgz", - "integrity": "sha512-8Y6E5WUupYy1Dd0II32BsWAx5MWdcnRd8L84Oys3veg1YrYtNtzgO4CFhiBg6MDSjk7Ay36HYOnU7/tuOzIzcw==", + "version": "22.16.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.0.tgz", + "integrity": "sha512-B2egV9wALML1JCpv3VQoQ+yesQKAmNMBIAY7OteVrikcOcAkWm+dGL6qpeCktPjAv6N1JLnhbNiqS35UpFyBsQ==", "requires": { "undici-types": "~6.21.0" } From 16e4fcde3a337db11d534f328ceb64662b36dfb2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 7 Jul 2025 09:49:25 -0400 Subject: [PATCH 06/58] chore(deps): update dependency ionicons to v8.0.10 (#4175) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v7/angular/package.json | 2 +- static/code/stackblitz/v7/html/package.json | 2 +- static/code/stackblitz/v8/angular/package.json | 2 +- static/code/stackblitz/v8/html/package.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/static/code/stackblitz/v7/angular/package.json b/static/code/stackblitz/v7/angular/package.json index 34470f65907..4d2e6bc8be1 100644 --- a/static/code/stackblitz/v7/angular/package.json +++ b/static/code/stackblitz/v7/angular/package.json @@ -17,7 +17,7 @@ "@angular/router": "^20.0.0", "@ionic/angular": "^7.0.0", "@ionic/core": "^7.0.0", - "ionicons": "8.0.9", + "ionicons": "8.0.10", "rxjs": "^7.8.1", "tslib": "^2.5.0", "zone.js": "~0.15.0" diff --git a/static/code/stackblitz/v7/html/package.json b/static/code/stackblitz/v7/html/package.json index 7b9f1727b1c..51e609c0753 100644 --- a/static/code/stackblitz/v7/html/package.json +++ b/static/code/stackblitz/v7/html/package.json @@ -1,6 +1,6 @@ { "dependencies": { "@ionic/core": "^7.0.0", - "ionicons": "8.0.9" + "ionicons": "8.0.10" } } diff --git a/static/code/stackblitz/v8/angular/package.json b/static/code/stackblitz/v8/angular/package.json index d0d53375904..8f8566fb2e6 100644 --- a/static/code/stackblitz/v8/angular/package.json +++ b/static/code/stackblitz/v8/angular/package.json @@ -17,7 +17,7 @@ "@angular/router": "^20.0.0", "@ionic/angular": "8.6.3", "@ionic/core": "8.6.3", - "ionicons": "8.0.9", + "ionicons": "8.0.10", "rxjs": "^7.8.1", "tslib": "^2.5.0", "zone.js": "~0.15.0" diff --git a/static/code/stackblitz/v8/html/package.json b/static/code/stackblitz/v8/html/package.json index 7d1b321ec83..a5a43804606 100644 --- a/static/code/stackblitz/v8/html/package.json +++ b/static/code/stackblitz/v8/html/package.json @@ -1,6 +1,6 @@ { "dependencies": { "@ionic/core": "8.6.3", - "ionicons": "8.0.9" + "ionicons": "8.0.10" } } From 1b106775f510aeedd0a59377f4905fe82b481b29 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 7 Jul 2025 09:50:29 -0400 Subject: [PATCH 07/58] chore(deps): update dependency vite to v7.0.2 (#4176) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v7/react/package-lock.json | 12 ++++++------ static/code/stackblitz/v8/react/package-lock.json | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/static/code/stackblitz/v7/react/package-lock.json b/static/code/stackblitz/v7/react/package-lock.json index 5913d7a992c..9bb41383d50 100644 --- a/static/code/stackblitz/v7/react/package-lock.json +++ b/static/code/stackblitz/v7/react/package-lock.json @@ -1691,9 +1691,9 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "node_modules/vite": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.0.tgz", - "integrity": "sha512-ixXJB1YRgDIw2OszKQS9WxGHKwLdCsbQNkpJN171udl6szi/rIySHL6/Os3s2+oE4P/FLD4dxg4mD7Wust+u5g==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.2.tgz", + "integrity": "sha512-hxdyZDY1CM6SNpKI4w4lcUc3Mtkd9ej4ECWVHSMrOdSinVc2zYOAppHeGc/hzmRo3pxM5blMzkuWHOJA/3NiFw==", "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.6", @@ -2800,9 +2800,9 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "vite": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.0.tgz", - "integrity": "sha512-ixXJB1YRgDIw2OszKQS9WxGHKwLdCsbQNkpJN171udl6szi/rIySHL6/Os3s2+oE4P/FLD4dxg4mD7Wust+u5g==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.2.tgz", + "integrity": "sha512-hxdyZDY1CM6SNpKI4w4lcUc3Mtkd9ej4ECWVHSMrOdSinVc2zYOAppHeGc/hzmRo3pxM5blMzkuWHOJA/3NiFw==", "requires": { "esbuild": "^0.25.0", "fdir": "^6.4.6", diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index fc0986c7c07..f2055d41f5f 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -1797,9 +1797,9 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "node_modules/vite": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.0.tgz", - "integrity": "sha512-ixXJB1YRgDIw2OszKQS9WxGHKwLdCsbQNkpJN171udl6szi/rIySHL6/Os3s2+oE4P/FLD4dxg4mD7Wust+u5g==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.2.tgz", + "integrity": "sha512-hxdyZDY1CM6SNpKI4w4lcUc3Mtkd9ej4ECWVHSMrOdSinVc2zYOAppHeGc/hzmRo3pxM5blMzkuWHOJA/3NiFw==", "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.6", @@ -2966,9 +2966,9 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "vite": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.0.tgz", - "integrity": "sha512-ixXJB1YRgDIw2OszKQS9WxGHKwLdCsbQNkpJN171udl6szi/rIySHL6/Os3s2+oE4P/FLD4dxg4mD7Wust+u5g==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.2.tgz", + "integrity": "sha512-hxdyZDY1CM6SNpKI4w4lcUc3Mtkd9ej4ECWVHSMrOdSinVc2zYOAppHeGc/hzmRo3pxM5blMzkuWHOJA/3NiFw==", "requires": { "esbuild": "^0.25.0", "fdir": "^6.4.6", From a9e9a2706727788e18b2bc210ebf44c9f191883d Mon Sep 17 00:00:00 2001 From: Julian Schramm Date: Mon, 7 Jul 2025 22:21:57 +0200 Subject: [PATCH 08/58] docs(refresher): use `RefresherCustomEvent` type in playground examples (#4180) --- .../advanced/angular/example_component_ts.md | 5 +++-- static/usage/v7/refresher/advanced/react/main_tsx.md | 4 ++-- static/usage/v7/refresher/advanced/vue.md | 3 ++- .../refresher/basic/angular/example_component_ts.md | 5 +++-- static/usage/v7/refresher/basic/react.md | 4 ++-- static/usage/v7/refresher/basic/vue.md | 12 ++++++++++-- .../custom-content/angular/example_component_ts.md | 5 +++-- static/usage/v7/refresher/custom-content/react.md | 4 ++-- static/usage/v7/refresher/custom-content/vue.md | 12 ++++++++++-- .../angular/example_component_ts.md | 5 +++-- .../refresher/custom-scroll-target/react/main_tsx.md | 4 ++-- .../usage/v7/refresher/custom-scroll-target/vue.md | 12 ++++++++++-- .../pull-properties/angular/example_component_ts.md | 5 +++-- static/usage/v7/refresher/pull-properties/react.md | 4 ++-- static/usage/v7/refresher/pull-properties/vue.md | 12 ++++++++++-- .../advanced/angular/example_component_ts.md | 5 +++-- static/usage/v8/refresher/advanced/react/main_tsx.md | 4 ++-- static/usage/v8/refresher/advanced/vue.md | 3 ++- .../refresher/basic/angular/example_component_ts.md | 5 +++-- static/usage/v8/refresher/basic/react.md | 4 ++-- static/usage/v8/refresher/basic/vue.md | 12 ++++++++++-- .../custom-content/angular/example_component_ts.md | 5 +++-- static/usage/v8/refresher/custom-content/react.md | 4 ++-- static/usage/v8/refresher/custom-content/vue.md | 12 ++++++++++-- .../angular/example_component_ts.md | 5 +++-- .../refresher/custom-scroll-target/react/main_tsx.md | 4 ++-- .../usage/v8/refresher/custom-scroll-target/vue.md | 12 ++++++++++-- .../pull-properties/angular/example_component_ts.md | 5 +++-- static/usage/v8/refresher/pull-properties/react.md | 4 ++-- static/usage/v8/refresher/pull-properties/vue.md | 12 ++++++++++-- 30 files changed, 134 insertions(+), 58 deletions(-) diff --git a/static/usage/v7/refresher/advanced/angular/example_component_ts.md b/static/usage/v7/refresher/advanced/angular/example_component_ts.md index db6bd8d6099..b7d91143633 100644 --- a/static/usage/v7/refresher/advanced/angular/example_component_ts.md +++ b/static/usage/v7/refresher/advanced/angular/example_component_ts.md @@ -11,6 +11,7 @@ import { IonRefresherContent, IonTitle, IonToolbar, + RefresherCustomEvent, } from '@ionic/angular/standalone'; import { addIcons } from 'ionicons'; @@ -82,10 +83,10 @@ export class ExampleComponent { } } - handleRefresh(event: CustomEvent) { + handleRefresh(event: RefresherCustomEvent) { setTimeout(() => { this.addItems(3, true); - (event.target as HTMLIonRefresherElement).complete(); + event.target.complete(); }, 2000); } } diff --git a/static/usage/v7/refresher/advanced/react/main_tsx.md b/static/usage/v7/refresher/advanced/react/main_tsx.md index f4cdf27d4eb..2ddb57ac50a 100644 --- a/static/usage/v7/refresher/advanced/react/main_tsx.md +++ b/static/usage/v7/refresher/advanced/react/main_tsx.md @@ -11,7 +11,7 @@ import { IonRefresherContent, IonTitle, IonToolbar, - RefresherEventDetail, + RefresherCustomEvent, } from '@ionic/react'; import { ellipse } from 'ionicons/icons'; @@ -44,7 +44,7 @@ function Example() { } }, []); - function handleRefresh(event: CustomEvent) { + function handleRefresh(event: RefresherCustomEvent) { setTimeout(() => { addItems(3, true); event.detail.complete(); diff --git a/static/usage/v7/refresher/advanced/vue.md b/static/usage/v7/refresher/advanced/vue.md index c5ec3047d44..8a34a29f86e 100644 --- a/static/usage/v7/refresher/advanced/vue.md +++ b/static/usage/v7/refresher/advanced/vue.md @@ -51,6 +51,7 @@ IonRefresherContent, IonTitle, IonToolbar, + RefresherCustomEvent, }, setup() { const names = [ @@ -82,7 +83,7 @@ addItems(5); - const handleRefresh = (event: CustomEvent) => { + const handleRefresh = (event: RefresherCustomEvent) => { setTimeout(() => { addItems(3, true); event.target.complete(); diff --git a/static/usage/v7/refresher/basic/angular/example_component_ts.md b/static/usage/v7/refresher/basic/angular/example_component_ts.md index 8edb4e4dc1f..da27a11e0af 100644 --- a/static/usage/v7/refresher/basic/angular/example_component_ts.md +++ b/static/usage/v7/refresher/basic/angular/example_component_ts.md @@ -7,6 +7,7 @@ import { IonRefresherContent, IonTitle, IonToolbar, + RefresherCustomEvent, } from '@ionic/angular/standalone'; @Component({ @@ -16,10 +17,10 @@ import { imports: [IonContent, IonHeader, IonRefresher, IonRefresherContent, IonTitle, IonToolbar], }) export class ExampleComponent { - handleRefresh(event: CustomEvent) { + handleRefresh(event: RefresherCustomEvent) { setTimeout(() => { // Any calls to load data go here - (event.target as HTMLIonRefresherElement).complete(); + event.target.complete(); }, 2000); } } diff --git a/static/usage/v7/refresher/basic/react.md b/static/usage/v7/refresher/basic/react.md index 02b0504208b..bcdd53422d8 100644 --- a/static/usage/v7/refresher/basic/react.md +++ b/static/usage/v7/refresher/basic/react.md @@ -7,11 +7,11 @@ import { IonRefresherContent, IonTitle, IonToolbar, - RefresherEventDetail, + RefresherCustomEvent, } from '@ionic/react'; function Example() { - function handleRefresh(event: CustomEvent) { + function handleRefresh(event: RefresherCustomEvent) { setTimeout(() => { // Any calls to load data go here event.detail.complete(); diff --git a/static/usage/v7/refresher/basic/vue.md b/static/usage/v7/refresher/basic/vue.md index 870081dcfbf..fceacabdd6c 100644 --- a/static/usage/v7/refresher/basic/vue.md +++ b/static/usage/v7/refresher/basic/vue.md @@ -16,13 +16,21 @@ diff --git a/static/code/stackblitz/v7/html/index.withContent.html b/static/code/stackblitz/v7/html/index.withContent.html index 242233075dc..404344868cd 100644 --- a/static/code/stackblitz/v7/html/index.withContent.html +++ b/static/code/stackblitz/v7/html/index.withContent.html @@ -1,8 +1,11 @@ - + + - - + + + + Ionic App @@ -11,6 +14,8 @@ {{ TEMPLATE }} + + diff --git a/static/code/stackblitz/v7/html/package.json b/static/code/stackblitz/v7/html/package.json index 51e609c0753..8f71eb4b9ea 100644 --- a/static/code/stackblitz/v7/html/package.json +++ b/static/code/stackblitz/v7/html/package.json @@ -1,6 +1,20 @@ { + "name": "html-starter", + "private": true, + "type": "module", + "main": "index.ts", + "scripts": { + "dev": "vite", + "build": "vite build", + "start": "vite preview" + }, "dependencies": { "@ionic/core": "^7.0.0", "ionicons": "8.0.10" + }, + "devDependencies": { + "typescript": "^5.0.0", + "vite": "^6.0.0", + "vite-plugin-static-copy": "^3.1.0" } } diff --git a/static/code/stackblitz/v7/html/tsconfig.json b/static/code/stackblitz/v7/html/tsconfig.json new file mode 100644 index 00000000000..0b999e71b8e --- /dev/null +++ b/static/code/stackblitz/v7/html/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "baseUrl": "./", + "target": "esnext", + "module": "nodenext", + "moduleResolution": "nodenext", + "outDir": "dist", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "lib": ["esnext", "dom"], + "resolveJsonModule": true, + "allowSyntheticDefaultImports": true, + "isolatedModules": true, + "types": ["node"] + }, + "include": ["src/**/*.ts"] +} diff --git a/static/code/stackblitz/v7/html/vite.config.ts b/static/code/stackblitz/v7/html/vite.config.ts new file mode 100644 index 00000000000..3e356ac9e72 --- /dev/null +++ b/static/code/stackblitz/v7/html/vite.config.ts @@ -0,0 +1,18 @@ +import { defineConfig } from 'vite'; +import { viteStaticCopy } from 'vite-plugin-static-copy'; + +export default defineConfig({ + optimizeDeps: { + exclude: ['@ionic/core'], + }, + plugins: [ + viteStaticCopy({ + targets: [ + { + src: 'node_modules/ionicons/dist/svg/*', + dest: 'svg' + } + ] + }) + ] +}); diff --git a/static/code/stackblitz/v8/html/index.html b/static/code/stackblitz/v8/html/index.html index 34f05146a9a..fb14e96ba98 100644 --- a/static/code/stackblitz/v8/html/index.html +++ b/static/code/stackblitz/v8/html/index.html @@ -1,14 +1,19 @@ - + + - - + + + + Ionic App {{ TEMPLATE }} + + diff --git a/static/code/stackblitz/v8/html/index.withContent.html b/static/code/stackblitz/v8/html/index.withContent.html index af371907653..404344868cd 100644 --- a/static/code/stackblitz/v8/html/index.withContent.html +++ b/static/code/stackblitz/v8/html/index.withContent.html @@ -1,8 +1,11 @@ - + + - - + + + + Ionic App @@ -11,6 +14,8 @@ {{ TEMPLATE }} + + diff --git a/static/code/stackblitz/v8/html/package.json b/static/code/stackblitz/v8/html/package.json index a5a43804606..6e60b2fd959 100644 --- a/static/code/stackblitz/v8/html/package.json +++ b/static/code/stackblitz/v8/html/package.json @@ -1,6 +1,20 @@ { + "name": "html-starter", + "private": true, + "type": "module", + "main": "index.ts", + "scripts": { + "dev": "vite", + "build": "vite build", + "start": "vite preview" + }, "dependencies": { "@ionic/core": "8.6.3", "ionicons": "8.0.10" + }, + "devDependencies": { + "typescript": "^5.0.0", + "vite": "^6.0.0", + "vite-plugin-static-copy": "^3.1.0" } } diff --git a/static/code/stackblitz/v8/html/tsconfig.json b/static/code/stackblitz/v8/html/tsconfig.json new file mode 100644 index 00000000000..0b999e71b8e --- /dev/null +++ b/static/code/stackblitz/v8/html/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "baseUrl": "./", + "target": "esnext", + "module": "nodenext", + "moduleResolution": "nodenext", + "outDir": "dist", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "lib": ["esnext", "dom"], + "resolveJsonModule": true, + "allowSyntheticDefaultImports": true, + "isolatedModules": true, + "types": ["node"] + }, + "include": ["src/**/*.ts"] +} diff --git a/static/code/stackblitz/v8/html/vite.config.ts b/static/code/stackblitz/v8/html/vite.config.ts new file mode 100644 index 00000000000..3e356ac9e72 --- /dev/null +++ b/static/code/stackblitz/v8/html/vite.config.ts @@ -0,0 +1,18 @@ +import { defineConfig } from 'vite'; +import { viteStaticCopy } from 'vite-plugin-static-copy'; + +export default defineConfig({ + optimizeDeps: { + exclude: ['@ionic/core'], + }, + plugins: [ + viteStaticCopy({ + targets: [ + { + src: 'node_modules/ionicons/dist/svg/*', + dest: 'svg' + } + ] + }) + ] +}); From 34128197198869094373cb8d1460c0dafb26dbf8 Mon Sep 17 00:00:00 2001 From: Brandy Smith Date: Mon, 7 Jul 2025 17:25:28 -0400 Subject: [PATCH 10/58] docs(contributing): update toc (#4181) Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com> --- CONTRIBUTING.md | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6452724858e..6f589964046 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,21 +2,24 @@ Thanks for your interest in contributing to Ionic's documentation! :tada: Check the guidelines below for suggestions and requirements before submitting your contribution. -- [Contributing Guide](#contributing-guide) - - [Development Workflow](#development-workflow) - - [Previewing Changes](#previewing-changes) - - [Linting Documentation](#linting-documentation) - - [Spell Check](#spell-check) - - [Using VS Code on Windows](#using-vs-code-on-windows) - - [Project Structure](#project-structure) - - [Directories](#directories) - - [Authoring Content](#authoring-content) - - [Authoring Locally](#authoring-locally) - - [Translation](#translation) - - [Reporting Issues](#reporting-issues) - - [Pull Request Guidelines](#pull-request-guidelines) - - [Deploying](#deploying) - - [License](#license) + + TABLE OF CONTENTS + + +- [Development Workflow](#development-workflow) + - [Previewing Changes](#previewing-changes) + - [Linting Documentation](#linting-documentation) + - [Spell Check](#spell-check) +- [Using VS Code on Windows](#using-vs-code-on-windows) +- [Project Structure](#project-structure) + - [Directories](#directories) +- [Authoring Content](#authoring-content) + - [Reference Content](#reference-content) +- [Translation](#translation) +- [Reporting Issues](#reporting-issues) +- [Pull Request Guidelines](#pull-request-guidelines) +- [Deploying](#deploying) +- [License](#license) --- From 9f636095c04c96f9ab0d309cf069ea4e916e2f33 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 8 Jul 2025 09:37:55 -0400 Subject: [PATCH 11/58] chore(deps): update dependency vite to v7 (#4182) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v7/html/package.json | 2 +- static/code/stackblitz/v8/html/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/static/code/stackblitz/v7/html/package.json b/static/code/stackblitz/v7/html/package.json index 8f71eb4b9ea..5e36316ec48 100644 --- a/static/code/stackblitz/v7/html/package.json +++ b/static/code/stackblitz/v7/html/package.json @@ -14,7 +14,7 @@ }, "devDependencies": { "typescript": "^5.0.0", - "vite": "^6.0.0", + "vite": "^7.0.0", "vite-plugin-static-copy": "^3.1.0" } } diff --git a/static/code/stackblitz/v8/html/package.json b/static/code/stackblitz/v8/html/package.json index 6e60b2fd959..9d0858b633a 100644 --- a/static/code/stackblitz/v8/html/package.json +++ b/static/code/stackblitz/v8/html/package.json @@ -14,7 +14,7 @@ }, "devDependencies": { "typescript": "^5.0.0", - "vite": "^6.0.0", + "vite": "^7.0.0", "vite-plugin-static-copy": "^3.1.0" } } From a796d68f70af6b9509c49aeb011f95a178327353 Mon Sep 17 00:00:00 2001 From: Joey Chang <93396238+joesphchang@users.noreply.github.com> Date: Tue, 8 Jul 2025 13:52:50 -0500 Subject: [PATCH 12/58] docs(config): add playground examples of how to access the mode per framework (#4172) --- docs/developing/config.md | 8 ++++ .../mode/angular/example_component_html.md | 5 +++ .../mode/angular/example_component_ts.md | 16 ++++++++ static/usage/v7/config/mode/demo.html | 41 +++++++++++++++++++ static/usage/v7/config/mode/index.md | 24 +++++++++++ static/usage/v7/config/mode/javascript.md | 12 ++++++ static/usage/v7/config/mode/react.md | 25 +++++++++++ static/usage/v7/config/mode/vue.md | 20 +++++++++ .../mode/angular/example_component_html.md | 5 +++ .../mode/angular/example_component_ts.md | 16 ++++++++ static/usage/v8/config/mode/demo.html | 41 +++++++++++++++++++ static/usage/v8/config/mode/index.md | 24 +++++++++++ static/usage/v8/config/mode/javascript.md | 12 ++++++ static/usage/v8/config/mode/react.md | 24 +++++++++++ static/usage/v8/config/mode/vue.md | 20 +++++++++ .../version-v7/developing/config.md | 8 ++++ 16 files changed, 301 insertions(+) create mode 100644 static/usage/v7/config/mode/angular/example_component_html.md create mode 100644 static/usage/v7/config/mode/angular/example_component_ts.md create mode 100644 static/usage/v7/config/mode/demo.html create mode 100644 static/usage/v7/config/mode/index.md create mode 100644 static/usage/v7/config/mode/javascript.md create mode 100644 static/usage/v7/config/mode/react.md create mode 100644 static/usage/v7/config/mode/vue.md create mode 100644 static/usage/v8/config/mode/angular/example_component_html.md create mode 100644 static/usage/v8/config/mode/angular/example_component_ts.md create mode 100644 static/usage/v8/config/mode/demo.html create mode 100644 static/usage/v8/config/mode/index.md create mode 100644 static/usage/v8/config/mode/javascript.md create mode 100644 static/usage/v8/config/mode/react.md create mode 100644 static/usage/v8/config/mode/vue.md diff --git a/docs/developing/config.md b/docs/developing/config.md index 0f70b8da46d..6cce3de4a1d 100644 --- a/docs/developing/config.md +++ b/docs/developing/config.md @@ -51,6 +51,14 @@ import PerPlatformOverridesExample from '@site/docs/developing/config/per-platfo +## Accessing the Mode + +In some cases, you may need to access the current Ionic mode programmatically within your application logic. This can be useful for applying conditional behavior, fetching specific assets, or performing other actions based on the active styling mode. + +import IonicMode from '@site/static/usage/v8/config/mode/index.md'; + + + ## Reading the Config (Angular) Ionic Angular provides a `Config` provider for accessing the Ionic Config. diff --git a/static/usage/v7/config/mode/angular/example_component_html.md b/static/usage/v7/config/mode/angular/example_component_html.md new file mode 100644 index 00000000000..759329a97da --- /dev/null +++ b/static/usage/v7/config/mode/angular/example_component_html.md @@ -0,0 +1,5 @@ +```html + + Current mode: {{ mode }} + +``` diff --git a/static/usage/v7/config/mode/angular/example_component_ts.md b/static/usage/v7/config/mode/angular/example_component_ts.md new file mode 100644 index 00000000000..5f0d31b1a3c --- /dev/null +++ b/static/usage/v7/config/mode/angular/example_component_ts.md @@ -0,0 +1,16 @@ +```ts +import { Component } from '@angular/core'; +import { Config, IonButton } from '@ionic/angular/standalone'; + +@Component({ + selector: 'app-example', + templateUrl: './example.component.html', + imports: [IonButton], +}) +export class ExampleComponent { + mode: string; + constructor(public config: Config) { + this.mode = this.config.get('mode'); + } +} +``` diff --git a/static/usage/v7/config/mode/demo.html b/static/usage/v7/config/mode/demo.html new file mode 100644 index 00000000000..8762f394ba5 --- /dev/null +++ b/static/usage/v7/config/mode/demo.html @@ -0,0 +1,41 @@ + + + + + + Ionic Config Mode + + + + + + + + + +
+ +
+
+
+ + + diff --git a/static/usage/v7/config/mode/index.md b/static/usage/v7/config/mode/index.md new file mode 100644 index 00000000000..f81cca1df75 --- /dev/null +++ b/static/usage/v7/config/mode/index.md @@ -0,0 +1,24 @@ +import Playground from '@site/src/components/global/Playground'; + +import javascript from './javascript.md'; +import react from './react.md'; +import vue from './vue.md'; + +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; + + diff --git a/static/usage/v7/config/mode/javascript.md b/static/usage/v7/config/mode/javascript.md new file mode 100644 index 00000000000..86b8b111d5f --- /dev/null +++ b/static/usage/v7/config/mode/javascript.md @@ -0,0 +1,12 @@ +```html + + + +``` diff --git a/static/usage/v7/config/mode/react.md b/static/usage/v7/config/mode/react.md new file mode 100644 index 00000000000..3699e778a85 --- /dev/null +++ b/static/usage/v7/config/mode/react.md @@ -0,0 +1,25 @@ +```tsx +import React, { useState, useEffect } from 'react'; +import { IonButton } from '@ionic/react'; +import { getMode } from '@ionic/core'; + +function Example() { + const [mode, setMode] = useState(''); + + useEffect(() => { + const mode = getMode() || 'md'; + setMode(mode); + }, []); + + const color = mode === 'ios' ? 'secondary' : 'tertiary'; + const fill = mode === 'ios' ? 'outline' : 'solid'; + + return ( + + Current mode: {mode} + + ); +} + +export default Example; +``` diff --git a/static/usage/v7/config/mode/vue.md b/static/usage/v7/config/mode/vue.md new file mode 100644 index 00000000000..a227337a408 --- /dev/null +++ b/static/usage/v7/config/mode/vue.md @@ -0,0 +1,20 @@ +```html + + + +``` diff --git a/static/usage/v8/config/mode/angular/example_component_html.md b/static/usage/v8/config/mode/angular/example_component_html.md new file mode 100644 index 00000000000..759329a97da --- /dev/null +++ b/static/usage/v8/config/mode/angular/example_component_html.md @@ -0,0 +1,5 @@ +```html + + Current mode: {{ mode }} + +``` diff --git a/static/usage/v8/config/mode/angular/example_component_ts.md b/static/usage/v8/config/mode/angular/example_component_ts.md new file mode 100644 index 00000000000..5f0d31b1a3c --- /dev/null +++ b/static/usage/v8/config/mode/angular/example_component_ts.md @@ -0,0 +1,16 @@ +```ts +import { Component } from '@angular/core'; +import { Config, IonButton } from '@ionic/angular/standalone'; + +@Component({ + selector: 'app-example', + templateUrl: './example.component.html', + imports: [IonButton], +}) +export class ExampleComponent { + mode: string; + constructor(public config: Config) { + this.mode = this.config.get('mode'); + } +} +``` diff --git a/static/usage/v8/config/mode/demo.html b/static/usage/v8/config/mode/demo.html new file mode 100644 index 00000000000..8762f394ba5 --- /dev/null +++ b/static/usage/v8/config/mode/demo.html @@ -0,0 +1,41 @@ + + + + + + Ionic Config Mode + + + + + + + + + +
+ +
+
+
+ + + diff --git a/static/usage/v8/config/mode/index.md b/static/usage/v8/config/mode/index.md new file mode 100644 index 00000000000..2a39f7cc794 --- /dev/null +++ b/static/usage/v8/config/mode/index.md @@ -0,0 +1,24 @@ +import Playground from '@site/src/components/global/Playground'; + +import javascript from './javascript.md'; +import react from './react.md'; +import vue from './vue.md'; + +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; + + diff --git a/static/usage/v8/config/mode/javascript.md b/static/usage/v8/config/mode/javascript.md new file mode 100644 index 00000000000..86b8b111d5f --- /dev/null +++ b/static/usage/v8/config/mode/javascript.md @@ -0,0 +1,12 @@ +```html + + + +``` diff --git a/static/usage/v8/config/mode/react.md b/static/usage/v8/config/mode/react.md new file mode 100644 index 00000000000..3de2faf85a1 --- /dev/null +++ b/static/usage/v8/config/mode/react.md @@ -0,0 +1,24 @@ +```tsx +import React, { useState, useEffect } from 'react'; +import { IonButton } from '@ionic/react'; +import { getMode } from '@ionic/core'; + +function Example() { + const [mode, setMode] = useState(''); + + useEffect(() => { + const mode = getMode() || 'md'; + setMode(mode); + }, []); + + const color = mode === 'ios' ? 'secondary' : 'tertiary'; + const fill = mode === 'ios' ? 'outline' : 'solid'; + + return ( + + Current mode: {mode} + + ); +} +export default Example; +``` diff --git a/static/usage/v8/config/mode/vue.md b/static/usage/v8/config/mode/vue.md new file mode 100644 index 00000000000..a227337a408 --- /dev/null +++ b/static/usage/v8/config/mode/vue.md @@ -0,0 +1,20 @@ +```html + + + +``` diff --git a/versioned_docs/version-v7/developing/config.md b/versioned_docs/version-v7/developing/config.md index b97ec2cd1ae..7c471584120 100644 --- a/versioned_docs/version-v7/developing/config.md +++ b/versioned_docs/version-v7/developing/config.md @@ -51,6 +51,14 @@ import PerPlatformOverridesExample from '@site/docs/developing/config/per-platfo +## Accessing the Mode + +In some cases, you may need to access the current Ionic mode programmatically within your application logic. This can be useful for applying conditional behavior, fetching specific assets, or performing other actions based on the active styling mode. + +import IonicMode from '@site/static/usage/v7/config/mode/index.md'; + + + ## Reading the Config (Angular) Ionic Angular provides a `Config` provider for accessing the Ionic Config. From 5b9b57a076d05ee339e50aec248255803c37471b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 9 Jul 2025 19:33:01 -0400 Subject: [PATCH 13/58] chore(deps): update dependency typescript to v5 (#4184) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v7/vue/package-lock.json | 16 ++++++++-------- static/code/stackblitz/v7/vue/package.json | 2 +- static/code/stackblitz/v8/vue/package-lock.json | 16 ++++++++-------- static/code/stackblitz/v8/vue/package.json | 2 +- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/static/code/stackblitz/v7/vue/package-lock.json b/static/code/stackblitz/v7/vue/package-lock.json index 12e45b5ba18..cf06ca396cf 100644 --- a/static/code/stackblitz/v7/vue/package-lock.json +++ b/static/code/stackblitz/v7/vue/package-lock.json @@ -15,7 +15,7 @@ }, "devDependencies": { "@vitejs/plugin-vue": "^6.0.0", - "typescript": "^4.5.4", + "typescript": "^5.0.0", "vite": "^7.0.0", "vue-tsc": "^2.0.0" } @@ -1265,16 +1265,16 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "devOptional": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, "node_modules/vite": { @@ -2188,9 +2188,9 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "devOptional": true }, "vite": { diff --git a/static/code/stackblitz/v7/vue/package.json b/static/code/stackblitz/v7/vue/package.json index 120fd34f021..40487939144 100644 --- a/static/code/stackblitz/v7/vue/package.json +++ b/static/code/stackblitz/v7/vue/package.json @@ -15,7 +15,7 @@ }, "devDependencies": { "@vitejs/plugin-vue": "^6.0.0", - "typescript": "^4.5.4", + "typescript": "^5.0.0", "vite": "^7.0.0", "vue-tsc": "^2.0.0" } diff --git a/static/code/stackblitz/v8/vue/package-lock.json b/static/code/stackblitz/v8/vue/package-lock.json index c43dcb7d660..29ae2ab4b0d 100644 --- a/static/code/stackblitz/v8/vue/package-lock.json +++ b/static/code/stackblitz/v8/vue/package-lock.json @@ -15,7 +15,7 @@ }, "devDependencies": { "@vitejs/plugin-vue": "^6.0.0", - "typescript": "^4.5.4", + "typescript": "^5.0.0", "vite": "^7.0.0", "vue-tsc": "^2.0.0" } @@ -1393,16 +1393,16 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "devOptional": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, "node_modules/vite": { @@ -2383,9 +2383,9 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "devOptional": true }, "vite": { diff --git a/static/code/stackblitz/v8/vue/package.json b/static/code/stackblitz/v8/vue/package.json index bbae5db5630..8de27c133f5 100644 --- a/static/code/stackblitz/v8/vue/package.json +++ b/static/code/stackblitz/v8/vue/package.json @@ -15,7 +15,7 @@ }, "devDependencies": { "@vitejs/plugin-vue": "^6.0.0", - "typescript": "^4.5.4", + "typescript": "^5.0.0", "vite": "^7.0.0", "vue-tsc": "^2.0.0" } From 7bcc58694892492d4768cd07dc33e3da34ea1c31 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 9 Jul 2025 19:37:49 -0400 Subject: [PATCH 14/58] chore(deps): update dependency ionicons to v8.0.13 (#4183) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v7/angular/package.json | 2 +- static/code/stackblitz/v7/html/package.json | 2 +- static/code/stackblitz/v8/angular/package.json | 2 +- static/code/stackblitz/v8/html/package.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/static/code/stackblitz/v7/angular/package.json b/static/code/stackblitz/v7/angular/package.json index 4d2e6bc8be1..18cdecc15dd 100644 --- a/static/code/stackblitz/v7/angular/package.json +++ b/static/code/stackblitz/v7/angular/package.json @@ -17,7 +17,7 @@ "@angular/router": "^20.0.0", "@ionic/angular": "^7.0.0", "@ionic/core": "^7.0.0", - "ionicons": "8.0.10", + "ionicons": "8.0.13", "rxjs": "^7.8.1", "tslib": "^2.5.0", "zone.js": "~0.15.0" diff --git a/static/code/stackblitz/v7/html/package.json b/static/code/stackblitz/v7/html/package.json index 5e36316ec48..5f2b336cbc1 100644 --- a/static/code/stackblitz/v7/html/package.json +++ b/static/code/stackblitz/v7/html/package.json @@ -10,7 +10,7 @@ }, "dependencies": { "@ionic/core": "^7.0.0", - "ionicons": "8.0.10" + "ionicons": "8.0.13" }, "devDependencies": { "typescript": "^5.0.0", diff --git a/static/code/stackblitz/v8/angular/package.json b/static/code/stackblitz/v8/angular/package.json index 8f8566fb2e6..6a4de9c7075 100644 --- a/static/code/stackblitz/v8/angular/package.json +++ b/static/code/stackblitz/v8/angular/package.json @@ -17,7 +17,7 @@ "@angular/router": "^20.0.0", "@ionic/angular": "8.6.3", "@ionic/core": "8.6.3", - "ionicons": "8.0.10", + "ionicons": "8.0.13", "rxjs": "^7.8.1", "tslib": "^2.5.0", "zone.js": "~0.15.0" diff --git a/static/code/stackblitz/v8/html/package.json b/static/code/stackblitz/v8/html/package.json index 9d0858b633a..815a2c05516 100644 --- a/static/code/stackblitz/v8/html/package.json +++ b/static/code/stackblitz/v8/html/package.json @@ -10,7 +10,7 @@ }, "dependencies": { "@ionic/core": "8.6.3", - "ionicons": "8.0.10" + "ionicons": "8.0.13" }, "devDependencies": { "typescript": "^5.0.0", From 4b71504648ef943cc5d335d1014404e1f8b969ac Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 9 Jul 2025 19:43:42 -0400 Subject: [PATCH 15/58] chore(deps): update dependency vue-tsc to v3 (#4179) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../code/stackblitz/v7/vue/package-lock.json | 307 ++++++++---------- static/code/stackblitz/v7/vue/package.json | 2 +- .../code/stackblitz/v8/vue/package-lock.json | 307 ++++++++---------- static/code/stackblitz/v8/vue/package.json | 2 +- 4 files changed, 256 insertions(+), 362 deletions(-) diff --git a/static/code/stackblitz/v7/vue/package-lock.json b/static/code/stackblitz/v7/vue/package-lock.json index cf06ca396cf..5bf7d544e74 100644 --- a/static/code/stackblitz/v7/vue/package-lock.json +++ b/static/code/stackblitz/v7/vue/package-lock.json @@ -17,7 +17,7 @@ "@vitejs/plugin-vue": "^6.0.0", "typescript": "^5.0.0", "vite": "^7.0.0", - "vue-tsc": "^2.0.0" + "vue-tsc": "^3.0.0" } }, "node_modules/@babel/helper-string-parser": { @@ -489,6 +489,27 @@ "@ionic/vue": "7.8.6" } }, + "node_modules/@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "dev": true, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/brace-expansion": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "dev": true, + "dependencies": { + "@isaacs/balanced-match": "^4.0.1" + }, + "engines": { + "node": "20 || >=22" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", @@ -795,27 +816,27 @@ } }, "node_modules/@volar/language-core": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.3.4.tgz", - "integrity": "sha512-wXBhY11qG6pCDAqDnbBRFIDSIwbqkWI7no+lj5+L7IlA7HRIjRP7YQLGzT0LF4lS6eHkMSsclXqy9DwYJasZTQ==", + "version": "2.4.17", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.17.tgz", + "integrity": "sha512-chmRZMbKmcGpKMoO7Reb70uiLrzo0KWC2CkFttKUuKvrE+VYgi+fL9vWMJ07Fv5ulX0V1TAyyacN9q3nc5/ecA==", "dev": true, "dependencies": { - "@volar/source-map": "2.3.4" + "@volar/source-map": "2.4.17" } }, "node_modules/@volar/source-map": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.3.4.tgz", - "integrity": "sha512-C+t63nwcblqLIVTYXaVi/+gC8NukDaDIQI72J3R7aXGvtgaVB16c+J8Iz7/VfOy7kjYv7lf5GhBny6ACw9fTGQ==", + "version": "2.4.17", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.17.tgz", + "integrity": "sha512-QDybtQyO3Ms/NjFqNHTC5tbDN2oK5VH7ZaKrcubtfHBDj63n2pizHC3wlMQ+iT55kQXZUUAbmBX5L1C8CHFeBw==", "dev": true }, "node_modules/@volar/typescript": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.3.4.tgz", - "integrity": "sha512-acCvt7dZECyKcvO5geNybmrqOsu9u8n5XP1rfiYsOLYGPxvHRav9BVmEdRyZ3vvY6mNyQ1wLL5Hday4IShe17w==", + "version": "2.4.17", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.17.tgz", + "integrity": "sha512-3paEFNh4P5DkgNUB2YkTRrfUekN4brAXxd3Ow1syMqdIPtCZHbUy4AW99S5RO/7mzyTWPMdDSo3mqTpB/LPObQ==", "dev": true, "dependencies": { - "@volar/language-core": "2.3.4", + "@volar/language-core": "2.4.17", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -866,25 +887,35 @@ "@vue/shared": "3.5.17" } }, + "node_modules/@vue/compiler-vue2": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, "node_modules/@vue/devtools-api": { "version": "6.6.4", "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" }, "node_modules/@vue/language-core": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.0.22.tgz", - "integrity": "sha512-dNTAAtEOuMiz7N1s5tKpypnVVCtawxVSF5BukD0ELcYSw+DSbrSlYYSw8GuwvurodCeYFSHsmslE+c2sYDNoiA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.1.tgz", + "integrity": "sha512-sq+/Mc1IqIexWEQ+Q2XPiDb5SxSvY5JPqHnMOl/PlF5BekslzduX8dglSkpC17VeiAQB6dpS+4aiwNLJRduCNw==", "dev": true, "dependencies": { - "@volar/language-core": "~2.3.1", - "@vue/compiler-dom": "^3.4.0", - "@vue/shared": "^3.4.0", - "computeds": "^0.0.1", - "minimatch": "^9.0.3", + "@volar/language-core": "2.4.17", + "@vue/compiler-dom": "^3.5.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.5.0", + "alien-signals": "^2.0.5", + "minimatch": "^10.0.1", "muggle-string": "^0.4.1", - "path-browserify": "^1.0.1", - "vue-template-compiler": "^2.7.14" + "path-browserify": "^1.0.1" }, "peerDependencies": { "typescript": "*" @@ -940,25 +971,10 @@ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.17.tgz", "integrity": "sha512-CabR+UN630VnsJO/jHWYBC1YVXyMq94KKp6iF5MQgZJs5I8cmjw6oVMO1oDbtBkENSHSSn/UadWlW/OAgdmKrg==" }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/computeds": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", - "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "node_modules/alien-signals": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-2.0.5.tgz", + "integrity": "sha512-PdJB6+06nUNAClInE3Dweq7/2xVAYM64vvvS1IHVHSJmgeOtEdrAGyp7Z2oJtYm0B342/Exd2NT0uMJaThcjLQ==", "dev": true }, "node_modules/csstype": { @@ -1073,18 +1089,6 @@ "@stencil/core": "^4.0.3" } }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/magic-string": { "version": "0.30.17", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", @@ -1094,15 +1098,15 @@ } }, "node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", + "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" + "@isaacs/brace-expansion": "^5.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -1220,21 +1224,6 @@ "fsevents": "~2.3.2" } }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -1391,38 +1380,21 @@ "vue": "^3.2.0" } }, - "node_modules/vue-template-compiler": { - "version": "2.7.14", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", - "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", - "dev": true, - "dependencies": { - "de-indent": "^1.0.2", - "he": "^1.2.0" - } - }, "node_modules/vue-tsc": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.0.22.tgz", - "integrity": "sha512-lMBIwPBO0sxCcmvu45yt1b035AaQ8/XSXQDk8m75y4j0jSXY/y/XzfEtssQ9JMS47lDaR10O3/926oCs8OeGUw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.1.tgz", + "integrity": "sha512-UvMLQD0hAGL1g/NfEQelnSVB4H5gtf/gz2lJKjMMwWNOUmSNyWkejwJagAxEbSjtV5CPPJYslOtoSuqJ63mhdg==", "dev": true, "dependencies": { - "@volar/typescript": "~2.3.1", - "@vue/language-core": "2.0.22", - "semver": "^7.5.4" + "@volar/typescript": "2.4.17", + "@vue/language-core": "3.0.1" }, "bin": { "vue-tsc": "bin/vue-tsc.js" }, "peerDependencies": { - "typescript": "*" + "typescript": ">=5.0.0" } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true } }, "dependencies": { @@ -1655,6 +1627,21 @@ "@ionic/vue": "7.8.6" } }, + "@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "dev": true + }, + "@isaacs/brace-expansion": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "dev": true, + "requires": { + "@isaacs/balanced-match": "^4.0.1" + } + }, "@jridgewell/sourcemap-codec": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", @@ -1827,27 +1814,27 @@ } }, "@volar/language-core": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.3.4.tgz", - "integrity": "sha512-wXBhY11qG6pCDAqDnbBRFIDSIwbqkWI7no+lj5+L7IlA7HRIjRP7YQLGzT0LF4lS6eHkMSsclXqy9DwYJasZTQ==", + "version": "2.4.17", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.17.tgz", + "integrity": "sha512-chmRZMbKmcGpKMoO7Reb70uiLrzo0KWC2CkFttKUuKvrE+VYgi+fL9vWMJ07Fv5ulX0V1TAyyacN9q3nc5/ecA==", "dev": true, "requires": { - "@volar/source-map": "2.3.4" + "@volar/source-map": "2.4.17" } }, "@volar/source-map": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.3.4.tgz", - "integrity": "sha512-C+t63nwcblqLIVTYXaVi/+gC8NukDaDIQI72J3R7aXGvtgaVB16c+J8Iz7/VfOy7kjYv7lf5GhBny6ACw9fTGQ==", + "version": "2.4.17", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.17.tgz", + "integrity": "sha512-QDybtQyO3Ms/NjFqNHTC5tbDN2oK5VH7ZaKrcubtfHBDj63n2pizHC3wlMQ+iT55kQXZUUAbmBX5L1C8CHFeBw==", "dev": true }, "@volar/typescript": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.3.4.tgz", - "integrity": "sha512-acCvt7dZECyKcvO5geNybmrqOsu9u8n5XP1rfiYsOLYGPxvHRav9BVmEdRyZ3vvY6mNyQ1wLL5Hday4IShe17w==", + "version": "2.4.17", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.17.tgz", + "integrity": "sha512-3paEFNh4P5DkgNUB2YkTRrfUekN4brAXxd3Ow1syMqdIPtCZHbUy4AW99S5RO/7mzyTWPMdDSo3mqTpB/LPObQ==", "dev": true, "requires": { - "@volar/language-core": "2.3.4", + "@volar/language-core": "2.4.17", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -1898,25 +1885,35 @@ "@vue/shared": "3.5.17" } }, + "@vue/compiler-vue2": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, "@vue/devtools-api": { "version": "6.6.4", "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" }, "@vue/language-core": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.0.22.tgz", - "integrity": "sha512-dNTAAtEOuMiz7N1s5tKpypnVVCtawxVSF5BukD0ELcYSw+DSbrSlYYSw8GuwvurodCeYFSHsmslE+c2sYDNoiA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.1.tgz", + "integrity": "sha512-sq+/Mc1IqIexWEQ+Q2XPiDb5SxSvY5JPqHnMOl/PlF5BekslzduX8dglSkpC17VeiAQB6dpS+4aiwNLJRduCNw==", "dev": true, "requires": { - "@volar/language-core": "~2.3.1", - "@vue/compiler-dom": "^3.4.0", - "@vue/shared": "^3.4.0", - "computeds": "^0.0.1", - "minimatch": "^9.0.3", + "@volar/language-core": "2.4.17", + "@vue/compiler-dom": "^3.5.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.5.0", + "alien-signals": "^2.0.5", + "minimatch": "^10.0.1", "muggle-string": "^0.4.1", - "path-browserify": "^1.0.1", - "vue-template-compiler": "^2.7.14" + "path-browserify": "^1.0.1" } }, "@vue/reactivity": { @@ -1961,25 +1958,10 @@ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.17.tgz", "integrity": "sha512-CabR+UN630VnsJO/jHWYBC1YVXyMq94KKp6iF5MQgZJs5I8cmjw6oVMO1oDbtBkENSHSSn/UadWlW/OAgdmKrg==" }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "computeds": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", - "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "alien-signals": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-2.0.5.tgz", + "integrity": "sha512-PdJB6+06nUNAClInE3Dweq7/2xVAYM64vvvS1IHVHSJmgeOtEdrAGyp7Z2oJtYm0B342/Exd2NT0uMJaThcjLQ==", "dev": true }, "csstype": { @@ -2064,15 +2046,6 @@ "@stencil/core": "^4.0.3" } }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "magic-string": { "version": "0.30.17", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", @@ -2082,12 +2055,12 @@ } }, "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", + "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", "dev": true, "requires": { - "brace-expansion": "^2.0.1" + "@isaacs/brace-expansion": "^5.0.0" } }, "muggle-string": { @@ -2158,15 +2131,6 @@ "fsevents": "~2.3.2" } }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, "source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -2234,32 +2198,15 @@ "@vue/devtools-api": "^6.6.4" } }, - "vue-template-compiler": { - "version": "2.7.14", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", - "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", - "dev": true, - "requires": { - "de-indent": "^1.0.2", - "he": "^1.2.0" - } - }, "vue-tsc": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.0.22.tgz", - "integrity": "sha512-lMBIwPBO0sxCcmvu45yt1b035AaQ8/XSXQDk8m75y4j0jSXY/y/XzfEtssQ9JMS47lDaR10O3/926oCs8OeGUw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.1.tgz", + "integrity": "sha512-UvMLQD0hAGL1g/NfEQelnSVB4H5gtf/gz2lJKjMMwWNOUmSNyWkejwJagAxEbSjtV5CPPJYslOtoSuqJ63mhdg==", "dev": true, "requires": { - "@volar/typescript": "~2.3.1", - "@vue/language-core": "2.0.22", - "semver": "^7.5.4" + "@volar/typescript": "2.4.17", + "@vue/language-core": "3.0.1" } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true } } } diff --git a/static/code/stackblitz/v7/vue/package.json b/static/code/stackblitz/v7/vue/package.json index 40487939144..3cdc1a52022 100644 --- a/static/code/stackblitz/v7/vue/package.json +++ b/static/code/stackblitz/v7/vue/package.json @@ -17,6 +17,6 @@ "@vitejs/plugin-vue": "^6.0.0", "typescript": "^5.0.0", "vite": "^7.0.0", - "vue-tsc": "^2.0.0" + "vue-tsc": "^3.0.0" } } diff --git a/static/code/stackblitz/v8/vue/package-lock.json b/static/code/stackblitz/v8/vue/package-lock.json index 29ae2ab4b0d..adf77a25406 100644 --- a/static/code/stackblitz/v8/vue/package-lock.json +++ b/static/code/stackblitz/v8/vue/package-lock.json @@ -17,7 +17,7 @@ "@vitejs/plugin-vue": "^6.0.0", "typescript": "^5.0.0", "vite": "^7.0.0", - "vue-tsc": "^2.0.0" + "vue-tsc": "^3.0.0" } }, "node_modules/@babel/helper-string-parser": { @@ -490,6 +490,27 @@ "@ionic/vue": "8.6.3" } }, + "node_modules/@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "dev": true, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/brace-expansion": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "dev": true, + "dependencies": { + "@isaacs/balanced-match": "^4.0.1" + }, + "engines": { + "node": "20 || >=22" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", @@ -923,27 +944,27 @@ } }, "node_modules/@volar/language-core": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.3.4.tgz", - "integrity": "sha512-wXBhY11qG6pCDAqDnbBRFIDSIwbqkWI7no+lj5+L7IlA7HRIjRP7YQLGzT0LF4lS6eHkMSsclXqy9DwYJasZTQ==", + "version": "2.4.17", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.17.tgz", + "integrity": "sha512-chmRZMbKmcGpKMoO7Reb70uiLrzo0KWC2CkFttKUuKvrE+VYgi+fL9vWMJ07Fv5ulX0V1TAyyacN9q3nc5/ecA==", "dev": true, "dependencies": { - "@volar/source-map": "2.3.4" + "@volar/source-map": "2.4.17" } }, "node_modules/@volar/source-map": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.3.4.tgz", - "integrity": "sha512-C+t63nwcblqLIVTYXaVi/+gC8NukDaDIQI72J3R7aXGvtgaVB16c+J8Iz7/VfOy7kjYv7lf5GhBny6ACw9fTGQ==", + "version": "2.4.17", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.17.tgz", + "integrity": "sha512-QDybtQyO3Ms/NjFqNHTC5tbDN2oK5VH7ZaKrcubtfHBDj63n2pizHC3wlMQ+iT55kQXZUUAbmBX5L1C8CHFeBw==", "dev": true }, "node_modules/@volar/typescript": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.3.4.tgz", - "integrity": "sha512-acCvt7dZECyKcvO5geNybmrqOsu9u8n5XP1rfiYsOLYGPxvHRav9BVmEdRyZ3vvY6mNyQ1wLL5Hday4IShe17w==", + "version": "2.4.17", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.17.tgz", + "integrity": "sha512-3paEFNh4P5DkgNUB2YkTRrfUekN4brAXxd3Ow1syMqdIPtCZHbUy4AW99S5RO/7mzyTWPMdDSo3mqTpB/LPObQ==", "dev": true, "dependencies": { - "@volar/language-core": "2.3.4", + "@volar/language-core": "2.4.17", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -994,25 +1015,35 @@ "@vue/shared": "3.5.17" } }, + "node_modules/@vue/compiler-vue2": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, "node_modules/@vue/devtools-api": { "version": "6.6.4", "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" }, "node_modules/@vue/language-core": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.0.22.tgz", - "integrity": "sha512-dNTAAtEOuMiz7N1s5tKpypnVVCtawxVSF5BukD0ELcYSw+DSbrSlYYSw8GuwvurodCeYFSHsmslE+c2sYDNoiA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.1.tgz", + "integrity": "sha512-sq+/Mc1IqIexWEQ+Q2XPiDb5SxSvY5JPqHnMOl/PlF5BekslzduX8dglSkpC17VeiAQB6dpS+4aiwNLJRduCNw==", "dev": true, "dependencies": { - "@volar/language-core": "~2.3.1", - "@vue/compiler-dom": "^3.4.0", - "@vue/shared": "^3.4.0", - "computeds": "^0.0.1", - "minimatch": "^9.0.3", + "@volar/language-core": "2.4.17", + "@vue/compiler-dom": "^3.5.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.5.0", + "alien-signals": "^2.0.5", + "minimatch": "^10.0.1", "muggle-string": "^0.4.1", - "path-browserify": "^1.0.1", - "vue-template-compiler": "^2.7.14" + "path-browserify": "^1.0.1" }, "peerDependencies": { "typescript": "*" @@ -1068,25 +1099,10 @@ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.17.tgz", "integrity": "sha512-CabR+UN630VnsJO/jHWYBC1YVXyMq94KKp6iF5MQgZJs5I8cmjw6oVMO1oDbtBkENSHSSn/UadWlW/OAgdmKrg==" }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/computeds": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", - "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "node_modules/alien-signals": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-2.0.5.tgz", + "integrity": "sha512-PdJB6+06nUNAClInE3Dweq7/2xVAYM64vvvS1IHVHSJmgeOtEdrAGyp7Z2oJtYm0B342/Exd2NT0uMJaThcjLQ==", "dev": true }, "node_modules/csstype": { @@ -1201,18 +1217,6 @@ "@stencil/core": "^4.0.3" } }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/magic-string": { "version": "0.30.17", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", @@ -1222,15 +1226,15 @@ } }, "node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", + "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" + "@isaacs/brace-expansion": "^5.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -1348,21 +1352,6 @@ "fsevents": "~2.3.2" } }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -1519,38 +1508,21 @@ "vue": "^3.2.0" } }, - "node_modules/vue-template-compiler": { - "version": "2.7.14", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", - "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", - "dev": true, - "dependencies": { - "de-indent": "^1.0.2", - "he": "^1.2.0" - } - }, "node_modules/vue-tsc": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.0.22.tgz", - "integrity": "sha512-lMBIwPBO0sxCcmvu45yt1b035AaQ8/XSXQDk8m75y4j0jSXY/y/XzfEtssQ9JMS47lDaR10O3/926oCs8OeGUw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.1.tgz", + "integrity": "sha512-UvMLQD0hAGL1g/NfEQelnSVB4H5gtf/gz2lJKjMMwWNOUmSNyWkejwJagAxEbSjtV5CPPJYslOtoSuqJ63mhdg==", "dev": true, "dependencies": { - "@volar/typescript": "~2.3.1", - "@vue/language-core": "2.0.22", - "semver": "^7.5.4" + "@volar/typescript": "2.4.17", + "@vue/language-core": "3.0.1" }, "bin": { "vue-tsc": "bin/vue-tsc.js" }, "peerDependencies": { - "typescript": "*" + "typescript": ">=5.0.0" } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true } }, "dependencies": { @@ -1784,6 +1756,21 @@ "@ionic/vue": "8.6.3" } }, + "@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "dev": true + }, + "@isaacs/brace-expansion": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "dev": true, + "requires": { + "@isaacs/balanced-match": "^4.0.1" + } + }, "@jridgewell/sourcemap-codec": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", @@ -2022,27 +2009,27 @@ } }, "@volar/language-core": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.3.4.tgz", - "integrity": "sha512-wXBhY11qG6pCDAqDnbBRFIDSIwbqkWI7no+lj5+L7IlA7HRIjRP7YQLGzT0LF4lS6eHkMSsclXqy9DwYJasZTQ==", + "version": "2.4.17", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.17.tgz", + "integrity": "sha512-chmRZMbKmcGpKMoO7Reb70uiLrzo0KWC2CkFttKUuKvrE+VYgi+fL9vWMJ07Fv5ulX0V1TAyyacN9q3nc5/ecA==", "dev": true, "requires": { - "@volar/source-map": "2.3.4" + "@volar/source-map": "2.4.17" } }, "@volar/source-map": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.3.4.tgz", - "integrity": "sha512-C+t63nwcblqLIVTYXaVi/+gC8NukDaDIQI72J3R7aXGvtgaVB16c+J8Iz7/VfOy7kjYv7lf5GhBny6ACw9fTGQ==", + "version": "2.4.17", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.17.tgz", + "integrity": "sha512-QDybtQyO3Ms/NjFqNHTC5tbDN2oK5VH7ZaKrcubtfHBDj63n2pizHC3wlMQ+iT55kQXZUUAbmBX5L1C8CHFeBw==", "dev": true }, "@volar/typescript": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.3.4.tgz", - "integrity": "sha512-acCvt7dZECyKcvO5geNybmrqOsu9u8n5XP1rfiYsOLYGPxvHRav9BVmEdRyZ3vvY6mNyQ1wLL5Hday4IShe17w==", + "version": "2.4.17", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.17.tgz", + "integrity": "sha512-3paEFNh4P5DkgNUB2YkTRrfUekN4brAXxd3Ow1syMqdIPtCZHbUy4AW99S5RO/7mzyTWPMdDSo3mqTpB/LPObQ==", "dev": true, "requires": { - "@volar/language-core": "2.3.4", + "@volar/language-core": "2.4.17", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -2093,25 +2080,35 @@ "@vue/shared": "3.5.17" } }, + "@vue/compiler-vue2": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, "@vue/devtools-api": { "version": "6.6.4", "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" }, "@vue/language-core": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.0.22.tgz", - "integrity": "sha512-dNTAAtEOuMiz7N1s5tKpypnVVCtawxVSF5BukD0ELcYSw+DSbrSlYYSw8GuwvurodCeYFSHsmslE+c2sYDNoiA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.1.tgz", + "integrity": "sha512-sq+/Mc1IqIexWEQ+Q2XPiDb5SxSvY5JPqHnMOl/PlF5BekslzduX8dglSkpC17VeiAQB6dpS+4aiwNLJRduCNw==", "dev": true, "requires": { - "@volar/language-core": "~2.3.1", - "@vue/compiler-dom": "^3.4.0", - "@vue/shared": "^3.4.0", - "computeds": "^0.0.1", - "minimatch": "^9.0.3", + "@volar/language-core": "2.4.17", + "@vue/compiler-dom": "^3.5.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.5.0", + "alien-signals": "^2.0.5", + "minimatch": "^10.0.1", "muggle-string": "^0.4.1", - "path-browserify": "^1.0.1", - "vue-template-compiler": "^2.7.14" + "path-browserify": "^1.0.1" } }, "@vue/reactivity": { @@ -2156,25 +2153,10 @@ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.17.tgz", "integrity": "sha512-CabR+UN630VnsJO/jHWYBC1YVXyMq94KKp6iF5MQgZJs5I8cmjw6oVMO1oDbtBkENSHSSn/UadWlW/OAgdmKrg==" }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "computeds": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", - "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "alien-signals": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-2.0.5.tgz", + "integrity": "sha512-PdJB6+06nUNAClInE3Dweq7/2xVAYM64vvvS1IHVHSJmgeOtEdrAGyp7Z2oJtYm0B342/Exd2NT0uMJaThcjLQ==", "dev": true }, "csstype": { @@ -2259,15 +2241,6 @@ "@stencil/core": "^4.0.3" } }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "magic-string": { "version": "0.30.17", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", @@ -2277,12 +2250,12 @@ } }, "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", + "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", "dev": true, "requires": { - "brace-expansion": "^2.0.1" + "@isaacs/brace-expansion": "^5.0.0" } }, "muggle-string": { @@ -2353,15 +2326,6 @@ "fsevents": "~2.3.2" } }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, "source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -2429,32 +2393,15 @@ "@vue/devtools-api": "^6.6.4" } }, - "vue-template-compiler": { - "version": "2.7.14", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", - "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", - "dev": true, - "requires": { - "de-indent": "^1.0.2", - "he": "^1.2.0" - } - }, "vue-tsc": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.0.22.tgz", - "integrity": "sha512-lMBIwPBO0sxCcmvu45yt1b035AaQ8/XSXQDk8m75y4j0jSXY/y/XzfEtssQ9JMS47lDaR10O3/926oCs8OeGUw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.1.tgz", + "integrity": "sha512-UvMLQD0hAGL1g/NfEQelnSVB4H5gtf/gz2lJKjMMwWNOUmSNyWkejwJagAxEbSjtV5CPPJYslOtoSuqJ63mhdg==", "dev": true, "requires": { - "@volar/typescript": "~2.3.1", - "@vue/language-core": "2.0.22", - "semver": "^7.5.4" + "@volar/typescript": "2.4.17", + "@vue/language-core": "3.0.1" } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true } } } diff --git a/static/code/stackblitz/v8/vue/package.json b/static/code/stackblitz/v8/vue/package.json index 8de27c133f5..206f28608b7 100644 --- a/static/code/stackblitz/v8/vue/package.json +++ b/static/code/stackblitz/v8/vue/package.json @@ -17,6 +17,6 @@ "@vitejs/plugin-vue": "^6.0.0", "typescript": "^5.0.0", "vite": "^7.0.0", - "vue-tsc": "^2.0.0" + "vue-tsc": "^3.0.0" } } From 07cf4f2f9d707d9dfa09fc33b3c060ea8fb0c4f0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Jul 2025 12:15:53 -0400 Subject: [PATCH 16/58] chore(deps): update ionic to v8.6.4 (#4185) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../code/stackblitz/v8/angular/package.json | 4 +- static/code/stackblitz/v8/html/package.json | 2 +- .../stackblitz/v8/react/package-lock.json | 48 +++++++++---------- static/code/stackblitz/v8/react/package.json | 4 +- .../code/stackblitz/v8/vue/package-lock.json | 48 +++++++++---------- static/code/stackblitz/v8/vue/package.json | 4 +- 6 files changed, 55 insertions(+), 55 deletions(-) diff --git a/static/code/stackblitz/v8/angular/package.json b/static/code/stackblitz/v8/angular/package.json index 6a4de9c7075..91a623bcbf2 100644 --- a/static/code/stackblitz/v8/angular/package.json +++ b/static/code/stackblitz/v8/angular/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@ionic/angular": "8.6.3", - "@ionic/core": "8.6.3", + "@ionic/angular": "8.6.4", + "@ionic/core": "8.6.4", "ionicons": "8.0.13", "rxjs": "^7.8.1", "tslib": "^2.5.0", diff --git a/static/code/stackblitz/v8/html/package.json b/static/code/stackblitz/v8/html/package.json index 815a2c05516..6b85efe2a20 100644 --- a/static/code/stackblitz/v8/html/package.json +++ b/static/code/stackblitz/v8/html/package.json @@ -9,7 +9,7 @@ "start": "vite preview" }, "dependencies": { - "@ionic/core": "8.6.3", + "@ionic/core": "8.6.4", "ionicons": "8.0.13" }, "devDependencies": { diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index f2055d41f5f..379b80b34e6 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -8,8 +8,8 @@ "name": "vite-react-typescript", "version": "0.1.0", "dependencies": { - "@ionic/react": "8.6.3", - "@ionic/react-router": "8.6.3", + "@ionic/react": "8.6.4", + "@ionic/react-router": "8.6.4", "@types/node": "^22.0.0", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", @@ -661,9 +661,9 @@ } }, "node_modules/@ionic/core": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.6.3.tgz", - "integrity": "sha512-N/mkw+sPecLEoO1lrnKDS0uZgl6PWSyFprCkkqoK1nHlfBkgFiHm5M9rvWlnGaFC/5xrhNGHdUtYHDFM+F8gRw==", + "version": "8.6.4", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.6.4.tgz", + "integrity": "sha512-6kOx0yQAkXkMvhe6fQPA034LgmCh4aL0nJ+GwzNMwLYAe2fVq6mRdM37jNldGiGIZ0Q9Te2sHTFTM/IGItuIyQ==", "dependencies": { "@stencil/core": "4.33.1", "ionicons": "^7.2.2", @@ -671,11 +671,11 @@ } }, "node_modules/@ionic/react": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.6.3.tgz", - "integrity": "sha512-wBFn6cOKuRKJfUNBz1SyexLkqs+QdaSImEJJ5wepaIF5A94rKlG0JQGCCZjT0KaLbJ+UaQuCgRRQWUrT0XJKDQ==", + "version": "8.6.4", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.6.4.tgz", + "integrity": "sha512-X2jIi4TN/u9hlsy/BrubyJbIZ4Pn8cnbBFu/emQ1y7VH0rpVVWPgeHb8cKMJPNbKzszuvO+f5huGliNIYFIQ8A==", "dependencies": { - "@ionic/core": "8.6.3", + "@ionic/core": "8.6.4", "ionicons": "^7.0.0", "tslib": "*" }, @@ -685,11 +685,11 @@ } }, "node_modules/@ionic/react-router": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-8.6.3.tgz", - "integrity": "sha512-hjBTtvltDccgBkZbZRgvnHAB+IxtjXBIJVuRRWAgyTovlJJAdm7oP8RxabblsZqYgdAup9LTI/L5X/uLDlzGIg==", + "version": "8.6.4", + "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-8.6.4.tgz", + "integrity": "sha512-AOPVK/aJv5MJMjWG3fpzAFtNq4WNOQFdU4YSpXcYAhmiAWuIIRobX3/bHT4Y3lXirXohqHbtFl50VMMe3rpVFA==", "dependencies": { - "@ionic/react": "8.6.3", + "@ionic/react": "8.6.4", "tslib": "*" }, "peerDependencies": { @@ -2215,9 +2215,9 @@ "optional": true }, "@ionic/core": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.6.3.tgz", - "integrity": "sha512-N/mkw+sPecLEoO1lrnKDS0uZgl6PWSyFprCkkqoK1nHlfBkgFiHm5M9rvWlnGaFC/5xrhNGHdUtYHDFM+F8gRw==", + "version": "8.6.4", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.6.4.tgz", + "integrity": "sha512-6kOx0yQAkXkMvhe6fQPA034LgmCh4aL0nJ+GwzNMwLYAe2fVq6mRdM37jNldGiGIZ0Q9Te2sHTFTM/IGItuIyQ==", "requires": { "@stencil/core": "4.33.1", "ionicons": "^7.2.2", @@ -2225,21 +2225,21 @@ } }, "@ionic/react": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.6.3.tgz", - "integrity": "sha512-wBFn6cOKuRKJfUNBz1SyexLkqs+QdaSImEJJ5wepaIF5A94rKlG0JQGCCZjT0KaLbJ+UaQuCgRRQWUrT0XJKDQ==", + "version": "8.6.4", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.6.4.tgz", + "integrity": "sha512-X2jIi4TN/u9hlsy/BrubyJbIZ4Pn8cnbBFu/emQ1y7VH0rpVVWPgeHb8cKMJPNbKzszuvO+f5huGliNIYFIQ8A==", "requires": { - "@ionic/core": "8.6.3", + "@ionic/core": "8.6.4", "ionicons": "^7.0.0", "tslib": "*" } }, "@ionic/react-router": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-8.6.3.tgz", - "integrity": "sha512-hjBTtvltDccgBkZbZRgvnHAB+IxtjXBIJVuRRWAgyTovlJJAdm7oP8RxabblsZqYgdAup9LTI/L5X/uLDlzGIg==", + "version": "8.6.4", + "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-8.6.4.tgz", + "integrity": "sha512-AOPVK/aJv5MJMjWG3fpzAFtNq4WNOQFdU4YSpXcYAhmiAWuIIRobX3/bHT4Y3lXirXohqHbtFl50VMMe3rpVFA==", "requires": { - "@ionic/react": "8.6.3", + "@ionic/react": "8.6.4", "tslib": "*" } }, diff --git a/static/code/stackblitz/v8/react/package.json b/static/code/stackblitz/v8/react/package.json index 352ee595212..e1a5d1090fc 100644 --- a/static/code/stackblitz/v8/react/package.json +++ b/static/code/stackblitz/v8/react/package.json @@ -3,8 +3,8 @@ "version": "0.1.0", "private": true, "dependencies": { - "@ionic/react": "8.6.3", - "@ionic/react-router": "8.6.3", + "@ionic/react": "8.6.4", + "@ionic/react-router": "8.6.4", "@types/node": "^22.0.0", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", diff --git a/static/code/stackblitz/v8/vue/package-lock.json b/static/code/stackblitz/v8/vue/package-lock.json index adf77a25406..21b13b077c2 100644 --- a/static/code/stackblitz/v8/vue/package-lock.json +++ b/static/code/stackblitz/v8/vue/package-lock.json @@ -8,8 +8,8 @@ "name": "vite-vue-starter", "version": "0.0.0", "dependencies": { - "@ionic/vue": "8.6.3", - "@ionic/vue-router": "8.6.3", + "@ionic/vue": "8.6.4", + "@ionic/vue-router": "8.6.4", "vue": "^3.2.25", "vue-router": "4.5.1" }, @@ -463,9 +463,9 @@ } }, "node_modules/@ionic/core": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.6.3.tgz", - "integrity": "sha512-N/mkw+sPecLEoO1lrnKDS0uZgl6PWSyFprCkkqoK1nHlfBkgFiHm5M9rvWlnGaFC/5xrhNGHdUtYHDFM+F8gRw==", + "version": "8.6.4", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.6.4.tgz", + "integrity": "sha512-6kOx0yQAkXkMvhe6fQPA034LgmCh4aL0nJ+GwzNMwLYAe2fVq6mRdM37jNldGiGIZ0Q9Te2sHTFTM/IGItuIyQ==", "dependencies": { "@stencil/core": "4.33.1", "ionicons": "^7.2.2", @@ -473,21 +473,21 @@ } }, "node_modules/@ionic/vue": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.6.3.tgz", - "integrity": "sha512-vQb0lMs3TKbcEZQz1SF7E4TzZf0wRf3elJaIFd0PRa4+Shcn5zpliid8uCJTlPY5k943axIrPNxKaQPJFQXdrw==", + "version": "8.6.4", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.6.4.tgz", + "integrity": "sha512-vhFxCUk2hwPbJS1uTcZkVFB+9eFfzeis5TyL1mDmlULFhbGI/YTLTcWcXWSdG/myg4yPeb8brObWpMq36StJVw==", "dependencies": { - "@ionic/core": "8.6.3", + "@ionic/core": "8.6.4", "@stencil/vue-output-target": "0.10.7", "ionicons": "^7.0.0" } }, "node_modules/@ionic/vue-router": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-8.6.3.tgz", - "integrity": "sha512-WRGPfwCiBjX84Hi55pitRknmnXtOA4VnejU8SSz3tP4tnvFwfLnT7YZcpV9HSMEthb7epHoW9/R2GyZQA3puTA==", + "version": "8.6.4", + "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-8.6.4.tgz", + "integrity": "sha512-5d6Tu2IHe2LcOYQpuISsuqVGWJttPwoDCTBMemgjeDJeQUoUSFfS0NggtLm+d+wCQN+lgZubvrZ1os2x63Hvng==", "dependencies": { - "@ionic/vue": "8.6.3" + "@ionic/vue": "8.6.4" } }, "node_modules/@isaacs/balanced-match": { @@ -1729,9 +1729,9 @@ "optional": true }, "@ionic/core": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.6.3.tgz", - "integrity": "sha512-N/mkw+sPecLEoO1lrnKDS0uZgl6PWSyFprCkkqoK1nHlfBkgFiHm5M9rvWlnGaFC/5xrhNGHdUtYHDFM+F8gRw==", + "version": "8.6.4", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.6.4.tgz", + "integrity": "sha512-6kOx0yQAkXkMvhe6fQPA034LgmCh4aL0nJ+GwzNMwLYAe2fVq6mRdM37jNldGiGIZ0Q9Te2sHTFTM/IGItuIyQ==", "requires": { "@stencil/core": "4.33.1", "ionicons": "^7.2.2", @@ -1739,21 +1739,21 @@ } }, "@ionic/vue": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.6.3.tgz", - "integrity": "sha512-vQb0lMs3TKbcEZQz1SF7E4TzZf0wRf3elJaIFd0PRa4+Shcn5zpliid8uCJTlPY5k943axIrPNxKaQPJFQXdrw==", + "version": "8.6.4", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.6.4.tgz", + "integrity": "sha512-vhFxCUk2hwPbJS1uTcZkVFB+9eFfzeis5TyL1mDmlULFhbGI/YTLTcWcXWSdG/myg4yPeb8brObWpMq36StJVw==", "requires": { - "@ionic/core": "8.6.3", + "@ionic/core": "8.6.4", "@stencil/vue-output-target": "0.10.7", "ionicons": "^7.0.0" } }, "@ionic/vue-router": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-8.6.3.tgz", - "integrity": "sha512-WRGPfwCiBjX84Hi55pitRknmnXtOA4VnejU8SSz3tP4tnvFwfLnT7YZcpV9HSMEthb7epHoW9/R2GyZQA3puTA==", + "version": "8.6.4", + "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-8.6.4.tgz", + "integrity": "sha512-5d6Tu2IHe2LcOYQpuISsuqVGWJttPwoDCTBMemgjeDJeQUoUSFfS0NggtLm+d+wCQN+lgZubvrZ1os2x63Hvng==", "requires": { - "@ionic/vue": "8.6.3" + "@ionic/vue": "8.6.4" } }, "@isaacs/balanced-match": { diff --git a/static/code/stackblitz/v8/vue/package.json b/static/code/stackblitz/v8/vue/package.json index 206f28608b7..8111b8628cb 100644 --- a/static/code/stackblitz/v8/vue/package.json +++ b/static/code/stackblitz/v8/vue/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@ionic/vue": "8.6.3", - "@ionic/vue-router": "8.6.3", + "@ionic/vue": "8.6.4", + "@ionic/vue-router": "8.6.4", "vue": "^3.2.25", "vue-router": "4.5.1" }, From d97a8ba8c860df80df144cf22a1846de47754a98 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 11 Jul 2025 12:30:16 -0400 Subject: [PATCH 17/58] chore(deps): update dependency vite to v7.0.3 (#4187) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v7/react/package-lock.json | 12 ++++++------ static/code/stackblitz/v8/react/package-lock.json | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/static/code/stackblitz/v7/react/package-lock.json b/static/code/stackblitz/v7/react/package-lock.json index 9bb41383d50..c26ba6ec204 100644 --- a/static/code/stackblitz/v7/react/package-lock.json +++ b/static/code/stackblitz/v7/react/package-lock.json @@ -1691,9 +1691,9 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "node_modules/vite": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.2.tgz", - "integrity": "sha512-hxdyZDY1CM6SNpKI4w4lcUc3Mtkd9ej4ECWVHSMrOdSinVc2zYOAppHeGc/hzmRo3pxM5blMzkuWHOJA/3NiFw==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.3.tgz", + "integrity": "sha512-y2L5oJZF7bj4c0jgGYgBNSdIu+5HF+m68rn2cQXFbGoShdhV1phX9rbnxy9YXj82aS8MMsCLAAFkRxZeWdldrQ==", "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.6", @@ -2800,9 +2800,9 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "vite": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.2.tgz", - "integrity": "sha512-hxdyZDY1CM6SNpKI4w4lcUc3Mtkd9ej4ECWVHSMrOdSinVc2zYOAppHeGc/hzmRo3pxM5blMzkuWHOJA/3NiFw==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.3.tgz", + "integrity": "sha512-y2L5oJZF7bj4c0jgGYgBNSdIu+5HF+m68rn2cQXFbGoShdhV1phX9rbnxy9YXj82aS8MMsCLAAFkRxZeWdldrQ==", "requires": { "esbuild": "^0.25.0", "fdir": "^6.4.6", diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index 379b80b34e6..692a18fa3c5 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -1797,9 +1797,9 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "node_modules/vite": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.2.tgz", - "integrity": "sha512-hxdyZDY1CM6SNpKI4w4lcUc3Mtkd9ej4ECWVHSMrOdSinVc2zYOAppHeGc/hzmRo3pxM5blMzkuWHOJA/3NiFw==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.3.tgz", + "integrity": "sha512-y2L5oJZF7bj4c0jgGYgBNSdIu+5HF+m68rn2cQXFbGoShdhV1phX9rbnxy9YXj82aS8MMsCLAAFkRxZeWdldrQ==", "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.6", @@ -2966,9 +2966,9 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "vite": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.2.tgz", - "integrity": "sha512-hxdyZDY1CM6SNpKI4w4lcUc3Mtkd9ej4ECWVHSMrOdSinVc2zYOAppHeGc/hzmRo3pxM5blMzkuWHOJA/3NiFw==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.3.tgz", + "integrity": "sha512-y2L5oJZF7bj4c0jgGYgBNSdIu+5HF+m68rn2cQXFbGoShdhV1phX9rbnxy9YXj82aS8MMsCLAAFkRxZeWdldrQ==", "requires": { "esbuild": "^0.25.0", "fdir": "^6.4.6", From 7c69d57b2f63313e72d06c5cf3b7f63b9dccf7b8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 11 Jul 2025 12:31:09 -0400 Subject: [PATCH 18/58] chore(deps): update dependency vite to v7.0.3 (#4188) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v7/vue/package-lock.json | 12 ++++++------ static/code/stackblitz/v8/vue/package-lock.json | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/static/code/stackblitz/v7/vue/package-lock.json b/static/code/stackblitz/v7/vue/package-lock.json index 5bf7d544e74..d4884c9ca3b 100644 --- a/static/code/stackblitz/v7/vue/package-lock.json +++ b/static/code/stackblitz/v7/vue/package-lock.json @@ -1267,9 +1267,9 @@ } }, "node_modules/vite": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.2.tgz", - "integrity": "sha512-hxdyZDY1CM6SNpKI4w4lcUc3Mtkd9ej4ECWVHSMrOdSinVc2zYOAppHeGc/hzmRo3pxM5blMzkuWHOJA/3NiFw==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.3.tgz", + "integrity": "sha512-y2L5oJZF7bj4c0jgGYgBNSdIu+5HF+m68rn2cQXFbGoShdhV1phX9rbnxy9YXj82aS8MMsCLAAFkRxZeWdldrQ==", "dev": true, "dependencies": { "esbuild": "^0.25.0", @@ -2158,9 +2158,9 @@ "devOptional": true }, "vite": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.2.tgz", - "integrity": "sha512-hxdyZDY1CM6SNpKI4w4lcUc3Mtkd9ej4ECWVHSMrOdSinVc2zYOAppHeGc/hzmRo3pxM5blMzkuWHOJA/3NiFw==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.3.tgz", + "integrity": "sha512-y2L5oJZF7bj4c0jgGYgBNSdIu+5HF+m68rn2cQXFbGoShdhV1phX9rbnxy9YXj82aS8MMsCLAAFkRxZeWdldrQ==", "dev": true, "requires": { "esbuild": "^0.25.0", diff --git a/static/code/stackblitz/v8/vue/package-lock.json b/static/code/stackblitz/v8/vue/package-lock.json index 21b13b077c2..05e5ca1af4d 100644 --- a/static/code/stackblitz/v8/vue/package-lock.json +++ b/static/code/stackblitz/v8/vue/package-lock.json @@ -1395,9 +1395,9 @@ } }, "node_modules/vite": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.2.tgz", - "integrity": "sha512-hxdyZDY1CM6SNpKI4w4lcUc3Mtkd9ej4ECWVHSMrOdSinVc2zYOAppHeGc/hzmRo3pxM5blMzkuWHOJA/3NiFw==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.3.tgz", + "integrity": "sha512-y2L5oJZF7bj4c0jgGYgBNSdIu+5HF+m68rn2cQXFbGoShdhV1phX9rbnxy9YXj82aS8MMsCLAAFkRxZeWdldrQ==", "dev": true, "dependencies": { "esbuild": "^0.25.0", @@ -2353,9 +2353,9 @@ "devOptional": true }, "vite": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.2.tgz", - "integrity": "sha512-hxdyZDY1CM6SNpKI4w4lcUc3Mtkd9ej4ECWVHSMrOdSinVc2zYOAppHeGc/hzmRo3pxM5blMzkuWHOJA/3NiFw==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.3.tgz", + "integrity": "sha512-y2L5oJZF7bj4c0jgGYgBNSdIu+5HF+m68rn2cQXFbGoShdhV1phX9rbnxy9YXj82aS8MMsCLAAFkRxZeWdldrQ==", "dev": true, "requires": { "esbuild": "^0.25.0", From 6d4d090fb2d59a4c429616b556b64944c2a0ee89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gon=C3=A7alo=20M=2E?= Date: Mon, 14 Jul 2025 14:46:23 +0100 Subject: [PATCH 19/58] docs(inputs): replace property "name" with "icon" in React playgrounds (#4190) Closes #4135 --- static/usage/v7/input/start-end-slots/react.md | 2 +- static/usage/v7/textarea/start-end-slots/react.md | 2 +- static/usage/v8/input/start-end-slots/react.md | 2 +- static/usage/v8/textarea/start-end-slots/react.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/static/usage/v7/input/start-end-slots/react.md b/static/usage/v7/input/start-end-slots/react.md index b638d8c8f07..e15086ee6f4 100644 --- a/static/usage/v7/input/start-end-slots/react.md +++ b/static/usage/v7/input/start-end-slots/react.md @@ -10,7 +10,7 @@ function Example() { - + diff --git a/static/usage/v7/textarea/start-end-slots/react.md b/static/usage/v7/textarea/start-end-slots/react.md index 469f6bd8f84..a64852d4c67 100644 --- a/static/usage/v7/textarea/start-end-slots/react.md +++ b/static/usage/v7/textarea/start-end-slots/react.md @@ -10,7 +10,7 @@ function Example() { - + diff --git a/static/usage/v8/input/start-end-slots/react.md b/static/usage/v8/input/start-end-slots/react.md index b638d8c8f07..e15086ee6f4 100644 --- a/static/usage/v8/input/start-end-slots/react.md +++ b/static/usage/v8/input/start-end-slots/react.md @@ -10,7 +10,7 @@ function Example() { - + diff --git a/static/usage/v8/textarea/start-end-slots/react.md b/static/usage/v8/textarea/start-end-slots/react.md index 469f6bd8f84..a64852d4c67 100644 --- a/static/usage/v8/textarea/start-end-slots/react.md +++ b/static/usage/v8/textarea/start-end-slots/react.md @@ -10,7 +10,7 @@ function Example() { - + From 4fea0dbcba44c0fac88b625d2c64219b46959969 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Jul 2025 09:47:32 -0400 Subject: [PATCH 20/58] chore(deps): update dependency vite to v7.0.4 (#4194) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v7/vue/package-lock.json | 12 ++++++------ static/code/stackblitz/v8/vue/package-lock.json | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/static/code/stackblitz/v7/vue/package-lock.json b/static/code/stackblitz/v7/vue/package-lock.json index d4884c9ca3b..250b36a4d8d 100644 --- a/static/code/stackblitz/v7/vue/package-lock.json +++ b/static/code/stackblitz/v7/vue/package-lock.json @@ -1267,9 +1267,9 @@ } }, "node_modules/vite": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.3.tgz", - "integrity": "sha512-y2L5oJZF7bj4c0jgGYgBNSdIu+5HF+m68rn2cQXFbGoShdhV1phX9rbnxy9YXj82aS8MMsCLAAFkRxZeWdldrQ==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.4.tgz", + "integrity": "sha512-SkaSguuS7nnmV7mfJ8l81JGBFV7Gvzp8IzgE8A8t23+AxuNX61Q5H1Tpz5efduSN7NHC8nQXD3sKQKZAu5mNEA==", "dev": true, "dependencies": { "esbuild": "^0.25.0", @@ -2158,9 +2158,9 @@ "devOptional": true }, "vite": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.3.tgz", - "integrity": "sha512-y2L5oJZF7bj4c0jgGYgBNSdIu+5HF+m68rn2cQXFbGoShdhV1phX9rbnxy9YXj82aS8MMsCLAAFkRxZeWdldrQ==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.4.tgz", + "integrity": "sha512-SkaSguuS7nnmV7mfJ8l81JGBFV7Gvzp8IzgE8A8t23+AxuNX61Q5H1Tpz5efduSN7NHC8nQXD3sKQKZAu5mNEA==", "dev": true, "requires": { "esbuild": "^0.25.0", diff --git a/static/code/stackblitz/v8/vue/package-lock.json b/static/code/stackblitz/v8/vue/package-lock.json index 05e5ca1af4d..a63c5b831d3 100644 --- a/static/code/stackblitz/v8/vue/package-lock.json +++ b/static/code/stackblitz/v8/vue/package-lock.json @@ -1395,9 +1395,9 @@ } }, "node_modules/vite": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.3.tgz", - "integrity": "sha512-y2L5oJZF7bj4c0jgGYgBNSdIu+5HF+m68rn2cQXFbGoShdhV1phX9rbnxy9YXj82aS8MMsCLAAFkRxZeWdldrQ==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.4.tgz", + "integrity": "sha512-SkaSguuS7nnmV7mfJ8l81JGBFV7Gvzp8IzgE8A8t23+AxuNX61Q5H1Tpz5efduSN7NHC8nQXD3sKQKZAu5mNEA==", "dev": true, "dependencies": { "esbuild": "^0.25.0", @@ -2353,9 +2353,9 @@ "devOptional": true }, "vite": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.3.tgz", - "integrity": "sha512-y2L5oJZF7bj4c0jgGYgBNSdIu+5HF+m68rn2cQXFbGoShdhV1phX9rbnxy9YXj82aS8MMsCLAAFkRxZeWdldrQ==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.4.tgz", + "integrity": "sha512-SkaSguuS7nnmV7mfJ8l81JGBFV7Gvzp8IzgE8A8t23+AxuNX61Q5H1Tpz5efduSN7NHC8nQXD3sKQKZAu5mNEA==", "dev": true, "requires": { "esbuild": "^0.25.0", From a4373487a319395eb1db845b0032cdb4e7e2621d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Jul 2025 09:48:25 -0400 Subject: [PATCH 21/58] chore(deps): update dependency vite to v7.0.4 (#4193) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v7/react/package-lock.json | 12 ++++++------ static/code/stackblitz/v8/react/package-lock.json | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/static/code/stackblitz/v7/react/package-lock.json b/static/code/stackblitz/v7/react/package-lock.json index c26ba6ec204..2061440924a 100644 --- a/static/code/stackblitz/v7/react/package-lock.json +++ b/static/code/stackblitz/v7/react/package-lock.json @@ -1691,9 +1691,9 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "node_modules/vite": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.3.tgz", - "integrity": "sha512-y2L5oJZF7bj4c0jgGYgBNSdIu+5HF+m68rn2cQXFbGoShdhV1phX9rbnxy9YXj82aS8MMsCLAAFkRxZeWdldrQ==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.4.tgz", + "integrity": "sha512-SkaSguuS7nnmV7mfJ8l81JGBFV7Gvzp8IzgE8A8t23+AxuNX61Q5H1Tpz5efduSN7NHC8nQXD3sKQKZAu5mNEA==", "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.6", @@ -2800,9 +2800,9 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "vite": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.3.tgz", - "integrity": "sha512-y2L5oJZF7bj4c0jgGYgBNSdIu+5HF+m68rn2cQXFbGoShdhV1phX9rbnxy9YXj82aS8MMsCLAAFkRxZeWdldrQ==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.4.tgz", + "integrity": "sha512-SkaSguuS7nnmV7mfJ8l81JGBFV7Gvzp8IzgE8A8t23+AxuNX61Q5H1Tpz5efduSN7NHC8nQXD3sKQKZAu5mNEA==", "requires": { "esbuild": "^0.25.0", "fdir": "^6.4.6", diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index 692a18fa3c5..ecb48ac9920 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -1797,9 +1797,9 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "node_modules/vite": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.3.tgz", - "integrity": "sha512-y2L5oJZF7bj4c0jgGYgBNSdIu+5HF+m68rn2cQXFbGoShdhV1phX9rbnxy9YXj82aS8MMsCLAAFkRxZeWdldrQ==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.4.tgz", + "integrity": "sha512-SkaSguuS7nnmV7mfJ8l81JGBFV7Gvzp8IzgE8A8t23+AxuNX61Q5H1Tpz5efduSN7NHC8nQXD3sKQKZAu5mNEA==", "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.6", @@ -2966,9 +2966,9 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "vite": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.3.tgz", - "integrity": "sha512-y2L5oJZF7bj4c0jgGYgBNSdIu+5HF+m68rn2cQXFbGoShdhV1phX9rbnxy9YXj82aS8MMsCLAAFkRxZeWdldrQ==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.4.tgz", + "integrity": "sha512-SkaSguuS7nnmV7mfJ8l81JGBFV7Gvzp8IzgE8A8t23+AxuNX61Q5H1Tpz5efduSN7NHC8nQXD3sKQKZAu5mNEA==", "requires": { "esbuild": "^0.25.0", "fdir": "^6.4.6", From e5822ede9353fc8556568708ba85d8ecaa9ac9cd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Jul 2025 09:49:30 -0400 Subject: [PATCH 22/58] chore(deps): update dependency @types/node to v22.16.3 (#4192) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v7/react/package-lock.json | 12 ++++++------ static/code/stackblitz/v8/react/package-lock.json | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/static/code/stackblitz/v7/react/package-lock.json b/static/code/stackblitz/v7/react/package-lock.json index 2061440924a..fae0bad76f2 100644 --- a/static/code/stackblitz/v7/react/package-lock.json +++ b/static/code/stackblitz/v7/react/package-lock.json @@ -1047,9 +1047,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "node_modules/@types/node": { - "version": "22.16.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.0.tgz", - "integrity": "sha512-B2egV9wALML1JCpv3VQoQ+yesQKAmNMBIAY7OteVrikcOcAkWm+dGL6qpeCktPjAv6N1JLnhbNiqS35UpFyBsQ==", + "version": "22.16.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.3.tgz", + "integrity": "sha512-sr4Xz74KOUeYadexo1r8imhRtlVXcs+j3XK3TcoiYk7B1t3YRVJgtaD3cwX73NYb71pmVuMLNRhJ9XKdoDB74g==", "dependencies": { "undici-types": "~6.21.0" } @@ -2349,9 +2349,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "@types/node": { - "version": "22.16.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.0.tgz", - "integrity": "sha512-B2egV9wALML1JCpv3VQoQ+yesQKAmNMBIAY7OteVrikcOcAkWm+dGL6qpeCktPjAv6N1JLnhbNiqS35UpFyBsQ==", + "version": "22.16.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.3.tgz", + "integrity": "sha512-sr4Xz74KOUeYadexo1r8imhRtlVXcs+j3XK3TcoiYk7B1t3YRVJgtaD3cwX73NYb71pmVuMLNRhJ9XKdoDB74g==", "requires": { "undici-types": "~6.21.0" } diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index ecb48ac9920..ce933c0919b 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -1153,9 +1153,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "node_modules/@types/node": { - "version": "22.16.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.0.tgz", - "integrity": "sha512-B2egV9wALML1JCpv3VQoQ+yesQKAmNMBIAY7OteVrikcOcAkWm+dGL6qpeCktPjAv6N1JLnhbNiqS35UpFyBsQ==", + "version": "22.16.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.3.tgz", + "integrity": "sha512-sr4Xz74KOUeYadexo1r8imhRtlVXcs+j3XK3TcoiYk7B1t3YRVJgtaD3cwX73NYb71pmVuMLNRhJ9XKdoDB74g==", "dependencies": { "undici-types": "~6.21.0" } @@ -2515,9 +2515,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "@types/node": { - "version": "22.16.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.0.tgz", - "integrity": "sha512-B2egV9wALML1JCpv3VQoQ+yesQKAmNMBIAY7OteVrikcOcAkWm+dGL6qpeCktPjAv6N1JLnhbNiqS35UpFyBsQ==", + "version": "22.16.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.3.tgz", + "integrity": "sha512-sr4Xz74KOUeYadexo1r8imhRtlVXcs+j3XK3TcoiYk7B1t3YRVJgtaD3cwX73NYb71pmVuMLNRhJ9XKdoDB74g==", "requires": { "undici-types": "~6.21.0" } From 6f5a148f6d17f9ca1546570582aaec77da05f145 Mon Sep 17 00:00:00 2001 From: Joey Chang <93396238+joesphchang@users.noreply.github.com> Date: Tue, 15 Jul 2025 12:04:51 -0500 Subject: [PATCH 23/58] docs(components): add accordion, breadcrumbs, media, and otp input to components page (#4186) --- docs/components.md | 66 ++++++++++++------ static/icons/component-action-sheet-icon.png | Bin 0 -> 2081 bytes static/icons/component-breadcrumbs-icon.png | Bin 0 -> 1219 bytes static/icons/component-icons-icon.png | Bin 0 -> 1146 bytes static/icons/component-input-otp-icon.png | Bin 0 -> 1614 bytes static/icons/component-media-icon.png | Bin 1521 -> 3028 bytes static/icons/component-navigation-icon.png | Bin 0 -> 1666 bytes static/icons/component-searchbar-icon.png | Bin 0 -> 1547 bytes static/icons/component-typography-icon.png | Bin 1543 -> 1522 bytes .../feature-component-accordion-icon.png | Bin 0 -> 6395 bytes .../icons/feature-component-datetime-icon.png | Bin 0 -> 9244 bytes static/icons/feature-component-item-icon.png | Bin 0 -> 6044 bytes .../feature-component-refresher-icon.png | Bin 0 -> 9168 bytes 13 files changed, 46 insertions(+), 20 deletions(-) create mode 100644 static/icons/component-action-sheet-icon.png create mode 100644 static/icons/component-breadcrumbs-icon.png create mode 100644 static/icons/component-icons-icon.png create mode 100644 static/icons/component-input-otp-icon.png create mode 100644 static/icons/component-navigation-icon.png create mode 100644 static/icons/component-searchbar-icon.png create mode 100644 static/icons/feature-component-accordion-icon.png create mode 100644 static/icons/feature-component-datetime-icon.png create mode 100644 static/icons/feature-component-item-icon.png create mode 100644 static/icons/feature-component-refresher-icon.png diff --git a/docs/components.md b/docs/components.md index d951640a809..66f5a4d0b13 100644 --- a/docs/components.md +++ b/docs/components.md @@ -24,9 +24,13 @@ Ionic apps are made of high-level building blocks called Components, which allow - -

Action Sheets display a set of options with the ability to confirm or cancel an action.

-
+ +

Accordions provide collapsible sections in your content to reduce vertical space while providing a way of organizing and grouping information.

+
+ + +

Action Sheets display a set of options with the ability to confirm or cancel an action.

+

Alerts are a great way to offer the user the ability to choose a specific action or list of actions.

@@ -36,6 +40,10 @@ Ionic apps are made of high-level building blocks called Components, which allow

Badges are a small component that typically communicate a numerical value to the user.

+ +

Breadcrumbs are navigation items that are used to indicate where a user is on an app.

+
+

Buttons let your users take action. They're an essential way to interact with and navigate through an app.

@@ -57,7 +65,7 @@ Ionic apps are made of high-level building blocks called Components, which allow

Content is the quintessential way to interact with and navigate through an app.

- +

Date & time pickers are used to present an interface that makes it easy for users to select dates and times.

@@ -65,14 +73,14 @@ Ionic apps are made of high-level building blocks called Components, which allow

Floating action buttons are circular buttons that perform a primary action on a screen.

- -

Beautifully designed icons for use in web, iOS, and Android apps.

-
-

The grid is a powerful mobile-first system for building custom layouts.

+ +

Beautifully designed icons for use in web, iOS, and Android apps.

+
+

Infinite scroll allows you to load new data as the user scrolls through your app.

@@ -81,16 +89,22 @@ Ionic apps are made of high-level building blocks called Components, which allow

Inputs provides a way for users to enter data in your app.

- -

Items are an all-purpose UI container that can be used as part of a list.

+ +

+ Items are elements that can contain text, icons, avatars, images, inputs, and any other native or custom elements. + Items can be swiped, deleted, reordered, edited, and more. +

Lists can display rows of information, such as a contact list, playlist, or menu.

- -

Navigation is how users move between different pages in your app.

+ +

+ A collection of media components, including avatars, icons, images, and thumbnails, designed to enhance visual + content. +

@@ -101,6 +115,14 @@ Ionic apps are made of high-level building blocks called Components, which allow

Modals slide in and off screen to display a temporary UI and are often used for login or sign-up pages.

+ +

Navigation is how users move between different pages in your app.

+
+ + +

OTP inputs offer a simple way to enter one-time passwords using multiple boxes with automatic focus.

+
+

Popover provides an easy way to present information or options without changing contexts.

@@ -113,14 +135,10 @@ Ionic apps are made of high-level building blocks called Components, which allow

Radio inputs allow you to present a set of exclusive options.

- +

Refresher provides pull-to-refresh functionality on a content component.

- -

Searchbar is used to search or filter items, usually from a toolbar.

-
-

Reorder lets users drag and drop to reorder a list of items.

@@ -129,6 +147,10 @@ Ionic apps are made of high-level building blocks called Components, which allow

Routing allows navigation based on the current path.

+ +

Searchbar is used to search or filter items, usually from a toolbar.

+
+

Segments provide a set of exclusive buttons that can be used as a filter or view switcher.

@@ -149,7 +171,11 @@ Ionic apps are made of high-level building blocks called Components, which allow

Toggles are an input for binary options, often used for options and switches.

- -

Toolbars are used to house information and actions relating to your app.

-
+ +

Toolbars are used to house information and actions relating to your app.

+
+ + +

Text is used to style or change the color of text within an application.

+
diff --git a/static/icons/component-action-sheet-icon.png b/static/icons/component-action-sheet-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..50dee9de006ab6c695da206e8df8d793786734d3 GIT binary patch literal 2081 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 literal 0 HcmV?d00001 diff --git a/static/icons/component-icons-icon.png b/static/icons/component-icons-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1e444bc4e3e3d5590f8d5accb8e8d9c6a0c1022f GIT binary patch literal 1146 zcmV-=1cm#FP)K~#7F&01Yj z6G0IEW|K%jP*5yNpF9HI0B;~C5Klk_if7=NpU4T28+Zfp1|ES|${(;0LI}y&-|jSQ zg#>nI7TB+<3zD78_Se(X(>*f=#UK)?i_}Ca?k~SHsWx3F9VZtemk5M`Kd9hSkr5;c zpF71=$(|EM71!jRxW9aUiU2Y`1XS@cr!=JvKal*W>#HSlf}BM15}0r=J40f*9*RN5 z^~?TGoMb{)0v!G+5i4?p#7*u4BtjA#ncv7T8Wr3PT4oZ7#s4B9abIBHbV(ZaITAw! zO>|mg2FZkbXjI(0C*TQHKFcWG7raT-@%YLsl*CxpA5>8uc>QwE2Fi6Q)BLCnY z+wTJm*PPgNrL**degYG&appMufZ%FPH>$Y*V??P293EXr$_lPQBypv8dIT7EH8m(J zxK2=c=2Gz}C=*(rImsEy4=$)zqo5O2#@ba_ zJ1ZY2jWIuZ*6xfhFMo;O*lbS9crRLO7o^Qw`RW+bMn3Opo1CDV$Me-VHZMgE;emFu zxoUg8wIPoWE~99^*6r?EV`c|6Fj2HN(rBzBKVFL*k^udQF7yXE(c0QtkPdbc2=R$e z9wWg7^MVtBzT~xNiK{H407yR{ksr)bYf8W`WlelO9M;YuKbUG)NPv;ZH|IV^0Wg03 za2=>A0lx}MA_)qB_3MY>)I@=KjZ-4WNBwVpamX_YZ51hNxw0s;-5r7e6 z=3`gL18Lvm@BG0GqN@ag%E#E1jCr4#gtTM(5Z6Is^bQGhP{6hcmB~b+8086We#Hcs z+0{`1sFb)9efsOb2FC33c>&53bfLCxElwjTB?~L$TN@i|l4-8$XUSOCM^{$XPz-4O zXCgn90CQ`OhIdUc2<^?y4^~J>sBDPx`zQ|Fr=_v4Do83n1JCu~fkD@K0~dHS`rIg% zOAMY(aLtO#-?YWGSgxYHxUuzG=!Wy46v8@T(aca))H#?hbk~F-zSIA3SPsO7bS3)SW0Fwi&oE?O-j>8MoIWNA zy09ug)bH=gLP>&(Pr1(>JPbHtX*eo=dRxP+$E!00000 M07*qoM6N<$f=N{aL;wH) literal 0 HcmV?d00001 diff --git a/static/icons/component-input-otp-icon.png b/static/icons/component-input-otp-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..416847abf39fa1694b740f2bafe63b6f5883ee8c GIT binary patch literal 1614 zcmV-U2C?~xP);FXK~#7F)mrUR z6K51Y`|d{)z_>ApP=-#J(O98V)(+}8(-!ih!_Z%N1==e>uK>IQxPsa%z!|4wX@3CL z8AoeN>=YI7BUKThq%1*5vYXxQIjb9!01F#1gl8s`?7L^rp69&h{W>Qc>;Xo`CgoaQ z@3VmG05Bt9aS8_@TlgsuOK=<{P$tfS^}sO1@!r_!1nd$VlnFArPRR9JmetKMp}Q`4 z7$ko!NTLsQ0~C5rLaycOs1OBj{=6SaU0gk`F!xh{%77uc=28rYXjD(i__n7`=V} zBD1)m@Udp}`Z1^k)Z_vZnNtnj`o1UDdEHIcmB1*5j3`KhO)ba47pQ?sf_mdsVj9ex z<{DC45^#)fj-32xA+sHJLSj<_qqpw&iJ~~NpT;|INaQsAQcqXskEQoF5TF4o2-4)I z$J^!oHr_!N*N(a8k5ye~r%MMmD;37sW{d`GwHQzE`D@@vL$l17K2mzGhycZXP_B0)>y{4;0-@udl;o{4YqQ zQg{&2i|#cxHp1uaryx+X{ocr{9xw8Bhh(r;l6`_{fl_!NAte*HZo`*t5m4GX!6$v# z^JldjJbLodzTfrDSFR+y>hUTs1!}=mlM0?6pu_L~V94K758=FW0?sMXA|(X6R@z$a zmyoC2;8l-Tc{;k%`J3VN84(I*pEqw7;MDOJSK~+-b+a41>hUU1Vb1~Upjjv)ipA4s zsRv5olfFL>B>G2}ZzdO##4E6xi(=+z>%*+f_3bY=;UJ*EX@`U{z zjh=u?L%`jfY8r<8o)HM5Xpefg?#yb%Q(QC}wLe9QJ?bgvy#$8YGu1G2`G&*6AjBU& z12;T+`pTY{-QZP^S9#i*A`%SO6@2mJ9cfyxpa7}NFL2eWWzau(X#+gxAf zRgYKsoUTzaEW!Oeac}5oQ%ip+{K2E^>uH#pnzE<1Lf|EdhW{niziSGz2`+dB~eh4)*$(0(| zG+-&_b=|l^(cmWQrOY};wF4|Pe6-%6kfCWD_d0PLuow2E%vuNvDNG~{9KkevP(He6 zL}&{`yMUGC0(w0+-0KoDrSSY$gLl2b2Jz90l+mW7aG*8_<$!j;w253*mu$l`APqT% zi=CqEKYI`n%+7T44EixKrck1Zi1_iF5@m(CCh{PKO$3nKd+g1rH>-al^1C z$}xP`1U4hXF;FN~N!dPZjugB^rQ`wQthixu|1dmBt$}#GT%!x|Ki^e8=B?xDBme*a M07*qoM6N<$f;=+=H2?qr literal 0 HcmV?d00001 diff --git a/static/icons/component-media-icon.png b/static/icons/component-media-icon.png index 3c21044bfad6f9f8b0408b0f943a3ccaab4124be..7534e9f6944b197607c439342c5e5de4d2e57885 100644 GIT binary patch literal 3028 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 QTL1t607*qoM6N<$g30m{DF6Tf diff --git a/static/icons/component-navigation-icon.png b/static/icons/component-navigation-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e0c808a709c3448f67d9fbfebcd62349322fd96d GIT binary patch literal 1666 zcmV-|27UR7P)jQFO*6pm33}xY^eN(8%~ZqfJ)Pd-5+4-Ofs1ixLn!+ zhS=fZAw80VH$L~p8z4VLs~;U5saFMvQ2EW()zwL91$5{3_O^;xRj(QhD}LK;NL?b& ziaG_)BIvqKlW!tosu|Zn6U(RZ-a;ysO0=u7x&_CKy}dmJW6RUVh8=7y4DxgR{r%U5 zJi&o67KA3p!h0d(A;`agn_41YI1~Bp4W=9a!XS$Nn;6EFE)fxVG$QgeEuKMc@I(S( z{v1DNcu(^{tJXJ&|N7>fv>7Pmi^txDfT!&2?9{xVc>u1NVBEVU?}oSm1@pG={}B0k z$(s<)a3hgO%?m~dP2;BHO1uznL@Po#1IB#m8LtBjAM~$U_&E6}Ke&(+-(iH-SW3UP z0|qxK6bi`@!v|fbWno%*Zb`RzyI^>PvBvQuy{xu;d*2EHPW z<5T?^E!>B(G8wfePOz6@`wZ5 zeYpC`9X+;HRa_CL#WU}t7rJ?wJYh9Wr}dfHW`;uR03qNt1WcGs>ex-1^)7~xLQ?lg z9%4^T$}%iQle*w$q%YKKk?>|V8=Pl(tvR1z1oB)HB&%iO1-HTJ$nqfknNxus1`wq6^6v#dnZ+G^`U3TC^!< zuW`H@9Uc8vd(U`)xO#~Uv_geuV1J&7>J2aAZBL^qaaueT*T)De^5jMV+z6??Z(LLx z^Q@vMVh2Bju#WzSGvWqdVD|kNc5yDfhEQ6F$Kx3{**S(5!-@^KT(Kuki@Oz0^4P`6 zA#}#-?_ZjR!98E0-~!Tk3A>fr1yW(16nh{FDV6ocZ#-uY#OGlT9;=3q!d)9jFRZVx zf5VhEMrgIuAO~`By<4-kwl>pg5e9j35ijVZ2ySb&MBV^h*QrfDhO!+$$J?x^caD1p z%+ptMGQNY2mEAb3pJiv_`=&SD$<1hPO8XgB+%#vMw7T1naXk^HH}Jt3tcIqT5a!X! zUk#Aol;h)L1$EBC122t@3#ahBB&iDFA3dhA9L;ddpb#Ehp4Kl>nKXc*waq$)3D2Cq zPEscl2_Y02!mEWUuAm4c5az}S%7tq{;+}HtrQyK6;S7TRfF65G3kRff zsDp|`gh<@H<0fIrOYtLKe!ubBtk<)~&vp8fCcBxPo&9}}nfc}$8`1_WFE2+!q0lwl zP6Yyi7_M>4vZA;~OKl9pNa2zy6beaP7kYYn?v9U-r=&#~(j-W_udi|^VyfacuV+OpuQmfxUT@!O5M zR26x4)GahE1Wng%@){wgbzBXN=3{v8!RY8{v{Qq%QE<)J+1W9%wp?)!?0~y5$j=WA z4V@YC1Q*7^!NDkJLie)@0qASz&Yg>4fs(U^fq?-om~pHXv(Eam3)yr1^4QpzoF(l$ z!F3{?PMeub=6S$mUD*O4e-mapv*ZbKgC(M{#Pw30vcQv|{Sv@awzs#-R!|mzX%hYY z{WZyBa90#(o$h(7#S4sZ!L@9Kpj|&h0lbLcU-(lN{#cSsHZOi4+#8fvCojmmZ(OVh z$xC1ajCkpN-Wzlu%&*FQ+#va%?*A^i{HeTm^%6P`i67WMJXT7J^oQl`_$z8};RY5r zIXO8Q4$yr#&$>Y)(%%-B*5s|JmwY2n3=Q-vh5fdeQZtVZv;ud5v`?J7DK{uHU(V$6 zszbj)g=OKgUSongKOhbl3ruM(z?W(aru4q}0di8=!CHUj|QXx zknmIIi{uGv{wO0|fjzy}7QpR(Bz&Ct&;K8;6$R=hI0j5imr>n

aL=A|Wz&r#Q`C zz991WpQ1pW90#=!gfE#^F^g6gNR(rsg!F4gfo^;R*Xk4BV6P9U0LUk~<7pNYh=aJ3 z|N2mM=od2CoC@Y%eC}yAljvNCN@r47JwX<1eq>}M;f{&& zh(amcFUdvuYbA}S)E`TP5GGuF;Td`J@}vsd+zTzWk1R!UVq)ToiilvMd)VPr3DDCM zz(zVG@5Eo0tFKRrRj@ZNQk-IG*^+W9tZYcN^OlrYtDRvtGbltzWxaLNJG0r~JjeT> zEzzx`qoWz_H=Qrgbc{Jz$IzM|E7(kR#GQ3Uor!y;4A(oQvjuA2?LJ6!DFNs{6%UxM zV2ZmIAO!!~SF3!lD@?zu6nw$EjkB%0&I@)L{`(T|vbt#nWT4G_4L>hx!#Svm_qsw2 zDr*|vZJcf0bvlq6)9*Y8sSM-F z^Lzq7Gg}ES+6~)vOrF}fpH&G!^T14B?(OYKKJWhu>;^gP?(XvXc|%7|tE;QC%*(?P zR=2=!lLNU(Gw7xeJl1N7dDD3N+S=M@|HrTHV^;J#&$9#O>Fu0M+d+TlG!E@2 zIhnNm(3|GuVKi66cDfZ;V)jX`H|jDC|I~oizz1isT23<|%+ktF4H)er4l~i`94v6F zbZ}8Gn*OneEl2`_%pkCeGw7orEDXY&Aut0$C|bqvbQ4|?{j%;Z`ncB&@s!X+sf1fvGSIC51!B44H{DlL9)sprBwTbeIB6k<6ru zLzOg%+(A-EJ|%m6tS#H}z4<=vKFwN}wNLU&`DWfcX|-?n`~Ksd3P=qQkH>#N_TjJw45qqobp2IX*t-_ZZqwRU^i;02lGwot>ThEG;c9q5}%q-`~#` z-~j~RtA$reBAHCyU0GS#+S%E$U_Gl=I5|17_{`kblzC z)6+2I2@Z_i-Q6Mfg!#Xn6Tnz&Z*PxafRaW-S63GY%qYf+3HS9}2swRyyuZI+8p--@ zaGY3MTQd(258ne!Udwp^ zM~4>qhnO6HJ|*(iui^_h!v)uz7gPw1Q-BVBdkPOC8egYGUL?d9a0ZMnb%>u0h7acO zQJpC<36p$xoBf^M@B>_Xa1Fw#y}|HdKdXaBb9VjhkS*fh|3%UV;tS{nt^yfCQ7Y1b z3YnWxltGbQkbmTp7r62RqCq6ZppFL^E({+Mr}b}K5t)8&dtvmW((NdkC55&FSTSFV z*hNPG!YD!+5uM&gS$gP-U6TZbkQ~EE<%I&T{V-ja=8jVIAp(E;fw2b{pa(-HdBvn@;5#d`33XJzsBwQg8_K$zv6Amftv^K}lg_|fApi51_I+U|e15!T|4tEJ;OuyWf}#Pso%l3*{yGWKqOY7W!5!Nq zUJSgS(Cxh_z{Kzza_`}k1IZ;#`!n+(zt>Sjn9TXf$=_&cwof_FNFPd72qKnD%icw+ z2<}*YI9K{U_EKtmAf}($o>KzD&Ktw;h!!|A1rkA!k731AaU!euX99*x$i6>gCpoRn zFr&pMAKUl;G+OAHkMD_=0B%=Oz`Ud8LMZpE1S|#iOccP8ngWz)Ue9l*!qF?ZtB25^ zW8l*R6*W>JGkU%JeJZ)tn4nOMEW1}7Pyi4!Kz`=n;NmWTFIQciyYDZCF2wycr;BCI zaImA-*#7=Mc0RCt_dD0%q6HeAo5BVc1qh>AED*{zP+_3@@QZNM@d8Oxkjfb*H}ip| z3sbN=BjOpfK6kcrI}}_fZ*Ol~e&AKoE;|`Z8(Ujj*3#0_*W_+EiYE8=_BbBMW#jz; zyLg%RxPgtX>~=iEhu^aToG_Y#2x)X=G8tA6RQTkEUwQ#M&?Xf&D#(r7?>q=m*Kz`s z7fe&LWA*_sF#G=Ur#MLHmwuiFR0^IMfLlDDZ@~->?)ePIJ!YkYn;&pO$K}Wu;QUPpGm8G4H?gW zHJ~@}!U?Q~#<(HOQq5ltIF;u-49}c`2PW0QMWxXGvxg&ufAko~#45^-CJJHU^3=UV zlt) z=HlYw=H}+*<>lz;=;h_*=H}-A|NrUf>GbsU{QUgr=;-Y1?Ee1#g0KHkkpDP<|IOe3 zkGTKl@BjDr_wVoTw9x+Adb`$UNU{r&y=`uf4w|Mm6tU6=pb=l|K~|97bWoWTEHnE!UC z|Btu-cBuc5xc|V{|7xHA?d|Qr*#BLa{~@m(SpWb47<5ujQvlx(An#vrzd&HGkZ)ix zpUH1=rsfe!DI>;=c$y$J0X@LjSe+#YbO?PQM% z&mj_^MeJZxU5D)wDY!P&`d0gaQ9vYdKLWNiq6S=&47dc!^8DEq4j8|@g21IZ*{k>o*pX|Z^U&SQ#khBh1MiX4hp_%0#Ph4Jc;XiWe1A`r=Y zbO@ga5G~p1UrWlP3Z0|EG1OXe|9o5uw56tYV=2&tXd8XDS4@VA5@q(;d_;RdEs#?_V(v}hq|Q5g59?e_Ga4qu>$vQmX34neeDtmhxv ze-XdpV#x1uRk6_B>QIVDZtPFC7vI$qfr#@t2hLREAG!Vt7s;O-c~zf00DY?|;&xQDI)B8M2we8ZzK3>oDq zO?x^6AQGSx;s+tjqmbXKA2I@G?@K@BJ52>5fq?K%(Amh`xr6|}$wTT;>kVg#anWh@ z`_pL{{!Zh_YqDUO&f_GQN3HfGeus#=Oq;mnImD2RY@2Zl1O_k^3s1s(Ws-;SKZoIT z+V8ixJ?P>Sf7nGdW&QVH<6=nZr(;2r*|004$Gum^<3v;1i4`RhxI$Smal;M4&t&lK z#&7pI25t|0n2H9Ecdv{;%=y!mM@hyf8CNDe+l{(w|3hG~o#N^l_OsAxL#7O3%gxOZg;< z=+B??bb))I#M}Hv>BG6TF6@-ek;#xy0siJ!DJMPpx+Y3`v>q43=!O2T4&e#>O&wZ$ zB!MrF%PAq)P`a-UQI8fRSFkNsYoCEOH9+{LCf!*IdDf`NKtB&GMp7uNVKSaXYjs z(A&ER*9WSavKtQfFJj?A|5e!;r6a(8+MRx216I-=aS^*q417Q}DS?E<)?Ne)8_-4J z5=&qt{_Mf`0JWwmk~pydz;^~|><D^Fr80_M+ tXdE?>0<}?*U>AM67so%lmMBry>V(yT6eVgR*ofX%jSxhTAbJU+t|fX4(aS0;LiC6lorqq; z>Y{|zMOoeB`$s%y&dl7oKioTW&ONX5zGuRug+;ze&2z!J{ADXgZdO#^GzG9n@^+5cGXJ&zl(HfA$eZ_nC6NY%4=x4?2mj& zzgR{K0QRx5;?k~;xBFgl0{~7!^l~vOn4R-K)6IG!>N*q`908!ZQ2+?IO$3GjDK|-J z0P_d`U*{5u>rHC=gx(p+sta8L^%gRz_@(2Of+2x@(~gjA=qGn^G3^JVY(A>=JE}2V ze@@xRaR2@J&{=t`>Cs8)^0CnLY9&GXN6<-QpE^O>{a(_o!5qKcbIk5yQ<&hzts!3a znq3yLb5pPOEz&i$;KlesD6?`zyH~f}2jy??WeMA__iK-{7yUN&4;%lrY#hE!h+Ne>b+*665+2R?AZO;;Gs?9>4m%!WTR+KDPCCEK zP3;=*^{+LlE|QfEuAJ}3DMe5hU_$dAsQLI*d`Snc`=`rG0TWGbk4;xD*RQ$Xk9A(OHL`RI#EyjY&(%Y7xo1PzQ~oX zfV#O>JS6*I*}toJ}-M@*6lX>Ql!j8~9GH$c~WAmc-)BeEUx*(e zKP`GCIL(j`#kq>Esd_h2zs~6TwwUch=WK=N#b)FD zWx=QU$Ojsc}3zM9uA>pOmQ%TpB3n5M_(V8qucY2ZMcicRYq8+**0i%jUB zobPLyAV9&`DTrqytZRLBNHX#iq@FfoTe#s^)^P-Dx0e@tQKV6b^$mV^Gfl;%t< z%GE4hwEzVMna5?ds~0gt>exYtPnQi=IOPB)iykG}m$hkjRdzxtxAC@g2k~Q!K&f5N zq`b$-nEBnqTQ}&wr8{uF@(dE80n{GJiES64k2yNuv(Y4P6M(84D6s0)%@RtYz_7as zmj1bI(_p@oU{Ksb+gjfTI47gM;-k#&qP+UiSTDd_O;$?zz-gY(dr2nkrnuZHm+L18 z*~cNva{48Rt$7RM6ZgwaO#QU96X$8J-=_s#2)IAz9nFt9|5$~oEhk8amVd4AF zd_%?yf+ELwcaDYBFt@AXI2M8!=Xg$+0-n>QmtXSjZxzg8ZPx^-VD^ZOrxEK2KtrAe zBRoP@&9TBry}a^mwf>9`n#1MFSjd#e-zW11(ANngs{P4Ci;+7vu|6ZK>8V!aA7pUt zW9#}05|%GhDOw+#B%LiC6@wtV=6ws!_W}>0Q8j;fE)S6()sw! zvYP3k@n&V^%u0y6dSB{2VEsm(ke1Indle9ux*0K%87D>la$9ImBL!o+hWBT3$#ZlJ zQkZ3`Cb=afRV=Kmt7tLL-ZWU3<7?>)Ax?TrwsDF#K2=EG^;ZKscu3tiDR{o7P$Qfr zA@M7e`{KsJuDo{WCu{u1w5Eia|Eb{(v2z3Y(lxW>%3>NXKq$*wO zCT~t%AlBnP8gy9T8b1o3&`w;C$g*{0sxyRNIeO&=CUKX80{dx|1X~Z;gRM7zNp3Ec z1z^^$Uh+P2jgvqmgXW`yD@#6UI;I%TkjEJxzL@Z_A$v9xXroYWgkCFl>$!FGy%6gD zvD&In8@hip2Yl|+x;b3J z(@KRBP&E@lv--cTqIg?l!Iew4!~uj1^?@=`;iUEmOO+45Gz2;ZNTOY605TmXmzpBt z?zRuC+}Y6OdtSGn+$I5no_jWY*->9lxqnTJY1d*291IxB**-cFV$rHY4uU@HUuNfnpCvUUj9BhIJS z*I$infNFd8|0K1cJKC)oK3ch)-f>Ev~k;MC8~h|+56;nC1HXth!N6X4UoEO zQ2t~xl!N|oR#IO_oe~wzT{WutT51*b+oH&MCuDVuS^Vl1ISE454$H*P7>MZj7)E+O zi4Y290U~3(>PJ85Kwa*+CQgHDOGP@Leve7I;)m}PGEF6QImU`S0Z=g};#{SJZ}2}_ zNo^FXu!sh>C6-0X|03Rgal7hGwDx^f=1XP7FyzzyGlehR z8Z=~}U_had3`(n;$|&KJpJmQ6;KXoBglhE&hjxnwlfNOqY_M>rn2mPi0}%2((4mD& zy>n!%7=7NZfW=Kn3pm40z6STYKwp%2sjVRFnv+R_k9b2%oU4diNgD-u5{bF4Yw#C# zlV`Ne#QP0J*_ciY_Z$hN&K#g4RZZi>{VNv#wDctpo~qeBe^I~+ zJc$6b|A`w%+-@reMYk~Uz+fX}Fd9I{s=_C6?!UtEUXWrQulmahw6rODk*D{0U2($+ zyhe)C|HMX(4>1Awciw+H_T9JJ6v5`qk~<9_*)PT}+}D~KY<)WXchib8k?jApcop$y zoQP?;@+(549u0@H(cIMnx3{-{&eZMK-w#}+Kbu=FRI=GMOAJW_9;5EQ-pO)6-jia? zpSbUGO3Zx_QMEoR=Gap%d-RL5zRm%Bqs8@TyD29Vtr@5-p{JsucDNnmIZK~M@%e2; zgw+F`)S4TsZl^bD9+ll#SXc4Wwq$jC<*sC!>b{_x@ZEwN1U#xWmV-d$bOX$L9$#B1 zB&Y;ds{xd{dFfQ^d+sRckQ9!swX}y8ONs*Z9M23`wuc3qW%?f@SHqJ(bVvh;K`jmCdpCEi+GO4#D_KW&fk zt?bwLCY*Hm@wiVc)eB&KBOuZ|d8d{=9Y~~#6DM=d-8G88NB>@}R=uJd!{s7ieGVU^ z$j>bnSAuADN{~rD2AId)$C&OW@1UUGboLR$NEu?Hmb>^|Hp(H3ktA~> zT|1n6B`5EUl{I^U~fw>13_S)>N${w*fc}fHh!vgj&EwFGNe%(J~0YDJ) zQDZzHT1!^fs4IlR9oSa33~;Z_<;{?orU48>s539#FO4vX1niR^>y`f17!yrp-DK5yP+MRl0dp;fj8LjYt^F0 zT>kYw`R~`8tXGGqk&uCl57*9Q`E*z=TNi&-Ltb^tZ>`ukb|7hZ^6uM+L^nC`dNO^> zG6m`tk5M*nn#M&a*E48X3hfqYf)GFgwY&;niF|joz+AH;rQuRjWluyacfR)cT9tjX zn<)PJf-Qu$B=605s-T8_ob{bTGEJi}i|Dmv>LjdBiXg;GQYmf(lZUZ>34^f)LHR?+5{`bdTLkRvvNvHA%MmE<(w&A~4K#u}egt z0pPo@-2GM64C8AzWj>75K)oy2w2R29tR?F?fuYt;*NGOGME0=rW>`^g-~d~&027du zQNi=jxduGLm$x3M0SdoKK?Cr{tI_*lTn`J|C>RhtVnDC3^^FPoij8Ktk&~dbfwev` zW6AyQZcYT+O7}TIgdCiW<^NR?r;KNw2h+K=rf3>H16p|F9@EG_jQKt6$|e9a=+%@D z2ADouUl#t+-`fg7s_PyRxAWWth*qj_22tz8zf%-D z(U;j>zxlOrK?0a=c}DHvH1_K0TGS(!?`J#{7G7O9iNP)L8hNMIYRo>L<0Hb1{`{dK z%2sd~e4D!vG3EJeC`Fs(M|d2(+-S~wRpvA~;EKchZ{4cxtqiI65m{dU8r;`I3v6NT z--2*6E`WIW4-dSUVy+F`V#xTIArFbwE61>02oEa1jLRBSCINQ!RJi zVOr%eRhYc&E&eOyB}~T-{>c0e+N<~xZRH{i*I+GKl4%xF9TP%xLo5lG_HeLOx6=V^ zp5S|;j>(Et%z_tl$v<7(f3bg2%9^!;Fm2Q{;K^9>CcizrBREpE(MLPGd(BWM%tQ6E zO#ft$w2)GIdDE?io!UglhIev-@zYKXA7XCFJgAvwD{xyCs-D)@D7AVd!6VxhBRjtB zIa~Gm`KWlRo92U~mp^bPbQ-DHwJdt@2S&L7SEmQ2CzUr0^2RBX~0 zM_ch#YsrF2Y(p&Nfd*nag3qOl$`n03O7H8KN*dmkpJwFnk)S)|HYZ{UN}{v5dP7I_ zRhyZ`9s_5O<#><9F(~})=w^&`@Y^GM?7zIL)X5k3;+blehicQHD18U0pN!FVz$H@; zNAT<~Dx426$ZnoWbh(;&H^-QBb-uGR+|BW0L=fZqCsA?lyVTH}?7MS?siU#I)wS=Eb6FHa zUpp;>jvu@4noW_Ui5BAU$prVC^ChXgHCE4X=kvE)^&n1ACfXc<&Vo*+jCO&%*LDi+ z&)M`8RmU$&YRBE3OJE9L}M*!lH<(*B50wW>-V*9KPBO`EEf6;FHP3ddPg@$Vjjh>oZvLIEm z>G&zpjf|TT*--4lQ&Zc%2LKf*H|KW>P31oH>d4b5M8`XG`93{iE+CsHQBX@UkS0tj z#NO*~8}~Sf8Jvyq+jCe`t0~k};hnFI3I1%Rcu>1SEQ7NnFo7(VX@yffxc*jP z*w;J;Kdp9^+7^Hbt=SU09BrVj9N|e`*>kdct&q435suDov{@|S+Zuayds|1~ENk}|J#7Oj2*IK{(wK0eP0y`K8c3ZSp zGo^ht`eAN0-Fp$0OPNOYDhzlY5uP+YBrk}QV%U_i?-hK4zU~M1IlDNYxl|lE1t(SB zbDtswZ2s_WgaxxdQNvoAP4UtL!oFJ0#3XB|o%rI4A3W4^6aeWbQ3!j}puoWOQyXH5 zm*BuBDXP*hf~{mCG2KUniWH)Nz%8&&FKKM&2|o#3VzsRCYxQRqQY)L&0|@5GZaq zqr28P=t^d>>8=tBsPml)HQV66*4nRB(HDGKV9xd0<+L2ta{w^ei+gXcgE?9K*~ZZr*1V!bj;GhK9ms4( z@CEGNY4kketDYw(>$@&~?dz;YYTSp6*vWAN6&L+l|f?&%X`l#~H1xDvtIFIp(?HObzijSHyB?d0oOjr@>Q20v0a$>G#H#7k!_poiZkWR8YxEttWzZ=6#hKVU##o4^9@D98=XJfq zsr$vEEEGG;C#l1X^Ppj*Y}s4~Q+Us{OXSR?R`X}Lq%(X3&&b#$(p>A&e#71&!6c2o zNq8X$E?@Ilc;!n0EXCsvtk(q#pY!-l=$vY{>(XeBFMuAR02S;vPO}ULN#>ne0(xaw zORy@~8v$6IK1`6%B{mg#*1=vYhW+GD1cZH>6=rZiWEFDP572R0hKSxoq0RaiXEdoz zMaIzsuia{ict`)_EJ}~&ss`{!pIG?kCw{`?LI9#7~Agcd` z01nDs$GA;85fi(?rnZTI#NvJevAtxmJ%Yk)hJ<=?-b3+2U3}j`vWr~sAFOS<#Uy0b z5lpI8n~_ohC1`enIH<}bsc_s%z8O1`*5FIes77SY z!kl?|O&G2_Z}pmp!?EAYL3D?VW&Gahe~fK&y)zNVJ1%||X!dv|4yBrWJT8Q2my`s= z@lNvpL8oD!nfm(#L<7*YDA~91_;L8_Prr~I34FY85UY}z$WSzW>7O;_(q3}7bDZC1 zcl+^8NXFZnak9wzq|-z}n^^sQP+s|AVKm>T7hiylZ^`GJ$dA4NGZ&80Gd9Dig~-9+ z=IGw@kYVr9laVZo6ZD`l@PbURK&d0)i|0wxy zURQES2+y6cFDD}o0l3`sj^-9$w%-Sce?6ssDIzqOrirBOD=9ST!?F5x)*97#T^^Nj z{2#IUs~mxah2q<|AoUyB)U`9!Qa^{G$pwxZk3QP_LNuTIRlZZE-0MbrWvjXEv(*1w z3IzT+XkdZMdn0U^9_{vff{c%K>bqtZ7Co9)k6(SJOu<=P%PcUX6`Y4T7tDJ~ws(wx z-cl|oJ7yks_p>bef1>B!HU`Raa->3H;uL1r?rHg8-USA~UlUD{dQ}L{dovSFs3ad^ zY;psVunN3%vkFzc%Dj@pxt_g$+nLnt?ND8w1h6?XbS39oMuJ>wd@xzJ75C#u3;sdX z`dG8ipah%*@~8Au!yFJILK+uESY-|Ofq9lf%E*NE{+98U2KV<3OD*IPsO6}oIeeUh;XN-8jl63MWICx8aj z%=~GI{*A}wyD`8xwnwI`&4N zf%D?A)Juyy^TVK=H`dGR_92vQhI-c0YCk_C zUHZ7%Ac+Djqm{*WL66;=t0#;OubDU}ggx0%Zt*jO)5eG81ZD5DcqLkgF|{JSO&;d> z($o!WR%5_USt;#4UsO{=GT4fD^tV5rFtR)>zP=ZERBBRh>OA+&J(*ewuSffnl{&yJ zpIf%b65U&2;(cCER~f}nBv1|$>CA17eMD+X&UBngy8@#lnux_C96LdPkM>R5$H`gc zHwj!0mfEZRy^J`hxFAm-_4(Iga{;<6og275*gO* z=v@FQS1iGQeDUg?^E;3FZW8T5)e4W?$toK|hNx;op5&C>S^94JRZ@3xk&Md~ZmKVk zHjql$O9fGaZ&%>a@J{qZ|8OUDl^N7pFJ4(Cv!w!;^v5C~Vja?~duga>s;)QvJ)O;r8d8Vj$hj_BQ) zxHkW=kGh)GtyRP_h^A_xWbzT}lQ*YM-B-yaZ_Vx@D(p%Ur?jsuLn?aU!IP|(yI3U? zs{yqiiN=_Ih4+VM8A|W}T4(VI!TX|GW`Zy>q*3`^>-=U~SMG`z*sHTY3vxhtZ-~n+ zj_LUHwDIYoZPFx9+*O&+0P%bMNwYPd@fJ~<@5Cw*dn}tdg`P%wYUdd=+4$~K^Ciox? z9J3t%*bH7o9gjnipSj?&oq=|O@R`IH@PpIxj@XU8#NGB7N7cmiIDtOaZ)pE%9X==O z`*#+JMs+&OkrpZ;ni)g=_CR6T>8B~*>5HYEIgbHOncE(mZ;gOVa`?`j94`QxM$U?F zUjO6;+bb5eC|%NWaR%wvWclB{Fy0>J=T;L!?XX>xpN0oES&1!s{0Y|dgl(d?1dv5j zH%hvg>OM&;Ol}3CEJ`UWs>w1+LFw~5;OiEhj%x+Skw}$(y`2FC{{m0MP2^@M=7`(L z1Y?uBe2^XAmU3E)8Q(dmMn@K$YDGGCo${?vSnLn6q2R^ma&7B)r>M-38p@Rq#WV0P zO1ytGwe@Ifm1?^x}sq+p=w}5E$(>h;ZN-TYIs;v0Sex;-g9ny5c&!|9uBD}C_hJ;x9 z{^g89w%<4)>@jH#x#M%ko%uYCgd*Q}K!Sqj9#lnoHwQR&qM$TJ!3}`vPc9m*m-XwE zX+#taeuZmi9A<4<+8K3C(6c(Aspb|}7JzjK*YAgm^6Z}a7vAT%T-xizZ}OgY2OUUZ z`_9PNG8o91*Ue--ms*caPKhSM5Ujx=Z(@(jqONxn&>T>Dyn z*nu7va0_QS{>YvJSfTNy%mPAf55CpL{Sei;oBSs0@!Qrw3A33H0B4V=!}E(P57|gb zK&w%z{ryM+Pc52n&NNWG_)on=!<6ZQ&IKikdr@uM9CK~(8vjX49fPlajaBS-Jb;>n zN**7%bMj;_-o69+aODp3BZHZlw#pBC!qmqb(`Zt}=8|)W|0V2O7QsHzhVHQM25+!~L_eMr}Pp!qGxt#(+rAP;$6SnWjFQC-r#p169OcE-q zDC+zn;a})SK&QgQr z;_8REiQRO`@rDSBT&@S~w)r>{Ig>@0yR7QE1G-Z)-R_%;6J>5C#5vSYObW7118!nA zHR{F9>yO0sw-U9~)Xe04a0fre)WkMYbUg(n{VJXMR@x>qa6KxK`gk+gh=P*+DwVxx zhwiQWWm7b^{=B>brVjNo|1MfOoN0pb|7-o+@a=0psb(1pWe0yWo^WO6&qqk#N7uXj zMUV0LJL7z+Mxg3aUI7R(LZU@YaZ;qy!lQY5C|`h3wNhQ7)R$9am)$jnU#5j&UR7UR zVwEcWbR*E)_iS}Z4J{UN`TUt6y;ET9jD88Tjm*d(=&~!24}X7Y$=xouz^Z}*f2)*b zaSSpP`f}NwnIJcCVZF|Xl(Qj9;E_+PbR#yCosKe+!!fyeA2k)-Ru4|3h@2GH)1R=_ zp8w$*4FkeozpApm5EC`4m7^B9lN=PhkZSq1W+{w~E2cY8{rwF7nh8N>vucVFe%VV= z=RI`oTbv>!87-bjgrjug?2 z(dzf=S?5*P&Mk`^H-9hg5ta2T@ozqL0s(i`liRc>Aw%XCWE`V8QhT*6m`xZ1uh*V+ z>YK(y?~#tLt?!V0&p9<3z|7-#Uo6v?Xi>ux1~JkHO#1kt|V7fOsOm@5pxe(APna7?NfyM&o z6;7rNGTA@2UY#g9u--uxMPwbt%2I%s#L!6J#k>WU72X&D$%T+`%~IQWYWXgEc3=!U ze&WP^a|`?V3nrCUK9#wb-GDt#Fm8n3g`JgcKXvB+3ysl+9)&G*k6Emq(zWnUPDbCI z!Af7kujl%#o5EN2$8J{9eFFm{aO{EiR_{?{6Xv^U)H(rfr8s<@%=G$U(O+;?D;z z50-m(`cE<2%J;ixIr&KV`Lu2?&q*vr#J95W!%n5Ve}#SLJZE=kIC254?;ZBSA%!OT zvISNQzsDZkVbFbO#k2N~-cQp^@dW3;yrX7%F58-dcq7}I3?`MM#~)wzy16JAv)F_mv~6)vgeHeB%~ZUmBiJyq@%>I~ZP|C6AX-G< zvqqo}!^|~Bp$OI`VVLyL2P|R4zs#M>o$ek`33(GUHw)p^nBDG1VjG`qm-+XYoDG8S zCM^S|G?cQV8E5f|HKNX|!6qc2k?YG2_`!E;3zDkI3+fk7J?5%yrwI#Kbi~P0RU;sMO+1O2rQTy{&|Pa`ZyA+Ty>T3EhWXqY)d_u;ck3`!@I2OUTGg zF7PhabUK-*O{z;4L~7=t{Z~?ypMFKuXFY+wgimo-$9l8xK_AXhwV+u-I!2cHD{FK7 zrp_&$(J`k%MrNV(wTfhI(WY&3qL6!ieRiQ4=ORI0b_n@-Tquq zKw=EM_0#b>#~S;t-TX1A!f@CGGxAFF>`P(qSkJ{LZ_lCo_{M2^_?1SB=d#RE$ZA($ zeduW}%p>Z7Tp2Y;fM}Cxgf!*q)xi|_z=9QO*cC*ya;dpyxcz%wa+r}4rFcik?Qyv4 z_h!w>z^mC>B@{Eut!UcU7lXzz4s_LO4E<_c<@iLPTMh8dZ^T$f-^C}7uWaU4r8ov5 z0UEw6Yrhkp@0w496@V}Acb`YU!m!Q)R-~^|Cs9|rkcG;758Nlby#J_VX{vNOD2OuXtV$l#-@nBp8mi+k_`5ph0uLbsq2PoXabLyZ zFv)d^gk*#&*S-8Lo!fJXGwz(cU~_j$kDOBt{zv>gB(9it7O&d1C<(t_sP&aC&)xL` zT;}0wr&Xivuz6fO5%IobWcBW{<3=ad$J!=n(Fq8fT%-}PO5Zbfj+d)xV^$mSA51cE zq1T(7Chnp=zPA-2+ai3p+7){BoM_(D`-h3~3E*?Ra`}0z6L~cVzO+BiZ;JTtt@V^O;L+~pQTCUqSe^X*&l?E?hMmOlLi3F!aLqU2#`Dc*%x`3>`^BNGS+0Z9Z8;l>xf zy_?fQxTO;sxY;+(E|raf42}Qf<=o&7DO8uoe}5jKg0nUjIT_EkiDgN{H6>-*deGTb z6?&3vV9cHfhh-xx@}C1XC?IK4F>K6%?Qha1fte48JfQgFYr*FvL%2#T0Uc|TA__xO zCPVxjP|B6Q$GVh*Cs_}6{;O6Q>*}qqi0+)Qs#Ax%mXV&l=QeOPfczu%2Gs0}-wtP& zs!HBXB%D2n{Cy)QMwQSw{`Q;3ZF7?1nDWTCoLK2tBc3q~B@$HNVq3(lzUm!yR*J=k zBvS}+jV*>E6jqJQSKoaLCADFIesz-~U#`IZb1t2Tx@?IOW{QH7CT?<+fcVW^kM)J$ z>Mqlnjj;HUlDbu2^ohUCz$}0@u6;l3%XK3kO_?6@x}an%@I)TfJ7~k)Gef2VPX1(wx<4 zDUKZBHAn;e^P0(!Mp{)1`BzXW_iV+G{rkGWL6&^M0=4q0mp3IJy7 z3?V`ReydryluMO{F+_|SyefFAKaghl+M$Nm>kE_(L+tMg{#_eLR=a848OVN0hYL;mf^16Omy?}pRfd(JH}qq4 zFp|@)(gQR$RWSkTK0qytNl}Y$g=lbu{)eiunfVhUwgc z%=x}#rS6K^@M*v~DWvRXh;0Lj0abfJmOyisE~0mtm9|7eSq!>$>Lw}@fZ*`iNMv86 z(l>g0QCZ474@4#_fi7+a(;F%y`k}M}&CKMS;MLGt3dXcbmulQD4iMvBD*Nl7Up~5N zgf{=-r=v7xqn2j~em;@gRFUMkoI@2SH2tkY@S)fZ zn$JG@YNQ&UC=hB^weA3B$32^;hXYkDT3%nM1muh{gVZ4|5N=5F#)sO9Jp%mY6Z2ac zXiZ}y{|l(GRZ#jYLg4w}LdldTAYTjLk~!XX4$W-&53}Om7d~wjymG*-=w~@x&Whr4 zA?l?SV)kIUj8F^K1T!$zD$SGb9K+7WA6<3Irl_MeOd=WcqnkeQ za4>>6aH%)EqXXpIv)Q0aWIkInLJ}94V%TIHGy}b8Lf)H?{(#GL_qFIGk7)3xhNu)D zw{F~jP#XN6=6+d^6YTw`*zSToJU%ZC-u%?3Rx|jW>mE~5fYGF4th6}EEbB)6k3Of- zg0YXyu45Y|HZn7_!%Nodkt}>>$}Vd+=p*#96;m0|9_nd=(1p?>5$dHB+F$IoKg|0u z^f^%F@|Bj=1X#;6i5~u*&Hzo?zO#r$(*qiSW^^F7&tLb3AWTw1Bmtcu7HcIWO`y|y zQNmG58^E2IlYvbO@D@s_B>C|l>e-HKHawkhR>0g%?SAC_9eYMFflfG{JFYpePm+?< zF@TlPOtV>NAf4PZR#V6Tsb4CC(Ig*jXsl8TVK=P{FIs)?3V2+|rStfLJm-YK6C4h!qxVk zxJWW45kGgkcf&|)&fSM6Fnex(78zQtnHZbu> z+e>n>gS#fPJWcnZDH!qZTk z44L{wWt#z*rGOQ_i=VFKD6uccNtakx07>R098NZ~>&ud~hdv}SkGd-{Xh>yJU*X;N zqt&RJ19LZ5vtS=f^&a*zW6hb?CnR)nes~AOT!*R{+$!~lHE%_KuyEtL0Z&>NFYGN`zj|iIVFEMbqr-T?{;KwBLH%7rJcBvdfyo#ng2R#K2%o}4|No37 z6&BF`zRj#;ZgU^=-wVIn&u5}!Y^H1XMjj&L2{_2;tF2A`t@gT4UMwCV5mCQph-$5L zX;V|*$MIy*lAWxJTMj#^#BT&_|EH3)KXL+5fWL3YhTyR1|9>oD3`6F%XBhD1gvaS z2VU$bI>T#v@+aG~=E}HCf{A@ohLe%8s8~CE`-UnVI5k@E-ENhY^7^ow5JCGt?LOEADU_bYofML>LoqV=@Kozfv~vVT zzbwgjxfWwElX>W9@3wX-B>ZbK^)$O-i9(qp*U0DTvSqppAP_2K!jFd5>2RA47_wkz zF(0sgFDn?OX;>apq|g`Na2<|sHU-`AQGv6gnFh0QIHb9)8twWY(nDOgAAB%pLLwjz zN^0xvhX6X06px-DCA&yqymL-ib>xL)sgO{t9+~TPfS$xl$9W7}%b2VVvfS6gq?}LK z{b?>st`0ghr&Eu5-YxF5oH4LrucI^dw0>JtI#xKrF=M^4UP;=2o=o?~&T5RfWR6j8 zG$QwWg|WkAE_C|K56NNi;sBU)@#udq_V7^_l6z)z-YvAKEZB@RwTL;H&DUZ1gVX92 zT&Aux+HGAB6`B3P*VJFB53Ye=0(IE@HAUs%F4Mnj6o$ImL2h40)wAUF?d59*OyCVD zZ`|vE8`s0tBJUdhER_VV+l8KRn)Y-3q#y9HRiHDlkKOihNt<1tV;VmKZy1f@8W8{E zsjQ%~YVHxmYzscCI5x{ymOZ?vixd~uY$b&&><5Znh{{6@#WdmAYRi}i15*0*?;So$ zbnAF=Yue3$&=i%QME~g3%AO@A*^AU;f&>05_tiE6-^%O(#NWg?4&RK!lO{Rrh)4m; zdjl>)HsHwyJ>$FE-^Y~lv3Y5RG^)F8NJ3lvO4aQ*#Qt_U>`tHz@ zd3cj6?0zLfJrUMl=0W4}Z)~%ZQ>gv#H_t#CJt4MIcW+WP8V#=yN{&x#Pb?dD-1;$T zjgzUgI)(ek>+10cO0Z9_+t+RZ?%FQlqKjcmc1Kl>%r9c2t`a7;POp&a#lN*RDP}uT z#u(n=CTBVFNnI0e{4GlUExWk!G=qtIk&j(Mf|7Eci0R2`nW+6$lv z*b(wM$1wUTd*{X#06yW!E}cbxSRpYMR_X1ZIzn455BWLJ(2nCH2lulP*?H@|ymWL+GJu;tc>0 zQT+d40dn$Q{Ci?~>#4j2)QmIi{R_B`@|yAhKz%aNy)_;HKqI84C~pveb(sGyfno5| zVCTNMSIbxXl&>zTaqJ@HEL>mgjFV+b6$w6(vFtoQv7@iYlGF*^wdpNEp1>8`^vVeipthN2R}!L&h2ru z%D9#`sIm%mg05Xw{&=uA6U`qBMw$kFSi%QbCB3k9{Ia1x6RM&L3FKo&u7qYsVzRAA@>cF-Bb8rl!Eu@CR$R{v;iSe zaEAob&+I8@hH#V>=FvX@H;xv>-Vt3z(9u>z`vE=Hjlljqj`Zrq5RyQ*{HB|KhLFmc@&L!|O;2 zE$qN_gd06i{@B7p37Ubwu;GCs%#z2`5K z)PJ~qYxnD-QbT~Z=(xWXeeG$&7)J^iO$v&wT@LA-AJc3(9To9BX~jP;A#WAk;_(jN zI%>lMY{v)vK$Hh|se?9EOhUmo&D9lLIF80}uhmdM7uYl7OD!qvq7WFPL%JX8qQ4@s z8*4&PNAur4SmS~d(N#b4-9*kaLfsG-^{$1|N?_egUIAv-=M!&b?cJ>EK3oO}N*Ts( zNJW_xM^yrDfU>@IUopo3DEvRCNzSe>k*piTz& z%=x0Uu9#DLnnE3eo!)BCw4k{4l}v{FM=GsntiR#-g3u2>*Qzac7lQMM*Tz zQ&t`&U9G20?!HRzjpEn*-5m#`WW!&x57{|BolWIvHz?Gw59D)BrpO$Fj(F{zQni4$ z_WRE86|CuqE6MH7>AC%JMwO!EQ!Fs90_ZJU<-n{iG~K+3`7d!0OqJNKF&8<0sPNE@m;Y~Dm3En zu0RjXy`k;PKy7|_b}-(#f_hi|SA*i;vIx)7r>oB1u%75>&{_KSq( zPaa*j9Z;m=tyoX&0@tgVNKQ_^&P_(s_r7lm0~|yy{d{*w%k_toEf-cnDsi$v_x_pl zhT<-URDk7e9jh1h7r%@dilXZC%ZVqqH~qme$%BTW(qvvXxOKL|JkXCt^Av$FgX)#t zT+GHk_ygwMiU-SPoNdf=7g7YTI1~Su`cm6&<@5U0Ez>qp6qsYJZ;*-vtDN1%(=9`R z#{3UYG5yJ&E<3DIuqJBsFworH<}2iJ?Q@q4*$OmU0yJ zY}{Q98bs zp-1*W80VX#?2xgzBF6K0 z1F$jetaYytcc8r2*02jB_6PgMD&vAE8p~iM2Wt!J$$IS-mT32%7FI$GcjwS=@}^7s z3Op~oL*{-KOf=TjO9l=0kBu#GhtygyeuY{$UJ{yu>MRRxhtWd|%ouG)9;O3gPN3Fm zQ(bojZK`#Ki`FiT)kfltQhd8`&k_}TyyR$6fSnVT>}k~%!2zQeCIp7EF^snYj%3a# za*Ov)NL8HOhAl{AGXc*%v(ruDQ|qFI4C%Cul+0VZzi;8ReS3RshQQA8-HoC*T?-VS z=&AmTlhC_pC8T5ft?34)lb=+AB-0h(+MY_gF0kxS@EcAkzVJSvain=!z8mW1BE#t; z$R16tAtJ!WpappjLC+ywgjvcub@J19++s-U7q8E? zwi>skbrc_27nykct4HkSJ8_+j0KOi1yKudw67g=CWl_`M4l5n^W2p(X`2r5A7HyV4 zAp$;L>o21ti-3!|ATQEU!sw=s%i9OcnUGWVoNcX5qvpvwBSJ~=C3qjqA%s&p>E5WC`_%zAwIUS`H39i^3?|LxhzL9EC;&Lx%C z1f1PZ3?~;74P7vM$yPGoFCh`8LcM%rID!RsnoKi`ZKz#>FNv8k7b}qOL|(L?QURK# zUXIjDqcOqX0{=?iPHm8CQ?fYTFwBEMSc@vUZrbGjx3liy{@dwAkDd76nORvG+*!QBmmpN^#`*W{uRV%YS`@TH8 z50c#Bu6QUZ0_A-AQ1@D@&yWp-fj`Qe!K$RYiBeFKhrm}_f;<0VB=Ydik0JiUH*kTW zt&t$O(m{Fgj+Qldt%3YHCUNLZQRh^O{wT4CACV z2*o3VA#|GTJ~Ka+-e2N%H$yhrPBnK49U`@q;DPiS z8a!U<#B7_Nhs$b7vD%R8pb2GjilLU&Up87JP^ZvZh_4gL7;xoG=4Q;YO`GZQ-VDshP-D|6w26r9v#uC$nDi` zoYPHoe(5}(i1ogt3Zwwldy2PzhSg6s1!)T7&Le;vl6J7IU@}AKg9}pND<=1m=Ke@e zgM$0v->1s}k(5!nDUFeOmk8aNqg9TD6@Mn#2UHpRx&Nb&a>pZDV2H(|=j?h%d&s=g z#{jVXmhX*ju)Z6KK4aV({Z@U7^>ZvD_<*7zTmI>%9BHkPd_3&WC}UA2t3L(*BIn-2TW+#wZ@-a31t2Z+4w8GoC*8^!BkppmQboO134yvvCQHyR&*5_*xYH*fX}z z=Uk_lwJK)m&c9W94#^3&)s+Yuhm-_z)i@80sA5SCLuvfp(Tc z4FA$akh{ym_WWDsoP-9S!9TqcuMhpFfQwi^Nn11_T*{W%*jBFvZ+>{dbeQAFuHwoG zp46#M(*zsy&d5PzOlNSDF9E!He#m5VAklX=U51$mAR%BxZk~SeB5@9Ub7f`SbN>b~ znpwl1o#_TFO7&4z1Q-kY(FghCx4##p_mAwk#WLpQ2tY>9O-!4}wfqNo+D(UT%*!Zy zl;LSoAfx;wHy0al)}L`R46``3{!bC-qF{2i=vueV1$dSB&$br=Px^-r_7w173bj<# z*-5>s)-IADXd|w8#}!1#*}1_F-LA)A<;DZ{ixK@zeg- zIE*0_A8qsz<~8d|T8R#0BnCChSd3>mxi%9Di6`s0mBat*V2onJv7@+Z3-m~iA3iok ztbwvUFrr7=-pTy%fqZ?;(Ph8r#OlO5%xhs_N9*OzktBao^Vxk1q-A4GBq1ncsa>%Z zBjy_5cQf0DqMq|9w7D+f>O@w2N&mLksmDw+mCiC7EEmiW2bH#MjiN{9sVTLq&KKo1 z^u8yOTAaegZss5HV;>lTqy#J`3*BMrzilP){e_~3DOqkbsBXvpJY;NINP;S8`5@y< z&H1a*^8#sC(E%aa1CbI>aUqz`|%`29n3ASJ`F#OJb#8viYeD)*2gzc(;cIbrF4Gnk`8!V)rZ@O zni-6nEVYe-v9{#TYp|)e;HI_Cc2vYFIxQh&IzD=_F!(R~K?ytErQO$Sf_(DnKc_*_ zrno?YiENI9QXp_w!o4CR+0NocM3*+tG~+gTo{=3g=_+a>kK*fp)1jb+9SQ-dX=6EM za}T|9zM{Ypdrca-W>{$D)mjnpSZfw_B!X*NS(k$SPoV7*y>Q&;X-rCd3DV+dvDAHI z-tt8DSJV#6iuxUJ4YRb;%=P|mW=E@VA!oAlM2!4ew|xHZrP*#}A8DSiK*lqD{I^;L z9E2J3+vZeTg?|!fmzq*KXACHq=v{Y?(4^Jn_?lOZ^P~BYd!Kd!FX~CrHOdWW{_xY( zuG^D6!Q1zWnxQ#eZq+aK=PoGAhr_L*$StcLC?I*^aZ(#P+#@KeV7A_SckZ&Oi24v!{9uXy+DxZQ_a7 z+_O(L=5)2BOyZGQ-&1{ZG$Tu4&Abc8Y#AyYRB!`bxx4eVj3#y_YL&VY2IOu;r=uDN zTuT*!lZ#h`Gv%sTpVtLr`^pK&*$Q$5kN2cmhnB@-<&0Ww!_lS*ik3ca|L_$}pEEp} z?27+_>)@2mI%4@IEhE=EM^$W${v%b3zM=)S~8kh^(X`tZ%tT8Vp2I>dwvvi zIZOC@YHmKP%RQyd5a8HYNpd9i6mIM}jdJDrIS! zA)P`jEAG8bJ#=AEo^Upu$h(#N>FQ&lzUgjjdI#xJd=Q#eC-syPPkFBPQjvw#ny#d! z?endbfr?!kuHMn`yp6JZ#X(!mv)?s+hqY&v%hQz;8WcJ;Z|jF{B{S-|!&QO_F)18Q zw!%z>;d#Z+ZNeQt-jj1EstI?fDjU-evT=uV)Gp>p?{$3J2woFXgL_*W4`#LFUzELXWd{mq|?wnRcGB+4VyQGb0T5-Xt*D2hE1tT6+F;V8`=tp z+G{lkbY_jJS@&mChf*3kHn1#HwIJ;x%d;GFR`dzwUZ7Lj3tk6j`E3)*+CfS3L@#p1 zF5w_1&h;Zj3Zl^1p4X}+P?#BRtOQlmXj_0?d-hMN2B)5$=A|SNlY3&;9pw}AfslQ& zLOBisbslhnkHhWuRPM1jADn?_SxTFk>%!JVu{p6{Hx5Qymf0Z2HV>M zB(Y9}=Q5S4bsplH{m)wPQ6LX8*tuXfTIsl9v`mF?sqS|xdd$}$D0s;=kW-GNIiI1q zP1eoPh(nkn37(`$+vYI3=g=c2+zm>rLH_>aklR@y`({kZHsX)nWp1pNR+Bqjh>?J* z2+|k2K6CAy;KR&7|3JG&yJ1kfyWkWMDjSI`!%kjzx-^jw1;~-$5&-_l{SU)+NbC7^ WLvd6q&%ZJqpr)jySo78@{Qm$V7;NfC53jUk70zpR+!#86sb>9OZPK z0RSB0e-9KuMkYD(LlkE}IQ2fVfo3J4Bmn?a$KgDfq5}X7mhw^(8ty2^SzcAI zqabA zguTXpWqrR$`|j|JSm=DJ{}C8N1*dQAC)NhZTmAWF1qJ}vS%169{}nx5Y1 z#5f;bgMC>1nqvU~la0UIy19IU_6ASp98hh$%+^$h7{LEgmQ!-{JKw`ajC18L&Anta z0N_6E-G9g5>2T!?kaMoePT+sz6E70-T?yHE7BYtd0Nk%2P=J343JNMf5f20gnAkx5 z0RVL%DjFb-5)1)!&H4jS0EHN6AON?(|NpH&)**u(r2TAL$0WJ?I)26%LOq@L_vX9R zgQ52ag9{rB-YUHwuwT3Jvk$HOK3efF`Op$2*I+eU7({pCOYXJJkKM)vqWV`{xm(oR z4RanAx)!Te&IM~$He~b?W7!;U-}_{jWv+BI^jP}gsCtRtETIRu_yb-AvD-r~^hj^g zYAj}L<#nI*Uff50Q+R=@DjG+=_c(y` z27aVuA6LE6EhdPSRljIs9ML$*I=YVP4(+c@k1hEkce{JYM;3yicPmkGk~K8hW~t zQE`N5#u`!Ed>b!`;k*2&$Jb%MHK^IfzVPI-zvUqOb459P6Cbim6w<%z_qwVx0C3D? z5cR=G@I9$g1A8lDOZK_z8>~6B$%}1%`4YC&u8oK9&otc~h|bG4LEsl9L8@;@9cg=!3P21|NzL+84P9yPapBRgZ_x6=&hrP)dVN z*Nkx`^Vm^lPRzLrYx?1G@mJ;p*wlMgJVV)-d=~6EDCrw6D&8s^+3;+NBU|KH)D#^x zzNEbKal{#fmd&>oOLD_tyNzqn<(4b`I-mQS{jIR)I9iWCO#I@{;lBRoWd?UqE@$1H z(D$k3`3$k{oHS2=tfo!FM3YjujFWLDxyjOUNMByD2Oj|OU5&@}K8#aRGR>LrAQw(O zb5vu*CY6oPj8AVUn+$dm5w;h0vnnUvvOB8h4&hJA>C+Q^fo#2pKQYAKS_)q;URWP5 z8|P^LjGcYSPd)x;p3s_Yc-eVg`A>_}_9vk#a;X0`mi_FAeJiKNQ)bjSGg+4EQ=9X` zqszS=T|w(<2YzlX!BWeW)}sow^DhsVBc9!v1lcT|a20z(>z_lQ1RQgJ(6McwCe^NR z6S)M{T#k8rvgLeM83zq~npRjpQ z0wS+!+}5uKAO))q0C2E&z!}=D*u=c{&Ii9t7Osd%Zgf1FSGf~O=t?ntcc&;9v!KCq zqNilFs%L_3sfbF!cqGU^5rSmXGH=s3wF@8L;xx}))Ml?qEEqoz7Q~_E2h>Pv-W+)_ z87NT2-s9zNso7!Sh4ucXq-2xBAv%{i2M~ZJUqWnCl(j&Ua`zrGc^=Dk`^I~0#vWt= z{HifMersp1MGxF}DEt)O>FM>6!1F9Dii%YTTmOSdMxmj>RL^rWEDKu=aBwbMW|U6z zS1vdg^2_v^6Jv#K?AC?ph;{V8ta=Fg+{Cu-LE*&=3)3Yv*sln!f7Y*}BPykKJoSIs2(zMm~oLS6<}EdB z>KruW#2$qo2mRKe#`lOZm**XhqYJUKuABX3Wh2SXyJ>>y1A)VO=jA@Ihx019s)@M^ zOO)QN?>!-IwQZQQ{oRpApxATBPvM9-nKgWSYEbO6($j4|DFY{K@%itl${Z3l{Jiw^ zCGR+FGmZK9E3EWzoAAj$5c;KHjYqM7TlS;EO22KNPv^SzHm};B+fNHmKOra$pTa5& z1#Go;Nqmd5ew4yBE9Wj8-%L&%Fsf7%h`II?gn?4_J0**H76JFPz|bgTY0rv;w6HkI4gEg1WjG^F73KivUO zInX>*Ks9$tvkq2%g9i>p*V#`G>Q|?aJ8aM4S7IY9k8rNeBpDp9RadPv118Ev@gyM1 zfm~YhfLXAdwBV`tUdQS_HQlkA?{`1%iPpW!ji-jyrRKu6^s=g3f;qg}iEGowg)$?h z1*1no;du8I{q@W^4bjer^3u-qN1w8Sy=SF}$)h9o$E9!U&_=&QKb`qW!!JH5_G47Z zs`g7Gig1ddUoMoa>@RgBiT@3K5idg0d)(@r^r$)IT&&=?RwORbnfwLkVkk?N_COBpu|~QcGryKBi77@yx+6Ic3An?-kFN zb9JV@JX1HCq{rh~H}IHW#Yd4sU>bfF@Q+x~#O7<~_lEfwf=->v>_aLMaev>vJxqCATrK@ z1kq_|*cJw_MT{+!i)2(he*B1|p)O+s1bI4JQv;S!C^x5_8omP3q z;sjiuRf~W2onFXGpAs9SN(RQ9 zMNzewp7HS$IVhlOzH+{}&x3EAYdge5PUHuw!I*PQF`!jb7G~ zWq#AI-tMKeZ`pU)w^sJb`ChuEUudc&-Gy$*&1lKh36fzWj*^GFcZduB@!kLF7suJL z7bt^yVHQOIvPQ%_Zmb(c6;&9^Iv|qR^d<^g7Qd|Dm8||XtAk0rx4lj5BCW;cUIs6ky`(vwBv)q7dp#Sn@r#_09eubk{fUyy~%Fbs1iC61ws# zI+%_aqY3IStb!mOf$1knUeR)07!f;k{KeMmJYnV#Q~IDDKJnE5-2O8r;DGk$S@`P) z`#Vy*b*J~Hc-l!50i4LbCI{vEIg(fjyn`!$5yh&N+6I?31NNyxOnp|A8kGTlhF`bu z;bd)f^$()rZK{G|mKla#AKv7Mpr9Q1^Z7>uC=PcA=6SU{&ab4|m1_Y3`#kpK#<~(@ z?QMqsCnK$bpsg%hw_7>oq@L`d`pqIvUfkX%q9 z3-!F2=zW>7Eyq37_ffWgq`qSxC=RAuC1mfZ@_HPSh0?Cq*VoUU57KFaRA9f^OwbFW zNa&M8oZutL=5Z^TUpnoKm{SQdxrOS1;2-!yWbP~M? zcyK{MeL+9uufsmrqx8;ROWCpa6tr-P832;zs`E4a?9+;h5~-q94taKH3#$~x>gj*% z!akttuTMNbBr#Gm*g&EuO^4?^<%dmw9QOGF9`NzUdlC9T?V1L%XiU^uED=4)DTDy? z6RpmLkrR77?Fqu=n_2?;pdK69LOKww80hx;ZIQiY@)Q?HS=_PrET4GMnVr5!uxY?B z0Kij?wfAWEA^o6F{nmfFU|A>-PObX?#vxvpTjUWP#BKYT&e($tcK`$}V23dY5e*7SNUZX4|M; zGbS95-qbG?*|dY~->VCeZT`D^G!pjG(6Y{~O@_`A}yYf$!JF_w5=m+=#$7AMJo z0Dh98uzfzcKS6jzNq9q?GCR)DIK|=0UMixDq1|Ync_^v3KSebiGAD$15xj5A#-K1u zNT>+KI7ZgnmR^GniF)tZM^+i~=rrMvQyq$5nrDR%yzbM(dMWgDbU7EiR3|ISk>O3TW6mGn;JJwnjY_ow5xIJ+O* z*aPUOeKJifrmKtb1CQ1X(OM8PQW;^Ed$YWGvyCKuNfw;yL(i#To$~1veuR^tv74F2vsT^Fg%88u*@Y~(CZsyhMa;s}CiI(m*;5%{&o=3&Rl z=AQ8)#h6%+q~@5|Z|GESxwuj1(Ls}Fjw_8e1xD0NyT9{f+nq)&+=dh9x9xvP@4ovM z4Jsd66FzjF(oG<1zM;Rk-O*wYjytv|g@pX&;5gEqH2W_?aL&|k(#6i3j+X2M*VDuw zP@Q0j>eSw!PLMLJcV=XBd#GDq5TmIzf$6~4<2>vfF>c^sq+fB5GS%rLDE?9X{=Vc! zXUGYMnQE_Di$xcQ5mgwcp>=ve?#3Dk2UAu}t%k(D7KaBB5@?pDe2|#BO zWYH0?e-4j%?`ZHH0{@n0U$&T}pWxSHO}2|fyrvd=q8_1h+3_^X^9>47)k~O)$ukMu zI!wBvIYT)|!h*%BD>Y#(llRJ}a-yC~j~}a04mW+*@;QO_3?oja0_71La~#$PXl6{UTH?zmzWe0*i$trmFmchm2*W$C zVu~9D_e<|8DXAr2eB)pjL7tSG;rq_avah-+G&n1n~C0k7K*;$6U7neti=Maw9D~;mu*?yrZ?1l=G za8$~CrU7F0*0Md%e+^CyA-}OJ1y@7e0Sn1_Dzq_$4=WZ>Pr^h_^5*1f%}m+VN+xPpS~ATg+zQnLn-!(uXb#2YGIjw_Uv!6lony@9)svYE zI^WeR%;cExtw{HlQv5S#md=e@ie@d=XmK(cB3JOqXF8I^L))grcQGQLb+A?e_Pl5w zcR2W9&zE?eAC#RRr=NJA^6_s)DvhTy%{Rv2*4J%^)&#}4Z!Hnn1TGLLp~bPl1m=H2 zn6EFTMRc#Be$JPULEpM_}@k+7eEdk!DPOiPO)&rfzd< zYVYn9@!)s((VS`N6Ix3VCuCG0 zFx3jh_SNYeJ>z~0F6ye{op1Q$59)H>-b-P>iRk=S>0=JZEv)%@r6J=SqTt*Y*<#@* zZy28!eJ%K5K-4}-FP9OHSO+y4vsBmpL#4eMAqBfT3PRqsXkP6POG-QpG7A1^R~I6! zuswSk<|QyD8XcGb1jaeEyk!3|)Gh!v?Pu3k*sBJ!e5ER4>DHr@#4~G>K(%fDJJMWv zq}xJ{VUD!O(0D?go!}IEVHxt@8_${DJ||lBTa`E;J85_IQ<`&a&Y|EOa*&h-WF%AU z<7hi=+*}duFKKjirTsT=^3Db@3mXs)=qCkL3 zo>wYUSS-4Ef6k1Nkz$y^1E~a?z3p51edo{q6i!(7;}WZqKsn$cA0^S8Hi+oo)rZo> z_~gf9xPf_Xy}20AU3n%lKM zoF3V28LA!_JpaD;iloT0F3gj`ms{)|$9F z(EV-7Xe=M7KOS0m6ccre8E=tU_z!CKA79U9*+Mqq!4>z}O!_0cP^3SS^t7fd)15Jr zWI7uH-_OXFrq~|o_)RJBbFcXWTz_QLW#SZ?UE=s*osh%*TV3>@@+~Lv(ZVBe8m$Vq zA>RlI`SR~2=R8fzab&JayTXmp(7``IZd$ETRa`H>Q3(8+sKA_g>(eu(@R43OMx<^g z{&Tw!)c>X2>9bR|612aIE;0;Mpd?@=I0_@ldItOxwWG7cMJG{sES~4cFsWvg+t|K~z45Xnt?L29WX_ z@<5|=tImTqim6fFSQUtn3*#wwn&zo+B|~qR}l^X0GGTb%A%KE^-` z4~Te5F!iPTKr!2Eq*`zAMwh?_ALi06jI@rBVdJH*LKK?8&Hhlt?R->=MP?ahVWtn9 zkz+gK0tvMqU1&7|ZgnAr=HhqeEM8raUiOQ)uF~YG2D#xSGLp4KngQ!m{4Di&;!5sm z@wkru0O?|F#{K@==)wGL$RuBB%6mn{(srj~AQ5T@gb@itOUjx^@v!=jZ(2;-`$7#I z4ShA~;u|u-;X}w%aW3xz=WQ(PhEjh2KJW^qBy1#>T)e}G_6%7~XJ#S>2dP?b*7)OJ zXBMOjNVL8L&2ZmBXfS~y4<{+xTS^H=xIw$?94lCg1BiO%!uD65cvOY(Dpc|S3{o&K zHFpMmSN1S9*m_;?!M^6=u0FMdsW9kj1|2Eye%PT|IE5y76Ny$rgl6y5iiD}YJGWor zX^h?nhr>9LzuV~-ZTA_3hUUK#{VIN_5Hb= zSvk%}D~**%JRD}b(!69}h2(QfZ`($CW>6iHRn>?ILJ5Wtk+XX0PjcjYm^n?+^l4m- zthV`qZ~KRPWj;&7mvsbktU(5Q6=P_ zaoIoe+B2WAN%(v+WV+vAD7m7%%irEa_B0`i`NB%%vi4vV&pBt?m+f*y_lKz3{|&Mp z({#t}BhfL*MIXD#h&aS_G3itsX&=P{-pCD3p-|zKryg5sRP}RvHi+Ib2MoXQ9!r9$ zSrDF#SNoUhyH%m~1)$HOs8=g~QRHST1pEGsR9M1X&7XA_#55?(vf6LCb&SrQ*`IIzpbf(1CYZiSx6llbh<>-?U#VU9SIg z)vURn74csR@bQmzPw>rglD8~-ZwAMjh#0>XjAm!2k0oC23p>ifK8``s5l51th=tfD z5QjOC?2n$_9FQz|Q6VK{h8ya)*$1$;fYE%jr|JPW|I0)+;ygHX_uo|U+B~1hc0EvU zniJ09Nws}JG2|xA;i~}=MtrSGCZFL(1QXFDOD=E^3tSW(`;%88gFI}k+Ca@Q_i&Y# z+j;9-VWWBF;m9{X?4kaP%!9dzW_PTj%+sMU^mk#NK_B1%wD6eh_%cv< z>`PY69#n;Ip1|&J!AG365x^eTf6JhnzRlonM}1)0dFJEVaQ`bK($sizJLEy$oC`n8yre z{x7#QxxeLHYKqR-Y031Tn<2}{O%+N~we0nXoc`a|3^~zoFWijeT6z!GqnLet{j_{G zzHGRI1_IN>-*<*tVnyYDa>6d&OIx^Owqnhd=aNYNOJH5vGm5Fdnz7A`*(!CPr* zAUDDi!Fv=M@MOYk%u8_1n4dAH?)Xo;h3T^#ir$yBN#bMNmfXt}$@KmN_rxipm2Xy< zY-J`GCURI9Re>MGt!JpQICOrRX(ZG{rJi+RAhVddPv`!ig78z zl54z$g32KHUmfj~b64wD?^UvhgQB$8Z5tobuA z+K!l6IDL>wLegaOkm4N6=FL7|=3$CzeF7oOMHsoHLg zEt_)$I^swcR6II@_4~8@r^{{)mWw=qqKqaICR^F4{Krj-+^ECz>JMm zHoMP(De*b)6_S*ZbwD1Bj1)vkfP~eL44?k{uaYYC`&Azj$U20H11}>rS^~O2I@wi0 zxZ}o+WO->#C!hWu?Ukxkei4|Bxu)2wy_D&hwtD%j4D7-6A^MlgL84w*_-gf~p{8%? zYJUjuklcSMwWd8d9IjKFI63ZuiuytVtx`&eNs+t7L=zd=zMnaGm6uBCp2 zIH4-%^A(ya1Rsq#a1_O&_Yi#oQz|WTN>-Baw|uy<6lf-y_&*aM4^nl(TSKAI_x>+@ zX+3WP5fXdRCnhK)5~WYepOL+hgIc*%vqQ+jVbBNV=go2S3kC2V5*tyFMhHE_uipNk z*|6Ud%Puuqqhg-teK8v7lpqz%NOGw>@o0d+hjmCiz7miA)S Date: Wed, 16 Jul 2025 10:13:40 -0400 Subject: [PATCH 24/58] docs(components): update main components page to match sidebar sections (#4195) Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com> --- docs/components.md | 19 ++++++++++--------- sidebars.js | 20 ++++++++++---------- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/docs/components.md b/docs/components.md index 66f5a4d0b13..4d1b2cf28a2 100644 --- a/docs/components.md +++ b/docs/components.md @@ -19,7 +19,7 @@ import DocsCards from '@components/global/DocsCards'; `} -Ionic apps are made of high-level building blocks called Components, which allow you to quickly construct the UI for your app. Ionic comes stock with a number of components, including cards, lists, and tabs. Once you’re familiar with the basics, refer to the [API Index](api.md) for a complete list of each component and sub-component. +Ionic apps are made of high-level building blocks called Components, which allow you to quickly construct the UI for your app. Ionic comes stock with a number of components, including cards, lists, and tabs. Once you're familiar with the basics, refer to the [API Index](api.md) for a complete list of each component and sub-component. @@ -49,8 +49,9 @@ Ionic apps are made of high-level building blocks called Components, which allow - -

Cards are a great way to display an important piece of content, and can contain images, buttons, text, and more.

+

+ Cards are a great way to display an important piece of content, and can contain images, buttons, text, and more. +

@@ -85,7 +86,7 @@ Ionic apps are made of high-level building blocks called Components, which allow

Infinite scroll allows you to load new data as the user scrolls through your app.

- +

Inputs provides a way for users to enter data in your app.

@@ -119,10 +120,6 @@ Ionic apps are made of high-level building blocks called Components, which allow

Navigation is how users move between different pages in your app.

- -

OTP inputs offer a simple way to enter one-time passwords using multiple boxes with automatic focus.

-
-

Popover provides an easy way to present information or options without changing contexts.

@@ -135,6 +132,10 @@ Ionic apps are made of high-level building blocks called Components, which allow

Radio inputs allow you to present a set of exclusive options.

+ +

Range sliders let users select a value by dragging a knob along a track.

+
+

Refresher provides pull-to-refresh functionality on a content component.

@@ -164,7 +165,7 @@ Ionic apps are made of high-level building blocks called Components, which allow -

Toast is used to show a notification over the top of an app's content. It can be temporary or dismissible.

+

Toasts are subtle notifications that appear over your app's content without interrupting user interaction.

diff --git a/sidebars.js b/sidebars.js index 115eca21382..bbcc8f72b49 100644 --- a/sidebars.js +++ b/sidebars.js @@ -252,15 +252,15 @@ module.exports = { }, { type: 'category', - label: 'Action Sheet', + label: 'Accordion', collapsed: false, - items: ['api/action-sheet'], + items: ['api/accordion', 'api/accordion-group'], }, { type: 'category', - label: 'Accordion', + label: 'Action Sheet', collapsed: false, - items: ['api/accordion', 'api/accordion-group'], + items: ['api/action-sheet'], }, { type: 'category', @@ -276,7 +276,7 @@ module.exports = { }, { type: 'category', - label: 'Breadcrumb', + label: 'Breadcrumbs', collapsed: false, items: ['api/breadcrumb', 'api/breadcrumbs'], }, @@ -337,19 +337,19 @@ module.exports = { }, { type: 'category', - label: 'Infinite Scroll', + label: 'Icons', collapsed: false, - items: ['api/infinite-scroll', 'api/infinite-scroll-content'], + items: ['api/icon'], }, { type: 'category', - label: 'Icons', + label: 'Infinite Scroll', collapsed: false, - items: ['api/icon'], + items: ['api/infinite-scroll', 'api/infinite-scroll-content'], }, { type: 'category', - label: 'Input', + label: 'Inputs', collapsed: false, items: ['api/input', 'api/input-password-toggle', 'api/input-otp', 'api/textarea'], }, From 56e257cb93f25a82ee23d012759d230afb234097 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Fri, 18 Jul 2025 15:04:42 -0500 Subject: [PATCH 25/58] docs(v6): update v6 stackblitz setup for Angular and JS --- src/components/global/Playground/index.tsx | 2 +- .../global/Playground/stackblitz.utils.ts | 13 +- .../code/stackblitz/v6/angular/angular.json | 122 ++++++++++-------- .../stackblitz/v6/angular/app.component.html | 4 +- .../stackblitz/v6/angular/app.component.ts | 7 +- .../v6/angular/app.component.withContent.html | 4 +- .../v6/angular/app.component.withContent.ts | 15 +++ .../code/stackblitz/v6/angular/app.routes.ts | 13 ++ .../v6/angular/example.component.ts | 5 +- static/code/stackblitz/v6/angular/index.html | 16 +++ static/code/stackblitz/v6/angular/main.ts | 19 ++- .../code/stackblitz/v6/angular/package.json | 26 +++- .../stackblitz/v6/angular/tsconfig.app.json | 9 ++ static/code/stackblitz/v6/html/index.html | 11 +- .../stackblitz/v6/html/index.withContent.html | 11 +- static/code/stackblitz/v6/html/package.json | 17 ++- static/code/stackblitz/v6/html/tsconfig.json | 19 +++ static/code/stackblitz/v6/html/vite.config.ts | 18 +++ .../angular/example_component_ts.md | 4 +- .../version-v5/developer-resources/books.md | 2 +- .../version-v6/developer-resources/books.md | 2 +- versions.json | 3 +- versionsArchived.json | 1 - 23 files changed, 263 insertions(+), 80 deletions(-) create mode 100644 static/code/stackblitz/v6/angular/app.component.withContent.ts create mode 100644 static/code/stackblitz/v6/angular/app.routes.ts create mode 100644 static/code/stackblitz/v6/angular/index.html create mode 100644 static/code/stackblitz/v6/angular/tsconfig.app.json create mode 100644 static/code/stackblitz/v6/html/tsconfig.json create mode 100644 static/code/stackblitz/v6/html/vite.config.ts diff --git a/src/components/global/Playground/index.tsx b/src/components/global/Playground/index.tsx index 9d7f033b445..3489ae7840b 100644 --- a/src/components/global/Playground/index.tsx +++ b/src/components/global/Playground/index.tsx @@ -153,7 +153,7 @@ export default function Playground({ * The major version of Ionic to use in the generated StackBlitz examples. * This will also load assets for StackBlitz from the specified version directory. */ - version: number; + version: string; }) { if (!code || Object.keys(code).length === 0) { console.warn('No code usage examples provided for this Playground example.'); diff --git a/src/components/global/Playground/stackblitz.utils.ts b/src/components/global/Playground/stackblitz.utils.ts index 2adb362df0d..a9461afc6d2 100644 --- a/src/components/global/Playground/stackblitz.utils.ts +++ b/src/components/global/Playground/stackblitz.utils.ts @@ -38,10 +38,10 @@ export interface EditorOptions { */ mode?: string; - version?: number; + version?: string; } -const loadSourceFiles = async (files: string[], version: number) => { +const loadSourceFiles = async (files: string[], version: string) => { const versionDir = `v${version}`; const sourceFiles = await Promise.all(files.map((f) => fetch(`/docs/code/stackblitz/${versionDir}/${f}`))); return await Promise.all(sourceFiles.map((res) => res.text())); @@ -155,7 +155,14 @@ const openAngularEditor = async (code: string, options?: EditorOptions) => { ...options?.files, }; - files[main] = files[main].replace('provideIonicAngular()', `provideIonicAngular({ mode: '${options?.mode}' })`); + if (options?.version === '6') { + files[main] = files[main].replace( + 'importProvidersFrom(IonicModule.forRoot({ }))', + `importProvidersFrom(IonicModule.forRoot({ mode: '${options?.mode}' }))` + ); + } else { + files[main] = files[main].replace('provideIonicAngular()', `provideIonicAngular({ mode: '${options?.mode}' })`); + } sdk.openProject({ template: 'node', diff --git a/static/code/stackblitz/v6/angular/angular.json b/static/code/stackblitz/v6/angular/angular.json index 811624f69b5..167ced0d882 100644 --- a/static/code/stackblitz/v6/angular/angular.json +++ b/static/code/stackblitz/v6/angular/angular.json @@ -4,11 +4,10 @@ "newProjectRoot": "projects", "projects": { "app": { + "projectType": "application", "root": "", "sourceRoot": "src", - "projectType": "application", "prefix": "app", - "schematics": {}, "architect": { "build": { "builder": "@angular-devkit/build-angular:browser", @@ -16,38 +15,53 @@ "outputPath": "dist", "index": "src/index.html", "main": "src/main.ts", - "polyfills": "src/polyfills.ts", - "tsConfig": "src/tsconfig.app.json", - "assets": ["src/favicon.ico", "src/assets"], + "polyfills": [ + "src/polyfills.ts" + ], + "tsConfig": "tsconfig.app.json", + "assets": [ + { + "glob": "**/*", + "input": "src/assets", + "output": "assets" + } + ], "styles": ["src/styles.css", "src/global.css", "src/theme/variables.css"], "scripts": [] }, "configurations": { "production": { - "fileReplacements": [ - { - "replace": "src/environments/environment.ts", - "with": "src/environments/environment.prod.ts" - } - ], - "optimization": true, - "outputHashing": "all", - "sourceMap": false, - "extractCss": true, - "namedChunks": false, - "aot": true, - "extractLicenses": true, - "vendorChunk": false, - "buildOptimizer": true, "budgets": [ { "type": "initial", "maximumWarning": "2mb", "maximumError": "5mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "2kb", + "maximumError": "4kb" } - ] + ], + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ], + "outputHashing": "all" + }, + "development": { + "optimization": false, + "extractLicenses": false, + "sourceMap": true, + "namedChunks": true + }, + "ci": { + "progress": false } - } + }, + "defaultConfiguration": "production" }, "serve": { "builder": "@angular-devkit/build-angular:dev-server", @@ -57,8 +71,15 @@ "configurations": { "production": { "browserTarget": "app:build:production" + }, + "development": { + "browserTarget": "app:build:development" + }, + "ci": { + "progress": false } - } + }, + "defaultConfiguration": "development" }, "extract-i18n": { "builder": "@angular-devkit/build-angular:extract-i18n", @@ -73,46 +94,41 @@ "polyfills": "src/polyfills.ts", "tsConfig": "src/tsconfig.spec.json", "karmaConfig": "src/karma.conf.js", - "styles": ["src/styles.css"], - "scripts": [], - "assets": ["src/favicon.ico", "src/assets"] - } - }, - "lint": { - "builder": "@angular-devkit/build-angular:tslint", - "options": { - "tsConfig": ["src/tsconfig.app.json", "src/tsconfig.spec.json"], - "exclude": ["**/node_modules/**"] - } - } - } - }, - "app-e2e": { - "root": "e2e/", - "projectType": "application", - "prefix": "", - "architect": { - "e2e": { - "builder": "@angular-devkit/build-angular:protractor", - "options": { - "protractorConfig": "e2e/protractor.conf.js", - "devServerTarget": "app:serve" + "assets": [ + { + "glob": "**/*", + "input": "src/assets", + "output": "assets" + } + ], + "styles": ["src/styles.css", "src/global.css", "src/theme/variables.css"], + "scripts": [] }, "configurations": { - "production": { - "devServerTarget": "app:serve:production" + "ci": { + "progress": false, + "watch": false } } }, "lint": { - "builder": "@angular-devkit/build-angular:tslint", + "builder": "@angular-eslint/builder:lint", "options": { - "tsConfig": "e2e/tsconfig.e2e.json", - "exclude": ["**/node_modules/**"] + "lintFilePatterns": ["src/**/*.ts", "src/**/*.html"] } } } } }, - "defaultProject": "app" + "cli": { + "schematicCollections": ["@ionic/angular-toolkit"] + }, + "schematics": { + "@angular-eslint/schematics:application": { + "setParserOptionsProject": true + }, + "@angular-eslint/schematics:library": { + "setParserOptionsProject": true + } + } } diff --git a/static/code/stackblitz/v6/angular/app.component.html b/static/code/stackblitz/v6/angular/app.component.html index 1031647a0e0..3aeab946d20 100644 --- a/static/code/stackblitz/v6/angular/app.component.html +++ b/static/code/stackblitz/v6/angular/app.component.html @@ -1,3 +1,5 @@ - + + + diff --git a/static/code/stackblitz/v6/angular/app.component.ts b/static/code/stackblitz/v6/angular/app.component.ts index ed440084f8f..dabad158164 100644 --- a/static/code/stackblitz/v6/angular/app.component.ts +++ b/static/code/stackblitz/v6/angular/app.component.ts @@ -1,8 +1,13 @@ import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { RouterOutlet } from '@angular/router'; +import { ExampleComponent } from './example.component'; @Component({ selector: 'app-root', templateUrl: 'app.component.html', - styleUrls: ['app.component.css'] + styleUrls: ['app.component.css'], + imports: [IonicModule, ExampleComponent, RouterOutlet], + standalone: true }) export class AppComponent { } diff --git a/static/code/stackblitz/v6/angular/app.component.withContent.html b/static/code/stackblitz/v6/angular/app.component.withContent.html index 96ebf597215..df5c543377f 100644 --- a/static/code/stackblitz/v6/angular/app.component.withContent.html +++ b/static/code/stackblitz/v6/angular/app.component.withContent.html @@ -1,5 +1,7 @@ - + + + diff --git a/static/code/stackblitz/v6/angular/app.component.withContent.ts b/static/code/stackblitz/v6/angular/app.component.withContent.ts new file mode 100644 index 00000000000..2078352ad98 --- /dev/null +++ b/static/code/stackblitz/v6/angular/app.component.withContent.ts @@ -0,0 +1,15 @@ +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { RouterOutlet } from '@angular/router'; +import { ExampleComponent } from './example.component'; + +@Component({ + selector: 'app-root', + templateUrl: 'app.component.html', + styleUrls: ['app.component.css'], + imports: [IonicModule, ExampleComponent, RouterOutlet], + standalone: true +}) +export class AppComponent { + constructor() {} +} diff --git a/static/code/stackblitz/v6/angular/app.routes.ts b/static/code/stackblitz/v6/angular/app.routes.ts new file mode 100644 index 00000000000..4a49853c7f4 --- /dev/null +++ b/static/code/stackblitz/v6/angular/app.routes.ts @@ -0,0 +1,13 @@ +import { Routes } from '@angular/router'; + +export const routes: Routes = [ + { + path: 'example', + loadComponent: () => import('./example.component').then((m) => m.ExampleComponent), + }, + { + path: '', + redirectTo: 'example', + pathMatch: 'full', + }, +]; \ No newline at end of file diff --git a/static/code/stackblitz/v6/angular/example.component.ts b/static/code/stackblitz/v6/angular/example.component.ts index 6b67261e0b3..b1cd8b6af79 100644 --- a/static/code/stackblitz/v6/angular/example.component.ts +++ b/static/code/stackblitz/v6/angular/example.component.ts @@ -1,8 +1,11 @@ import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', - styleUrls: ['example.component.css'] + styleUrls: ['example.component.css'], + imports: [IonicModule], + standalone: true }) export class ExampleComponent { } diff --git a/static/code/stackblitz/v6/angular/index.html b/static/code/stackblitz/v6/angular/index.html new file mode 100644 index 00000000000..79599e62e32 --- /dev/null +++ b/static/code/stackblitz/v6/angular/index.html @@ -0,0 +1,16 @@ + + + + + + + + Ionic App + + + + + + + + diff --git a/static/code/stackblitz/v6/angular/main.ts b/static/code/stackblitz/v6/angular/main.ts index 518110491b2..13819b6a52c 100644 --- a/static/code/stackblitz/v6/angular/main.ts +++ b/static/code/stackblitz/v6/angular/main.ts @@ -1,7 +1,14 @@ -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; +import { bootstrapApplication } from '@angular/platform-browser'; +import { RouteReuseStrategy, provideRouter, withPreloading, PreloadAllModules } from '@angular/router'; +import { IonicRouteStrategy, IonicModule } from '@ionic/angular'; +import { importProvidersFrom } from '@angular/core'; +import { routes } from './app/app.routes'; +import { AppComponent } from './app/app.component'; -import { AppModule } from './app/app.module'; - -platformBrowserDynamic() - .bootstrapModule(AppModule) - .catch((err: any) => console.error(err)); +bootstrapApplication(AppComponent, { + providers: [ + { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }, + importProvidersFrom(IonicModule.forRoot({ })), + provideRouter(routes, withPreloading(PreloadAllModules)), + ], +}) \ No newline at end of file diff --git a/static/code/stackblitz/v6/angular/package.json b/static/code/stackblitz/v6/angular/package.json index 0ecc1227dd5..a80e5d13a5f 100644 --- a/static/code/stackblitz/v6/angular/package.json +++ b/static/code/stackblitz/v6/angular/package.json @@ -1,7 +1,31 @@ { + "name": "angular-starter", + "private": true, + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build" + }, "dependencies": { + "@angular/animations": "^15.0.0", + "@angular/common": "^15.0.0", + "@angular/compiler": "^15.0.0", + "@angular/core": "^15.0.0", + "@angular/forms": "^15.0.0", + "@angular/platform-browser": "^15.0.0", + "@angular/platform-browser-dynamic": "^15.0.0", + "@angular/router": "^15.0.0", + "rxjs": "~7.8.0", + "tslib": "^2.3.0", + "zone.js": "~0.12.0", "@ionic/angular": "^6.0.0", "@ionic/core": "^6.0.0", - "@angular/platform-browser-dynamic": "17.3.2" + "ionicons": "8.0.13" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^15.0.0", + "@angular/cli": "^15.0.0", + "@angular/compiler-cli": "^15.0.0", + "typescript": "~4.9.4" } } diff --git a/static/code/stackblitz/v6/angular/tsconfig.app.json b/static/code/stackblitz/v6/angular/tsconfig.app.json new file mode 100644 index 00000000000..f69a169a56e --- /dev/null +++ b/static/code/stackblitz/v6/angular/tsconfig.app.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/app", + "types": [] + }, + "files": ["src/main.ts", "src/polyfills.ts"], + "include": ["src/**/*.d.ts"] +} diff --git a/static/code/stackblitz/v6/html/index.html b/static/code/stackblitz/v6/html/index.html index 8a59c2afc0f..fb14e96ba98 100644 --- a/static/code/stackblitz/v6/html/index.html +++ b/static/code/stackblitz/v6/html/index.html @@ -1,14 +1,19 @@ - + + - - + + + + Ionic App {{ TEMPLATE }} + + diff --git a/static/code/stackblitz/v6/html/index.withContent.html b/static/code/stackblitz/v6/html/index.withContent.html index 3cd31834675..404344868cd 100644 --- a/static/code/stackblitz/v6/html/index.withContent.html +++ b/static/code/stackblitz/v6/html/index.withContent.html @@ -1,8 +1,11 @@ - + + - - + + + + Ionic App @@ -11,6 +14,8 @@ {{ TEMPLATE }} + + diff --git a/static/code/stackblitz/v6/html/package.json b/static/code/stackblitz/v6/html/package.json index b6dbee21fd0..113d2325e30 100644 --- a/static/code/stackblitz/v6/html/package.json +++ b/static/code/stackblitz/v6/html/package.json @@ -1,5 +1,20 @@ { + "name": "html-starter", + "private": true, + "type": "module", + "main": "index.ts", + "scripts": { + "dev": "vite", + "build": "vite build", + "start": "vite preview" + }, "dependencies": { - "@ionic/core": "^6.0.0" + "@ionic/core": "^6.0.0", + "ionicons": "8.0.13" + }, + "devDependencies": { + "typescript": "^5.0.0", + "vite": "^7.0.0", + "vite-plugin-static-copy": "^3.1.0" } } diff --git a/static/code/stackblitz/v6/html/tsconfig.json b/static/code/stackblitz/v6/html/tsconfig.json new file mode 100644 index 00000000000..0b999e71b8e --- /dev/null +++ b/static/code/stackblitz/v6/html/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "baseUrl": "./", + "target": "esnext", + "module": "nodenext", + "moduleResolution": "nodenext", + "outDir": "dist", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "lib": ["esnext", "dom"], + "resolveJsonModule": true, + "allowSyntheticDefaultImports": true, + "isolatedModules": true, + "types": ["node"] + }, + "include": ["src/**/*.ts"] +} diff --git a/static/code/stackblitz/v6/html/vite.config.ts b/static/code/stackblitz/v6/html/vite.config.ts new file mode 100644 index 00000000000..3e356ac9e72 --- /dev/null +++ b/static/code/stackblitz/v6/html/vite.config.ts @@ -0,0 +1,18 @@ +import { defineConfig } from 'vite'; +import { viteStaticCopy } from 'vite-plugin-static-copy'; + +export default defineConfig({ + optimizeDeps: { + exclude: ['@ionic/core'], + }, + plugins: [ + viteStaticCopy({ + targets: [ + { + src: 'node_modules/ionicons/dist/svg/*', + dest: 'svg' + } + ] + }) + ] +}); diff --git a/static/usage/v6/alert/presenting/controller/angular/example_component_ts.md b/static/usage/v6/alert/presenting/controller/angular/example_component_ts.md index 32583600432..1aa9c3cf014 100644 --- a/static/usage/v6/alert/presenting/controller/angular/example_component_ts.md +++ b/static/usage/v6/alert/presenting/controller/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { AlertController } from '@ionic/angular'; +import { IonicModule, AlertController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true, }) export class ExampleComponent { constructor(private alertController: AlertController) {} diff --git a/versioned_docs/version-v5/developer-resources/books.md b/versioned_docs/version-v5/developer-resources/books.md index 1a51bc94e8f..4553ac800c3 100644 --- a/versioned_docs/version-v5/developer-resources/books.md +++ b/versioned_docs/version-v5/developer-resources/books.md @@ -6,7 +6,7 @@ Angular. Vue. React. Vanilla JavaScript. All of these tools can be used to creat -by [Paul Halliday](https:://developer.school) +by [Paul Halliday](https://developer.school) ### [Creating Ionic Applications with StencilJS](https://www.joshmorony.com/creating-ionic-applications-with-stencil-js/) - [Free Preview](https://cdn2.hubspot.net/hubfs/3776657/PREVIEW-Creating-Ionic-Apps-with-StencilJS.pdf) diff --git a/versioned_docs/version-v6/developer-resources/books.md b/versioned_docs/version-v6/developer-resources/books.md index 1a51bc94e8f..4553ac800c3 100644 --- a/versioned_docs/version-v6/developer-resources/books.md +++ b/versioned_docs/version-v6/developer-resources/books.md @@ -6,7 +6,7 @@ Angular. Vue. React. Vanilla JavaScript. All of these tools can be used to creat -by [Paul Halliday](https:://developer.school) +by [Paul Halliday](https://developer.school) ### [Creating Ionic Applications with StencilJS](https://www.joshmorony.com/creating-ionic-applications-with-stencil-js/) - [Free Preview](https://cdn2.hubspot.net/hubfs/3776657/PREVIEW-Creating-Ionic-Apps-with-StencilJS.pdf) diff --git a/versions.json b/versions.json index 48698a4fdec..ed163ab5c09 100644 --- a/versions.json +++ b/versions.json @@ -1,3 +1,4 @@ [ - "v7" + "v7", + "v6" ] diff --git a/versionsArchived.json b/versionsArchived.json index 9d103a53775..56bd2d5bcb6 100644 --- a/versionsArchived.json +++ b/versionsArchived.json @@ -1,4 +1,3 @@ { - "v6": "https://ionic-docs-o31kiyk8l-ionic1.vercel.app/docs/v6", "v5": "https://ionic-docs-5utg8ms4c-ionic1.vercel.app/docs/v5" } From c625d4dd1886c1653880aa71408e2f0e82b55ddf Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Mon, 21 Jul 2025 11:24:17 -0500 Subject: [PATCH 26/58] docs(v6): update Angular examples for accordion --- .../angular/example_component_ts.md | 3 +++ .../example_component_html.md} | 0 .../icons/angular/example_component_ts.md | 23 +++++++++++++++++++ .../v6/accordion/customization/icons/index.md | 10 ++++++-- .../angular/example_component_ts.md | 3 +++ .../toggle/angular/example_component_ts.md | 4 +++- 6 files changed, 40 insertions(+), 3 deletions(-) rename static/usage/v6/accordion/customization/icons/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/accordion/customization/icons/angular/example_component_ts.md diff --git a/static/usage/v6/accordion/customization/advanced-expansion-styles/angular/example_component_ts.md b/static/usage/v6/accordion/customization/advanced-expansion-styles/angular/example_component_ts.md index 4db53a836a9..1b3dae1494b 100644 --- a/static/usage/v6/accordion/customization/advanced-expansion-styles/angular/example_component_ts.md +++ b/static/usage/v6/accordion/customization/advanced-expansion-styles/angular/example_component_ts.md @@ -1,10 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', styleUrls: ['example.component.css'], + imports: [IonicModule], + standalone: true }) export class ExampleComponent {} ``` diff --git a/static/usage/v6/accordion/customization/icons/angular.md b/static/usage/v6/accordion/customization/icons/angular/example_component_html.md similarity index 100% rename from static/usage/v6/accordion/customization/icons/angular.md rename to static/usage/v6/accordion/customization/icons/angular/example_component_html.md diff --git a/static/usage/v6/accordion/customization/icons/angular/example_component_ts.md b/static/usage/v6/accordion/customization/icons/angular/example_component_ts.md new file mode 100644 index 00000000000..e225a168a07 --- /dev/null +++ b/static/usage/v6/accordion/customization/icons/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { caretDownCircle } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ caretDownCircle }); + } +} +``` \ No newline at end of file diff --git a/static/usage/v6/accordion/customization/icons/index.md b/static/usage/v6/accordion/customization/icons/index.md index 691d4b933b1..b7668a6ee7c 100644 --- a/static/usage/v6/accordion/customization/icons/index.md +++ b/static/usage/v6/accordion/customization/icons/index.md @@ -3,7 +3,8 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; Date: Mon, 21 Jul 2025 11:25:13 -0500 Subject: [PATCH 27/58] docs(v6): update Angular examples for action-sheet --- .../v6/action-sheet/basic/angular/example_component_ts.md | 4 +++- .../theming/css-properties/angular/example_component_ts.md | 4 +++- .../theming/styling/angular/example_component_ts.md | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/static/usage/v6/action-sheet/basic/angular/example_component_ts.md b/static/usage/v6/action-sheet/basic/angular/example_component_ts.md index 3961dc7ff5e..97e780edf31 100644 --- a/static/usage/v6/action-sheet/basic/angular/example_component_ts.md +++ b/static/usage/v6/action-sheet/basic/angular/example_component_ts.md @@ -1,12 +1,14 @@ ```ts import { Component } from '@angular/core'; -import { ActionSheetController } from '@ionic/angular'; +import { IonicModule, ActionSheetController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', styleUrls: ['./example.component.css'], + imports: [IonicModule], + standalone: true }) export class ExampleComponent { result: string; diff --git a/static/usage/v6/action-sheet/theming/css-properties/angular/example_component_ts.md b/static/usage/v6/action-sheet/theming/css-properties/angular/example_component_ts.md index d8f200f27ee..fbca9f2f603 100644 --- a/static/usage/v6/action-sheet/theming/css-properties/angular/example_component_ts.md +++ b/static/usage/v6/action-sheet/theming/css-properties/angular/example_component_ts.md @@ -1,12 +1,14 @@ ```ts import { Component } from '@angular/core'; -import { ActionSheetController } from '@ionic/angular'; +import { IonicModule, ActionSheetController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', styleUrls: ['./example.component.css'], + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private actionSheetCtrl: ActionSheetController) {} diff --git a/static/usage/v6/action-sheet/theming/styling/angular/example_component_ts.md b/static/usage/v6/action-sheet/theming/styling/angular/example_component_ts.md index d8f200f27ee..fbca9f2f603 100644 --- a/static/usage/v6/action-sheet/theming/styling/angular/example_component_ts.md +++ b/static/usage/v6/action-sheet/theming/styling/angular/example_component_ts.md @@ -1,12 +1,14 @@ ```ts import { Component } from '@angular/core'; -import { ActionSheetController } from '@ionic/angular'; +import { IonicModule, ActionSheetController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', styleUrls: ['./example.component.css'], + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private actionSheetCtrl: ActionSheetController) {} From 1170b47cd1536521882103bb830add12c57c5260 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Mon, 21 Jul 2025 11:41:47 -0500 Subject: [PATCH 28/58] docs(v6): update Angular examples for alert --- static/usage/v6/alert/buttons/angular/example_component_ts.md | 4 +++- .../v6/alert/customization/angular/example_component_ts.md | 4 +++- .../v6/alert/inputs/radios/angular/example_component_ts.md | 4 +++- .../alert/inputs/text-inputs/angular/example_component_ts.md | 4 +++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/static/usage/v6/alert/buttons/angular/example_component_ts.md b/static/usage/v6/alert/buttons/angular/example_component_ts.md index f4a7b4e9a18..f03a98e678b 100644 --- a/static/usage/v6/alert/buttons/angular/example_component_ts.md +++ b/static/usage/v6/alert/buttons/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { AlertController } from '@ionic/angular'; +import { IonicModule, AlertController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { handlerMessage = ''; diff --git a/static/usage/v6/alert/customization/angular/example_component_ts.md b/static/usage/v6/alert/customization/angular/example_component_ts.md index 9606aeb72f4..5cef7d8e3a4 100644 --- a/static/usage/v6/alert/customization/angular/example_component_ts.md +++ b/static/usage/v6/alert/customization/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { AlertController } from '@ionic/angular'; +import { IonicModule, AlertController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private alertController: AlertController) {} diff --git a/static/usage/v6/alert/inputs/radios/angular/example_component_ts.md b/static/usage/v6/alert/inputs/radios/angular/example_component_ts.md index 78b305a0f59..f06812967dc 100644 --- a/static/usage/v6/alert/inputs/radios/angular/example_component_ts.md +++ b/static/usage/v6/alert/inputs/radios/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { AlertController } from '@ionic/angular'; +import { IonicModule, AlertController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private alertController: AlertController) {} diff --git a/static/usage/v6/alert/inputs/text-inputs/angular/example_component_ts.md b/static/usage/v6/alert/inputs/text-inputs/angular/example_component_ts.md index 2c4f2ab04d2..a8ad4eb12a6 100644 --- a/static/usage/v6/alert/inputs/text-inputs/angular/example_component_ts.md +++ b/static/usage/v6/alert/inputs/text-inputs/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { AlertController } from '@ionic/angular'; +import { IonicModule, AlertController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private alertController: AlertController) {} From fbbde066bfebd3600abb5eb0e2ec972527421ec0 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Mon, 21 Jul 2025 13:52:35 -0500 Subject: [PATCH 29/58] docs(v6): update Angular examples for breadcrumbs --- .../angular/example_component_ts.md | 3 +++ .../angular/example_component_ts.md | 4 ++++ .../example_component_html.md} | 0 .../angular/example_component_ts.md | 23 +++++++++++++++++++ .../icons/custom-separators/index.md | 15 ++++++++++-- .../example_component_html.md} | 0 .../angular/example_component_ts.md | 23 +++++++++++++++++++ .../breadcrumbs/icons/icons-on-items/index.md | 15 ++++++++++-- 8 files changed, 79 insertions(+), 4 deletions(-) rename static/usage/v6/breadcrumbs/icons/custom-separators/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/breadcrumbs/icons/custom-separators/angular/example_component_ts.md rename static/usage/v6/breadcrumbs/icons/icons-on-items/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/breadcrumbs/icons/icons-on-items/angular/example_component_ts.md diff --git a/static/usage/v6/breadcrumbs/collapsing-items/expand-on-click/angular/example_component_ts.md b/static/usage/v6/breadcrumbs/collapsing-items/expand-on-click/angular/example_component_ts.md index 8ae69af72a5..38122fed8e3 100644 --- a/static/usage/v6/breadcrumbs/collapsing-items/expand-on-click/angular/example_component_ts.md +++ b/static/usage/v6/breadcrumbs/collapsing-items/expand-on-click/angular/example_component_ts.md @@ -1,9 +1,12 @@ ```ts import { Component, ViewChild } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { maxBreadcrumbs = 4; diff --git a/static/usage/v6/breadcrumbs/collapsing-items/popover-on-click/angular/example_component_ts.md b/static/usage/v6/breadcrumbs/collapsing-items/popover-on-click/angular/example_component_ts.md index aabfb29a821..22380950ca4 100644 --- a/static/usage/v6/breadcrumbs/collapsing-items/popover-on-click/angular/example_component_ts.md +++ b/static/usage/v6/breadcrumbs/collapsing-items/popover-on-click/angular/example_component_ts.md @@ -1,9 +1,13 @@ ```ts import { Component, ViewChild } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [CommonModule, IonicModule], + standalone: true }) export class ExampleComponent { @ViewChild('popover') popover; diff --git a/static/usage/v6/breadcrumbs/icons/custom-separators/angular.md b/static/usage/v6/breadcrumbs/icons/custom-separators/angular/example_component_html.md similarity index 100% rename from static/usage/v6/breadcrumbs/icons/custom-separators/angular.md rename to static/usage/v6/breadcrumbs/icons/custom-separators/angular/example_component_html.md diff --git a/static/usage/v6/breadcrumbs/icons/custom-separators/angular/example_component_ts.md b/static/usage/v6/breadcrumbs/icons/custom-separators/angular/example_component_ts.md new file mode 100644 index 00000000000..dcd6b853b2b --- /dev/null +++ b/static/usage/v6/breadcrumbs/icons/custom-separators/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { arrowForwardCircle } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ arrowForwardCircle }); + } +} +``` \ No newline at end of file diff --git a/static/usage/v6/breadcrumbs/icons/custom-separators/index.md b/static/usage/v6/breadcrumbs/icons/custom-separators/index.md index a9305b79feb..83c578d8742 100644 --- a/static/usage/v6/breadcrumbs/icons/custom-separators/index.md +++ b/static/usage/v6/breadcrumbs/icons/custom-separators/index.md @@ -3,10 +3,21 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; diff --git a/static/usage/v6/breadcrumbs/icons/icons-on-items/angular.md b/static/usage/v6/breadcrumbs/icons/icons-on-items/angular/example_component_html.md similarity index 100% rename from static/usage/v6/breadcrumbs/icons/icons-on-items/angular.md rename to static/usage/v6/breadcrumbs/icons/icons-on-items/angular/example_component_html.md diff --git a/static/usage/v6/breadcrumbs/icons/icons-on-items/angular/example_component_ts.md b/static/usage/v6/breadcrumbs/icons/icons-on-items/angular/example_component_ts.md new file mode 100644 index 00000000000..a679de8d05c --- /dev/null +++ b/static/usage/v6/breadcrumbs/icons/icons-on-items/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { home, flash, camera, film } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ home, flash, camera, film }); + } +} +``` \ No newline at end of file diff --git a/static/usage/v6/breadcrumbs/icons/icons-on-items/index.md b/static/usage/v6/breadcrumbs/icons/icons-on-items/index.md index 0f2e9ac47cc..584eec676de 100644 --- a/static/usage/v6/breadcrumbs/icons/icons-on-items/index.md +++ b/static/usage/v6/breadcrumbs/icons/icons-on-items/index.md @@ -3,11 +3,22 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; From 40e55c04874ee500f17c3bd4c3998f9ffabe5d50 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Mon, 21 Jul 2025 14:43:25 -0500 Subject: [PATCH 30/58] docs(v6): update Angular examples for content --- .../v6/content/scroll-events/angular/example_component_ts.md | 4 +++- .../v6/content/scroll-methods/angular/example_component_ts.md | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/static/usage/v6/content/scroll-events/angular/example_component_ts.md b/static/usage/v6/content/scroll-events/angular/example_component_ts.md index 7e3f7625f57..658772dd54e 100644 --- a/static/usage/v6/content/scroll-events/angular/example_component_ts.md +++ b/static/usage/v6/content/scroll-events/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { ScrollDetail } from '@ionic/angular'; +import { IonicModule, ScrollDetail } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { handleScrollStart() { diff --git a/static/usage/v6/content/scroll-methods/angular/example_component_ts.md b/static/usage/v6/content/scroll-methods/angular/example_component_ts.md index 1975fe3b341..bba0e43f6ff 100644 --- a/static/usage/v6/content/scroll-methods/angular/example_component_ts.md +++ b/static/usage/v6/content/scroll-methods/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component, ViewChild } from '@angular/core'; -import { IonContent } from '@ionic/angular'; +import { IonicModule, IonContent } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { @ViewChild(IonContent) content: IonContent; From 9c37e159593181bc8a9f8ef10242d5e4c580222e Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Mon, 21 Jul 2025 14:44:19 -0500 Subject: [PATCH 31/58] docs(v6): update Angular examples for datetime --- .../date-constraints/advanced/angular/example_component_ts.md | 3 +++ .../highlightedDates/array/angular/example_component_ts.md | 3 +++ .../highlightedDates/callback/angular/example_component_ts.md | 3 +++ 3 files changed, 9 insertions(+) diff --git a/static/usage/v6/datetime/date-constraints/advanced/angular/example_component_ts.md b/static/usage/v6/datetime/date-constraints/advanced/angular/example_component_ts.md index 3021390e188..8d011a739b5 100644 --- a/static/usage/v6/datetime/date-constraints/advanced/angular/example_component_ts.md +++ b/static/usage/v6/datetime/date-constraints/advanced/angular/example_component_ts.md @@ -1,9 +1,12 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { isWeekday = (dateString: string) => { diff --git a/static/usage/v6/datetime/highlightedDates/array/angular/example_component_ts.md b/static/usage/v6/datetime/highlightedDates/array/angular/example_component_ts.md index 4ca93b85f44..5efbdc20571 100644 --- a/static/usage/v6/datetime/highlightedDates/array/angular/example_component_ts.md +++ b/static/usage/v6/datetime/highlightedDates/array/angular/example_component_ts.md @@ -1,9 +1,12 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { highlightedDates = [ diff --git a/static/usage/v6/datetime/highlightedDates/callback/angular/example_component_ts.md b/static/usage/v6/datetime/highlightedDates/callback/angular/example_component_ts.md index 60f9c700d05..2d4359fee21 100644 --- a/static/usage/v6/datetime/highlightedDates/callback/angular/example_component_ts.md +++ b/static/usage/v6/datetime/highlightedDates/callback/angular/example_component_ts.md @@ -1,9 +1,12 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { highlightedDates = (isoString) => { From edf261ff09af1d381c7fa08ea0eeb24101518732 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Mon, 21 Jul 2025 14:52:38 -0500 Subject: [PATCH 32/58] docs(v6): update Angular examples for picker --- .../v6/picker/multiple-column/angular/example_component_ts.md | 4 +++- .../v6/picker/single-column/angular/example_component_ts.md | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/static/usage/v6/picker/multiple-column/angular/example_component_ts.md b/static/usage/v6/picker/multiple-column/angular/example_component_ts.md index ce535b1391a..55b1da9dbd4 100644 --- a/static/usage/v6/picker/multiple-column/angular/example_component_ts.md +++ b/static/usage/v6/picker/multiple-column/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { PickerController } from '@ionic/angular'; +import { IonicModule, PickerController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private pickerCtrl: PickerController) {} diff --git a/static/usage/v6/picker/single-column/angular/example_component_ts.md b/static/usage/v6/picker/single-column/angular/example_component_ts.md index 849da3f0f16..91001efb481 100644 --- a/static/usage/v6/picker/single-column/angular/example_component_ts.md +++ b/static/usage/v6/picker/single-column/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { PickerController } from '@ionic/angular'; +import { IonicModule, PickerController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private pickerCtrl: PickerController) {} From e54bffb61e6d6e556a91e8204f18226e66afc1ee Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 11:10:58 -0500 Subject: [PATCH 33/58] docs(v6): update Angular examples for infinite-scroll --- .../infinite-scroll/basic/angular/example_component_ts.md | 7 ++++--- .../angular/example_component_ts.md | 8 +++++--- .../angular/example_component_ts.md | 7 ++++--- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/static/usage/v6/infinite-scroll/basic/angular/example_component_ts.md b/static/usage/v6/infinite-scroll/basic/angular/example_component_ts.md index 390ba6b75f1..ebf6b9ed53b 100644 --- a/static/usage/v6/infinite-scroll/basic/angular/example_component_ts.md +++ b/static/usage/v6/infinite-scroll/basic/angular/example_component_ts.md @@ -1,12 +1,13 @@ ```tsx import { Component, OnInit } from '@angular/core'; - -import { InfiniteScrollCustomEvent } from '@ionic/angular'; +import { CommonModule } from '@angular/common'; +import { IonicModule, InfiniteScrollCustomEvent } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', - styleUrls: ['example.component.scss'], + imports: [CommonModule, IonicModule], + standalone: true }) export class ExampleComponent implements OnInit { items = []; diff --git a/static/usage/v6/infinite-scroll/custom-infinite-scroll-content/angular/example_component_ts.md b/static/usage/v6/infinite-scroll/custom-infinite-scroll-content/angular/example_component_ts.md index 415ed5dba8b..ea0f1eb9cae 100644 --- a/static/usage/v6/infinite-scroll/custom-infinite-scroll-content/angular/example_component_ts.md +++ b/static/usage/v6/infinite-scroll/custom-infinite-scroll-content/angular/example_component_ts.md @@ -1,12 +1,14 @@ ```tsx import { Component, OnInit } from '@angular/core'; - -import { InfiniteScrollCustomEvent } from '@ionic/angular'; +import { CommonModule } from '@angular/common'; +import { IonicModule, InfiniteScrollCustomEvent } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', - styleUrls: ['example.component.scss'], + styleUrls: ['example.component.css'], + imports: [CommonModule, IonicModule], + standalone: true }) export class ExampleComponent implements OnInit { items = []; diff --git a/static/usage/v6/infinite-scroll/infinite-scroll-content/angular/example_component_ts.md b/static/usage/v6/infinite-scroll/infinite-scroll-content/angular/example_component_ts.md index 415ed5dba8b..542b7f41ba9 100644 --- a/static/usage/v6/infinite-scroll/infinite-scroll-content/angular/example_component_ts.md +++ b/static/usage/v6/infinite-scroll/infinite-scroll-content/angular/example_component_ts.md @@ -1,12 +1,13 @@ ```tsx import { Component, OnInit } from '@angular/core'; - -import { InfiniteScrollCustomEvent } from '@ionic/angular'; +import { CommonModule } from '@angular/common'; +import { IonicModule, InfiniteScrollCustomEvent } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', - styleUrls: ['example.component.scss'], + imports: [CommonModule, IonicModule], + standalone: true }) export class ExampleComponent implements OnInit { items = []; From a27f649f73aa8f4ed9e08f64e85778e57fd6ea0d Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 11:12:19 -0500 Subject: [PATCH 34/58] docs(v6): update Angular example for icon --- .../example_component_html.md} | 0 .../basic/angular/example_component_ts.md | 23 +++++++++++++++++++ static/usage/v6/icon/basic/index.md | 20 ++++++++++++++-- 3 files changed, 41 insertions(+), 2 deletions(-) rename static/usage/v6/icon/basic/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/icon/basic/angular/example_component_ts.md diff --git a/static/usage/v6/icon/basic/angular.md b/static/usage/v6/icon/basic/angular/example_component_html.md similarity index 100% rename from static/usage/v6/icon/basic/angular.md rename to static/usage/v6/icon/basic/angular/example_component_html.md diff --git a/static/usage/v6/icon/basic/angular/example_component_ts.md b/static/usage/v6/icon/basic/angular/example_component_ts.md new file mode 100644 index 00000000000..0ca64333da3 --- /dev/null +++ b/static/usage/v6/icon/basic/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { logoIonic } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ logoIonic }); + } +} +``` \ No newline at end of file diff --git a/static/usage/v6/icon/basic/index.md b/static/usage/v6/icon/basic/index.md index 6b3a026b7dc..ec92154552f 100644 --- a/static/usage/v6/icon/basic/index.md +++ b/static/usage/v6/icon/basic/index.md @@ -3,6 +3,22 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; - + From f6bbe3e53fad819ae23f714f1ddb8ef1f47baf9b Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 11:25:30 -0500 Subject: [PATCH 35/58] docs(v6): update Angular example for input --- .../usage/v6/input/filtering/angular/example_component_ts.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/static/usage/v6/input/filtering/angular/example_component_ts.md b/static/usage/v6/input/filtering/angular/example_component_ts.md index b0fc6a3331f..edfd287601c 100644 --- a/static/usage/v6/input/filtering/angular/example_component_ts.md +++ b/static/usage/v6/input/filtering/angular/example_component_ts.md @@ -1,10 +1,13 @@ ```ts import { Component, ViewChild } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; import type { IonInput } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { inputModel = ''; From 067d6aa95739296e66024cf3ca018bea50078d71 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 11:25:51 -0500 Subject: [PATCH 36/58] docs(v6): update Angular example for item --- static/usage/v6/item/counter/angular/example_component_ts.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/static/usage/v6/item/counter/angular/example_component_ts.md b/static/usage/v6/item/counter/angular/example_component_ts.md index 2c08dc06fc2..ae875052f85 100644 --- a/static/usage/v6/item/counter/angular/example_component_ts.md +++ b/static/usage/v6/item/counter/angular/example_component_ts.md @@ -1,9 +1,12 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { customCounterFormatter(inputLength: number, maxLength: number) { From 09130ffa65a3f329e402da661e776996cdd69bd9 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 12:20:05 -0500 Subject: [PATCH 37/58] docs(v6): update Angular examples for item --- .../example_component_html.md} | 0 .../buttons/angular/example_component_ts.md | 23 +++++++++++++++++++ static/usage/v6/item/buttons/index.md | 20 ++++++++++++++-- .../example_component_html.md} | 0 .../icons/angular/example_component_ts.md | 23 +++++++++++++++++++ static/usage/v6/item/icons/index.md | 20 ++++++++++++++-- .../example_component_html.md} | 0 .../lines/angular/example_component_ts.md | 23 +++++++++++++++++++ static/usage/v6/item/lines/index.md | 20 ++++++++++++++-- 9 files changed, 123 insertions(+), 6 deletions(-) rename static/usage/v6/item/buttons/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/item/buttons/angular/example_component_ts.md rename static/usage/v6/item/icons/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/item/icons/angular/example_component_ts.md rename static/usage/v6/item/lines/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/item/lines/angular/example_component_ts.md diff --git a/static/usage/v6/item/buttons/angular.md b/static/usage/v6/item/buttons/angular/example_component_html.md similarity index 100% rename from static/usage/v6/item/buttons/angular.md rename to static/usage/v6/item/buttons/angular/example_component_html.md diff --git a/static/usage/v6/item/buttons/angular/example_component_ts.md b/static/usage/v6/item/buttons/angular/example_component_ts.md new file mode 100644 index 00000000000..4a6b6830389 --- /dev/null +++ b/static/usage/v6/item/buttons/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { home, star, navigate } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ home, star, navigate }); + } +} +``` \ No newline at end of file diff --git a/static/usage/v6/item/buttons/index.md b/static/usage/v6/item/buttons/index.md index d46337926bc..09299818a97 100644 --- a/static/usage/v6/item/buttons/index.md +++ b/static/usage/v6/item/buttons/index.md @@ -3,6 +3,22 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; - + diff --git a/static/usage/v6/item/icons/angular.md b/static/usage/v6/item/icons/angular/example_component_html.md similarity index 100% rename from static/usage/v6/item/icons/angular.md rename to static/usage/v6/item/icons/angular/example_component_html.md diff --git a/static/usage/v6/item/icons/angular/example_component_ts.md b/static/usage/v6/item/icons/angular/example_component_ts.md new file mode 100644 index 00000000000..fd72c48805d --- /dev/null +++ b/static/usage/v6/item/icons/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { informationCircle, star } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ informationCircle, star }); + } +} +``` \ No newline at end of file diff --git a/static/usage/v6/item/icons/index.md b/static/usage/v6/item/icons/index.md index 97b18d73650..92c2fdc5f3e 100644 --- a/static/usage/v6/item/icons/index.md +++ b/static/usage/v6/item/icons/index.md @@ -3,6 +3,22 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; - + diff --git a/static/usage/v6/item/lines/angular.md b/static/usage/v6/item/lines/angular/example_component_html.md similarity index 100% rename from static/usage/v6/item/lines/angular.md rename to static/usage/v6/item/lines/angular/example_component_html.md diff --git a/static/usage/v6/item/lines/angular/example_component_ts.md b/static/usage/v6/item/lines/angular/example_component_ts.md new file mode 100644 index 00000000000..7322fe3faae --- /dev/null +++ b/static/usage/v6/item/lines/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { star, informationCircle } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ star, informationCircle }); + } +} +``` \ No newline at end of file diff --git a/static/usage/v6/item/lines/index.md b/static/usage/v6/item/lines/index.md index f1ccef30f7e..5d7f93525ae 100644 --- a/static/usage/v6/item/lines/index.md +++ b/static/usage/v6/item/lines/index.md @@ -3,6 +3,22 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; - + From 9af634defd1d43454faf5277d84ca3bc0987afd6 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 12:49:08 -0500 Subject: [PATCH 38/58] docs(v6): update Angular example for menu --- static/usage/v6/menu/type/angular/example_component_html.md | 2 +- static/usage/v6/menu/type/angular/example_component_ts.md | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/static/usage/v6/menu/type/angular/example_component_html.md b/static/usage/v6/menu/type/angular/example_component_html.md index fd995d7a32f..738aca5079b 100644 --- a/static/usage/v6/menu/type/angular/example_component_html.md +++ b/static/usage/v6/menu/type/angular/example_component_html.md @@ -20,7 +20,7 @@

Select an overlay type:

- + overlay diff --git a/static/usage/v6/menu/type/angular/example_component_ts.md b/static/usage/v6/menu/type/angular/example_component_ts.md index 5f03ec13b76..1950bbb5e86 100644 --- a/static/usage/v6/menu/type/angular/example_component_ts.md +++ b/static/usage/v6/menu/type/angular/example_component_ts.md @@ -1,9 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [FormsModule, IonicModule], + standalone: true }) export class ExampleComponent { menuType: string = 'overlay'; From 710cf8958aa61b11355488cda1e779c9a106755b Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 13:39:32 -0500 Subject: [PATCH 39/58] docs(v6): update Angular examples for modal --- .../boolean/angular/example_component_ts.md | 4 +++- .../function/angular/example_component_ts.md | 4 +++- .../angular/example_component_ts.md | 3 +++ .../basic/angular/example_component_ts.md | 3 +++ .../modal/controller/angular/app_module_ts.md | 19 ------------------- .../angular/example_component_ts.md | 4 +++- .../angular/modal-example_component_ts.md | 6 ++++-- static/usage/v6/modal/controller/index.md | 2 -- .../basic/angular/example_component_ts.md | 5 ++++- .../is-open/angular/example_component_ts.md | 3 +++ .../angular/example_component_ts.md | 3 +++ .../angular/example_component_ts.md | 4 +++- 12 files changed, 32 insertions(+), 28 deletions(-) delete mode 100644 static/usage/v6/modal/controller/angular/app_module_ts.md diff --git a/static/usage/v6/modal/can-dismiss/boolean/angular/example_component_ts.md b/static/usage/v6/modal/can-dismiss/boolean/angular/example_component_ts.md index b13c147dc2d..88be5262118 100644 --- a/static/usage/v6/modal/can-dismiss/boolean/angular/example_component_ts.md +++ b/static/usage/v6/modal/can-dismiss/boolean/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { CheckboxCustomEvent } from '@ionic/angular'; +import { IonicModule, CheckboxCustomEvent } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { canDismiss = false; diff --git a/static/usage/v6/modal/can-dismiss/function/angular/example_component_ts.md b/static/usage/v6/modal/can-dismiss/function/angular/example_component_ts.md index a62465cfee3..93cc0c51c83 100644 --- a/static/usage/v6/modal/can-dismiss/function/angular/example_component_ts.md +++ b/static/usage/v6/modal/can-dismiss/function/angular/example_component_ts.md @@ -1,11 +1,13 @@ ```ts import { Component } from '@angular/core'; -import { ActionSheetController } from '@ionic/angular'; +import { IonicModule, ActionSheetController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { presentingElement = undefined; diff --git a/static/usage/v6/modal/can-dismiss/prevent-swipe-to-close/angular/example_component_ts.md b/static/usage/v6/modal/can-dismiss/prevent-swipe-to-close/angular/example_component_ts.md index 788b9a14c0f..2721c21e79f 100644 --- a/static/usage/v6/modal/can-dismiss/prevent-swipe-to-close/angular/example_component_ts.md +++ b/static/usage/v6/modal/can-dismiss/prevent-swipe-to-close/angular/example_component_ts.md @@ -1,9 +1,12 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { async canDismiss(data?: any, role?: string) { diff --git a/static/usage/v6/modal/card/basic/angular/example_component_ts.md b/static/usage/v6/modal/card/basic/angular/example_component_ts.md index 5a28a156a32..3fff7fde680 100644 --- a/static/usage/v6/modal/card/basic/angular/example_component_ts.md +++ b/static/usage/v6/modal/card/basic/angular/example_component_ts.md @@ -1,9 +1,12 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { // Typically referenced to your ion-router-outlet diff --git a/static/usage/v6/modal/controller/angular/app_module_ts.md b/static/usage/v6/modal/controller/angular/app_module_ts.md deleted file mode 100644 index e9e4f00dff3..00000000000 --- a/static/usage/v6/modal/controller/angular/app_module_ts.md +++ /dev/null @@ -1,19 +0,0 @@ -```ts -import { NgModule } from '@angular/core'; -import { BrowserModule } from '@angular/platform-browser'; -import { FormsModule } from '@angular/forms'; - -import { IonicModule } from '@ionic/angular'; - -import { AppComponent } from './app.component'; -import { ExampleComponent } from './example.component'; - -import { ModalExampleComponent } from './modal-example.component'; - -@NgModule({ - imports: [BrowserModule, FormsModule, IonicModule.forRoot({})], - declarations: [AppComponent, ExampleComponent, ModalExampleComponent], - bootstrap: [AppComponent], -}) -export class AppModule {} -``` diff --git a/static/usage/v6/modal/controller/angular/example_component_ts.md b/static/usage/v6/modal/controller/angular/example_component_ts.md index 920a2335257..36e27e8ee33 100644 --- a/static/usage/v6/modal/controller/angular/example_component_ts.md +++ b/static/usage/v6/modal/controller/angular/example_component_ts.md @@ -1,12 +1,14 @@ ```ts import { Component } from '@angular/core'; -import { ModalController } from '@ionic/angular'; +import { IonicModule, ModalController } from '@ionic/angular'; import { ModalExampleComponent } from './modal-example.component'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { message = 'This modal example uses the modalController to present and dismiss modals.'; diff --git a/static/usage/v6/modal/controller/angular/modal-example_component_ts.md b/static/usage/v6/modal/controller/angular/modal-example_component_ts.md index 621996015b4..c01da56515b 100644 --- a/static/usage/v6/modal/controller/angular/modal-example_component_ts.md +++ b/static/usage/v6/modal/controller/angular/modal-example_component_ts.md @@ -1,11 +1,13 @@ ```ts import { Component } from '@angular/core'; - -import { ModalController } from '@ionic/angular'; +import { FormsModule } from '@angular/forms'; +import { IonicModule, ModalController } from '@ionic/angular'; @Component({ selector: 'app-modal-example', templateUrl: 'modal-example.component.html', + imports: [FormsModule, IonicModule], + standalone: true }) export class ModalExampleComponent { name: string; diff --git a/static/usage/v6/modal/controller/index.md b/static/usage/v6/modal/controller/index.md index 2f1d5c9b961..fa08d9ba1be 100644 --- a/static/usage/v6/modal/controller/index.md +++ b/static/usage/v6/modal/controller/index.md @@ -6,7 +6,6 @@ import react from './react.md'; import vue_example from './vue/example_vue.md'; import vue_modal from './vue/modal_vue.md'; -import angular_app_module_ts from './angular/app_module_ts.md'; import angular_example_component_html from './angular/example_component_html.md'; import angular_example_component_ts from './angular/example_component_ts.md'; import angular_modal_example_component_ts from './angular/modal-example_component_ts.md'; @@ -29,7 +28,6 @@ import angular_modal_example_component_html from './angular/modal-example_compon 'src/app/example.component.ts': angular_example_component_ts, 'src/app/modal-example.component.html': angular_modal_example_component_html, 'src/app/modal-example.component.ts': angular_modal_example_component_ts, - 'src/app/app.module.ts': angular_app_module_ts, }, }, }} diff --git a/static/usage/v6/modal/inline/basic/angular/example_component_ts.md b/static/usage/v6/modal/inline/basic/angular/example_component_ts.md index a21954ec5f1..8a756a79d36 100644 --- a/static/usage/v6/modal/inline/basic/angular/example_component_ts.md +++ b/static/usage/v6/modal/inline/basic/angular/example_component_ts.md @@ -1,11 +1,14 @@ ```ts import { Component, ViewChild } from '@angular/core'; -import { IonModal } from '@ionic/angular'; +import { FormsModule } from '@angular/forms'; +import { IonicModule, IonModal } from '@ionic/angular'; import { OverlayEventDetail } from '@ionic/core/components'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [FormsModule, IonicModule], + standalone: true }) export class ExampleComponent { @ViewChild(IonModal) modal: IonModal; diff --git a/static/usage/v6/modal/inline/is-open/angular/example_component_ts.md b/static/usage/v6/modal/inline/is-open/angular/example_component_ts.md index 321577939a9..fb4be0a7328 100644 --- a/static/usage/v6/modal/inline/is-open/angular/example_component_ts.md +++ b/static/usage/v6/modal/inline/is-open/angular/example_component_ts.md @@ -1,9 +1,12 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { isModalOpen = false; diff --git a/static/usage/v6/modal/sheet/background-content/angular/example_component_ts.md b/static/usage/v6/modal/sheet/background-content/angular/example_component_ts.md index e132d2f84c7..8473fe29d8a 100644 --- a/static/usage/v6/modal/sheet/background-content/angular/example_component_ts.md +++ b/static/usage/v6/modal/sheet/background-content/angular/example_component_ts.md @@ -1,10 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', styleUrls: ['example.component.css'], + imports: [IonicModule], + standalone: true }) export class ExampleComponent { count = 0; diff --git a/static/usage/v6/modal/styling/animations/angular/example_component_ts.md b/static/usage/v6/modal/styling/animations/angular/example_component_ts.md index c4a743b2745..95789450895 100644 --- a/static/usage/v6/modal/styling/animations/angular/example_component_ts.md +++ b/static/usage/v6/modal/styling/animations/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { AnimationController } from '@ionic/angular'; +import { IonicModule, AnimationController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private animationCtrl: AnimationController) {} From 89b3478f34c81bf9021d16940e0107e9308d36d9 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 14:53:25 -0500 Subject: [PATCH 40/58] docs(v6): update Angular example for nav --- .../v6/nav/nav-link/angular/app_module_ts.md | 21 ------------------- .../nav-link/angular/example_component_ts.md | 4 +++- .../nav-link/angular/page_one_component_ts.md | 4 +++- .../angular/page_three_component_ts.md | 3 +++ .../nav-link/angular/page_two_component_ts.md | 4 +++- static/usage/v6/nav/nav-link/index.md | 2 -- 6 files changed, 12 insertions(+), 26 deletions(-) delete mode 100644 static/usage/v6/nav/nav-link/angular/app_module_ts.md diff --git a/static/usage/v6/nav/nav-link/angular/app_module_ts.md b/static/usage/v6/nav/nav-link/angular/app_module_ts.md deleted file mode 100644 index d3b8b44f6ce..00000000000 --- a/static/usage/v6/nav/nav-link/angular/app_module_ts.md +++ /dev/null @@ -1,21 +0,0 @@ -```ts -import { NgModule } from '@angular/core'; -import { BrowserModule } from '@angular/platform-browser'; -import { RouterModule } from '@angular/router'; - -import { IonicModule } from '@ionic/angular'; - -import { AppComponent } from './app.component'; -import { ExampleComponent } from './example.component'; - -import { PageOneComponent } from './page-one.component'; -import { PageTwoComponent } from './page-two.component'; -import { PageThreeComponent } from './page-three.component'; - -@NgModule({ - imports: [BrowserModule, RouterModule.forRoot([]), IonicModule.forRoot({})], - declarations: [AppComponent, ExampleComponent, PageOneComponent, PageTwoComponent, PageThreeComponent], - bootstrap: [AppComponent], -}) -export class AppModule {} -``` diff --git a/static/usage/v6/nav/nav-link/angular/example_component_ts.md b/static/usage/v6/nav/nav-link/angular/example_component_ts.md index b123a4858ce..370b2ed24e1 100644 --- a/static/usage/v6/nav/nav-link/angular/example_component_ts.md +++ b/static/usage/v6/nav/nav-link/angular/example_component_ts.md @@ -1,11 +1,13 @@ ```ts import { Component } from '@angular/core'; - +import { IonicModule } from '@ionic/angular'; import { PageOneComponent } from './page-one.component'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { component = PageOneComponent; diff --git a/static/usage/v6/nav/nav-link/angular/page_one_component_ts.md b/static/usage/v6/nav/nav-link/angular/page_one_component_ts.md index 06c42b342cf..3b6dd80abc4 100644 --- a/static/usage/v6/nav/nav-link/angular/page_one_component_ts.md +++ b/static/usage/v6/nav/nav-link/angular/page_one_component_ts.md @@ -1,6 +1,6 @@ ```ts import { Component } from '@angular/core'; - +import { IonicModule } from '@ionic/angular'; import { PageTwoComponent } from './page-two.component'; @Component({ @@ -18,6 +18,8 @@ import { PageTwoComponent } from './page-two.component';
`, + imports: [IonicModule], + standalone: true }) export class PageOneComponent { component = PageTwoComponent; diff --git a/static/usage/v6/nav/nav-link/angular/page_three_component_ts.md b/static/usage/v6/nav/nav-link/angular/page_three_component_ts.md index d9e95ed7218..025f44e021f 100644 --- a/static/usage/v6/nav/nav-link/angular/page_three_component_ts.md +++ b/static/usage/v6/nav/nav-link/angular/page_three_component_ts.md @@ -1,5 +1,6 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-page-one', @@ -16,6 +17,8 @@ import { Component } from '@angular/core';

Page Three

`, + imports: [IonicModule], + standalone: true }) export class PageThreeComponent {} ``` diff --git a/static/usage/v6/nav/nav-link/angular/page_two_component_ts.md b/static/usage/v6/nav/nav-link/angular/page_two_component_ts.md index d6edd90a593..35cbfd185fa 100644 --- a/static/usage/v6/nav/nav-link/angular/page_two_component_ts.md +++ b/static/usage/v6/nav/nav-link/angular/page_two_component_ts.md @@ -1,6 +1,6 @@ ```ts import { Component } from '@angular/core'; - +import { IonicModule } from '@ionic/angular'; import { PageThreeComponent } from './page-three.component'; @Component({ @@ -23,6 +23,8 @@ import { PageThreeComponent } from './page-three.component'; `, + imports: [IonicModule], + standalone: true }) export class PageTwoComponent { component = PageThreeComponent; diff --git a/static/usage/v6/nav/nav-link/index.md b/static/usage/v6/nav/nav-link/index.md index 2fdeadbbbdd..0f81390a599 100644 --- a/static/usage/v6/nav/nav-link/index.md +++ b/static/usage/v6/nav/nav-link/index.md @@ -2,7 +2,6 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; -import angular_app_module_ts from './angular/app_module_ts.md'; import angular_example_component_html from './angular/example_component_html.md'; import angular_example_component_ts from './angular/example_component_ts.md'; import angular_page_one_component_ts from './angular/page_one_component_ts.md'; @@ -30,7 +29,6 @@ import vue_page_three from './vue/page_three_vue.md'; 'src/app/page-one.component.ts': angular_page_one_component_ts, 'src/app/page-two.component.ts': angular_page_two_component_ts, 'src/app/page-three.component.ts': angular_page_three_component_ts, - 'src/app/app.module.ts': angular_app_module_ts, }, }, react: { From b105668454b583ba756b3631582eecff093521ec Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 15:11:10 -0500 Subject: [PATCH 41/58] docs(v6): update Angular examples for popover --- .../angular/example_component_ts.md | 3 +++ .../controller/angular/app_module_ts.md | 19 ------------------- .../angular/example_component_ts.md | 4 +++- .../angular/popover_component_ts.md | 4 +++- .../v6/popover/presenting/controller/index.md | 2 -- .../angular/example_component_ts.md | 3 +++ 6 files changed, 12 insertions(+), 23 deletions(-) delete mode 100644 static/usage/v6/popover/presenting/controller/angular/app_module_ts.md diff --git a/static/usage/v6/popover/customization/positioning/angular/example_component_ts.md b/static/usage/v6/popover/customization/positioning/angular/example_component_ts.md index 4db53a836a9..1b3dae1494b 100644 --- a/static/usage/v6/popover/customization/positioning/angular/example_component_ts.md +++ b/static/usage/v6/popover/customization/positioning/angular/example_component_ts.md @@ -1,10 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', styleUrls: ['example.component.css'], + imports: [IonicModule], + standalone: true }) export class ExampleComponent {} ``` diff --git a/static/usage/v6/popover/presenting/controller/angular/app_module_ts.md b/static/usage/v6/popover/presenting/controller/angular/app_module_ts.md deleted file mode 100644 index 887ca3acf89..00000000000 --- a/static/usage/v6/popover/presenting/controller/angular/app_module_ts.md +++ /dev/null @@ -1,19 +0,0 @@ -```ts -import { NgModule } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { BrowserModule } from '@angular/platform-browser'; - -import { IonicModule } from '@ionic/angular'; - -import { AppComponent } from './app.component'; -import { ExampleComponent } from './example.component'; - -import { PopoverComponent } from './popover.component'; - -@NgModule({ - imports: [BrowserModule, FormsModule, IonicModule.forRoot({})], - declarations: [AppComponent, ExampleComponent, PopoverComponent], - bootstrap: [AppComponent], -}) -export class AppModule {} -``` diff --git a/static/usage/v6/popover/presenting/controller/angular/example_component_ts.md b/static/usage/v6/popover/presenting/controller/angular/example_component_ts.md index bf0e0165d78..bb01bd2c127 100644 --- a/static/usage/v6/popover/presenting/controller/angular/example_component_ts.md +++ b/static/usage/v6/popover/presenting/controller/angular/example_component_ts.md @@ -1,13 +1,15 @@ ```ts import { Component, ViewChild } from '@angular/core'; -import { PopoverController } from '@ionic/angular'; +import { IonicModule, PopoverController } from '@ionic/angular'; import { PopoverComponent } from './popover.component'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { roleMsg = ''; diff --git a/static/usage/v6/popover/presenting/controller/angular/popover_component_ts.md b/static/usage/v6/popover/presenting/controller/angular/popover_component_ts.md index 2900a32240c..ce19e40b408 100644 --- a/static/usage/v6/popover/presenting/controller/angular/popover_component_ts.md +++ b/static/usage/v6/popover/presenting/controller/angular/popover_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { PopoverController } from '@ionic/angular'; +import { IonicModule, PopoverController } from '@ionic/angular'; @Component({ selector: 'app-popover', templateUrl: 'popover.component.html', + imports: [IonicModule], + standalone: true }) export class PopoverComponent {} ``` diff --git a/static/usage/v6/popover/presenting/controller/index.md b/static/usage/v6/popover/presenting/controller/index.md index 4906017d235..e51317d21fe 100644 --- a/static/usage/v6/popover/presenting/controller/index.md +++ b/static/usage/v6/popover/presenting/controller/index.md @@ -10,7 +10,6 @@ import angular_example_component_html from './angular/example_component_html.md' import angular_example_component_ts from './angular/example_component_ts.md'; import angular_popover_component_html from './angular/popover_component_html.md'; import angular_popover_component_ts from './angular/popover_component_ts.md'; -import angular_app_module from './angular/app_module_ts.md'; Date: Wed, 23 Jul 2025 15:22:28 -0500 Subject: [PATCH 42/58] docs(v6): update Angular examples for loading --- .../v6/loading/controller/angular/example_component_ts.md | 4 +++- .../usage/v6/loading/spinners/angular/example_component_ts.md | 4 +++- .../usage/v6/loading/theming/angular/example_component_ts.md | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/static/usage/v6/loading/controller/angular/example_component_ts.md b/static/usage/v6/loading/controller/angular/example_component_ts.md index bd4b86eef29..38ffd0010e4 100644 --- a/static/usage/v6/loading/controller/angular/example_component_ts.md +++ b/static/usage/v6/loading/controller/angular/example_component_ts.md @@ -1,11 +1,13 @@ ```ts import { Component } from '@angular/core'; -import { LoadingController } from '@ionic/angular'; +import { IonicModule, LoadingController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private loadingCtrl: LoadingController) {} diff --git a/static/usage/v6/loading/spinners/angular/example_component_ts.md b/static/usage/v6/loading/spinners/angular/example_component_ts.md index 7e522cb3a64..ba83143f18d 100644 --- a/static/usage/v6/loading/spinners/angular/example_component_ts.md +++ b/static/usage/v6/loading/spinners/angular/example_component_ts.md @@ -1,11 +1,13 @@ ```ts import { Component } from '@angular/core'; -import { LoadingController } from '@ionic/angular'; +import { IonicModule, LoadingController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private loadingCtrl: LoadingController) {} diff --git a/static/usage/v6/loading/theming/angular/example_component_ts.md b/static/usage/v6/loading/theming/angular/example_component_ts.md index 800335c91ad..30bf2c4c8e0 100644 --- a/static/usage/v6/loading/theming/angular/example_component_ts.md +++ b/static/usage/v6/loading/theming/angular/example_component_ts.md @@ -1,11 +1,13 @@ ```ts import { Component } from '@angular/core'; -import { LoadingController } from '@ionic/angular'; +import { IonicModule, LoadingController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private loadingCtrl: LoadingController) {} From 45666ff199f87e2d27838009b55f78d2a391e73d Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 15:35:44 -0500 Subject: [PATCH 43/58] docs(v6): update Angular examples for progress-bar --- .../v6/progress-bar/buffer/angular/example_component_ts.md | 3 +++ .../progress-bar/determinate/angular/example_component_ts.md | 3 +++ 2 files changed, 6 insertions(+) diff --git a/static/usage/v6/progress-bar/buffer/angular/example_component_ts.md b/static/usage/v6/progress-bar/buffer/angular/example_component_ts.md index a876a376204..6b72f5b5232 100644 --- a/static/usage/v6/progress-bar/buffer/angular/example_component_ts.md +++ b/static/usage/v6/progress-bar/buffer/angular/example_component_ts.md @@ -1,10 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', styleUrls: ['example.component.css'], + imports: [IonicModule], + standalone: true }) export class ExampleComponent { public buffer = 0.06; diff --git a/static/usage/v6/progress-bar/determinate/angular/example_component_ts.md b/static/usage/v6/progress-bar/determinate/angular/example_component_ts.md index 971d3d92ed0..8a288deb400 100644 --- a/static/usage/v6/progress-bar/determinate/angular/example_component_ts.md +++ b/static/usage/v6/progress-bar/determinate/angular/example_component_ts.md @@ -1,10 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', styleUrls: ['example.component.css'], + imports: [IonicModule], + standalone: true }) export class ExampleComponent { public progress = 0; From 107b465f75ae2e7acb13a9890175e4f2e43a7d7b Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 15:44:41 -0500 Subject: [PATCH 44/58] docs(v6): update Angular example for skeleton-text --- .../v6/skeleton-text/basic/angular/example_component_ts.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/static/usage/v6/skeleton-text/basic/angular/example_component_ts.md b/static/usage/v6/skeleton-text/basic/angular/example_component_ts.md index 8423962a3e9..40d968506a8 100644 --- a/static/usage/v6/skeleton-text/basic/angular/example_component_ts.md +++ b/static/usage/v6/skeleton-text/basic/angular/example_component_ts.md @@ -1,10 +1,14 @@ ```ts import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', styleUrls: ['example.component.css'], + imports: [CommonModule, IonicModule], + standalone: true }) export class ExampleComponent { public loaded = false; From 47ef96777eab75f6551041d7919bf4fcff31af58 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 15:54:20 -0500 Subject: [PATCH 45/58] docs(v6): update Angular examples for range --- .../v6/range/ion-change-event/angular/example_component_ts.md | 4 +++- .../range/ion-knob-move-event/angular/example_component_ts.md | 4 +++- static/usage/v6/range/pins/angular/example_component_ts.md | 3 +++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/static/usage/v6/range/ion-change-event/angular/example_component_ts.md b/static/usage/v6/range/ion-change-event/angular/example_component_ts.md index b90eff62d29..5598aea1444 100644 --- a/static/usage/v6/range/ion-change-event/angular/example_component_ts.md +++ b/static/usage/v6/range/ion-change-event/angular/example_component_ts.md @@ -1,12 +1,14 @@ ```ts import { Component } from '@angular/core'; -import { RangeCustomEvent } from '@ionic/angular'; +import { IonicModule, RangeCustomEvent } from '@ionic/angular'; import { RangeValue } from '@ionic/core'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { lastEmittedValue: RangeValue; diff --git a/static/usage/v6/range/ion-knob-move-event/angular/example_component_ts.md b/static/usage/v6/range/ion-knob-move-event/angular/example_component_ts.md index e4b331a10f2..e9221985fbb 100644 --- a/static/usage/v6/range/ion-knob-move-event/angular/example_component_ts.md +++ b/static/usage/v6/range/ion-knob-move-event/angular/example_component_ts.md @@ -1,12 +1,14 @@ ```ts import { Component } from '@angular/core'; -import { RangeCustomEvent } from '@ionic/angular'; +import { IonicModule, RangeCustomEvent } from '@ionic/angular'; import { RangeValue } from '@ionic/core'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { moveStart: RangeValue; diff --git a/static/usage/v6/range/pins/angular/example_component_ts.md b/static/usage/v6/range/pins/angular/example_component_ts.md index 8dc875e1bda..07226d94d76 100644 --- a/static/usage/v6/range/pins/angular/example_component_ts.md +++ b/static/usage/v6/range/pins/angular/example_component_ts.md @@ -1,9 +1,12 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { pinFormatter(value: number) { From dc66afa5b7065fab0d3045ad6fa8b9cd93573262 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 16:13:21 -0500 Subject: [PATCH 46/58] docs(v6): update Angular examples for refresher --- .../advanced/angular/example_component_ts.md | 15 +++++++++++++++ .../basic/angular/example_component_ts.md | 3 +++ .../angular/example_component_ts.md | 3 +++ .../angular/example_component_ts.md | 3 +++ .../angular/example_component_ts.md | 3 +++ 5 files changed, 27 insertions(+) diff --git a/static/usage/v6/refresher/advanced/angular/example_component_ts.md b/static/usage/v6/refresher/advanced/angular/example_component_ts.md index 98888ac14fa..6c7bd37d064 100644 --- a/static/usage/v6/refresher/advanced/angular/example_component_ts.md +++ b/static/usage/v6/refresher/advanced/angular/example_component_ts.md @@ -1,12 +1,27 @@ ```ts import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { ellipse } from 'ionicons/icons'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', styleUrls: ['./example.component.css'], + imports: [CommonModule, IonicModule], + standalone: true }) export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ ellipse }); + } + public names = [ 'Burt Bear', 'Charlie Cheetah', diff --git a/static/usage/v6/refresher/basic/angular/example_component_ts.md b/static/usage/v6/refresher/basic/angular/example_component_ts.md index 74304953d4e..da645e02fcc 100644 --- a/static/usage/v6/refresher/basic/angular/example_component_ts.md +++ b/static/usage/v6/refresher/basic/angular/example_component_ts.md @@ -1,9 +1,12 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { handleRefresh(event) { diff --git a/static/usage/v6/refresher/custom-content/angular/example_component_ts.md b/static/usage/v6/refresher/custom-content/angular/example_component_ts.md index 74304953d4e..da645e02fcc 100644 --- a/static/usage/v6/refresher/custom-content/angular/example_component_ts.md +++ b/static/usage/v6/refresher/custom-content/angular/example_component_ts.md @@ -1,9 +1,12 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { handleRefresh(event) { diff --git a/static/usage/v6/refresher/custom-scroll-target/angular/example_component_ts.md b/static/usage/v6/refresher/custom-scroll-target/angular/example_component_ts.md index a5ac7eaaa9a..c2d3fc6797e 100644 --- a/static/usage/v6/refresher/custom-scroll-target/angular/example_component_ts.md +++ b/static/usage/v6/refresher/custom-scroll-target/angular/example_component_ts.md @@ -1,10 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', styleUrls: ['example.component.css'], + imports: [IonicModule], + standalone: true }) export class ExampleComponent { handleRefresh(event) { diff --git a/static/usage/v6/refresher/pull-properties/angular/example_component_ts.md b/static/usage/v6/refresher/pull-properties/angular/example_component_ts.md index 74304953d4e..da645e02fcc 100644 --- a/static/usage/v6/refresher/pull-properties/angular/example_component_ts.md +++ b/static/usage/v6/refresher/pull-properties/angular/example_component_ts.md @@ -1,9 +1,12 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { handleRefresh(event) { From 7eea39b8042ce27eeb077b37a80897b6be37a0c4 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 16:36:27 -0500 Subject: [PATCH 47/58] docs(v6): update Angular examples for reorder --- .../basic/angular/example_component_ts.md | 4 +++- .../custom-icon/angular/example_component_ts.md | 16 ++++++++++++++-- .../angular/example_component_ts.md | 4 +++- .../angular/example_component_ts.md | 4 +++- .../angular/example_component_ts.md | 6 ++++-- .../wrapper/angular/example_component_ts.md | 4 +++- 6 files changed, 30 insertions(+), 8 deletions(-) diff --git a/static/usage/v6/reorder/basic/angular/example_component_ts.md b/static/usage/v6/reorder/basic/angular/example_component_ts.md index 7a5c867f791..bba98788a9a 100644 --- a/static/usage/v6/reorder/basic/angular/example_component_ts.md +++ b/static/usage/v6/reorder/basic/angular/example_component_ts.md @@ -1,11 +1,13 @@ ```ts import { Component } from '@angular/core'; -import { ItemReorderEventDetail } from '@ionic/angular'; +import { IonicModule, ItemReorderEventDetail } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { handleReorder(ev: CustomEvent) { diff --git a/static/usage/v6/reorder/custom-icon/angular/example_component_ts.md b/static/usage/v6/reorder/custom-icon/angular/example_component_ts.md index 7a5c867f791..c8d1d3d7d7f 100644 --- a/static/usage/v6/reorder/custom-icon/angular/example_component_ts.md +++ b/static/usage/v6/reorder/custom-icon/angular/example_component_ts.md @@ -1,13 +1,25 @@ ```ts import { Component } from '@angular/core'; - -import { ItemReorderEventDetail } from '@ionic/angular'; +import { IonicModule, ItemReorderEventDetail } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { pizza } from 'ionicons/icons' @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ pizza }); + } + handleReorder(ev: CustomEvent) { // The `from` and `to` properties contain the index of the item // when the drag started and ended, respectively diff --git a/static/usage/v6/reorder/custom-scroll-target/angular/example_component_ts.md b/static/usage/v6/reorder/custom-scroll-target/angular/example_component_ts.md index 2cd3dd66740..d85638526b6 100644 --- a/static/usage/v6/reorder/custom-scroll-target/angular/example_component_ts.md +++ b/static/usage/v6/reorder/custom-scroll-target/angular/example_component_ts.md @@ -1,12 +1,14 @@ ```ts import { Component } from '@angular/core'; -import { ItemReorderEventDetail } from '@ionic/angular'; +import { IonicModule, ItemReorderEventDetail } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', styleUrls: ['./example.component.css'], + imports: [IonicModule], + standalone: true }) export class ExampleComponent { handleReorder(ev: CustomEvent) { diff --git a/static/usage/v6/reorder/toggling-disabled/angular/example_component_ts.md b/static/usage/v6/reorder/toggling-disabled/angular/example_component_ts.md index af0ff643b26..82b984f02af 100644 --- a/static/usage/v6/reorder/toggling-disabled/angular/example_component_ts.md +++ b/static/usage/v6/reorder/toggling-disabled/angular/example_component_ts.md @@ -1,11 +1,13 @@ ```ts import { Component } from '@angular/core'; -import { ItemReorderEventDetail } from '@ionic/angular'; +import { IonicModule, ItemReorderEventDetail } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { public isDisabled = true; diff --git a/static/usage/v6/reorder/updating-data/angular/example_component_ts.md b/static/usage/v6/reorder/updating-data/angular/example_component_ts.md index 11e2f59d553..70e52c80f30 100644 --- a/static/usage/v6/reorder/updating-data/angular/example_component_ts.md +++ b/static/usage/v6/reorder/updating-data/angular/example_component_ts.md @@ -1,11 +1,13 @@ ```ts import { Component } from '@angular/core'; - -import { ItemReorderEventDetail } from '@ionic/angular'; +import { CommonModule } from '@angular/common'; +import { IonicModule, ItemReorderEventDetail } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [CommonModule, IonicModule], + standalone: true }) export class ExampleComponent { items = [1, 2, 3, 4, 5]; diff --git a/static/usage/v6/reorder/wrapper/angular/example_component_ts.md b/static/usage/v6/reorder/wrapper/angular/example_component_ts.md index 7a5c867f791..bba98788a9a 100644 --- a/static/usage/v6/reorder/wrapper/angular/example_component_ts.md +++ b/static/usage/v6/reorder/wrapper/angular/example_component_ts.md @@ -1,11 +1,13 @@ ```ts import { Component } from '@angular/core'; -import { ItemReorderEventDetail } from '@ionic/angular'; +import { IonicModule, ItemReorderEventDetail } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { handleReorder(ev: CustomEvent) { From 1d609aa938399cdacd588d4ec0cbed02424809ef Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 17:02:51 -0500 Subject: [PATCH 48/58] docs(v6): update Angular examples for searchbar --- .../example_component_html.md} | 0 .../angular/example_component_ts.md | 23 +++++++++++++++++++ .../usage/v6/searchbar/cancel-button/index.md | 15 ++++++++++-- .../example_component_html.md} | 0 .../angular/example_component_ts.md | 23 +++++++++++++++++++ .../usage/v6/searchbar/clear-button/index.md | 15 ++++++++++-- .../debounce/angular/example_component_ts.md | 4 ++++ .../example_component_html.md} | 0 .../angular/example_component_ts.md | 23 +++++++++++++++++++ .../usage/v6/searchbar/search-icon/index.md | 20 ++++++++++++++-- 10 files changed, 117 insertions(+), 6 deletions(-) rename static/usage/v6/searchbar/cancel-button/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/searchbar/cancel-button/angular/example_component_ts.md rename static/usage/v6/searchbar/clear-button/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/searchbar/clear-button/angular/example_component_ts.md rename static/usage/v6/searchbar/search-icon/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/searchbar/search-icon/angular/example_component_ts.md diff --git a/static/usage/v6/searchbar/cancel-button/angular.md b/static/usage/v6/searchbar/cancel-button/angular/example_component_html.md similarity index 100% rename from static/usage/v6/searchbar/cancel-button/angular.md rename to static/usage/v6/searchbar/cancel-button/angular/example_component_html.md diff --git a/static/usage/v6/searchbar/cancel-button/angular/example_component_ts.md b/static/usage/v6/searchbar/cancel-button/angular/example_component_ts.md new file mode 100644 index 00000000000..15d1ac8b9b8 --- /dev/null +++ b/static/usage/v6/searchbar/cancel-button/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { trash } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ trash }); + } +} +``` diff --git a/static/usage/v6/searchbar/cancel-button/index.md b/static/usage/v6/searchbar/cancel-button/index.md index 4ad2c30b731..514ad222d50 100644 --- a/static/usage/v6/searchbar/cancel-button/index.md +++ b/static/usage/v6/searchbar/cancel-button/index.md @@ -3,11 +3,22 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; diff --git a/static/usage/v6/searchbar/clear-button/angular.md b/static/usage/v6/searchbar/clear-button/angular/example_component_html.md similarity index 100% rename from static/usage/v6/searchbar/clear-button/angular.md rename to static/usage/v6/searchbar/clear-button/angular/example_component_html.md diff --git a/static/usage/v6/searchbar/clear-button/angular/example_component_ts.md b/static/usage/v6/searchbar/clear-button/angular/example_component_ts.md new file mode 100644 index 00000000000..de602d23876 --- /dev/null +++ b/static/usage/v6/searchbar/clear-button/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { trashBin } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ trashBin }); + } +} +``` diff --git a/static/usage/v6/searchbar/clear-button/index.md b/static/usage/v6/searchbar/clear-button/index.md index aa821ec048b..1aa1969a5e0 100644 --- a/static/usage/v6/searchbar/clear-button/index.md +++ b/static/usage/v6/searchbar/clear-button/index.md @@ -3,11 +3,22 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; diff --git a/static/usage/v6/searchbar/debounce/angular/example_component_ts.md b/static/usage/v6/searchbar/debounce/angular/example_component_ts.md index 1017ac602f9..f0b1bc3058a 100644 --- a/static/usage/v6/searchbar/debounce/angular/example_component_ts.md +++ b/static/usage/v6/searchbar/debounce/angular/example_component_ts.md @@ -1,9 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [CommonModule, IonicModule], + standalone: true }) export class ExampleComponent { public data = [ diff --git a/static/usage/v6/searchbar/search-icon/angular.md b/static/usage/v6/searchbar/search-icon/angular/example_component_html.md similarity index 100% rename from static/usage/v6/searchbar/search-icon/angular.md rename to static/usage/v6/searchbar/search-icon/angular/example_component_html.md diff --git a/static/usage/v6/searchbar/search-icon/angular/example_component_ts.md b/static/usage/v6/searchbar/search-icon/angular/example_component_ts.md new file mode 100644 index 00000000000..ca4327f025d --- /dev/null +++ b/static/usage/v6/searchbar/search-icon/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { searchCircle } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ searchCircle }); + } +} +``` diff --git a/static/usage/v6/searchbar/search-icon/index.md b/static/usage/v6/searchbar/search-icon/index.md index c3611623923..e7dbf671773 100644 --- a/static/usage/v6/searchbar/search-icon/index.md +++ b/static/usage/v6/searchbar/search-icon/index.md @@ -3,6 +3,22 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; - + From 143d9ef0ed8cff9c808476e6d78112958760068d Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 17:27:00 -0500 Subject: [PATCH 49/58] docs(v6): update Angular examples for segment --- .../example_component_html.md} | 0 .../angular/example_component_ts.md | 23 +++++++++++++++++++ static/usage/v6/segment/scrollable/index.md | 15 ++++++++++-- 3 files changed, 36 insertions(+), 2 deletions(-) rename static/usage/v6/segment/scrollable/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/segment/scrollable/angular/example_component_ts.md diff --git a/static/usage/v6/segment/scrollable/angular.md b/static/usage/v6/segment/scrollable/angular/example_component_html.md similarity index 100% rename from static/usage/v6/segment/scrollable/angular.md rename to static/usage/v6/segment/scrollable/angular/example_component_html.md diff --git a/static/usage/v6/segment/scrollable/angular/example_component_ts.md b/static/usage/v6/segment/scrollable/angular/example_component_ts.md new file mode 100644 index 00000000000..cc1db4d8b9e --- /dev/null +++ b/static/usage/v6/segment/scrollable/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { home, heart, pin, star, call, globe, basket, barbell, trash, person } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ home, heart, pin, star, call, globe, basket, barbell, trash, person }); + } +} +``` \ No newline at end of file diff --git a/static/usage/v6/segment/scrollable/index.md b/static/usage/v6/segment/scrollable/index.md index de206ca652a..99fb5dd2b5b 100644 --- a/static/usage/v6/segment/scrollable/index.md +++ b/static/usage/v6/segment/scrollable/index.md @@ -3,11 +3,22 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; From 34fcc9b4c88a47d1fe37aac85f81b10eeb0833bd Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Thu, 24 Jul 2025 11:34:58 -0500 Subject: [PATCH 50/58] docs(v6): update Angular examples for segment-button --- .../example_component_html.md} | 0 .../layout/angular/example_component_ts.md | 23 +++++++++++++++++++ .../usage/v6/segment-button/layout/index.md | 15 ++++++++++-- 3 files changed, 36 insertions(+), 2 deletions(-) rename static/usage/v6/segment-button/layout/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/segment-button/layout/angular/example_component_ts.md diff --git a/static/usage/v6/segment-button/layout/angular.md b/static/usage/v6/segment-button/layout/angular/example_component_html.md similarity index 100% rename from static/usage/v6/segment-button/layout/angular.md rename to static/usage/v6/segment-button/layout/angular/example_component_html.md diff --git a/static/usage/v6/segment-button/layout/angular/example_component_ts.md b/static/usage/v6/segment-button/layout/angular/example_component_ts.md new file mode 100644 index 00000000000..a28895e2963 --- /dev/null +++ b/static/usage/v6/segment-button/layout/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { call, heart, pin } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ call, heart, pin }); + } +} +``` \ No newline at end of file diff --git a/static/usage/v6/segment-button/layout/index.md b/static/usage/v6/segment-button/layout/index.md index 5ddcc6a17b8..7667f27685c 100644 --- a/static/usage/v6/segment-button/layout/index.md +++ b/static/usage/v6/segment-button/layout/index.md @@ -3,11 +3,22 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; From 050151398ee917ba80f1e5bd9ce75335a2207f30 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Thu, 24 Jul 2025 11:48:19 -0500 Subject: [PATCH 51/58] docs(v6): update Angular example for segment-button --- .../segment-button/layout/angular/example_component_ts.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/static/usage/v6/segment-button/layout/angular/example_component_ts.md b/static/usage/v6/segment-button/layout/angular/example_component_ts.md index a28895e2963..d9efe5ebb6b 100644 --- a/static/usage/v6/segment-button/layout/angular/example_component_ts.md +++ b/static/usage/v6/segment-button/layout/angular/example_component_ts.md @@ -5,10 +5,10 @@ import { addIcons } from 'ionicons'; import { call, heart, pin } from 'ionicons/icons'; @Component({ - selector: 'app-example', - templateUrl: 'example.component.html', - imports: [IonicModule], - standalone: true + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor() { From 626a46f4499171cc181a72646440b839702fe54c Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Thu, 24 Jul 2025 12:57:58 -0500 Subject: [PATCH 52/58] docs(v6): update Angular examples for select --- .../angular/example_component_ts.md | 4 ++++ .../angular/example_component_ts.md | 3 +++ .../angular/example_component_ts.md | 3 +++ .../angular/example_component_ts.md | 4 ++++ .../angular/example_component_ts.md | 4 ++++ .../select/typeahead/angular/app_module_ts.md | 19 ------------------- .../typeahead/angular/example_component_ts.md | 5 ++++- .../angular/modal-example_component_ts.md | 7 +++++-- static/usage/v6/select/typeahead/index.md | 2 -- 9 files changed, 27 insertions(+), 24 deletions(-) delete mode 100644 static/usage/v6/select/typeahead/angular/app_module_ts.md diff --git a/static/usage/v6/select/basic/responding-to-interaction/angular/example_component_ts.md b/static/usage/v6/select/basic/responding-to-interaction/angular/example_component_ts.md index 18c0b1eaa1b..bb9cd83a61d 100644 --- a/static/usage/v6/select/basic/responding-to-interaction/angular/example_component_ts.md +++ b/static/usage/v6/select/basic/responding-to-interaction/angular/example_component_ts.md @@ -1,9 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [CommonModule, IonicModule], + standalone: true }) export class ExampleComponent { logs: string[] = []; diff --git a/static/usage/v6/select/customization/interface-options/angular/example_component_ts.md b/static/usage/v6/select/customization/interface-options/angular/example_component_ts.md index c3f34d0adaf..182ba06c748 100644 --- a/static/usage/v6/select/customization/interface-options/angular/example_component_ts.md +++ b/static/usage/v6/select/customization/interface-options/angular/example_component_ts.md @@ -1,9 +1,12 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { customAlertOptions = { diff --git a/static/usage/v6/select/customization/styling-select/angular/example_component_ts.md b/static/usage/v6/select/customization/styling-select/angular/example_component_ts.md index 4db53a836a9..1b3dae1494b 100644 --- a/static/usage/v6/select/customization/styling-select/angular/example_component_ts.md +++ b/static/usage/v6/select/customization/styling-select/angular/example_component_ts.md @@ -1,10 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', styleUrls: ['example.component.css'], + imports: [IonicModule], + standalone: true }) export class ExampleComponent {} ``` diff --git a/static/usage/v6/select/objects-as-values/multiple-selection/angular/example_component_ts.md b/static/usage/v6/select/objects-as-values/multiple-selection/angular/example_component_ts.md index 76fa7e51e49..b40026fbcc5 100644 --- a/static/usage/v6/select/objects-as-values/multiple-selection/angular/example_component_ts.md +++ b/static/usage/v6/select/objects-as-values/multiple-selection/angular/example_component_ts.md @@ -1,9 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [CommonModule, IonicModule], + standalone: true }) export class ExampleComponent { currentFood = undefined; diff --git a/static/usage/v6/select/objects-as-values/using-comparewith/angular/example_component_ts.md b/static/usage/v6/select/objects-as-values/using-comparewith/angular/example_component_ts.md index afbd5f454cd..c4702a09f86 100644 --- a/static/usage/v6/select/objects-as-values/using-comparewith/angular/example_component_ts.md +++ b/static/usage/v6/select/objects-as-values/using-comparewith/angular/example_component_ts.md @@ -1,9 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [CommonModule, IonicModule], + standalone: true }) export class ExampleComponent { currentFood = undefined; diff --git a/static/usage/v6/select/typeahead/angular/app_module_ts.md b/static/usage/v6/select/typeahead/angular/app_module_ts.md deleted file mode 100644 index 0fa58037717..00000000000 --- a/static/usage/v6/select/typeahead/angular/app_module_ts.md +++ /dev/null @@ -1,19 +0,0 @@ -```ts -import { NgModule } from '@angular/core'; -import { BrowserModule } from '@angular/platform-browser'; -import { FormsModule } from '@angular/forms'; - -import { IonicModule } from '@ionic/angular'; - -import { AppComponent } from './app.component'; -import { ExampleComponent } from './example.component'; - -import { TypeaheadComponent } from './typeahead.component'; - -@NgModule({ - imports: [BrowserModule, FormsModule, IonicModule.forRoot({})], - declarations: [AppComponent, ExampleComponent, TypeaheadComponent], - bootstrap: [AppComponent], -}) -export class AppModule {} -``` diff --git a/static/usage/v6/select/typeahead/angular/example_component_ts.md b/static/usage/v6/select/typeahead/angular/example_component_ts.md index ded6fa60b0f..261d85387f2 100644 --- a/static/usage/v6/select/typeahead/angular/example_component_ts.md +++ b/static/usage/v6/select/typeahead/angular/example_component_ts.md @@ -1,11 +1,14 @@ ```ts import { Component, ViewChild } from '@angular/core'; -import { IonModal } from '@ionic/angular'; +import { IonicModule, IonModal } from '@ionic/angular'; +import { TypeaheadComponent } from './typeahead.component'; import { Item } from './types'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule, TypeaheadComponent], + standalone: true }) export class ExampleComponent { @ViewChild('modal', { static: true }) modal!: IonModal; diff --git a/static/usage/v6/select/typeahead/angular/modal-example_component_ts.md b/static/usage/v6/select/typeahead/angular/modal-example_component_ts.md index 9bd21f1b404..7fa35713398 100644 --- a/static/usage/v6/select/typeahead/angular/modal-example_component_ts.md +++ b/static/usage/v6/select/typeahead/angular/modal-example_component_ts.md @@ -1,11 +1,14 @@ ```ts -import { Component, Input, Output, EventEmitter } from '@angular/core'; -import type { OnInit } from '@angular/core'; +import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { IonicModule } from '@ionic/angular'; import { Item } from './types'; @Component({ selector: 'app-typeahead', templateUrl: 'typeahead.component.html', + imports: [CommonModule, IonicModule], + standalone: true }) export class TypeaheadComponent implements OnInit { @Input() items: Item[] = []; diff --git a/static/usage/v6/select/typeahead/index.md b/static/usage/v6/select/typeahead/index.md index aa76c597de1..bd7317bc117 100644 --- a/static/usage/v6/select/typeahead/index.md +++ b/static/usage/v6/select/typeahead/index.md @@ -10,7 +10,6 @@ import vue_example from './vue/example_vue.md'; import vue_types_ts from './vue/vue_types_ts.md'; import vue_typeahead_component from './vue/typeahead_component_vue.md'; -import angular_app_module_ts from './angular/app_module_ts.md'; import angular_example_component_html from './angular/example_component_html.md'; import angular_example_component_ts from './angular/example_component_ts.md'; import angular_modal_example_component_ts from './angular/modal-example_component_ts.md'; @@ -41,7 +40,6 @@ import angular_types_ts from './angular/angular_types_ts.md'; 'src/app/example.component.ts': angular_example_component_ts, 'src/app/typeahead.component.html': angular_modal_example_component_html, 'src/app/typeahead.component.ts': angular_modal_example_component_ts, - 'src/app/app.module.ts': angular_app_module_ts, 'src/app/types.ts': angular_types_ts, }, }, From d243ff3448c7c2e658917c1b857c1f9119677488 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Thu, 24 Jul 2025 15:24:25 -0500 Subject: [PATCH 53/58] docs(v6): update Angular example for router --- .../tabs/router/angular/app_component_html.md | 3 -- .../v6/tabs/router/angular/app_module_ts.md | 19 --------- .../v6/tabs/router/angular/app_routes_ts.md | 33 +++++++++++++++ .../router/angular/app_routing_module_ts.md | 42 ------------------- .../router/angular/example_component_html.md | 9 ++-- .../router/angular/example_component_ts.md | 25 +++++++++++ .../router/angular/home_page_component_ts.md | 4 ++ .../router/angular/home_page_module_ts.md | 14 ------- .../angular/library_page_component_ts.md | 4 ++ .../router/angular/library_page_module_ts.md | 14 ------- .../router/angular/radio_page_component_ts.md | 4 ++ .../router/angular/radio_page_module_ts.md | 14 ------- .../angular/search_page_component_ts.md | 4 ++ .../router/angular/search_page_module_ts.md | 14 ------- static/usage/v6/tabs/router/index.md | 20 +++------ 15 files changed, 84 insertions(+), 139 deletions(-) delete mode 100644 static/usage/v6/tabs/router/angular/app_component_html.md delete mode 100644 static/usage/v6/tabs/router/angular/app_module_ts.md create mode 100644 static/usage/v6/tabs/router/angular/app_routes_ts.md delete mode 100644 static/usage/v6/tabs/router/angular/app_routing_module_ts.md create mode 100644 static/usage/v6/tabs/router/angular/example_component_ts.md delete mode 100644 static/usage/v6/tabs/router/angular/home_page_module_ts.md delete mode 100644 static/usage/v6/tabs/router/angular/library_page_module_ts.md delete mode 100644 static/usage/v6/tabs/router/angular/radio_page_module_ts.md delete mode 100644 static/usage/v6/tabs/router/angular/search_page_module_ts.md diff --git a/static/usage/v6/tabs/router/angular/app_component_html.md b/static/usage/v6/tabs/router/angular/app_component_html.md deleted file mode 100644 index 7636539f28a..00000000000 --- a/static/usage/v6/tabs/router/angular/app_component_html.md +++ /dev/null @@ -1,3 +0,0 @@ -```html - -``` diff --git a/static/usage/v6/tabs/router/angular/app_module_ts.md b/static/usage/v6/tabs/router/angular/app_module_ts.md deleted file mode 100644 index e36b8c6316e..00000000000 --- a/static/usage/v6/tabs/router/angular/app_module_ts.md +++ /dev/null @@ -1,19 +0,0 @@ -```ts -import { NgModule } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { BrowserModule } from '@angular/platform-browser'; - -import { IonicModule } from '@ionic/angular'; - -import { AppComponent } from './app.component'; -import { ExampleComponent } from './example.component'; - -import { AppRoutingModule } from './app-routing.module'; - -@NgModule({ - imports: [BrowserModule, FormsModule, AppRoutingModule, IonicModule.forRoot({})], - declarations: [AppComponent, ExampleComponent], - bootstrap: [AppComponent], -}) -export class AppModule {} -``` diff --git a/static/usage/v6/tabs/router/angular/app_routes_ts.md b/static/usage/v6/tabs/router/angular/app_routes_ts.md new file mode 100644 index 00000000000..12354f4efa7 --- /dev/null +++ b/static/usage/v6/tabs/router/angular/app_routes_ts.md @@ -0,0 +1,33 @@ +```ts +import { Routes } from '@angular/router'; + +export const routes: Routes = [ + { + path: '', + loadComponent: () => import('./example.component').then((m) => m.ExampleComponent), + children: [ + { + path: 'home', + loadComponent: () => import('./home/home-page.component').then((m) => m.HomePageComponent), + }, + { + path: 'radio', + loadComponent: () => import('./radio/radio-page.component').then((m) => m.RadioPageComponent), + }, + { + path: 'library', + loadComponent: () => import('./library/library-page.component').then((m) => m.LibraryPageComponent), + }, + { + path: 'search', + loadComponent: () => import('./search/search-page.component').then((m) => m.SearchPageComponent), + }, + { + path: '', + redirectTo: '/home', + pathMatch: 'full', + }, + ] + }, +]; +``` \ No newline at end of file diff --git a/static/usage/v6/tabs/router/angular/app_routing_module_ts.md b/static/usage/v6/tabs/router/angular/app_routing_module_ts.md deleted file mode 100644 index 7ff1067030f..00000000000 --- a/static/usage/v6/tabs/router/angular/app_routing_module_ts.md +++ /dev/null @@ -1,42 +0,0 @@ -```ts -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; - -import { ExampleComponent } from './example.component'; - -@NgModule({ - imports: [ - RouterModule.forRoot([ - { - path: '', - component: ExampleComponent, - children: [ - { - path: '', - pathMatch: 'full', - redirectTo: 'home', - }, - { - path: 'home', - loadChildren: () => import('./home/home-page.module').then((m) => m.HomePageModule), - }, - { - path: 'radio', - loadChildren: () => import('./radio/radio-page.module').then((m) => m.RadioPageModule), - }, - { - path: 'library', - loadChildren: () => import('./library/library-page.module').then((m) => m.LibraryPageModule), - }, - { - path: 'search', - loadChildren: () => import('./search/search-page.module').then((m) => m.SearchPageModule), - }, - ], - }, - ]), - ], - exports: [RouterModule], -}) -export class AppRoutingModule {} -``` diff --git a/static/usage/v6/tabs/router/angular/example_component_html.md b/static/usage/v6/tabs/router/angular/example_component_html.md index 67be68b564c..50736b8d969 100644 --- a/static/usage/v6/tabs/router/angular/example_component_html.md +++ b/static/usage/v6/tabs/router/angular/example_component_html.md @@ -1,19 +1,20 @@ ```html + - + Listen Now - + Radio - + Library - + Search diff --git a/static/usage/v6/tabs/router/angular/example_component_ts.md b/static/usage/v6/tabs/router/angular/example_component_ts.md new file mode 100644 index 00000000000..6c41e6987d3 --- /dev/null +++ b/static/usage/v6/tabs/router/angular/example_component_ts.md @@ -0,0 +1,25 @@ +```ts +import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterModule } from '@angular/router'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { playCircle, library, radio, search } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [CommonModule, IonicModule, RouterModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ playCircle, library, radio, search }); + } +} +``` \ No newline at end of file diff --git a/static/usage/v6/tabs/router/angular/home_page_component_ts.md b/static/usage/v6/tabs/router/angular/home_page_component_ts.md index 9e2ef0a3e8c..72d45fbf0b6 100644 --- a/static/usage/v6/tabs/router/angular/home_page_component_ts.md +++ b/static/usage/v6/tabs/router/angular/home_page_component_ts.md @@ -1,9 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-home-page', templateUrl: './home-page.component.html', + imports: [IonicModule], + standalone: true }) export class HomePageComponent {} + ``` diff --git a/static/usage/v6/tabs/router/angular/home_page_module_ts.md b/static/usage/v6/tabs/router/angular/home_page_module_ts.md deleted file mode 100644 index 2a1fb15b460..00000000000 --- a/static/usage/v6/tabs/router/angular/home_page_module_ts.md +++ /dev/null @@ -1,14 +0,0 @@ -```ts -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { HomePageComponent } from './home-page.component'; - -import { IonicModule } from '@ionic/angular'; - -@NgModule({ - imports: [IonicModule, RouterModule.forChild([{ path: '', component: HomePageComponent }])], - declarations: [HomePageComponent], - exports: [HomePageComponent], -}) -export class HomePageModule {} -``` diff --git a/static/usage/v6/tabs/router/angular/library_page_component_ts.md b/static/usage/v6/tabs/router/angular/library_page_component_ts.md index f5a92a4868a..e98a5767193 100644 --- a/static/usage/v6/tabs/router/angular/library_page_component_ts.md +++ b/static/usage/v6/tabs/router/angular/library_page_component_ts.md @@ -1,9 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-library-page', templateUrl: './library-page.component.html', + imports: [IonicModule], + standalone: true }) export class LibraryPageComponent {} + ``` diff --git a/static/usage/v6/tabs/router/angular/library_page_module_ts.md b/static/usage/v6/tabs/router/angular/library_page_module_ts.md deleted file mode 100644 index 8e2ab48cf39..00000000000 --- a/static/usage/v6/tabs/router/angular/library_page_module_ts.md +++ /dev/null @@ -1,14 +0,0 @@ -```ts -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { IonicModule } from '@ionic/angular'; - -import { LibraryPageComponent } from './library-page.component'; - -@NgModule({ - imports: [IonicModule, RouterModule.forChild([{ path: '', component: LibraryPageComponent }])], - declarations: [LibraryPageComponent], - exports: [LibraryPageComponent], -}) -export class LibraryPageModule {} -``` diff --git a/static/usage/v6/tabs/router/angular/radio_page_component_ts.md b/static/usage/v6/tabs/router/angular/radio_page_component_ts.md index d29209c00dd..0a0e41154be 100644 --- a/static/usage/v6/tabs/router/angular/radio_page_component_ts.md +++ b/static/usage/v6/tabs/router/angular/radio_page_component_ts.md @@ -1,9 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-radio-page', templateUrl: './radio-page.component.html', + imports: [IonicModule], + standalone: true }) export class RadioPageComponent {} + ``` diff --git a/static/usage/v6/tabs/router/angular/radio_page_module_ts.md b/static/usage/v6/tabs/router/angular/radio_page_module_ts.md deleted file mode 100644 index f50a0088632..00000000000 --- a/static/usage/v6/tabs/router/angular/radio_page_module_ts.md +++ /dev/null @@ -1,14 +0,0 @@ -```ts -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { RadioPageComponent } from './radio-page.component'; - -import { IonicModule } from '@ionic/angular'; - -@NgModule({ - imports: [IonicModule, RouterModule.forChild([{ path: '', component: RadioPageComponent }])], - declarations: [RadioPageComponent], - exports: [RadioPageComponent], -}) -export class RadioPageModule {} -``` diff --git a/static/usage/v6/tabs/router/angular/search_page_component_ts.md b/static/usage/v6/tabs/router/angular/search_page_component_ts.md index bd6e723d332..1c4f7e91650 100644 --- a/static/usage/v6/tabs/router/angular/search_page_component_ts.md +++ b/static/usage/v6/tabs/router/angular/search_page_component_ts.md @@ -1,9 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-search-page', templateUrl: './search-page.component.html', + imports: [IonicModule], + standalone: true }) export class SearchPageComponent {} + ``` diff --git a/static/usage/v6/tabs/router/angular/search_page_module_ts.md b/static/usage/v6/tabs/router/angular/search_page_module_ts.md deleted file mode 100644 index a1d599c5d9b..00000000000 --- a/static/usage/v6/tabs/router/angular/search_page_module_ts.md +++ /dev/null @@ -1,14 +0,0 @@ -```ts -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { SearchPageComponent } from './search-page.component'; - -import { IonicModule } from '@ionic/angular'; - -@NgModule({ - imports: [IonicModule, RouterModule.forChild([{ path: '', component: SearchPageComponent }])], - declarations: [SearchPageComponent], - exports: [SearchPageComponent], -}) -export class SearchPageModule {} -``` diff --git a/static/usage/v6/tabs/router/index.md b/static/usage/v6/tabs/router/index.md index 7acff190150..bd728e9f3df 100644 --- a/static/usage/v6/tabs/router/index.md +++ b/static/usage/v6/tabs/router/index.md @@ -2,28 +2,22 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; -import angular_app_component_html from './angular/app_component_html.md'; -import angular_app_module_ts from './angular/app_module_ts.md'; -import angular_app_routing_module_ts from './angular/app_routing_module_ts.md'; - import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; -import angular_home_page_module_ts from './angular/home_page_module_ts.md'; import angular_home_page_component_ts from './angular/home_page_component_ts.md'; import angular_home_page_component_html from './angular/home_page_component_html.md'; -import angular_library_page_module_ts from './angular/library_page_module_ts.md'; import angular_library_page_component_ts from './angular/library_page_component_ts.md'; import angular_library_page_component_html from './angular/library_page_component_html.md'; -import angular_radio_page_module_ts from './angular/radio_page_module_ts.md'; import angular_radio_page_component_ts from './angular/radio_page_component_ts.md'; import angular_radio_page_component_html from './angular/radio_page_component_html.md'; -import angular_search_page_module_ts from './angular/search_page_module_ts.md'; import angular_search_page_component_ts from './angular/search_page_component_ts.md'; import angular_search_page_component_html from './angular/search_page_component_html.md'; +import app_routes_ts from './angular/app_routes_ts.md'; import angular_global_css from './angular/global_css.md'; import vue_app_vue from './vue/app_vue.md'; @@ -48,22 +42,18 @@ import react_search_page_tsx from './react/search_page_tsx.md'; angular: { files: { 'src/app/example.component.html': angular_example_component_html, + 'src/app/example.component.ts': angular_example_component_ts, + 'src/app/app.routes.ts': + app_routes_ts, 'src/app/home/home-page.component.ts': angular_home_page_component_ts, 'src/app/home/home-page.component.html': angular_home_page_component_html, 'src/global.css': angular_global_css, - 'src/app/home/home-page.module.ts': angular_home_page_module_ts, 'src/app/library/library-page.component.ts': angular_library_page_component_ts, 'src/app/library/library-page.component.html': angular_library_page_component_html, - 'src/app/library/library-page.module.ts': angular_library_page_module_ts, 'src/app/radio/radio-page.component.ts': angular_radio_page_component_ts, 'src/app/radio/radio-page.component.html': angular_radio_page_component_html, - 'src/app/radio/radio-page.module.ts': angular_radio_page_module_ts, 'src/app/search/search-page.component.ts': angular_search_page_component_ts, 'src/app/search/search-page.component.html': angular_search_page_component_html, - 'src/app/search/search-page.module.ts': angular_search_page_module_ts, - 'src/app/app.module.ts': angular_app_module_ts, - 'src/app/app.component.html': angular_app_component_html, - 'src/app/app-routing.module.ts': angular_app_routing_module_ts, }, }, vue: { From 2ee2ea98ac5ad421702fb99ef9e39494d0dcff9e Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Thu, 24 Jul 2025 16:35:46 -0500 Subject: [PATCH 54/58] docs(v6): update Angular examples for toast --- .../toast/buttons/angular/example_component_ts.md | 4 +++- .../v6/toast/icon/angular/example_component_ts.md | 15 +++++++++++++-- .../toast/layout/angular/example_component_ts.md | 5 +++-- .../controller/angular/example_component_ts.md | 4 +++- .../toast/theming/angular/example_component_ts.md | 4 +++- 5 files changed, 25 insertions(+), 7 deletions(-) diff --git a/static/usage/v6/toast/buttons/angular/example_component_ts.md b/static/usage/v6/toast/buttons/angular/example_component_ts.md index faf1f33ed5b..3ecbef74070 100644 --- a/static/usage/v6/toast/buttons/angular/example_component_ts.md +++ b/static/usage/v6/toast/buttons/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { ToastController } from '@ionic/angular'; +import { IonicModule, ToastController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { handlerMessage = ''; diff --git a/static/usage/v6/toast/icon/angular/example_component_ts.md b/static/usage/v6/toast/icon/angular/example_component_ts.md index d72053bd950..76fb647250e 100644 --- a/static/usage/v6/toast/icon/angular/example_component_ts.md +++ b/static/usage/v6/toast/icon/angular/example_component_ts.md @@ -1,13 +1,24 @@ ```ts import { Component } from '@angular/core'; -import { ToastController } from '@ionic/angular'; +import { IonicModule, ToastController } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { globe } from 'ionicons/icons'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { - constructor(private toastController: ToastController) {} + constructor(private toastController: ToastController) { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ globe }); + } async presentToast() { const toast = await this.toastController.create({ diff --git a/static/usage/v6/toast/layout/angular/example_component_ts.md b/static/usage/v6/toast/layout/angular/example_component_ts.md index 01636b04a97..c8193f8d7f4 100644 --- a/static/usage/v6/toast/layout/angular/example_component_ts.md +++ b/static/usage/v6/toast/layout/angular/example_component_ts.md @@ -1,11 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { ToastController } from '@ionic/angular'; -import type { ToastOptions } from '@ionic/angular'; +import { IonicModule, ToastController, ToastOptions } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private toastController: ToastController) {} diff --git a/static/usage/v6/toast/presenting/controller/angular/example_component_ts.md b/static/usage/v6/toast/presenting/controller/angular/example_component_ts.md index db133a99f1e..7ca690867d4 100644 --- a/static/usage/v6/toast/presenting/controller/angular/example_component_ts.md +++ b/static/usage/v6/toast/presenting/controller/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { ToastController } from '@ionic/angular'; +import { IonicModule, ToastController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private toastController: ToastController) {} diff --git a/static/usage/v6/toast/theming/angular/example_component_ts.md b/static/usage/v6/toast/theming/angular/example_component_ts.md index 7f490b9bacc..e537ed3839c 100644 --- a/static/usage/v6/toast/theming/angular/example_component_ts.md +++ b/static/usage/v6/toast/theming/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { ToastController } from '@ionic/angular'; +import { IonicModule, ToastController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private toastController: ToastController) {} From 5934210a1596f39407825ac12b305eee225aabcb Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Fri, 25 Jul 2025 10:20:26 -0500 Subject: [PATCH 55/58] docs(v6): update Angular examples for toolbar --- .../example_component_html.md} | 0 .../buttons/angular/example_component_ts.md | 23 +++++++++++++++++++ static/usage/v6/toolbar/buttons/index.md | 15 ++++++++++-- 3 files changed, 36 insertions(+), 2 deletions(-) rename static/usage/v6/toolbar/buttons/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/toolbar/buttons/angular/example_component_ts.md diff --git a/static/usage/v6/toolbar/buttons/angular.md b/static/usage/v6/toolbar/buttons/angular/example_component_html.md similarity index 100% rename from static/usage/v6/toolbar/buttons/angular.md rename to static/usage/v6/toolbar/buttons/angular/example_component_html.md diff --git a/static/usage/v6/toolbar/buttons/angular/example_component_ts.md b/static/usage/v6/toolbar/buttons/angular/example_component_ts.md new file mode 100644 index 00000000000..34d9c7d9c6a --- /dev/null +++ b/static/usage/v6/toolbar/buttons/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { personCircle, search, ellipsisHorizontal, ellipsisVertical, helpCircle, star, create } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent{ + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ personCircle, search, ellipsisHorizontal, ellipsisVertical, helpCircle, star, create }); + } +} +``` \ No newline at end of file diff --git a/static/usage/v6/toolbar/buttons/index.md b/static/usage/v6/toolbar/buttons/index.md index 2ac28550f9d..2423b16df41 100644 --- a/static/usage/v6/toolbar/buttons/index.md +++ b/static/usage/v6/toolbar/buttons/index.md @@ -3,11 +3,22 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; From 28795fba12ccb91d04d3873281f86bdc3fe5d708 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Fri, 25 Jul 2025 10:43:01 -0500 Subject: [PATCH 56/58] docs(v6): update Angular example for buttons --- .../example_component_html.md} | 0 .../types/angular/example_component_ts.md | 23 +++++++++++++++++++ static/usage/v6/buttons/types/index.md | 15 ++++++++++-- 3 files changed, 36 insertions(+), 2 deletions(-) rename static/usage/v6/buttons/types/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/buttons/types/angular/example_component_ts.md diff --git a/static/usage/v6/buttons/types/angular.md b/static/usage/v6/buttons/types/angular/example_component_html.md similarity index 100% rename from static/usage/v6/buttons/types/angular.md rename to static/usage/v6/buttons/types/angular/example_component_html.md diff --git a/static/usage/v6/buttons/types/angular/example_component_ts.md b/static/usage/v6/buttons/types/angular/example_component_ts.md new file mode 100644 index 00000000000..34d9c7d9c6a --- /dev/null +++ b/static/usage/v6/buttons/types/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { personCircle, search, ellipsisHorizontal, ellipsisVertical, helpCircle, star, create } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent{ + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ personCircle, search, ellipsisHorizontal, ellipsisVertical, helpCircle, star, create }); + } +} +``` \ No newline at end of file diff --git a/static/usage/v6/buttons/types/index.md b/static/usage/v6/buttons/types/index.md index f0bee55af1c..dc1a527af29 100644 --- a/static/usage/v6/buttons/types/index.md +++ b/static/usage/v6/buttons/types/index.md @@ -3,11 +3,22 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; From b9b4fd06e898e52471ef73093f35a95aae04b524 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Fri, 25 Jul 2025 11:09:54 -0500 Subject: [PATCH 57/58] docs(v6): update Angular examples for back-button --- .../basic/angular/app_module_ts.md | 20 ------------------- .../basic/angular/example_component_ts.md | 4 +++- .../basic/angular/page_one_component_ts.md | 4 +++- .../basic/angular/page_two_component_ts.md | 3 +++ static/usage/v6/back-button/basic/index.md | 2 -- .../custom/angular/app_module_ts.md | 20 ------------------- .../custom/angular/example_component_ts.md | 3 +++ .../custom/angular/page_one_component_ts.md | 4 +++- .../custom/angular/page_two_component_ts.md | 16 ++++++++++++++- static/usage/v6/back-button/custom/index.md | 2 -- 10 files changed, 30 insertions(+), 48 deletions(-) delete mode 100644 static/usage/v6/back-button/basic/angular/app_module_ts.md delete mode 100644 static/usage/v6/back-button/custom/angular/app_module_ts.md diff --git a/static/usage/v6/back-button/basic/angular/app_module_ts.md b/static/usage/v6/back-button/basic/angular/app_module_ts.md deleted file mode 100644 index 3c20b511446..00000000000 --- a/static/usage/v6/back-button/basic/angular/app_module_ts.md +++ /dev/null @@ -1,20 +0,0 @@ -```ts -import { NgModule } from '@angular/core'; -import { BrowserModule } from '@angular/platform-browser'; -import { RouterModule } from '@angular/router'; - -import { IonicModule } from '@ionic/angular'; - -import { AppComponent } from './app.component'; -import { ExampleComponent } from './example.component'; - -import { PageOneComponent } from './page-one.component'; -import { PageTwoComponent } from './page-two.component'; - -@NgModule({ - imports: [BrowserModule, RouterModule.forRoot([]), IonicModule.forRoot({})], - declarations: [AppComponent, ExampleComponent, PageOneComponent, PageTwoComponent], - bootstrap: [AppComponent], -}) -export class AppModule {} -``` diff --git a/static/usage/v6/back-button/basic/angular/example_component_ts.md b/static/usage/v6/back-button/basic/angular/example_component_ts.md index b123a4858ce..370b2ed24e1 100644 --- a/static/usage/v6/back-button/basic/angular/example_component_ts.md +++ b/static/usage/v6/back-button/basic/angular/example_component_ts.md @@ -1,11 +1,13 @@ ```ts import { Component } from '@angular/core'; - +import { IonicModule } from '@ionic/angular'; import { PageOneComponent } from './page-one.component'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { component = PageOneComponent; diff --git a/static/usage/v6/back-button/basic/angular/page_one_component_ts.md b/static/usage/v6/back-button/basic/angular/page_one_component_ts.md index d181c5a5268..821db5df9a4 100644 --- a/static/usage/v6/back-button/basic/angular/page_one_component_ts.md +++ b/static/usage/v6/back-button/basic/angular/page_one_component_ts.md @@ -1,6 +1,6 @@ ```ts import { Component } from '@angular/core'; - +import { IonicModule } from '@ionic/angular'; import { PageTwoComponent } from './page-two.component'; @Component({ @@ -19,6 +19,8 @@ import { PageTwoComponent } from './page-two.component'; `, + imports: [IonicModule], + standalone: true }) export class PageOneComponent { component = PageTwoComponent; diff --git a/static/usage/v6/back-button/basic/angular/page_two_component_ts.md b/static/usage/v6/back-button/basic/angular/page_two_component_ts.md index b2cda11d2a8..8caa5a483e8 100644 --- a/static/usage/v6/back-button/basic/angular/page_two_component_ts.md +++ b/static/usage/v6/back-button/basic/angular/page_two_component_ts.md @@ -1,5 +1,6 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-page-two', @@ -17,6 +18,8 @@ import { Component } from '@angular/core';

Use the back button to navigate to the previous page.

`, + imports: [IonicModule], + standalone: true }) export class PageTwoComponent {} ``` diff --git a/static/usage/v6/back-button/basic/index.md b/static/usage/v6/back-button/basic/index.md index 6c29748fe6f..5015c2398fe 100644 --- a/static/usage/v6/back-button/basic/index.md +++ b/static/usage/v6/back-button/basic/index.md @@ -2,7 +2,6 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; -import angular_app_module_ts from './angular/app_module_ts.md'; import angular_example_component_html from './angular/example_component_html.md'; import angular_example_component_ts from './angular/example_component_ts.md'; import angular_page_one_component_ts from './angular/page_one_component_ts.md'; @@ -26,7 +25,6 @@ import vue_page_two from './vue/page_two_vue.md'; 'src/app/example.component.ts': angular_example_component_ts, 'src/app/page-one.component.ts': angular_page_one_component_ts, 'src/app/page-two.component.ts': angular_page_two_component_ts, - 'src/app/app.module.ts': angular_app_module_ts, }, }, react: { diff --git a/static/usage/v6/back-button/custom/angular/app_module_ts.md b/static/usage/v6/back-button/custom/angular/app_module_ts.md deleted file mode 100644 index 3c20b511446..00000000000 --- a/static/usage/v6/back-button/custom/angular/app_module_ts.md +++ /dev/null @@ -1,20 +0,0 @@ -```ts -import { NgModule } from '@angular/core'; -import { BrowserModule } from '@angular/platform-browser'; -import { RouterModule } from '@angular/router'; - -import { IonicModule } from '@ionic/angular'; - -import { AppComponent } from './app.component'; -import { ExampleComponent } from './example.component'; - -import { PageOneComponent } from './page-one.component'; -import { PageTwoComponent } from './page-two.component'; - -@NgModule({ - imports: [BrowserModule, RouterModule.forRoot([]), IonicModule.forRoot({})], - declarations: [AppComponent, ExampleComponent, PageOneComponent, PageTwoComponent], - bootstrap: [AppComponent], -}) -export class AppModule {} -``` diff --git a/static/usage/v6/back-button/custom/angular/example_component_ts.md b/static/usage/v6/back-button/custom/angular/example_component_ts.md index b123a4858ce..ea06d82a402 100644 --- a/static/usage/v6/back-button/custom/angular/example_component_ts.md +++ b/static/usage/v6/back-button/custom/angular/example_component_ts.md @@ -1,11 +1,14 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; import { PageOneComponent } from './page-one.component'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { component = PageOneComponent; diff --git a/static/usage/v6/back-button/custom/angular/page_one_component_ts.md b/static/usage/v6/back-button/custom/angular/page_one_component_ts.md index d181c5a5268..821db5df9a4 100644 --- a/static/usage/v6/back-button/custom/angular/page_one_component_ts.md +++ b/static/usage/v6/back-button/custom/angular/page_one_component_ts.md @@ -1,6 +1,6 @@ ```ts import { Component } from '@angular/core'; - +import { IonicModule } from '@ionic/angular'; import { PageTwoComponent } from './page-two.component'; @Component({ @@ -19,6 +19,8 @@ import { PageTwoComponent } from './page-two.component'; `, + imports: [IonicModule], + standalone: true }) export class PageOneComponent { component = PageTwoComponent; diff --git a/static/usage/v6/back-button/custom/angular/page_two_component_ts.md b/static/usage/v6/back-button/custom/angular/page_two_component_ts.md index 05a1bd64d79..2cfa4a7dfbd 100644 --- a/static/usage/v6/back-button/custom/angular/page_two_component_ts.md +++ b/static/usage/v6/back-button/custom/angular/page_two_component_ts.md @@ -1,5 +1,8 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { caretBack } from 'ionicons/icons'; @Component({ selector: 'app-page-two', @@ -17,6 +20,17 @@ import { Component } from '@angular/core';

Use the back button to navigate to the previous page.

`, + imports: [IonicModule], + standalone: true }) -export class PageTwoComponent {} +export class PageTwoComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ caretBack }); + } +} ``` diff --git a/static/usage/v6/back-button/custom/index.md b/static/usage/v6/back-button/custom/index.md index 30f58541ecb..69bde337fa3 100644 --- a/static/usage/v6/back-button/custom/index.md +++ b/static/usage/v6/back-button/custom/index.md @@ -2,7 +2,6 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; -import angular_app_module_ts from './angular/app_module_ts.md'; import angular_example_component_html from './angular/example_component_html.md'; import angular_example_component_ts from './angular/example_component_ts.md'; import angular_page_one_component_ts from './angular/page_one_component_ts.md'; @@ -26,7 +25,6 @@ import vue_page_two from './vue/page_two_vue.md'; 'src/app/example.component.ts': angular_example_component_ts, 'src/app/page-one.component.ts': angular_page_one_component_ts, 'src/app/page-two.component.ts': angular_page_two_component_ts, - 'src/app/app.module.ts': angular_app_module_ts, }, }, react: { From f48db54f1796cf1616d489cc1480b8b26b075d12 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Fri, 25 Jul 2025 11:20:33 -0500 Subject: [PATCH 58/58] docs(v6): update Angular example for text --- .../example_component_html.md} | 0 .../basic/angular/example_component_ts.md | 23 +++++++++++++++++++ static/usage/v6/text/basic/index.md | 18 +++++++++++++-- 3 files changed, 39 insertions(+), 2 deletions(-) rename static/usage/v6/text/basic/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/text/basic/angular/example_component_ts.md diff --git a/static/usage/v6/text/basic/angular.md b/static/usage/v6/text/basic/angular/example_component_html.md similarity index 100% rename from static/usage/v6/text/basic/angular.md rename to static/usage/v6/text/basic/angular/example_component_html.md diff --git a/static/usage/v6/text/basic/angular/example_component_ts.md b/static/usage/v6/text/basic/angular/example_component_ts.md new file mode 100644 index 00000000000..6ed4de437b4 --- /dev/null +++ b/static/usage/v6/text/basic/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { warning } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ warning }); + } +} +``` diff --git a/static/usage/v6/text/basic/index.md b/static/usage/v6/text/basic/index.md index 06efaf44145..24f162c246d 100644 --- a/static/usage/v6/text/basic/index.md +++ b/static/usage/v6/text/basic/index.md @@ -3,6 +3,20 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; - +