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/36] 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/36] 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/36] 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/36] 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/36] 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/36] 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/36] 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/36] 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/36] 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/36] 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/36] 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/36] 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/36] 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/36] 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/36] 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/36] 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/36] 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/36] 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/36] 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/36] 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/36] 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/36] 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 zcmV;_3oG=AP)?0A{0j#!_R!KG;;6MosfC$)?2~xs-ErPWKmC0GM`c39!6wGWe4mO#~B`MQ0A9l31 z*r6h-jex-*+rJN-?}4FV2c2Rxs8!ghA^^D@lWeMmetmtYI1;7AA~jr+2@x{SR$vpx zzl5=4e8So%_tnmOrXXTB8<7Cy?`0Wee7&TXYGRd5xI{KU1cV)g2XlM;2IG_@&&YV# zasPHB!XPXGh6<~L7-tB!K3ow(4#G6#IOmnnDU&8mLRMxvrlqC~zt`6O0ADm;L!>aq z%C3J}e>9|PLTO9^cgW}Kj@)m~!`3Yum1l2scX#8Wy$Q!poI+b$JHkbBBJbLjhM;SO zpasxts!2V*c*_R7{8CZS*Hj-rg=!&0m~@I1H80o{HK-V%6j`$KAJCccr=_OiC-1$3 z#fuh(bRCV7Ns}hxvny8-21!&kPo0%>wDX>$H&ElC1V~9s|EYLd51q01$Gb6e#tei* z&YbK>M6fXKOcK);X9G11C_v8Qf->>+Gw6(B;qO=EFGD1d2+jYwrUdCQSeY^-%h7Sa z<+8sv3m6is0GCX zUzt-7So-C@1O6KL6ky2pltG8&*_J>}^76v}JX#Z(yXg5sU%xl`xlnhm$3<3V2Gk@o zBeKtPGG$fJD_#W{>it&e5c2=3f9A9lM2J;P-*{ao@hX6xdw<-***>bLJl`HAfS!9l z(cRMxwP|Y$D-HEza9fTCqXf`<@9*yJL3?}nb2;8~4PP|ZGubu#HVl-X6bQx;F86V+ch6Na^dJVCUhm7{| zxmu_}_3_hC6WR~!9*l*q{9i94g z7WsZd_Amn7G_b+Z@gGg9yHBVQ?-8 zUrrC2C!$BH+w?-aSOcc@U|JWB9*k^WX&!vdY+~{nV*&E*^oTXCyMx%^dT(C`#)&!< z2TXJ;D8`8i=79m5Nx2VqoS5J=$u={2A!tZyN-|Q!tEq?&0m$*V;zzASZM@Ultfe|RxDqN(&Eh{4DW)3$xm5^ zxjA!i_{fL&@0~js%P@x7Qu2(<3aGTdzwleD@#^*xBqW&qwwpL{B9@AU?)$A@qg6b{ zFuhW8nj%0FB4ooWFJjB4SAuR&B9REay}fYUY{6JXN}iq>@vgURC7bZl3*i;h3v%bv zP!zGjkW*2CNHQY=$j@&p*^K<>mLd|?uX|B>K7IBa#u{M@K*oRjtzAe@p9M7_5mJ&Z z_)z0n$asUzSzHiu3Pjlq8K0ijhBBk~e{~o=Jpp%i8v8nww1(w{a&7(Q{-?;mw_p|SB_!X@59B+!zivM*@P zl7bs_P%32}yUKQ`R^4g|tt%Wp@`36F8ySDo#&u#LDez4h7cXAMzr)=(%3%NM(}p}{ zUyx;bMxOYCHcI=ZPfvp$pw6-&cOI@bUsFwlP>fH^oH;|ernR*VvMeJML<)MQqqU`4 z5#WV&n=Nm=_G*dV3ZJK@Ou>>x3(<7tYQ!RhYJ3-IX-^|3$BLV`TF}?m7xZ<)^&Fy& zS&9p)s;#w{`RQp6JF`Lel7(T4yL`@y- z=Pra!p%Flnc%d$Hs$qN=Gy*6tGzB=`fX=PH-c+xg9x}W;nlWAt9YfjM-gkb8{N=%? z&T1N;NE8{<%9YEpEbrL>E&1@7Lc;>|n^6e^u;bg?l>#ylY8&63rAwd1Dj`IomlT$u z6Wd*{N1PX=cQ@qDnVNHc3$|^gn>8`MJKo}gnE$E1(bO=!6Mf`8VvO&HL7=L6Tk$5Z zzgxRzwdTerrc9nZILh3PM>ApMac`qe%=)ON?glr|8K6y{eJ++c|2UkclJV!y&q1_l zZ2TvhKELV^#aFib`=ibadhLxjnXkz?Ju+S7>8^q;|G8x`F+P!zk&fi#spS_NFN`=( zZqx`EstIVy(NKr6c8Q5JnndgC??;Sqyu0W7*`9BXx>LTisHl@UjS~x8OrHD=Sglz| zOh`aX;NETO^VCG6#R3;JXLG}G3%yUCAc}bH{e-!V$(mZ56HJ%K*M|aC%MMX1gi|$3T+Z8D{)3>8uMcUwZCY1k7eU#O z^?^Gy0;pqO7r8H(|VkR2WcWieG@=*);95hx}+HDz*8?Kx-V!314TLjDR9 z7ayIe-NQ}n0LB1!@7?!%lQ|jxz4Gsc^_@Cl3qTyNsVx%=%ttT=@L4qrw-Zj!cM*{Q z1O;XeR%OJAJ5St2V03c@my1I6`JO~908w?i)|w!(+OZ%)XXiuQzH?VeH3L<-!Jvu& z#Na{>D#SYU)`<;OS{OQX9JHv)K4RV50$ z$*_t4ppDBSW=L$d5XT~ZwsHmwy&iD^1x_w_8Gi!+007lShYA1y0Y^|wR7C&)0H4pFnbN42&!?HusF%{Gn9-(} z&!?HvsF~5In$oD5(WscxsF~8ImCvP`(x{x#shQNNnbE12(WjTwr2In$fD5(x;lws+!ZMnbM}2(W#l!r+=Bzr6 zrQ^1w;YY6GgJ4 zoYUtA+$Z2A9N^}&cQVR{a!4==PAJ3=}-ag zTQ8Qv(t)ccl_G}1$O9fLFQq6(h`W@6vqK|cpUXF)tpissjfi^;tZP!^(c!$Jj7UvL zjH!@<=h9fX9`pyo@dNb^jmgP1P!cRZ@Se`V4u6o9udm)vV)bV+l(_kZ^%WQ%@b)vP zufmX;xUHIwI#t3o^hqaf9bQL`;KalFT|p9#OBLasqckCaS5z7H-53^dOcnA8E1UtT z8`9#KK-qxUuIl3rcvLYSvSSUrRV`>DrEwZimUC9zK=r8hQNZPQRZa^mg)evwRKxN@ z1%Joj{kKSYUIUGfQXKIXDMLaGfO7_Fa)L|FBk3I4C}Q4I^rIw#m^1imK7u|nqX~5t z2>3Hf;uoq|z-E*TpQG=Dg3Cdb4r`GGHj2LB33}56Y}5B@Q3ZcMCqx6NNHC-!gQx-; zgkbR_ptlO_MHc*wMY4=jp`gly(FDiH5`Po#gn|JL`605vhDq}5m_WZ|bkAGkm!O8+!)_VJ(*#3Qscdg=tM0mglJb83L4@LsLJ4jW)taLOtL zWyfz|jJ(>MU!X|FG16!&9gsn8vBZX?bU+LfURRBv>%k;<(GsdYE!UCIn15g_hBFm{ z8y3JV3Q%FV0Sbh}k^;jGutd1rXNLIovxG<()YoTIs>j~eZk^4COCbR-=7}qNNEe6@ zBLSx!M_@bQeu~jd;6>yn$`!!Wh#bl2O`JJMKO)i?3xM}QUeNP^JR6T(6Y`2)1xQ$g z5k(=)qI>26X}0`P6{z>SQ)8<4D-MuY(@0Fd+=5S~-J2wM(+;X5XOUSjk~xHu({{h- zhRt-{H;3)t_Z|4;*pHvZvG5cV*!()F5mji`nz@zROv5L=`E<)%vm}fE4Nd~bzv7Ap 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 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 Date: Wed, 16 Jul 2025 10:13:40 -0400 Subject: [PATCH 24/36] 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 36b5cff83ee94197117bc9b66cbf81d5e523ed25 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 17 Jul 2025 06:12:30 -0700 Subject: [PATCH 25/36] chore(deps): update ionic to v8.6.5 (#4200) 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 91a623bcbf2..6cf52acc420 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.4", - "@ionic/core": "8.6.4", + "@ionic/angular": "8.6.5", + "@ionic/core": "8.6.5", "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 6b85efe2a20..e1d3912cfee 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.4", + "@ionic/core": "8.6.5", "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 ce933c0919b..13e52380005 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.4", - "@ionic/react-router": "8.6.4", + "@ionic/react": "8.6.5", + "@ionic/react-router": "8.6.5", "@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.4", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.6.4.tgz", - "integrity": "sha512-6kOx0yQAkXkMvhe6fQPA034LgmCh4aL0nJ+GwzNMwLYAe2fVq6mRdM37jNldGiGIZ0Q9Te2sHTFTM/IGItuIyQ==", + "version": "8.6.5", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.6.5.tgz", + "integrity": "sha512-HN+6/Q67fEEpRA86QzXSrCahuHwaTPBsa910RuvY0pIYuoY4rpzGPU9ZOQ5q2wBsrln921rroEPU1xdpPKIH8Q==", "dependencies": { "@stencil/core": "4.33.1", "ionicons": "^7.2.2", @@ -671,11 +671,11 @@ } }, "node_modules/@ionic/react": { - "version": "8.6.4", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.6.4.tgz", - "integrity": "sha512-X2jIi4TN/u9hlsy/BrubyJbIZ4Pn8cnbBFu/emQ1y7VH0rpVVWPgeHb8cKMJPNbKzszuvO+f5huGliNIYFIQ8A==", + "version": "8.6.5", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.6.5.tgz", + "integrity": "sha512-reUKqlU3cIJoHuDibB8WUd32a7nqg5aMsIfPnXOVydIUsJdvQnwjACbYiP0g+4AFzTVPsw/Cmyqh85GhXGw4WA==", "dependencies": { - "@ionic/core": "8.6.4", + "@ionic/core": "8.6.5", "ionicons": "^7.0.0", "tslib": "*" }, @@ -685,11 +685,11 @@ } }, "node_modules/@ionic/react-router": { - "version": "8.6.4", - "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-8.6.4.tgz", - "integrity": "sha512-AOPVK/aJv5MJMjWG3fpzAFtNq4WNOQFdU4YSpXcYAhmiAWuIIRobX3/bHT4Y3lXirXohqHbtFl50VMMe3rpVFA==", + "version": "8.6.5", + "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-8.6.5.tgz", + "integrity": "sha512-DGR7yHaNEneK1DwZ6D52vkKRICAAteiC1i9C6KgNGw24e1et83nE1gqa4s4EQ3ggbfWBkmWCs/9UBqU8oyG0Cg==", "dependencies": { - "@ionic/react": "8.6.4", + "@ionic/react": "8.6.5", "tslib": "*" }, "peerDependencies": { @@ -2215,9 +2215,9 @@ "optional": true }, "@ionic/core": { - "version": "8.6.4", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.6.4.tgz", - "integrity": "sha512-6kOx0yQAkXkMvhe6fQPA034LgmCh4aL0nJ+GwzNMwLYAe2fVq6mRdM37jNldGiGIZ0Q9Te2sHTFTM/IGItuIyQ==", + "version": "8.6.5", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.6.5.tgz", + "integrity": "sha512-HN+6/Q67fEEpRA86QzXSrCahuHwaTPBsa910RuvY0pIYuoY4rpzGPU9ZOQ5q2wBsrln921rroEPU1xdpPKIH8Q==", "requires": { "@stencil/core": "4.33.1", "ionicons": "^7.2.2", @@ -2225,21 +2225,21 @@ } }, "@ionic/react": { - "version": "8.6.4", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.6.4.tgz", - "integrity": "sha512-X2jIi4TN/u9hlsy/BrubyJbIZ4Pn8cnbBFu/emQ1y7VH0rpVVWPgeHb8cKMJPNbKzszuvO+f5huGliNIYFIQ8A==", + "version": "8.6.5", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.6.5.tgz", + "integrity": "sha512-reUKqlU3cIJoHuDibB8WUd32a7nqg5aMsIfPnXOVydIUsJdvQnwjACbYiP0g+4AFzTVPsw/Cmyqh85GhXGw4WA==", "requires": { - "@ionic/core": "8.6.4", + "@ionic/core": "8.6.5", "ionicons": "^7.0.0", "tslib": "*" } }, "@ionic/react-router": { - "version": "8.6.4", - "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-8.6.4.tgz", - "integrity": "sha512-AOPVK/aJv5MJMjWG3fpzAFtNq4WNOQFdU4YSpXcYAhmiAWuIIRobX3/bHT4Y3lXirXohqHbtFl50VMMe3rpVFA==", + "version": "8.6.5", + "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-8.6.5.tgz", + "integrity": "sha512-DGR7yHaNEneK1DwZ6D52vkKRICAAteiC1i9C6KgNGw24e1et83nE1gqa4s4EQ3ggbfWBkmWCs/9UBqU8oyG0Cg==", "requires": { - "@ionic/react": "8.6.4", + "@ionic/react": "8.6.5", "tslib": "*" } }, diff --git a/static/code/stackblitz/v8/react/package.json b/static/code/stackblitz/v8/react/package.json index e1a5d1090fc..07c566794e6 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.4", - "@ionic/react-router": "8.6.4", + "@ionic/react": "8.6.5", + "@ionic/react-router": "8.6.5", "@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 a63c5b831d3..7bccfd5f77b 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.4", - "@ionic/vue-router": "8.6.4", + "@ionic/vue": "8.6.5", + "@ionic/vue-router": "8.6.5", "vue": "^3.2.25", "vue-router": "4.5.1" }, @@ -463,9 +463,9 @@ } }, "node_modules/@ionic/core": { - "version": "8.6.4", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.6.4.tgz", - "integrity": "sha512-6kOx0yQAkXkMvhe6fQPA034LgmCh4aL0nJ+GwzNMwLYAe2fVq6mRdM37jNldGiGIZ0Q9Te2sHTFTM/IGItuIyQ==", + "version": "8.6.5", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.6.5.tgz", + "integrity": "sha512-HN+6/Q67fEEpRA86QzXSrCahuHwaTPBsa910RuvY0pIYuoY4rpzGPU9ZOQ5q2wBsrln921rroEPU1xdpPKIH8Q==", "dependencies": { "@stencil/core": "4.33.1", "ionicons": "^7.2.2", @@ -473,21 +473,21 @@ } }, "node_modules/@ionic/vue": { - "version": "8.6.4", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.6.4.tgz", - "integrity": "sha512-vhFxCUk2hwPbJS1uTcZkVFB+9eFfzeis5TyL1mDmlULFhbGI/YTLTcWcXWSdG/myg4yPeb8brObWpMq36StJVw==", + "version": "8.6.5", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.6.5.tgz", + "integrity": "sha512-hmvH8y9QRbfWchRBJJoSHHoAHpcOMo942B1/4xZQwgkujRtpLTIoWG9eGNxvbMpV0c11CyUX9R2++MHpVdLKDw==", "dependencies": { - "@ionic/core": "8.6.4", + "@ionic/core": "8.6.5", "@stencil/vue-output-target": "0.10.7", "ionicons": "^7.0.0" } }, "node_modules/@ionic/vue-router": { - "version": "8.6.4", - "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-8.6.4.tgz", - "integrity": "sha512-5d6Tu2IHe2LcOYQpuISsuqVGWJttPwoDCTBMemgjeDJeQUoUSFfS0NggtLm+d+wCQN+lgZubvrZ1os2x63Hvng==", + "version": "8.6.5", + "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-8.6.5.tgz", + "integrity": "sha512-WMQLkQSBgaoV1z+dtTYr/D32N5OFzSrF3pNLWT+r3E8+OlLqLt/1AqEqDbIYT1yj/i+JzmD7ZpKgktvZwevQDQ==", "dependencies": { - "@ionic/vue": "8.6.4" + "@ionic/vue": "8.6.5" } }, "node_modules/@isaacs/balanced-match": { @@ -1729,9 +1729,9 @@ "optional": true }, "@ionic/core": { - "version": "8.6.4", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.6.4.tgz", - "integrity": "sha512-6kOx0yQAkXkMvhe6fQPA034LgmCh4aL0nJ+GwzNMwLYAe2fVq6mRdM37jNldGiGIZ0Q9Te2sHTFTM/IGItuIyQ==", + "version": "8.6.5", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.6.5.tgz", + "integrity": "sha512-HN+6/Q67fEEpRA86QzXSrCahuHwaTPBsa910RuvY0pIYuoY4rpzGPU9ZOQ5q2wBsrln921rroEPU1xdpPKIH8Q==", "requires": { "@stencil/core": "4.33.1", "ionicons": "^7.2.2", @@ -1739,21 +1739,21 @@ } }, "@ionic/vue": { - "version": "8.6.4", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.6.4.tgz", - "integrity": "sha512-vhFxCUk2hwPbJS1uTcZkVFB+9eFfzeis5TyL1mDmlULFhbGI/YTLTcWcXWSdG/myg4yPeb8brObWpMq36StJVw==", + "version": "8.6.5", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.6.5.tgz", + "integrity": "sha512-hmvH8y9QRbfWchRBJJoSHHoAHpcOMo942B1/4xZQwgkujRtpLTIoWG9eGNxvbMpV0c11CyUX9R2++MHpVdLKDw==", "requires": { - "@ionic/core": "8.6.4", + "@ionic/core": "8.6.5", "@stencil/vue-output-target": "0.10.7", "ionicons": "^7.0.0" } }, "@ionic/vue-router": { - "version": "8.6.4", - "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-8.6.4.tgz", - "integrity": "sha512-5d6Tu2IHe2LcOYQpuISsuqVGWJttPwoDCTBMemgjeDJeQUoUSFfS0NggtLm+d+wCQN+lgZubvrZ1os2x63Hvng==", + "version": "8.6.5", + "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-8.6.5.tgz", + "integrity": "sha512-WMQLkQSBgaoV1z+dtTYr/D32N5OFzSrF3pNLWT+r3E8+OlLqLt/1AqEqDbIYT1yj/i+JzmD7ZpKgktvZwevQDQ==", "requires": { - "@ionic/vue": "8.6.4" + "@ionic/vue": "8.6.5" } }, "@isaacs/balanced-match": { diff --git a/static/code/stackblitz/v8/vue/package.json b/static/code/stackblitz/v8/vue/package.json index 8111b8628cb..3ad1d6524a3 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.4", - "@ionic/vue-router": "8.6.4", + "@ionic/vue": "8.6.5", + "@ionic/vue-router": "8.6.5", "vue": "^3.2.25", "vue-router": "4.5.1" }, From e9d05f648a31cfdccb2bd9df830065d841b4ffd3 Mon Sep 17 00:00:00 2001 From: Brandy Smith Date: Thu, 17 Jul 2025 09:46:45 -0400 Subject: [PATCH 26/36] docs(components): include images in 3x size to improve clarity and update the v7 components page (#4198) Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com> --- static/icons/component-action-sheet-icon.png | Bin 2081 -> 9326 bytes static/icons/component-alert-icon.png | Bin 3521 -> 9174 bytes static/icons/component-api-icon.png | Bin 1552 -> 5260 bytes static/icons/component-badge-icon.png | Bin 2044 -> 5024 bytes static/icons/component-breadcrumbs-icon.png | Bin 1219 -> 3889 bytes static/icons/component-button-icon.png | Bin 1199 -> 3901 bytes static/icons/component-card-icon.png | Bin 3315 -> 9633 bytes static/icons/component-checkbox-icon.png | Bin 2495 -> 7022 bytes static/icons/component-chip-icon.png | Bin 1748 -> 5360 bytes static/icons/component-content-icon.png | Bin 2121 -> 5802 bytes .../icons/component-datetimepicker-icon.png | Bin 3038 -> 8141 bytes static/icons/component-fab-icon.png | Bin 4323 -> 10470 bytes static/icons/component-footer-icon.png | Bin 3329 -> 0 bytes static/icons/component-grid-icon.png | Bin 1177 -> 3852 bytes static/icons/component-header-icon.png | Bin 3581 -> 0 bytes static/icons/component-icons-icon.png | Bin 1146 -> 3753 bytes .../icons/component-infinitescroll-icon.png | Bin 7125 -> 22605 bytes static/icons/component-input-icon.png | Bin 1680 -> 5155 bytes static/icons/component-input-otp-icon.png | Bin 1614 -> 0 bytes static/icons/component-item-icon.png | Bin 1428 -> 4061 bytes static/icons/component-lists-icon.png | Bin 1722 -> 4520 bytes static/icons/component-media-icon.png | Bin 3028 -> 4279 bytes static/icons/component-menu-icon.png | Bin 4067 -> 8692 bytes static/icons/component-modal-icon.png | Bin 5880 -> 19304 bytes static/icons/component-navigation-icon.png | Bin 1666 -> 5260 bytes static/icons/component-popover-icon.png | Bin 2732 -> 7645 bytes static/icons/component-progress-icon.png | Bin 2130 -> 5804 bytes static/icons/component-radio-icon.png | Bin 1871 -> 5909 bytes static/icons/component-range-icon.png | Bin 2572 -> 7615 bytes static/icons/component-refresher-icon.png | Bin 2865 -> 8392 bytes static/icons/component-reorder-icon.png | Bin 3643 -> 8593 bytes static/icons/component-routing-icon.png | Bin 1842 -> 6114 bytes static/icons/component-searchbar-icon.png | Bin 1547 -> 5501 bytes static/icons/component-segment-icon.png | Bin 1388 -> 4479 bytes static/icons/component-select-icon.png | Bin 2640 -> 6829 bytes static/icons/component-slides-icon.png | Bin 5546 -> 0 bytes static/icons/component-toast-icon.png | Bin 4819 -> 10439 bytes static/icons/component-toggle-icon.png | Bin 2468 -> 6412 bytes static/icons/component-toolbar-icon.png | Bin 3593 -> 11006 bytes static/icons/component-typography-icon.png | Bin 1522 -> 4793 bytes .../feature-component-accordion-icon.png | Bin 6395 -> 38766 bytes .../feature-component-actionsheet-icon.png | Bin 29742 -> 81385 bytes .../icons/feature-component-datetime-icon.png | Bin 9244 -> 56391 bytes static/icons/feature-component-icons-icon.png | Bin 3671 -> 15950 bytes static/icons/feature-component-item-icon.png | Bin 6044 -> 28280 bytes .../feature-component-navigation-icon.png | Bin 3773 -> 13783 bytes .../feature-component-refresher-icon.png | Bin 9168 -> 57345 bytes .../icons/feature-component-search-icon.png | Bin 7207 -> 17861 bytes static/icons/feature-component-tabs-icon.png | Bin 36082 -> 108141 bytes versioned_docs/version-v7/components.md | 70 ++++++++++++------ versioned_sidebars/version-v7-sidebars.json | 24 +++--- 51 files changed, 60 insertions(+), 34 deletions(-) delete mode 100755 static/icons/component-footer-icon.png delete mode 100755 static/icons/component-header-icon.png delete mode 100644 static/icons/component-input-otp-icon.png delete mode 100644 static/icons/component-slides-icon.png diff --git a/static/icons/component-action-sheet-icon.png b/static/icons/component-action-sheet-icon.png index 50dee9de006ab6c695da206e8df8d793786734d3..72b0ec7a49bde84637d4b1181c68a3a0fba92eb6 100644 GIT binary patch literal 9326 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 delta 2074 zcmV+#2<7+gNTComiBL{Q4GJ0x0000DNk~Le0000m0000m2nGNE09OL}hX4Qo32;bR za{vGf6951U69E94oEVWdAAbk7Nkl{6h1S%UjHX{lK!Lx$x*9HRI1|K zwBn*_P{z34UE^`)oB1o%zoHnO!q@3v_RHH`Qo_)-(ajHt-BKWx*CHV1JPE1~FE^-vS3a zZwa^$T-!c>Zm|HzBnA@_fo?S->q3ZC#@K2&90olU0*&hs!ZWr3TNYS&w9OW@ zTP-l#ZEDNgAhwRf%-9Sl;7o`s;b=S+i9{e|7%&MDBlY?rH1I&WAvoV0myxj;*m+dk zAmGt>A{C3pyCi%ZB7e;g6SZoE=FEL{ZgF$eXGdb-_eaGHx9yv{VPt1!)1YaZY!`40 z8|*{G2r+@o6i^!%M$yJl5$^n1yrcZg9?WvvYGexsHxWfZPXt*MB{ex_#ux3jCmFJL8oA z9H%e8E&)3EK$ALB1Jd3Rd}?mq1<$$w3?c=lOY)+Zx!_!WrZioHSzH@OH}$63cgY|)=%_nCg0^tX{;?4u^I9A;ja|`dK9DDDW zftpofI|5XXV}JYY!##J*%DHAkR7yGH&3>tDF}4zP>|PVH#O-(@DZ$e^&H@2I(BDyQ zmpOG7sxNS69>0AY-KP$<*RkU&jbRv`g9y;1}*0Z7X@};K*M+0qZH4=@1uIrseT&XHj zZIUUs-Nwl*+wzzo71P-?P1#4_<=LH!uH`)_jdhqOK`AZDv992HtN?$}Pg4z73lgzl zuucpp_1gh8hH+Fnra?Hwr0Oxvz)4cQC7{|AaDPyDnQ%2tVxxN_9D&1H?HkFCjQhZL z7Z%>@L>e*!k~B&y9pf+;KUu&>(S8lhrD}S9Ld0EjdiC-Jgk#M#C-WiGk&1M|D|1Lj z-W_p&9aWgn(*1ZaxCJ07(IIY3|egyCLtrF!?{mB9ylf(;?k5k<1%7#cN3*ijV2(Y zqhd154S!yUV@~!Rg@yq*E^*eWZ0V2;P)ZokYfOP#PGGfzu$f?SyBE z&t*h&%KMZ~Kvis4;7R)AIMYI^vXc1$&wrX1l|)LH)uU@Zw&<4rzpvXc4MdJ>nP@&5 zBeRi*Q(#ge6M~8&`2tFn&bB3_<9sw1f@z>qrH)0LBUqW~E!$0~f}ER|P1EXBgsPsh zVS31mj_TgA8ax+tR8QWr%na8Iw^8)1Mn|Dv9s;~L7(C{K8G!FThcWR}iQ^m+J%0+? z#L$f;P=QkL6Dqz!Aw$}h+4k?J#-pEhPKE&@a$e@-S83*^*~WWuU$+=(pzZB6D9oCs zfC&@;*Du3~kh42Oh?)~2NfWJBlQ_w9ta)xV>J5+%LgCZ3ea5EB37pVwyGac|mh1?A zn_pO2D&r<$yV-0(*Gs4=!p~gGkbi{N&1Ms9)6Ab=St_U<%$-)Vv8v%_UU5q_HF==> z2U^WK+5Z+@O9rqMyN0j1*Q2pmO1(9s^R(oF7yIPELT;mI2UxGyX>+qpeNr)w8ChG0 z)oN!e`tB=fk7$=HYc;ebdJT`zZXo6Y_33I5=C*6~#^E~d4N{Y!A0-DU8h<~OI;PXc z5MQfQKxo>g>hTyLE&RIk&sOE&%|>!2A z7mLTUp->pIpU%THQ2ucV9k+>F$XemsFF#xI_w{VKm}On8RI6pmbkjmqtJP}NGRFN2 z!M+{_@VidIwC$_aN*OoylYea$-zE`;gYs)=S#X)K1^bWm)}QY_$bFbjZ=~nveV>(1 zm*l(9QVE`y_BX%(`imTlOHZFZ%@vFgx zdJ;oZJRXPBAhdU=R4QeB7j*T^nKL&AjU6fA7mLM=CB*G$B$`Pk6MyoX*-QqX?-A3e8z9Aye=P5=M^07*qoM6N<$ Eg4vDR!T*@TE5m&qm~r?>DAWBC@3MIP5h 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 gj$~4qyUD>Xz*_Y5}$zF*R(%8l_X5Uvc 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 Sa*D|S00005EIuJEJ|ZqYATB^4FhC$JKp-tW zAT2#0FhC$MKp-tWAum55Ek7YHKO{0mB{N1qO-=` zqa!dwBQZiwS!v|v=rcf4Aud3zv$}VGi=d{i@$&N}GesjXLQPp|PFZMne~YcMx+F0} zc7Kf4+1(>AL3V(P*V){yvbltemLoAlw8>wh0000gbW%=J0N)VrU?5*0KybgWkZ%yr zaKA8LK(McGpP-+Q&yb*xkT6hSP+(9`ub=$60r&s_1a(P7K~#8N&01%7;z$r2N#G^g z#*2OShTCwtMwy&(&Kobs|Nk#e;;^+|sau0AzjyVG2d|2*YV`yVYFKa9pI0|D0{{%I zQhi=;u8X{|{>`q21Z?a+ev|`yy#fH!*~oUKlx6@aUDqDX5TbHVjb>#*Zc8%(uDuYc zew+QvYazQUO%l=_0ni?2;{U<`rf1SjfwZTYB$^s9b4?{=ka$!DrUX4DvAaUtYery> zxf0H<)Qebu0nDViBIF2osw>%}VQSMvd=UyZZ5fzKGZW+#+E%Llz(|@|F#^_7njbhd z?}0O*tj?dm!Wzx5uE4mo#q+BxY*GEm^Q$WuiQT%cVPxil5j0)I@q+0844C3+oWGDC zzbUV_9Q2;?7;Mj`z7q175fD1!cEuiJ!;Adwzbh@6u#DveeteU`~PvDRfaHABy zPD$VmC6JQBZ6j5=0{9B}Myf2QD8LVi2_>*^vbci2jJU({TRsWPREfEQe>nc(1uZZi z@-bJI4!vji&*wgaV=KiY&Y?Gx!(R{g{S+)dV9=N z^s}Y|)PRU#GO&Wso$GjQ`*a9RbQGJj6;0E(iY3fY5@mcy6o_%0d`d9zn0F)mj%zU!m7aB>4r~qCyQK>w+B$m!87&=3+x=p?Fzt~q`` zdDwkGS(FHYALFamtm zliL<<Qf%4uM`bJcwVb z9RmA^?y_}*En#qxe3j60QVNK$nUca!VIz6b_T7u<*#aV@UN~CaPp@-&tzJaW6cC{V zjR;0-FquQefaH7JG}`tNh&e<|Y7wY*|z$F7$1jo~a7 zK+3gpK+;^xm#tM_9seOLtkd@f8&)%MN!LWliiQ{ zlZ9Rb+A9|!JHSg_sG+cW5vP3^uZ1#-dqCe-ryuu$?+JUzBGe_u9Y8CQRJ=rL7BVmg z2G{(&1Uh3zLykLrK&$H_BVO+y)Uc0|*pKXx9gUK>4~m5b79wqXe01~IlcTXcnuX+O za9>_sWA7Ofp#4zLMPATL_1aG3=I=kxc53yKBKg1alm*9Qk**E^0000d diff --git a/static/icons/component-badge-icon.png b/static/icons/component-badge-icon.png index b7b952c0833fbc0b219c6a58438439d683528f83..a0c11b5a3b421949ac48e8ec31f69b020310a0ff 100644 GIT binary patch literal 5024 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 diff --git a/static/icons/component-breadcrumbs-icon.png b/static/icons/component-breadcrumbs-icon.png index 2e7a4165fcf3c7b50c2712824bd036b747abdee7..c6f33b040689d4d225e3e0f170eb3351b0b513ca 100644 GIT binary patch literal 3889 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 delta 1205 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 X1-pUB!=ygL00000NkvXXu0mjf_vxi& literal 3315 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 JPDHLkV1kNSHgNy| diff --git a/static/icons/component-chip-icon.png b/static/icons/component-chip-icon.png index bcaae5b837211a0fdf5ee01d977b750b7785c510..bdfa2c0f14b04d06b474c48601754fbeb63609e2 100644 GIT binary patch literal 5360 zcmVB$cET)qyR~P3=qrnlH@7Q^E|})0y|$|`wNnML6nDiPKg4YD(`aZ0 zj;@LjAtD+WAWL&|^Ch}`B^r&6QALl@b(heKRU+C{I-Q=Pzxge$&zw1v5DkikA`l4E z+S)onm3M(E?~<32)BsaBh)g$kcX#8Bq*8THAe%Io>GC}y%*0`@Ct_I#DU*oBV%9+w zD<}k6&jYx2Ln@Uza84$ZVt;>M5NWMzoDT#2y*Rz@bNV~+dRM2qBoHeNU0x|f8V~{m zX=!P(4v@x+9MuBI1Y(iLa*je^G7Sz6PKr82T@h%0etv{bA5ei`6&_v&L?Lon2gt*! zQcHkD6uPXV0HG3e#Od?is3%pb3jz^wCP-{LZES1^YD+qB&nD7`K@4qyA`m+DMF3HbBVGyE@9XqDo1lJl+A}A6&(uagD9-WY#~WU84nqMV zC5T8DYpq5#Baq#e1D|tMe!fvXPNhKm((>~10kd6eHL3}L;B_cmeLYou2LEfI5o4YD}hOY`l zU+`l&WEs_|3{ax=_4T~xDBb_0zrX(@;S+ozkXy)tIqvQ44ZTUO6!1igi;Jo^!cda; z{RnB=31qkJ+>)~_bUDB%hb=YN1^6LkYMYyz^3%TfBCQ0PnVG?;zgt3T+d*n>LY5wY zL^vd@(hv6{_4H2(P0%I*q&y$Ux9PmiqZU8n=ph0p{o3WN_#vO39+ zjo?|QVp{qPcYy@qN*C}su0L- z=RxbTAx{9|Mj}$8@oJ>_6=z}G&La$Y0t=Tq>7pO}Eqjc4MW~oSXkq3?LQd5Ud4dNf zk(Aod>S67!IPk@2C>F(~9pBl64uxyk~AoQxs9iwQ(!XPk%U<1>g z(2c}E9ahqdUzUkhO*4iV$REle_*hw45!>6_{IG0OU6ul=rWph>s4pnPg<-0{z$j5s zB1$F@2EWTa>xwZms1tC)Bh}p)h8T+yQBnxAL)Qa-Ykg7g?eSOxtI|hvhtQ4}ewB$T4#!w%s zK$v#S*BA_M$kVt$E4AF4K+)#Vw7wvL?0M@G{21L828|8)TL$WWdU|@I(CZ5l2y684 zHPpv+lr}z8k9(L3c@oH|Pk4d4=CuAW74jqy87OBeh*6(#ffw{*6jCAAEKJS3PMtbs z2oy44`0JxbkDSLus!_LgAy);G+kL=9L!R&fbuM>t5GO9Xz0Q?Dkw|2Mugy@6@Ivvu zSKNks93arl%*behdr%Wwy_pT$I(ut7<{T@a zEi5cJkN5WWx_Q$)r)!JLq#{kZ>R;xNX$3)$J&m)2+F7ZG6`X{v>J265(oOFD&SkON4yIGwVNW28oZ7;7e# z@^^`EaDoX$iZmfq0%1d1Z2ibD_6rDAv%gZa`TgX9d(Ev8(a{|dtsN0@q!Zgx(yt-b z(E9|7bTT9Msh*NMLTs(2#l}in?C<98;|KQR-*-ukVq)NhCM(qW0oh0sParndY*y>9 zt9@Vn{r$oZ>}_SlFaO#TyIc98s`F%29Pf)-q%jay`K-*P#rl(cb#5gUdhyK`U(^Ub z=<(yn&Ie)1&ZcgwGKL`Z!;ES_Kj?(8kInpGC&c>{;W#A5!4TyxYirRJQCyB6W zu>?zWm_V=av$_d{u=V?Ya^z_yyERC}={{qoM;8l})$sY4RdxWHH$bAjExlQ*?2VZ- zR;|H6^9`MY=3$s+&%@+tYd5M>DxgM#XAhDnrLpNlRv_j~%D#{@5 zrNqC#5aPMlBVzpBXy}Lp^+s7fNn{t$L>Z&eQCI7=L?Cpuj>M<~b%fi0bS~3!e`?>k zMkZ0n^W2T6#SdR+ERqz9-@ng@hd-sntM5d`*@vYowpyevF& zGMNf;rtewq_`01MnowN7wf3zGCp;980Daw``8_}Pr zn?QtNidxZOex%C-t<2|0;T5{zc@VZ3AjkMS?&MJcqK&_uvEIV~iP&(51)Y7lvPHj{ zj*LvPIo;ZSqL9;6GMBcu9(7kAgf8|xAjJ7UWvCZg6pa{#{PPzx)_VbjF_`c$p`BXq zS>2J=V>nE;p%7>ok4E^Bju5uKl&i#!Zg2I031*Z^9tKE+kjFpu^b>;_$0(NrggiOy{TvUM3bjZIzq_SBgvaC+S9K^*Dwn-G zt)?pe_mf1R0Z}ndjb_B!<7`1L+$+8iZ~rY#9lWJAA5;@)9DVL}A>O!Dem%5HozR@t zR}%_HMzk;Xv%8u55?Pu^^3+zXK-|0E5|P@{lt7dh9GaSP zW$ed@PVFI#4Yc*gJm@O>l#Y^@x;}_DDFkj5nTh@WeQ-kE-G7w-S>!U7)n6A(7q~%1 z&`zKxX$WdM>HZoybJ*P!6=QQXcZ~+cVsQ4Y;QW@Jd#(J>BA0QKo{oh)XfL&x)FqQj zxrdWuJ-O@E$D(3vtmLkH28!!kh35c?U}S3r{O$3#qvDPC%deLG-CP;Bw(I{xj=syI#?Ma=fgF;V{1KUz%eONH=^lu+Hnk| zM55a0KArm#8!PVrKYYrWXLA+(+jkL4K}E^Hd(f%Mz!;&9kc|(LvrZiZk`)NiD~f;k z2_ENBO<*P^8)?MnEsw^nxBeV;3@=pV&Nroz2(P^(^~l3dyc)709Z-1oKnP!cOo@(? z>a6ht9%)uh;EVJ=lk-*UkKO+Ul;YKQbFagApW9zYipt6m^6=VC$vlt08$R{P8})En z&(IuMWQaS7n5;mGL8=-M#va|zUSqrp29&wAN}s(zgxQW-J@Ww6K$y>sgGVJU+)G(= zz}$c#sjU=#e)uZov`|~44rdNm6DtiSk04zqqKw0ZrgkgU_=PN7)qVts7&1z%d z`Iz`+F*`XQoqQ|vDban#{Z|4d8h*KnNR-YS=1~Y}3b;T%Dr{j3KI;c;^9x!;BY4`mS=_2Qx2kZPy^(d z=b$)|nl=E|5(r%n@1(3n832T?XU^#(5Y`Ej=f_*6K07-L0$J`t=fYCx+`Iejt~9X_ zljEAqbmlSv^32>#Ihhyc(7$w{#ad5D2e7=$;^HDdTpbt~$PN)C59CW2Lq_((n=N^1 zy<7kW#bamdAbC)>F^$W;$l;4Q6SZ&r$TxTqAziSRB>7`Li5}ibTAs+DIKcDBKS`vm?98Zq~lID|QWd2Vj*0r$$EIB~+aW$s|C=YGv)XEJz+JM`$s+9KAN>M$&Ehvqnt20tS7 zAG)bBvaS9XVp=_q48=fCk%1n^h0~fxs&kWAb%kH-7lB}`ht9=B9~H=hsr|eu&?vZ- z1suY_1{w*`rgqHdrGI7rBP7cs6DUsU`xSn%-}_|ndVgDM*;PDN7s9#BuN$B;=>9?f z*0CC`87&itgytq+I|QO`j5xRdK!M^P5!6F1ym=SmUq}whB2zUQN4D<6?O^Z$(ni%u7a51Ad4=9|^m48tp=+ zi=**?&?Qf8_iFc1Q51n}Cg!zH8$;bVKwZk-hqCS)#i$QZ(l9r9;63(@>h0|n2K5gN zmX~_n69WSSqs6|rq%o@`agM1np{y|g<&lSMQ0Tf?%KJ+q5DYcRn+atN0@R({G*e3G zVw5~m+g{D%maz8?$3Xm(Cr{R70KP%_K<~nnCr|Q*Ym^eY7$w&_hIhg*?`QEnRe1V48S*jsD1$Q$n}M~EH!j7%8omOgM**Qeh4aL zTB(B%^d>07R6j*siZW60Y_-|h+1tYQL-0XJ?RD-yZ%{s9nvt?gLvx%t?&YFl=Lz|T z?~zfJ+}k$QaPdxNW|Sxxa3c@usv6`0s@8ZzMr?{c*hl=>kf`=>ArCUHk5E^lN~rph z4>L0}m&p@-#*a-ns|`HJ^P$_^u1cU~%@9MP+QKjL09yJV@Imo`h2)8lKFafq4D^7P zqEkGN7V-dES1lqX8Y3k_znQZaGgdzHd-b!h06pu8 z(9zLh9i{`eIzZbFh$D|@7TI>5s%2YV@MYaJyPfC@VYgTV#urrwZhnU_g+@Z%G3zc03;CF6R(lJ^NYO?gFn=gVNg1I(oR2XimBYX^5Dr&myJB76C^u@2q&%qn@ z^z?}4W_^2J)gz!bFv{v)CJ0%iNZ0LkoqR{l_YH7UBcQ##-OAL$9@co=vP&CUg2?mX zVN;KFBQP6JxTz5kRw5xpsUrt%tlCETx(EOQwQ~v7h|HUK0-h^q%Ofhg#5K#20%9kL#X z!>Fs>+t?$K*}kA=Z48hId!6A3LYM<#;A=2r1xJA`MJ;noKY+;~d7Q&gx7+_=%n=dk z1Gn%d10>=D>ZDtt&?kk3nm`m@BDv54rBEB}4uA#TYt@!h3F?0TNL!UAiXjt#7H^OU zXEavgn)gXl&nmdXlKzfG3_kOL`^BtgYcCsk6Pw%ABWYwb)CQ!Ow@;N1GF_rddPPXR z|Fs0BJrTKX65-mpf+T4uTTYoP+dYVu;bAb5#>jmu_JaP5k^Hr z6UYrvDGFO4)d&uHYS=yl*4fLT^8`w|50YRi6NvGU&UhYVNi;H9-0*)knDdf!$ilAx O0000lt) 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 literal 2121 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 literal 3038 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 YMz$3@vI}B?-xiRawUbqirEkjr0QPMV>i_@% diff --git a/static/icons/component-fab-icon.png b/static/icons/component-fab-icon.png index 2df54e17071fb75377817384d97a999cb0853932..53fabe4ab62e566765c4b8dbe176d7186c3604de 100644 GIT binary patch literal 10470 zcmVhs@P)tKu*e5ZfFn0@#)fDZoj^c0t0Cs>mX#N&z7@ zm5L1&4w*B70&EDR2#41J0u|eM4V9EB2Wy2Tt>jad|CRnH z{X19B)$`5wzW2IkM!_*=J9g|?v2^Lu@h6^mVv|y89A|C7;R>zwI1Q-`jpx?IQfi5ts;AsImO7$rwzhpMLsw zScJBy05m&0JC1{kvBIx_8ZARWL2#KLfrnXTA&o$UuFL!y05yZZDLme7i;0yM1%MDZ zlgKn%>)3`s^OUDN1x`5OgrNXTlMy=+kRE;X(Izl$$Md)zfiwj}ZbJ>ACg2cIFdR3( zVFyi}F_;b>Jm__mG;(kF+cwNV8cF~)0f*S;#1l_6!=uTFjSd|;1ei;zEOS7*WEfrB zPyvWE4ua-t{GBi76T^^;TE2Ywyo=z4Hew=TByw>X+dga>X=nh1;MtlJ$IF&2Grz^^ zrnmmYlZ!HU>kXf|390Fl-~clC7~-Nf_AMUlp#sA^>OMnao@NydA@*l6Iw zV(;F)m*dIb4gx&HHY-=I9D%0|BRxoUl`u5jkhkyIv*!vJunm-f@C2`xE^EX(y%{ml zfddDkc^K|rvu@qGD`7x35CG*|7K!82PCM%Tf#`sdR=4x? zNbd~Ra=HjXwFTYT_0VVQJAg*u84ep1i24ek5qO5n1_7eJ0VoyBBk&A|WkA$dVci!1 zxjYYLmlrj7G{hC6-HgTld;_VZO!g_B^N@7tbu!Xhw;!AcRqm;h{2m>YuEV@$-Bgw66h}@Q3NA5e_FHK7~xsZUO z$DODdiH)vdFRl1p>BCesQx^kyP=hdg4Ya>F@sO66?m}ua&CBgt;lwqgM8(WOGi*RH{vWf?sEX=lP& z_*=hjEu8f`PqiSSeYtvI&{jYWq0(dhr3VToI{*9byH7@D(@#9{#O6+)+wb^@UFY|! zczX5f)dSHzmT+`-ejIwoWvHT%ONfWCq45yh`0f9I|Gw=GxaDWlIQ z>F@uZ8LnN6b&}jrbX0|Kl{v6Tpbf$ZJOm={-PlcEqK=N#xvm{NJ&2a|I^f6>xy4*5 z2M;|0H~iao;0HJV7(sIf48mUU+>LPFt6yP;>({L@^9sX0DspA5fHDXmrJd5S-Zr0c z#u-!XuHVrSO4mhQDk&_SFJs+M=ZaG8lZNNSFgJedyYT&+f7Cao>Bi1SAYJw+7s0x< z7Dx;VVntQtU0CXp=Nm|rWE78C&#Yg+exluV+deYsx=2Hi?wK#wRTrh?0F;Kzx1f8v z_LH9-7~8aK21swe2-dG(o46@@wT!|$UoRLVrLGKZ8-nPncGhj{hz9Ap@(I2;EH6n2 zEAW+0C%${nUii>8*P^TXFBoQHMq0aOwTtxVA{2&=a_7#|I)r@l(zKGevbLkLwvJ`@ z?%kik!4?`P)*<0MA10Y4w~USN6rOkOCqDiT1BzWqD zc70l)7n80G_j3aZ>I+(})ABG<_F1)Rm3i+@KdmXF%N3R;3CW0c{`@bu!Y}Xo6)Z+u zhtb-nul*>TfkK-FHs3%Y-&EB_^X1CuO(73F@PMCgM^Lv+-q2&mJWieA`wbpxva%r3 zIW~hVGs&O*(pTXP7rkTAf`^Q9O>eyLopAk^zGlvmjn7qDs`ci>C`&C{6VTgiZM9A# zln9`8HI@NVD;BB+kb7&!Bu`UgX}>JZ*`)Jjh+aAn z?b&wV46V!fnDKgKo03K=7So^7e`Usr3e3@yWElh+K?)Ui) z@l!2?pqj|#g|ZBU;PHqfB+f5*n404dooYd&7P#WQi#JT~#ps-`eBU;&17j_u8+s)4 zr@s+hbNL1k#Ke|dxh#P2U?zE-`ug;08lYtqA(tBwS7`(4nF@e*?b@|P_VwxYO<{ZoHD#CQ=1PpTN*}6|eg0p* z1|R>_=iyklFMRn1_#EbmKm-(IvO3e64VmrUjPgSAF=_X8fXFHU!WF!D?nmUsEjPK) zGwKdX{}DvwdnpRJ?$aaiuw92Y(yl$Wqg$!tZn-8R6J;fM`r*owHqXn`E}we8*{ zfCw9@8;byhcmE`hlk1v~?izG*GEE;<0{%XZx+m>UIx;J&KaQ*{ncIMg>r#M7)@iRs zE=*FKWRcl|s3_R5l0f&Bu#U;yRBD8*h zD0$lEJUQV3MAXzz_m#J5&%uygEl1#KVbneMqyP8`Fdg+FG%nYL_x)-klVp;*F%KYg zSCc&6i~CADf64jgt`S*OTLE_2p4q+djcrLg=nkVR zI;j)OxUosUj7JbK=ZON)tHm_xcIF;yks#x{=((_a7?ru$a1kb{j(N!`$; zNlf51o8)m1AZZxzT?bIxx$@ULqjS1XC1;$&SBU)YGj=l-EdKl1z_f>K5Rf%)t;Rh zeJ)hKn1OYWnREE?;XZ)JT8eXd2SftT&8Luk#6F$d)DM3G2M$rLOlGG;yJEi|4dU<5 zvboQx!xFb}k{5IfpcEu@xMe1s&|Yy z{THU0gPSjtaPG#nQEpJS&J%VDOjGy7K3OUh^E{1e|A>VV&@`O-;ZI>?y%{mM zd?d&i-JqshaOgXozSJQXskLJgnAp%dUSI?2cy3|)mg(n{>0wy%9a3ta^cuOZ-i_;! zTj|ZXza&bu-p2t=x8hoAWE9k!FgdKod4}|H?OI*mTpk8J6q+t*c-OD)Hj%{0dNZm+ zN`=H4vve{cc{ovyccY>Kq9!iFPNBtTn7VEMs(Vf;3_}|Yqkq(8qkncQYe}as{gd`8 z0ZK+(cM7BgBOB0b6&rY}TLGN{#T*>S(2;$x^~pr1ciwe3jI2L4J9}?vEY;wj`pu zwf#GRky%sjh30%2I0K|xH5K$|J-=SQQJlFh8>MiyCXuK|0P44K`=VueEk5O7hvD_Y zZa(zKx&lz{`g_oT==)?EFT5Px-OtjI@NG`A^wZr8eGpv=xh0+G!( zW$-_j1EMl(SFeJR^~aViTk3TunH(z{(keNx(Wx!L6=ygSqvz5)iNr!%S9Mvbwdng} zpU5!n!+P)vsMBa@G4x23wtVSQ}eoD0*Id9;6ZFoQ+a23zemu*#Qzq0RIZg-KB? zlTxNX3WQ#X1wXIk%F@5JYeo#zFI&52r5OhK5JzJC@B$}tbJi^b6&P0g&-=9F2X&?_ zw{!7)+jX_N4v$dJjy0=R!pQn#OPA3L5VY4dT=j(qg?k<^{;rW9>!eXtG7xz$>drC4 zGmacN(sBa|aw0g)i9Tt>hswYK2R8hzSu+AqzwBvG9S8rol;$3v)lgnR(5Z1AF(e>6 zHR{gsFi)iYM`|rn@4>&C=}KWrt=oeB!1YK(_tSoRVgh7_%?oOgt5Yhz_4EC>pruKY z!RsC~P$G~TEhG@rml~P5P78?)dsH4^)7j5}k@d&ctX}Du-MTLl)S)#XG#`0W-A7;v zMs^Yd&D1QcHLY_`KHB-jHlgt@4eJ9W&4YI(*uh<7S-dn(E&)Xmc=Q zURE0S&x&$#9q1pj!-o(1al=43oX#!m)I1YuOQFm>>~$GXY;=Qc+BjmNUTxE}pD6+x zk$DD4a&WFpvVNxtL@9F&fDkk@JfmF(%D?Y09H7>LLhVC_TFkTa=`c1u>zOdJ-s~kW zdVUmj`RkzL>m>S{~cBAc#+_^tCm^g%i{#te69 z^$gTGfFKfa*7!^9A#7)HZQ5%5Oa-sPO1S=uUxh=D3{MBMVQuqD?YYl(>@D4p=+0`A zy2`$>qjXJ5ws^i3zEw0Yy;D&XQ)cKE+`tP+B(wSF|k>+%7LvbFU5c#<3HIV_4Ze*auGfnfCdwgp=0_Vn> z!WB!wlDE*12Z}#$Z9n12ddM6=Va4Fak(h4V&VA`0n5H1ky>VAo*`?Jc6~hO7&AdwM zfwj6WInt#50U>!LfTn5+S1eWVsS5)Dkq2U^m|nZiJt`ZCF)QK!i}8*cS$lTzo8J)X zT*)TV;L13uD^2R1v?-%i2rn^#Wj)z=0Ac=TipP_9zhc$UPi2}mw1~W{jTPafecO%u z5d)31P-}Yyvd;&VKO>rM=*x5&TItj3X>=0uWNub{=nXWA*!r``m^H@wrEwOmcyz zVeoEE!4|BfGbc8{$YP@&oF?*uP*>oA#3CB3Cd#l&?(wVK^3+oIH8wUjC6`A4O5NBa zHOal)&X{p{oXc^DC>#1%3o-rj-Bj2=u+rP3P!TOQ)M;4xiSB{;E zjP9{kX~Xn@%dkxoFI{ z&ew(Xxlq1RM()U;XaV6);YyH3UIELOFEw>g6!FalB9k9K(wqy?<88N_KuoUr z_EbEx)jpYu`saf@PDsp!^ws=9IG94kPFFvqTDnyG=oQK$>5@L!A*Nc?9-I{kyZR2d6yzCnt-3fB14j3jND6DWU#+-n5LfTi511aS}K8zsRcob`*XFu~S`0xim zV45oUW@2FY7I&G9b#+w~0ZfV1iA-vqCjBF?HDLh7^UY9WjnBrT0^cS#TBn85PDw1H zxna-Dhbn!_Bp63!Tv>L!@IM0D@@325LmzxUyycHBfTPXMf6Xfl%hEY2f9@)BU%mmF zhK{{$Cq2hDAQH0xLQu!nEGy^S*JyB>`uWb`@P==E2R{FmuVb$2QCQ5j zbm;p{%5dLft zgGamR@C)Vk-FqLrckAEb@P1f~Mw)KxdoPDo)U(hriqSYGgmOR`W35PEQeu}@2vJ=K z*5}aPS}x%mrp@1I9(5$V@4oQ%T-?t@op|=!sawDRq9KClYdAEYIHZqloOar2Y1!QR zm2ulRY*~naLF{|PC8|pQIy`L{M{CJCmX+)aI!gmM^YIp9Eu8;_FMl0>H^5>sVx99} z{R((1GLI7OS~2r5+bGLGP$k zaj)=|;XPxb$$jPKlg2%8;DDcI_F)Wk?84ZXiFWVaeHBh_bsIM<#NXD?vZp++=Qb|c zhx??YAhPZYJXkEV1ee8Zq#gU%>F~+xFb)W$dmWH|48vp;VZG&z=h-My1t9pY83qi6 z2p(cUEg36(L>feO;d5zr5WB39oz7?=F^`1v{rBJRuL};hVdS+%9wrZhwMuKs#^vneNy4) z|8pmNAA$6X|Gg6iVP`+%EOb@RftPQ7iK(ALg?DCigyr))JgsEtE_G1IkBvFz3e6R9 zOT4XD37FR4>DG0HJ+v?hA~JMkSK~%6=M#usS$mz8axBC{1_NFE(lbix%C!G%xEA8u z>L(W83?$1~*1Zv!ehELl<#q$6ex(42X$UlDKjZ0!ZK(f_4TuVVaige7^ggf=SI|P7 zdG6Ij*_LdhdjQEujEBGe^{-bTV15AZ zyW#X!*Oe<*g8VwOJOS1w6^#^V$Slcyprv#G0k^z#`5}52vgUD-Q?h9Te&MzR75HT` zrSN|{cEY{)-4A!q+yi&-yvG2FrVn8rBn8*%mDXLa!Xb^XT6rqAS)FQtLt(gi37cex zB)n$8n2TK~p?BQ)m~c;AMitTeRWQ0|z7pY_j_2l4eNxEIQ5U%`WS*zG@kY=@+ia&$ z%0g*WcKq?j!^tO~?8=(I9z0?jV%(OYz1v)30FB`u!9bRpG4h%#A-o4r3T&PZB3!;= zIE)7nh5j+|^H7|#;(B%x!UY4a!c@rm79ru{mr;kW65!(~^~ z1a-hCQN7erch-}c3laLPKr-$X66qXqCtHwMil1}2qq3yR9m7JUzsg69F2aidHaFz6 z;E}H4{eX9q?i_v8NHoG)&0iBb9v%8}OIN^`NeMTy#KzVlT2gK!35X0TthTZ17EyUQ z&Q+Sr_oPB61(OcwHv{V9C3~AvbA{AB$+r5Zff$iIE%gu?XQ^dVMrM0*3K&Ri%ov_E zKt~$K3Tg&{)i;qof)I^?W1Kl5ta*D>E#|WTU|-CwA~uSJf2b(sCzKd3n5Nua&lzEM zS+WhQ(ho|ok&VK_x)r@sMr33bSjTHA)>b;S&y{|EI=n~F zPC?)*$&d1`X9h|ypmJ%R*ll@GI3U?B8rD5=lm;N(R_HKRG=L`pZQ#+!q-d7;9<*r$ z&vV_i((OiG(YD(ym~LEVsnLD?fb&Bns)>ol#+E=ToO8O!YbJp3K{~-ckVI%QVq?Yu z0UFjdoErl7p*t!^f%K6wfX9PKJJ+bWLbweNf=hNx!;Vir9LX1%hGWjhkuYYE$^JUb zO43Dz&tidC4hislB}Vlrhjm8F2|N!x@IchZ8TY%HU6~QWjQ~YifRcW z21I6?E(8THaOE;Hv=er`^v$q7GLwK}O`{|6?3gMkYxhm9`XM6Y5eAVwWCMJXR~AQ01=u&&s!Y$qq%#;)U6$mOI>6XNQneS8K$CzcE1Fa58-U1CS0(|aY*WW` zaFW9N1Vm$eFpWSe`IZ;+?a<8^dWenN(u^)DovzUw_UkYo0>DZQ5v%cb?Owt@oumP& zKWWQO!n$S3gCn>tcdi^^0r*~*se1xZo?Q_?S>fjc_;tiYbm8h52-_FuD$KJVZ}!cr zR;`*A#Nf4$*k)U9tSc9m(?w(mqKk3r4B^Vj#X2hC_nCI*iLEA z*RbBPIi;YfcwGi##5y2co-3|+eF*DYU86zffIOhwzLnQPF(9~X`s`a+F5P5E5;n3+ z%`$m&vgN>o%P&FEe7(DlcE?cFwe5n(Z=fA(+Bl0aR`abulyhe>Xw2X2vT9l9no4F5 z9ipfVczDyqK-9op%1pHHSBV4buwgJRDYTTIfr*uM?XxxJ1{{T)CQ6;WevBLLe ztTIsEoq@aPa=E4P_~P^S_QZED95mdteYCFA5%ohrDkn1QtEh5=ev*h#Vw z14K6WD4#s!Pp_n$6gl#Pw z4<9~!6F3l&EnBt>PCW5M-d1k=5x965bW^N7Plv?khgx z4lD;Ezrpwb)XdCGlqVu15YaDpC#CL7>@$EO6s)YH#UGgtV3#J>;oV0-gW$zd7ZC)k zogzk&U&aAoz-W+yH+4zrc{j0)+H9|a2ac|PIXa^f$D&hTb|o)xG=#rF&nX)R164PGP^y1s$TJoB!sWuhL=>L zeNCJ{f2<}tcL0$O3inS=ETc^$xG%sY;ZA#+d0^;FGu1! zS)NJXNEL5JJ6(rsy-3E6uU(p>{6hhE4WEYIQ!n4O)y9LKkU&_yJy2}m|y zWDl!R>p;~d<;o=sB787A`D+X{+@d0HSu-!7Cvi^EywsJ2?X`Ak(ui&7`K{!2%=B_F zYE{1`Y$h);`oTPYedyA3O#+G!N|cdzopvs5BGpB7mys@7TJvTydn0Se<0GD57t!Th z8UrV+0}+}eSXx}yn609D^&Q)#YvOrLMyzx2;343LGM!Chu=2X`@$nr^*QLd=4;Dad zbz&^qNtoyBOC?Wwun`N<)34l3wz@xn6a;}yRC}ONA={j~N$GX8h{D|YK^%Rhmp?I; z&l2asWd1^(5!+Bdp7bT~Y`afcva%Gk&O4->>&thvz()#H}U zp!T`cy#zznDGY*n{QA%bYZBACCU2CUASND(iMFQOK0X0br=nWxdS)^JF%!W(=AaiC zBLSyUBDq-Ich04`)xu3s!%}p-1RVLI183$9a@6@fl?QIUj;`s@04N8Lx@aup;()__ zbX{9<`r@!{Tj9sIWF+k)pgK2J$2M-YioS|+MF5o+`dU+}v0|Ha4hdv(Rg_V-k1<8- z-GILD+a&=g}N3_hNkk5LwQj>JB0R&1qb;y?gg=!0FFu_f`J&nC-zlSi8bGI*|HIDewrjtC2=R(3~Tq zHn&eRBt{}2@v!+o0k{WHlk2j8H*=zWMP&eL#W1~hhg=hZhJH2RGUAxtkc;hCGj7}d zW^>!}sgQO8miYvZ-!IIg)v=M*^}XP9O-pflfvNW+R`$ixy@~z$aRL&t61`oG*($Xh z`_zToIg`ss1T$c0NWZcyYZ-~yhQ1C!FL*iB~ewpuh1`AXCl5-1J!66O8VVMUxh^BKZT+7uJvYGXQ zsDjo}ZD!qhw}AnOt(Cyj`KX~W%+8e~bI+`8#0xixjI$A!5ui*XuDmj;a*TGSf@un2`}yh&f7pgEHm!PjJty4xnoxD%htHueC3*kIJpzSIfLSudi~8{o78@t z$qr|ZJsXO*c|+CChXLDy0f?;WuHxlfwhlaDQ?2`J`)zC6r$V?KEd{FFegK0lo-V6l z2g!tfo8khi#0}Qw%;dZ}###vAuobX?*6PGt2}3DZX+Hnlv?-FX0B>09C~;T?W>pte zK%ncGKnrxJ&`4^^xL$surW=Y4JClsTDc`@O+qs*ldhNBUkm+GDFbaBTe?5F{oKBq)*BWZ zY5=9yZe_DIU5r*Pqd~}K!)~Q&GwGEfA3v`LBOAQsbOTQdt)X(usL@IS1#m(o~C5OM_X(DsAtco}Rm$B26U)@Hn@Xy{s&;(o_qws24}+SSeN;D$M@g z3=9mILZM*B$H&d&5n zw*vrL2$hb)Q5K3r(Usl+hI6L?@>F|!`_@*P7FrhULY}qfLZxG|Snxt^T#IYw^Z5{n z9A43I9)RNgz}eT=XU4|Hr1VAIpe^W)F)aoV)u$TI;<0w9phmX{5cLPZ5_r|O__*S0 z8wi&@EvXj(_JVH2@lZ{jZUk-SP*rcJXi8}Zd6iE$@N2zq%z;$cqou2uYb_OGqMV$p z9?NNzE#eJJYQh6-_4+?hj<`Nz^$p<-UTnxQcPmZhNI3_K?+rpuOsJdyWRIc(j0QksmcF-^ywD>-(UXY=og1P3#J5U@7tf=52C!TSEX>0G)^{N>!{9B(-#VM%D z)Duq1&tiOW(YdUs6c3Q~6VWRcXf-)09;-k1lB-e1qRM%fUSsn4f?|Zm zS}_p3tmx=cC^3|a&7HqtDW{+bmjZ;0ZL+QVYcMWCG&C^1!UC*u{xk^ z>kq9)iWlFad_Rq>B@lA0?SK$XTQdgaR4=Hg^@oEEi=&p-HedNQ3xWc3g+TDVAQuII z)nT&!axGs<=Vz>niPf_5eGpo5ZDDm?HVBFZVMY{YK2OQ|E5Y{&=no7I)rImURNI3? zc_j>?CzP8Jy)~Z)sOmKc7tES!B0lF&Pfwe3F20J1)s>uU$BgkHnol_?Dgdf3@Ply} zeCg`_Tm9s}+E= zSU)1`$3otI??VRMZ~!20zxxqJCNIcboGB2ad-Z=fX_lUk+70g6+zE5*o%c5^0Jq$6 zzxD8hhEx{_fKt2wLzM?StqK^o%2M?z`>`NQCCDClkTeObZIVThpZA}ylKr9HyRxZy2K)#`a zFmuDm2*e~EVLgyF2rCUO8UT5KiZEqBgM)dq`SyD?EC4(2eW(Qh4@dwAx}&j7D4vFX zWrdSu0st%U0XXKQvl0>Ip$py6S8K%)GT8*^bZ z?r1%PQA!I!9Z&{=HQ)g}V8Kd=|6il=+R@CZe_+66K^_2J3@8==TK{TC>xK+B2}+Iu zs)SVsU>!sDJUi`uNW%fJ-(km_!GQrk2&)h)nSyj<9^LDfB)7?mp&wl+r~_1p6)cd0 z_Q8kes;&^mvXB7Wb^jyG%~irl9UuT=&lW^$0CW!kN<}$QNmVdH79ap0zW$au zF*oK2{|kV~108Yx=NV!F;KzYjOCn_f?rbVb9YJs+6JkAOcW30FxyC0Bd{gPM<0sxly9^fy|EjAN!S&(kX|Ira09Gaz}Uw-@D^5=GSt9-`(#n<1k z8p2xc5DylL|Cuv$kFT6Aa&fNY=wfNeU;nQ-007X?$cSiY0F>)`dHNmqJZQRmdYB7y zVs2PJ_rF~ibPfPt>8T(PLwx#?2gGSeCyapLuL&YW!%_gU*Lr~s@aE*RE~-1_pJK<{ z)zxkKc#FH8%g`MC{K@)@@&NuPq#pqg(hwIa`kt_;NHhch1skYnOOQEWK|lZetJ!qB zJ?n~ke){ECXZ`&afVu34Ir{ux^b?i-Qk1lZ^i&nY-x=D{GYZBDfO(2C=LMbCl0N<7 zE3?)n+tr2g87rRK)2rOS;EFG`pl5slidq|lP94K+Wu-}?9f^uEIIfg>0GHJ5$si>i zNGz$Nv&($;d2NG$@;|X-Z13!ZCh%Z!zYD%o%#pbYfKshL{+MbIj7zBp91Zgx1ww6=K=MyUGfr{)o+dDdH4unm&+rxbP>6fOhqXXrW_tTst@G=Lbp0a-C z8`4kd)*tZzpdn>0y($fc!Bh=~CL@9g>Rho8;KXI{A2%C}>a@I1*2BXXBoT$-VZ7M|-YKnukn-dFAG7|52S@;+CCG?8l%uf#ARJ##ay)KKaYj5y zKwzSHLThWgx#iCL@rFgAoCh9x(&XAY7z<;Xt#}jV4?&+85CHhxF93>CKAw~5bv1rQ zq!%_tK?rC_ZE6Otn>8aA1PT$XtJ{Il*3p@~rR1YeJ~!uHbd_24|JSa%;{R`rO_FPU z`~6S$+U-{Pok_;i?Uaw9P{)io-uJtne&H2wKNtV*IPIi)!IMPVv8S1}Hr~E^ivR9MUK(O4r^8b|w4;1~n5;+C;|JbQ z`O#Gnq^|0EmiyAayjs;oWJJikAdI=7%mnj}j{15D%-kF8N)&=cHs{*RZ_PP#(;fGj zy$(7i>8P%nRq3m5Vz%G?AamctPs}Rbo}1U@5Ntca1JRRkV!MKdalW} zt<|G^1>7+V#cwwwKJUksUxn9J3WV^*t$Y^MBT`V-txMGiNuid{LvOf0RVPYu0lL$) zJC6_;Emn~^0BOmYW(&&i$nP!YH!JKnJ3--6I>&MjK<#jJ)78_%wM03L0p(*HST18k z`7Yy8!4-dXjW6g(D;_HK?r7BpEqa+pkuPbI+*Ag;-^8G}>)gp@DKm-3Ond>e07 zUtNqS9>kh;VUx}e%7|(N=!gmXlvKzU2+*#7^oK_PMt4^?)=MRgC8Jn)97>V!d%%L* zi7E7-IDWRJfW_N$4h%T1&lk8RF$vmHwxfU>rkhdahwlRt?^pBn^(%c4(%uQGfrl|c zJ)>kvtD3Wd`OuUD`CI8op^f{WLq8%FKoK&{Z zjRoDedKFnt`CgwN2^Ak#eidI|@5$aF2>upkMIi{HBlV4xA;G^Wg>x1FqJT$0O?bsD zAbkLWKqF4r2P6c*1_qEs;m+Ej8YzBs*5W6|wYF2rmvN+Wep=uSl)v{ve2I@*6#`-2 zHzoR#Mn{Oe0ZW{~BODNl5eQXj60nDSNq~X2oU-#Mn@_+)L^F($bE>5b=uY{8;#0Dn zlob!0cj3RnL=u9a%?BX@gx|J6Tx^&^P?CG<(s>4P0={;jV9m$~3U>Qa_6W*$BCq0n z04&AJ;{6IYT;CZ25VL$Kf1v^J=?Lo!2dbYVAm95m`3RJvM#-e>h zw1Oy=l%>nseX2q6h^P2icT>XuE6+y?i~dD!64EY#VE3^^4LVvervM@#0*XpLx4_@ek;f`>6TKh>{9haUsnkQmD!I42c4`6g+3$68{)q z>CxOijqmw?t!7h&TXSFL8NPcu%^L(pT7dS%_XdC8lmGmkzn`XX<@IUG4~2m5S$)A8 z*49>miXSVQbC%4 z82}Nbr4SVTPY^(30d?NYCPndjo0TM|cRg22v{Ow9fxsgGV!n(iPEQeF0)@ww9?&5< zePHng<@VJU?JS502un)|5D1klS&Z&A#JnR0lqBuAa8(B>E5Q|xhbCq5d{L=_>_Uik z7E<(@{3r1U#R&xWC*6YzLV8F6A@y&e(h1JQAyG^qZ^fvljwvWE1UBatZ{ihBWRWO~ z76YKDuu>*7Z~sY|5cI||q{1}pq-f95vHZ7U*4}^~5Ep?#_GINt=NXCk3j7O6`#%*= zchNcsmHrO^^UEsG0#<52uX2?2rVHkIQI`i!0VUhduSgpynB1{zOX0OB{|0_1#<;OZ RBIW=9002ovPDHLkV1hi?AK3r^ diff --git a/static/icons/component-footer-icon.png b/static/icons/component-footer-icon.png deleted file mode 100755 index ceb1adfb86a986e3daee6cf944d2b55542db27d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3329 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 LNkvXXu0mjf0&+{N diff --git a/static/icons/component-grid-icon.png b/static/icons/component-grid-icon.png index 7da31a68427f9fecc70f010211031fcaf29bde82..8166b5db194446282d55ca361518cc4743dcbee8 100644 GIT binary patch literal 3852 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 T;b9I800000NkvXXu0mjfQ6?$k delta 1132 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 AuK)l5 literal 7125 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 LNkvXXu0mjfJA2De diff --git a/static/icons/component-input-icon.png b/static/icons/component-input-icon.png index 0063084f3a5bd6a35a248e25764a4bada52c7992..1bf2b9c211f21f62f07366c0f620482fcfaafd0c 100644 GIT binary patch literal 5155 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 Rie~@-002ovPDHLkV1hUd<8%N3 literal 1680 zcmV;B25lt) z=H}++;^N}v<>lz;=;h_*=H}-A|Ns8}{`~y>`}_O!^z`ZJ>HYov`uh5kptJe;`S+J09psc*)=j`?M_MfY~pRBy{ z^Y!@o`ts=N01`P10o*4yKqsk+tL;oRZp zthU7N@9@je*rTq!sItMo#?b2O?D+Th?d|RJ^Yq8g*zE1?ovFK~vBB-_?)LZh_xJem z^78QU^v=}V?C$UJ@bU8U^Y!=m_V)G0&DZwz^}EE+8T`5>0000ObW%=J0N)TG?_Y4g zK(AnsZ!ln=&!CU6P|r_LwJvbi000EbNkl7li9tJd!d%p zGQH2%-h1!8y!Zc~vyli#g1`i1&F=mJMnKMYx!*O8BHLIE%Wc%FS4|rLY}2XM8?I&O z!m2e*EZ}OhT+&dz;Q&B;w-in;X~0FQJL(_aWYsfD zmO`@;0JE$l(6E7UNXaF5olr@_HGw=OE1@7!ssbS|zq&+ojkwD;+C#DyL3?!*);5rP zWKFytux+i>9uw_=D8Njt(54L=p+}VPLYNzuwjUT#qDV9XE(xLm3`qfoKt-XxHia^; zUs$2MG+$m{gTltL{gc(#pphGm1!nX7qkjYWeZ$Ks$DeMRX zdQ+J0NL6M)KLa=hrv!LJhBBgvZ`o~1#K-azc9(yR$V6>e=Mj&H%-dhTm?-hx`w?9f zvxAHX=*vfmGRHs53K^X94oSMyJ4*HsPKgTFkCUT6=!G6_BA4n%?}6Ur2x?N#B=J zU?I3O5%^hAfxEK6E?lF6t|Sn5iVAdMNuY;{QAe;q;Pn4fUSC^aCgr+OmA__@e=hJw zGUZkgfibQa4pKRTX^T!yPToy!ot&|*fV`i^Xc;Cv*}vkP*~uh zR4;;U07O7FJ0QTkKE^FrY*m|ne1Oz zD}QjDy!D_j=0y=unxFhe>ElQ5CCYsJ=-R!A%9CG4Wu`~{;YS~Tq9*X^XP*zhkUI1w z>(G3UqB#5N{^*;%y}jqpm~8ooJ=x=S5UDV6xgGW&x$q z8EnIu{Kq$ek7y*|?@=~j5Q$J)GqP-?L?gn0un-cR2m>O80ntjp4G3KQ3sT&Gpo*Mm zq=%+4OUc%{D7fHELQVU!<~((63$rvt{hwW07BLJoEjX5zF7FR?)W?RggqjA00Z=oR zQYox3;HOwr71ZksYDG?S(UIuSQZ~#YC+h5tfA3VIz^VhiwM}?AP`8ZL*j(Slpbh(3 zV`WNPKsY8V(+`2FXwPaUR+s4Kfa$UV3KExQK?fmV^POKw0;4Bi_K>#$vtb#E>{J0D z5Bg*Qalop>ag8FBHXShXZjha?SW-V82fbZZ9FF+#MKrcrSb*8AX{at={^Lw9|7opp a`On|)2m;;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 diff --git a/static/icons/component-item-icon.png b/static/icons/component-item-icon.png index 44f02dc744d635e08b0cf4f8b00f38efcbdf72f0..9055d0fdf5e6a21afc3e34acbbde3fb078e1dd4c 100644 GIT binary patch literal 4061 zcmV<34`PxXw)i!7jn}hE0TG zJ^>CvEI^5!4Qv2EScC;AgOG^vBh%x@cs!oz;{LnqOrNfvrEUU(U}ns*lX}9LqH+K+K}3(uu|YMmQgsjzL^DS{!OWyM9~Oe$ z4Z9ydxbFwλ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 diff --git a/static/icons/component-lists-icon.png b/static/icons/component-lists-icon.png index 9e1fd11ce9207f297682144978d8822006fb9f56..cda9110893270ac3539b596eb4596079b4dc9f26 100644 GIT binary patch literal 4520 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 Z_#X`y^cCX#5)S|X002ovPDHLkV1lsA2E_mX literal 3028 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 S=Fg!300008(jNg&BuTY?40u26X=PAdIZ z_e{_BE(?-vSpim4wPlwima6%t`|I~?ZLR2X9OvHU<>me9bo%9JGQn36u<3LPZ{ECt*=z>C{`xEY{`>Fn?%g~1=bwMz-+%vw;KHBb@BaGhFZkn+ zKjDYdi&@bF1Jy!s({aObvvA{Zqi=d4F!=5uAm2XEK`dU3#p1ay zqH@}u;HKk=4LjAJYTh`9n8gt_Dw4*9mrIjl7!73j^zBYtp zp$pFrDhL2P+poe-s^-M4#`*z)RtB1a^2D#&#v2JB0FJ<_3?NrKfqeZG(xpD^Bdico&~8KZ?81Tx~}_`R5xfAuKGI2ca0j#RELnSpFqBG2Bp?Hl-mydn=JMqk#0c3 zYQkR5{wikK_f}EmIDG2S+*_B00I(X$RtJ!)pOO@mS}&k%BM2{{*1dpSZ3ufA8}>3S z*vr~ZVpUYqXf*nqRSxRO{K~fNTf$^Ib?64~d9#!~=?mD>eh5)KI;D361^;8i!-Z)rYW` zB}stYto`s-H^0*8eOYPr0H5CRIhh1^{^=T~+|(>L*ZaobChQ17Y7lK>Z51i}Q0%~LqYcM!~(b<-xQcCs9{ zb~b4xGBy!0s-ToMMLkRCj5t7=q9_4%B4XDE06zFR1Rox15ChOUa_N1Ti8LDu~sP zkbsT`03XaLkSZ$noew(wX!UIRN~Bw`o3VX)0SZgkGyts^BmwLV`#Hex3$!%{FaVvC zA4sAQgo8r=;d`Hcti{=U0GdVxVLT{PKK7{~$_wa-C|W_az8`?r@z?`kIMvTbajB^D8vl0@b78xFu+uaE!+fH{CkxS~}M zO8`lM;D9g*;0JkxR9vxdE%SOQ)V#@df4CK-BcepY+6>iJ5a$HSoE6h)$)zf2F!gOd zJ_rbU+GJ^kkuj6+rbRoiR6%Lx07=5SNQ(eCBMB(83Zk$ysv%9ngMb;zme9aY#K;Bc zVUrpPBV(>s#-i0It+-Y}ECCV#nU*x+=$^2Gv=kT)(3{^0SV4X=?&J4Z3)Ro2g`2Ns z1!Zj&z0_$*RzZ2~33E<>`~aUP>?h%H4tNtF;}A8(>IbXYqPBKO0z5~I(~`N`iO&oz z>$D`AqUc=V>2IL^4{`uIVu91o538Y6uKU0MP_A{q#tMi2@a0-pIDE(x*PgIcK?p!r zO8`~J2@b%-yq6CMI%2_4gy#$JzxWOUpxA#b^*=Vht!xGJCl5!n8LA}!OVv#*NaqBq zUF8Yaq!o1N2Ot;=;*FP5fPbd}aAdxh^nVmrB18ft2^X4v733pft$sWZrVIT534)IY zbQ47+^}n%#0svT*A=UdR4mj7I@T~j?j?Re2pjt9+0L&H^&w1k+5lZE~x6aR^t0~Q8=@q{bV48^28TR~ohG?ylZ=L4oo zIRO0$<&gEB7!Np#77%j)s-UDUPfY1p5LU+Jg9#Z4fUhhiC;`(@PuN&Ox_&5G?As>( zAEf|X5P(F+%L%6$fRKbtO{64cfi99TNHFHk}Fe+|HFE6P5A7mQ;w)XN9tYNrH%sgTy5 za6^F=H{2O!!cOu@J|1>@2p6p z!m0>U9jyy=*$=o%|2MgC7gLiQiumof-y#eE_lfx{5mJ~Yj^>06PAH6QG&Iv*AOW5uCi?@tF3GVU0Aq$O z4@u*@O+toKlGq6oRZm!E#4PCtG){?xeRV;;E=jLPtQAy2Cs%vHrZlC}>^oQ$F?7a} ztBT-YoEcY8mUTg=zML>8<*_VfVQJ!UUIj@2@N>FG)Shd`iy{%ng$km4KuK0dD^Hk7 zxZaZ_?9O?@!IWf2hogPjuue!>%3Wbr+f2@qet^G2#-906hwgw&hc_O7?9jg1CWoqVYNDx( zBMDIBi}MX70cHE#H!sLvmgt6L#HK>^be*}N+Xsv*-sstJI5lyX2X)Zg(1CHpC>^P% zCQ_GV@50v|amrsnH`!e^lxUCG*?b+=HON}wo;X*ACU@T0Lra1x z*d)^w<3KC{G7?HX!r~qoG(pYi;=rH|1OWe@#vSB3pYDDcIlg{VK#*~ul$f5L7e!e- zBf?Zf^hIOFF^{kB(CPo=_sW!O-3R9OjDfTERS~i#D6O+$S;_^RnVXcVqB7caNNPU- zH(ym%v|+zsKe&}!G&oeT36da9(6H_p9@;twz|okb1j`x^a&0)c?R#W41q7ZI$G0fu z>uOAanVQ@7M%T;!Fa&8|-=uWwm-qyIgmu2gigLm11E2-80Sw*?iS(6ZV8_5muBDZRvvC`+6n@}{sR^S-=+_N--X|anZ9qI=is}YJj4>T`Oee* z;+L`53X|+jEIlSaCV}A8CzAG`fBt#noBrO{LMPRU@JWN{fXZSnZXjE_b88n5l`A}}Scr3gV`Eks;w{^EXFtqh# zhXL}Dk29G}9%J|feU`f&zlLLnr7?I)wSyPalHzb;DDcem?-0Bgeg;2_?^xvx|3CR1 V^9Jf#jnM!A002ovPDHLkV1ghJfC~Ts diff --git a/static/icons/component-modal-icon.png b/static/icons/component-modal-icon.png index f6a081444701a598beea4b0476c9389d080c3549..a4602cf5e5183ae50137cb5bb9a74a164d572533 100644 GIT binary patch literal 19304 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 Sm5=xU0000?l!&);Q$8kJY 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 LNkvXXu0mjfI$~?B literal 2732 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 c+#R@wB1PE?F9^|&IsgCw diff --git a/static/icons/component-radio-icon.png b/static/icons/component-radio-icon.png index 7d2f543bc94aa6befc446c33f75f0f397c929439..d91174de224405f9dd088a1f2fdff842941d5050 100644 GIT binary patch literal 5909 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 literal 2572 zcmX9<2|U#48=o0xEJnhVk}F3{6w%34u3;PzT};y@$x@+IV%)1M2|%k6m0`1Sr7f z=jQY+{rBa1Lp;D=2GTG|ts#>iUi9~cdT`U&M<#LHcva+(GR4Ro+kw74nN@ZLw zS0oYx$2lAhi^UR)fh|%2zzKzXK3^u2hm@*#JU$A)%3`zmd;yQgV=|dsE)RuQpo&+3 zTtiCL3Y9+gW982K(D}3BSIrVb5JYpsmlY14h$g~<5vHrp}aHvOIUbn zo^vkonG|x2YVr(U_GnqQ<2cHh~UE%~r@4szK+z$##;DkTd>vX8u zYH7eQOR9+REv{U;iiu2dJZ$m2C!4R~QMvn3j`kqd{}Uv2)Obv*GKlMw`Sy`$^Bru9 zhl4V};nQiM6A%_EzE_VooG$Y-_Da`) zKmXm-sxJqj3d;@LZrAuF@}eHW6O2!EI*Qm5hX_v^(7*L2G%<1E=kQ#7vCqMrYFsDR zFv1v)cnqJ(??{IAb1fR5xY+1A4{1AXhMxfyPY(A)Qs~Txc5d&+Lx%znt~s!&>oDG8 zjT}Go&cXb%2L^IUwyh;E&9^NuDa8`E7V0(OmS?+t_M*_KX|*4v*O86z4#HWhAc%aQ zR|DqUTTOaFPg#)%{d*gVWFs;sqoGKc+uF4`@s(riL+~_50jyXkjV*r?oQkt3HGy9zf&G(hNhKwThP-!L^zyIh0#UsF`Y*UqPqunJ$Ff_!`3XY@Q9g8u! zm-Hd@Z0scVV4U8~V_Fo&-XaUXs%0d0>!~&F80%n!$1#WVUTYfESlpJv{Bv(mk99R& z2h-}#yCV}vjhziG>~uII3vZ$zO@`MuxgUPf4uVl4!*=@XuQza6 z%FA#^(7NX+!^*A?M_eeyDI>5{kCd(LVNW+e5!*Dr>OA=Kw%gc0Z<=jgpFLv@C}b^J z64JTB?{liR?&gwu(w?get-(6Yq4f+C&`WS=N(!<&g_hrTPibzcUP>MXuY5OBU!}O{ zxWKPq$9`UCrB5)8p_%SeNbhHQ>+^$BYKM?66eYhfS3(CX1*g5VqD-+@u*{di<5^h_ zYj`h`XMUre5r(ACBDaS=TuC{@4;TvF#!a7P;Z1VjdMx+dgwQM-a6771&Z*xt= zCbP~7Gqb!{v>jSH6qb}BxE-VxdS%{dqDJ{11V>8KEpPFQy=sGcUn*G5>i)-8vM>9u zKkZ>XU)&lVdNFe2eLoXe*TePgXnqjWf@XPBym$+o?8E!|!NCjO(Y1WmbsKn4Qy>^Y z_0Urw{Ac1rn_u%AkNPA^#COJZyd_s;zAu<}{LHlo%UHMO_l}tz!nC@vkIYeLT6w>q zidvIbZNH^{zpCe`cb01K?u9>hu7^eqJV38oW4#`Ub!m)sPHwmKzQI~H9}q2e>{IvB zvebn>-r}L2zgn5+TVlUGR7QM*Y_PX;XJA~nH5K@nv^Q{!pnU^bt z)yl*dv|V{Ph#NNj!kw+y(%0RZ0@k;rR;c6feH{o&F&Zhup8<~Pk<0vP_)aoLD}O5SYJtAyqV z;tA%pku4(^Z{!WT&f#Fu2=!;j8Vz&n@NJ=&ooyVyq$HG4Z&+SrzJ2h@(OX=T4(`&l z*!$=TmZCp&_Fhmv!Sg=)+h3`^-dA$@kVhWp2=kRcWgi=}?XlT-CE{RX$4ZL!AHlgQd&s9mm(Z8PJ?ZSyQBN8%L)y@;-_y-Kl+Na~uJG+|28wg6T{_mlEA_(eQ`5#|u--NFl$j zBpiQv;M3NRIE$-Zu!2*&LNODowb-CN)DI#hSZQ-%gSFLLMT`5B$Nu)IgpOm-x4NqM zpobZw?>6kH_Z_|XFyrw3npJh?xZ}M#@DonA?v!Tbhq!+(PJG5Mk6BA+Q3)X|?an$8 zh@|ak!*B3=6tEluYQvt`Vyi95NlV1mZd9FyehpL+5B*`-FdFB6C?VOnyZYC5i0s$P zg&EfF#rD@0t@A`KO(V=pak8=~5_E}B?ybO;kn|e}o<934_Ns*S846*2{w9TjmUW}0 Ww)rHk?*i~ugOGlqzU>DwIsXF-k&9sf diff --git a/static/icons/component-refresher-icon.png b/static/icons/component-refresher-icon.png index 174be8278116b1ae0eaabbfbd96196557ff15662..ec7088121c285e80a1450796eb56060da4cb7116 100644 GIT binary patch literal 8392 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 X>UVP5TD%Sh00000NkvXXu0mjf3fpWv literal 3643 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 N002ovPDHLkV1lQ|EY<)3 diff --git a/static/icons/component-routing-icon.png b/static/icons/component-routing-icon.png index c67b8dfc8752e8c1d76964f642c8a5cfbb0b374d..381bedccafe25452b58cd5409874fac76df132ff 100644 GIT binary patch literal 6114 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 literal 1842 zcmV-22hI42P)lt) z=HlYw=H}+*<>lz;=;h_*=H}*_nf(9%|MK$x{QUg>{{HFd>Dk%-`1t?q?CkXP^yuj5 z@9*!xzx}7C{P*|wpr8EA%>C}}?xv;uxw!rL`T6ql^3&4({r&y(^YiTN|M>X$_V)JX z=KlKn`m?hAv$Fi)-~OSX{LRe$>+9?B@$tsR{p{@i_4W1B(*3iu{p{=h^78)q`2YL+ z`}z6*-{1bm#{Rjv{L|C^#>V}vto-Zi{jPozrX$A;pe-$^4Zw_ z$Hx8K+~~i*{JFXPxw!o8?d{y$`_j_>$;kBF-08f#^4;9~;o<1)>;FakS8D(O02p*q zPE!Ei5FqbgaKAvWV32PxV4u&Rk5I7BPf$yR_Amed1(!)gK~#8N#ah*t<2Vqt-3~WR z&&=*EnZw-7ILxrf4FCTN8^@W^I+0{e+UM+j$xBk#s=5U#$IydSUaeK`n>GO0W~owJ zEn7xju&Ns-1h~IZSjoZqY6$=u7tQ*?k?XMuJa^QoUq*;gx+OI~e<_Nx2}C0%M4N~L#<2v& zN(JyG=9xniIE>9vY-K z8W0^q!%b^8e3vZ+*N3^5>3*Q^u_dw72MQVD2X>hnuX>K0Vizdh(*6sg_LF593fcDA z8zOqklne!FeAV`O8b4ubhBcW!HSDt%(FtQ}23x3B%S4}PAmCXhK_8|l?EEnwf z*jgl5N5f?~!EK-*2tb|XhWcU{?x4vuaUEteM5xR==$l_1ErPI3?MFIJDyIlcd`s=; zIs~Ugbj30;hM7LV4@A_}A^3ub+AJGBim3y9MHA={JnIs@(;yhZw)g?yvvZ=JUW`v( zYDFsoKZ1z^#=@yMw$IuD%LOAIg}d-SI)EnlEguH|qmU{%ND&P4AsC}HOJaZ*iF2(J zY!5X~xzm6(3voX+lYAF{9QK~8rTV3Qm`msgr?-~8ViWH=3UpAKdB_u+2voU1Z*_gN zjz}Q(*o53k*8{rJN`-1%M}>9T8FmvBlF}LKRqc%l!6rsbioG*x$@A6;)H!_==b8n? zWRJxJ$EwoioMnkA4ni5x)R4GB3{`sR(FBJof(w+5A}$#_m5Ig~5dEx52U0eXCW=N4 z_2jD(U7SvNov*J1?hXcY5~`zIGb-rJD#Ro8Jl9=t1`pk#k z&{aOiPeg5zsDhcCFHtngxX75+Wx?Qcptz7vyMEcQ&|oT@6LlT=YDzTA^UxulTTFqB zbUVA#;<6NAADet^Q6PJKd2u#$Bx4I7ywrH1y84}x*pJclx@@80WfJ@&?i1=ka|c)v z48L-{1j^Fk$cA5|sNaZIM)E{q~Ra(#uo}iMJ8GmCu0woF0IqtlZe~K0OGT4xGRKp5NM4bmAOd zGfgzHF~1bFb6pAw-Xv7>UTZF(mfK?1^HE!FwH&?*ID!6ZnTH`utM73V;h zm7#47`;flKsd5Hc-+ZHCziLQPR5Cmp5M5>4FB-I?<&bpQYW07*qoM6N<$f*S?fWB>pF diff --git a/static/icons/component-searchbar-icon.png b/static/icons/component-searchbar-icon.png index 4341738560dca7448628b20158915c7c075df34c..6dc6a36091fabed945fb45ae6e9a1a728b39960e 100644 GIT binary patch literal 5501 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 delta 1536 zcmV+b2LJi}DvJy@iBL{Q4GJ0x0000DNk~Le0000m0000m2nGNE09OL}hX4Qo32;bR za{vGf6951U69E94oEVWdAAbd)Nkl<1|iEClU!E6dA&+g(|L~ z2qX~Z#tF)WYe3?ja_yzzz`fxNg8zUXdrJ!kq;jZ(ibRA++`Qu^VaZGJBVK;L@!G7{ zv&PSL`jaNRnVp^eeUF*><{KN*1}rZxM?;~|HQY`G0)ZH=am%uzxPL}VZ4ARm;gTv8 z3Q1fSdU|^9j*pM0q(vCgBuKiiuWtrK6Cjrehrv}M za{NDu_vcy>reOgb#IHvp5#CF0Z?7~13UYjWtP1c01pcZWR`JB<=H|_fjg7ze_xCMm z&uSO)`MkwG*VorAet)A8PIXxToyOq1KSI;-;o)I{$)yvZiya&s&>|^VyfacuV+OpuQmfxUT@!O5MR26x4)GahE1Wng%@){wgbzBXN z=3{v8!RY8{v{Qq%QE<)J+1W9%wp?)!?0~y5$j=WA4V@YC1b-LC!NI{OXF~V03IXVA z=gysrVS$pfhJk?rE|_tw6|>IzvJ2UB{qoq@n4Bf;JHd4#olcvXOy+sOWL?<;Ab%5P zIna)TwJu*CIJowC4_p#2iSQ?|Fa%T`bpfN2u_{rxq`V{lg#XPxeOtHle9aKW`~ zg`izOLjk;q-+y2DQx^VMl1w%)ejwZ%lvgJ&$h&V`tO&_VU<8bK>3!ZCbRW#G%6;4* z`Je9pF1h@vym$2yIu3~+*grg0N{jS|n

aL=A|Wz&r#Q`Cz991WpQ1pW90#=!gfE#^ zF^g6gNR(rsg!F4gfo^;R*Xk4BV6P9U0LUk~<7pNYh=aJ3T zFMm>;Vrkiuaw@EBNVW5plvt~sVK*}n66-oyA~h>|Jqlpe6K4^ zzpE5{!MlyKt-H<(b{hWs67RCQX$54U&3}9iKQC&-IjD;Fxq>p5`a5=`ju&#a#jHa)0JzV;=nu){5%V&7d$fnw`Diqsv!>Zd;&i+TL~}P4cm20 zp4zydRS7`zz)WB6?d?fE@Ba$y2085R?(+J1Lq|@ltE;oj%fk{@x4>_c1Gz{u=zpdV zJl1N7dDD3N+S=M@|HrTHV^;J#&$9#O>Fu0M+d+TlG!E@2IhnNm(3|GuVKi66 zcDfZ;V)jX`H|jDC|I~oizz1isT23<|%+ktF4H)er4l~i`94v6FbZ}8Gn*OneEl2`_ z%pkCeGw7orEDXY&Aut0$C|bqvbU_nd5&g36F8a9F4Dpr)&(S#?A mB$!0IN4V!M@OHDLo%k0$=zU00@8jVB0000Sc?$ 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 R8Ug?S002ovPDHLkV1kYNgf##F literal 1388 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 q%hC!LzL^g{k4W1Nq<9W8e72mc14CT~sv diff --git a/static/icons/component-slides-icon.png b/static/icons/component-slides-icon.png deleted file mode 100644 index b49f725c20a622bd74434291f52af9d75c08f116..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5546 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 diff --git a/static/icons/component-toast-icon.png b/static/icons/component-toast-icon.png index d03b6ff898e49035af12b80a4818f6cf064134df..5f085bf6a728b33722b26a73c421645e7e68d826 100644 GIT binary patch literal 10439 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 diff --git a/static/icons/component-toggle-icon.png b/static/icons/component-toggle-icon.png index 031ef7f1f9e2c1e0feeade12332c454a73158a00..0077fcf865cfc5c92550cea8465f3a91e8285b88 100644 GIT binary patch literal 6412 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 KyT5S@N&6o=m5#jt diff --git a/static/icons/component-toolbar-icon.png b/static/icons/component-toolbar-icon.png index 3c283abda7114f66fa41a2dff2eb841f011b16a7..205d9304696bba3898e500bf7fd52e8196147949 100644 GIT binary patch literal 11006 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 TM0F4500000NkvXXu0mjf6<8y7 delta 1511 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 literal 6395 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 z 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 diff --git a/static/icons/feature-component-datetime-icon.png b/static/icons/feature-component-datetime-icon.png index b68389370423563801b82f6414efa968462ea07b..eafaea6a5fcafa03c6e14bd4be6e4a4fe47d2e51 100644 GIT binary patch literal 56391 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ä+iwPr2-gO>!-Gi3f(uvyz_8GFKTo zrwX&`i51f@5Zj~fZttIny`C|&6moMZ)=?TT3)0hQAZ&doX)z_8=~n;d7{O5>rDO4- zvd-4wcRw*!LAk{8$=>x1=!k%Zvl z2`R;sE+RT4;0$p`6~}(UUX%Y)8`86$^J!p()n<0r`1V5f7h_e%rBTj+kQjNwC=DiO zwuUL!P4$I$2rpSpDj93E3*Hx6^J?7h=t00-9l*3^BD2#&e0EFP#_7FU|Dm~h}66<<4m(>CvJ z8l8~*h%wL3x|5+|S+eB3(Av$|so(*H&YWs~h%~J;pUhrc=U!V{=&cdXhK4BJNr8)u z_zAxFq}P!fYbzz~NK&S8W}Cgz`zi}qjh$g)^lH!X`s|duA_E;%E-qZVxpIM7Ni~y6 z(V&YcJ=?(SXIhssIW0&LbRm8&DL&&xzp+zJXy(0=#4Cj*n&>5q$ca`n)`R@iBu2B; z1x0bE*Ks6cY0tlC3Lg{zwB+8v6)(0?{hO$S*d8G^KG6w>pKLWn2x$p=Q6DL|Dfej+ zIO#OahMk$O_BFDBBHdYUg(Jf{W38#{?m$`M`@cv*VqxrkItF9s42cenG2#nGSnY$n z6r*i;A$_bWbW3`L!peTe*Zg$A(BN5a22RLYsYcIcfBdtX+wq56nH0I_uTO(ZMmDwT zPW(@qZ4HxxM~SxeGmxQ@L$Y z=90uIvcitdS}5Jx?=)7i*LZl<&j)~HMFAxXL2uiQ0#jcPXSKT<`A@rN>$JRva*EFX)Gy*Bx+FC{3#-Z)^2xZ|OXeiCT8`ie10c3^E9)kkyBon7`*J zsA{ss^1mqxXtm8APN1nN4yHQtJMuw7epWi#Jxa${S>eDTCIr1p!&iR9i#wboppj`F zK@)PwgdR3lHkLY|#e5LJJfBQGo;PQ)Kuotu2rk{yeXVq{Z`ZYnZN3}{jw#+Nci$GW zBR@T6x>ZG>bq9)J)G&T{pqK2pu_X6z1_u^QaDQQTP^g-?cxG$95gSa>7$MLT9x!Y@ z{2y9SgH1UU?2IiM?q<85L)qseuW$vToi>$;kV|l&KHQ~-YEb&Cd9(XGx z;bqd>S@&s3Y|502f~EY`_G@|RI*b^)wb=Q1H2l--!M1bMZS^F&LR5#JFtCv(j`mN! zyZysV1a(a5Ap=&A1$>H2A#kvcDW_n|!~?t$XvzVn}bzn#vOgg(Lhu#73FX-rbwduQJ9aG z?nUQyde^lbDa?oJJxx_l%-wtp-`W?}KE?Juqa!=1O7Pj%%jQ$d!MZbnhs{+tanw~B zaQW$)Ml6a$+}85av}9F!DT+VjVr`bvg_vlaX?@pE5}uKs-IOT7G!l{@I=T>u zH1378-?KvJz7>9j>v3~eJW=DCUd3}&?hi96cZtZzfD;b>Tm|#vc@Nh9d*CAYWwUCI zYLX7UWUr&Yv&WtKWCkzwnXPM|b;gKaC#U#%5=2Fu`yT??r@&I;E%BW9ys%edDvKA) zqCER#SWWjw&z~7&g|UB5XomO1>fNEIfN`{7$2MoQRk9|1d)GzNz4n^)q;*t9f|uG? zd@IoBhcZl4z~VkwKZkAc_YjE~)Xc zh+xtLDh!OJD$`}V54Pp^v7G8M`MNqbmjuVr-NkO{b69cIb4p=Jg)~xtyXep>*Wc{= zPAVb_{S($jr@3~oyEaFXtCK&qJ{G@r|Dmu&KSr|2_JZr}CVJ2;>K6GWmOE@N@8J_$ z-$Vo9v?D{$C(NL(M>jayRPVEEC_&GNKIVt!f!$3I?k2E&Nm*Yu*%f>`lUN2RxO$qR6k}X)4}4|<8mP*cF%ZD?Dj0kXqaSeS z%uw{Ja`6Kj*skrYqbL10Dbz@EROGm`WFJ8LeKsO@ zufSR#uD!s8UMTd=n5S(8^eOG_BIxL)_j8Rth=P$&Wp3(u8N#>a)0EYyvgeuwoPpN- z`9J$lYVU4yqP~g9YU=pKU>yv>S4;$EuOwSv#^)wPHxu42i~L4N)YveSBC@{n@Zu zo>7z|owKTkJYTo_7@LEV9^R~+_?BQYu{5q*#Cs#p;VJ7!N)|oqgla84Tf6|M;bHZD zCWYRwC{`iLA^|45GHw5I-{TfE3Nj@s$v$yX=%hktL+7Lapjl{NYULiq$FCUS=s<0e zAsJN_KX1hH$*r=198$WTl(?mcNNHc()r<@L0s00qSma%X zWJ|b;kC}jRy81`i_9LWL*s%<)#55n_WVrH;Y#3c71e~hy=Y(lQU3IAT%EGSUU3c(w zBo*%aL`*qcwll&`RdydGoLT zoT@XkMJkSz6}y;%4XibUZTxokV@;=88;`&4q$b(K3ux`lqi)B!jU{@aYFOg#{(U35g z&mD|qjB}nl8M0t~#SrN>L@tH0E1?o|v z#LH~`ny5#SW??j$RqviWy(pe6ehTgTBC$rGUnuiqz@ITuDd=cp@SQK4WRG;NRE|BE zhwkX>Sb+%r5oFva4GJEzz#=;YCGQ$?Kz!HbCv|DC#PDR*0;y5)n#0MixD^ zn;ek+*uJ{T^d8xb4W9MEn@P&M$;~#wKgpoaAc+!dwegI~uAY~4KjzFc?XjwlZYq!L zFuMFTXe)W0()&7lB!?YBTR&mz)gMbzjhELNma@OOC5g_tltrd^?razlm@ULs@9?=H zEGf?(s{&{PAO>&ku?g+vzm_quG5@}c)!037U=vM!aa!h5OyM`mlpo6!#nh5qBjRI$ z&(30b6hwJzx@MH9I(eP=HqL9(B;!a?YK2Wvx@w&oWJ>>*j(1%-uDN-gQ;IwWG_}3B zlSDm9tyZ{}NyAC!V43IBBecl-REZ-(WSP|98Tr}QoqKhX+{!Q!DCqm?-@zc;@rFyu zmA9hE){o#Ko4weM;6H-&7-7S`63;Nj33DPRTxcv74Tech@L7Xjp|V%H!IZ;nCLf80 zHZe#s*o6XHid~pupgq|HnfalG;CQ=wru}Ww&OfAS6ExgeY?9+e7?t40Q&zd~)b55p zoaCiH^MZ4&ZXLWIWQ|EWh;PcCHh@p;7!8V3+CT7DZfic0vxrFi@t(>JjJ)uCI9xqo zIGwFgn6Wo;Z-)x`tLDl96INx11b23})uVthT{0m!Tah>0eeZtaV%qCn2xFx*BEGMt zuPW0*bQRo7A4lhualf0k-C2#4rQnX>f%Ixs`pEX^%L9~9&Pet;v%+o=ROfX($!L5r zrO=Hj9WX$tEZ@AV^ypVOdS5PR7BI}t$$t9IoUt822abw~O+?SJO{TnPL!c$-1MT9& zz*iwr>owZaF@9l|da}-^-s@Ef>)m{nAluv1r&;*4eKRrs*B}T|j9&4QI|>okM6=9b z7Dd75rF6??d%Nwg7M>=Ra!9zWvB(gCA3>yO4Xm^u+c)wygFXeW`OvHD2ln-}60uz^Ece-84<&S~yeej#=`t?P`{>kJv^QbVfm;D-Wam=M~g zX~`zfB;Q|L`)n1w4?q>%T{-5mxhF?$##8>@-|2tK6jpuX++qLH@i-+CYz(A+yOx60 zN-zzJe-_Apne`IqwSGw^yTVQi6_E5ha2+4nr$teWf{s(#DBR8{DeS!}3S zq$+D4Y=htBKeA%3lIpj7OB*Gsl1fo*1=Vx!{OD8yr?W#tgCo?YyV*1{;C;X859!Xctl>2S|ND04~WhZoM*xukY zbJvUZ&1ewAQMoZ_OGwOWD-kV0Ai9JhJ1tj8F~Nm5AU@g(xpHCF0vJ2~WBJk3)jxlC zH*%5zD>Gp}CtRp-)%$I>jrr}>*Jo$Iu+}3Gu>X>&o^s0{ zmrKJ22Le-%)$;U=IdEd8eMr|dz6ta7B&8Wze4$NVcZnm>%nKMaRH3JDV2@Jap<*=4 zRh?7J=zRB!N+oANT0VFOQZpeI0gi&za(3#o`sCMw6ny1bhgm+ZjqrNd3Q*#Pw78g{ZXPx63Ochad?A6E!-K5>G6@4cWNu8nE= zRPF;6ef8=o3jkwKs}uX`#QT!gz2T>3oz^#Ne%p->WCZpc&-_bj3ae>HwJgv4e+tbs zH#j#SI*$CJJS}jE{EH`~LlWgDGE|Vr|c^U%ap;F6T=N0Nw?2tU=l(*ce z3XW5Ll4GCi^2Gp)GsiD6Y+3@3uDc$$qiH`KnAvJoYZ`!AyKgJ>w?8)D)d#_l|JIg_ z*Hgk|36?~2wW)7+E zORlWK;)!@3^^g!ag-jD%Wev)d*y5$C6H6!l5aokat$2|u=e+ZyI8UNyN+eRKOKA0! zm5tC8Bmf#!_)~S3|Kg>QiV>#!w|3xVE}#F9H{4s$&Ls*_AKLp^az-VE8<%K4LPbjatG1FE&`Lbu9Y4+~@%kExx$q9Gh5>XV(v`M^#nc8kQ zWNOZAR}Ce;Fou0tz>BJpX$Rk*Ixl_(xhVAHx(}6I>OAb4WMp`~Hw$YGyGLP8hsdr6 zB=R$Uz|i+%nL9c_vKhS26z>Tf6%n>rwvb9C8+K_dMcVbmTM4rqkSVrjB1!z4X$aiz zHVLxSc@^2!eBwO>FFeWWI%VmaQgO_-&$p-NCblai!yf-V6Gw`Wi2r|>{@JgCN?e(97+zieLlv%@1efP>?~(-6Vao$wcbXma zF^n{@K1V1z>imrnLffrL9JNwQd(G9Up{{n6$53vF`!Cp(7Q*pW$ULsj@LecG8}^A_ zJo+?g!uf?xaU!_tUs8y-^+IpuwN;PCDK5Q{D7gWj4PJ$HG)&@=e9kxQNKHw@C})V& zg)y+>C-uy*4hDid}Z ztCEG78{dtmVwAQg3qg0E*Ua20_;AFWYd=!jUPzWzhbKHsD4tPFLDMMCZB+b=t1Bs& z;BdbDtER!+Q%6rr5A>p597Q3Sy`sfYO*A|p{=;9t!j5lpX_XwE_JJlv29Z2)Rjgwo zx{vLueihe~K#)d@-e@(Czob0Vtlga3P7YE(^|lp>T~YMX{pJm6Sbwe6Yq$blkf&wT z{4l(098cWO%{?TU?;>;Lk7y&sO97ukQ+`X2NAwlB`U-jo=&;d=CK+JcIIUky z*x6pcZB{DR1A7Mo1R&EVE{`_-6LmD~=``4oIZfr^xlezq(&%;U@fXE;U(Oaco>19w z@*LlvyjvlTz>2z1V=R>ll?ntuoI1<@7}j8}ifPv;iZAq$NhQ1B{!`#1H_T|L*0X2O zxnTfSi4-Y=k_;4D#OtV1g@cMD9!ZJiGPWl!7MnSs~omtQRjacfMGyE3$S{-eMa`i3xBRZ4?*rf^4m z0OmUi<30Np7ZJ1QALRHf_A`C zdb&D`bQ{j>geF|1=F}55J>3exJ{~qM{yl_db2yCm#bkjoPaxNNi7H+vcrYzRD_1F3 zG0N$pXYH;Pu1k#vDVPb@W=sW7fP{w%8Spff*B0iAd?fw^DMVBbbYdh)9Iazb-)u0| zSh9gAPc!A)ZGE8*Gd4|vee2|{=Ul-;45u%41>=h3ezD;tVHA#C&ux=2Uq_9l4@_gF zGiQrH`HPlNKvg5;QwYf3hTL`H=6s}UOZ3RrfgrSa%h*bP-0&!~=e7GNUsDDse48Ti z-K@9V%E=Xo!!OaGq_mbuIW1c3$vCmY7gUMm7s_TS^3ZY4LFW|g5|0&nSa_wg{lc!~ z)`?xnykq#8u-_u_ozsgq(uff76n2?9&G=^CR5KAD`>a>fb>4r6xqHQ&?;x_Yu>=x@ zPwPRfzX4>VK}v4Vf8s93omolikCQjY5!4ubM)$Kav@sY8{;$<@##HBb+Wk=5XWTVR z_oY)JMctGl-Cq@3Qfv8*O5ds0Po{WE4s78Pk96SiXiCy?5|SHq8aDY-HLA~QFw!rN zNLmBj#%)Hj23l<4pdb8VN&#EpUI#@7VTYv4uC4d2cnz!J)xQ#AZg(FJZk6}0?L_pA zE+y0VhCR($J4A2fQxlE~g9y;00fv?I_lRmg< z>=kfBRDohU=jZXV-v{{7!ej0iA2yVvmfgM$lbH&1Oq|LW-uQw(mMH=m>Zj(A>~ET0 z{Q*Y&3!g)q=66J-;u>F~mG{$oHezL>qeaI>pY2K~QjYu1`|`<2iW|RBeVkzPj&L&* zArFQ%<}n_yeZKRQlqTx11V~tDNKmVX;x?R{uXINeD-yvz z*u{d@z|hWuCWlJ}2{qI$ZXlUkR<#{~`)8LXP+=T;`G zBIu(<59_p9orA;Cc`6>3crfliTCZULH-)~H+;x@H$}7bUR2@6vH6sc|l5br5RFM8u zXxnuc*;(LEepG(Vjk8omtSxp%1}I9l&0HEA5J5u;{J?|$NTl)55*AGVVn`yMC+;JT z!!uxzoG_&Gn^I}@Ux=23$p2A4m2&cX{!^|~eGp8tDiJgb|L3omkpGtVeewsTw_=uj zO1>!S2gwTtoHNO`-qpt=K*b)d;Mn1^3B=2g_nVT_wp2KRN{N7LK3aDs?cGnu zHY*VxT|-uSa>b(69P)oK3Sm$_sj`{Dmn1DUgPJFvJnFI#5mVp?)xwTG{RZk${@{#x z-Bhqd9By560r@`~FQFA{Jz*Lq>vz_yIkimMaGya)B1c<4iz00bCMxpFz}dvz|*_3>pr1*1Mb&{c9^vuX%{` z?Wm#-a*lkl$osFH)|xCcJ)}-W(x z?0=7Y{K@U~=L&xEcigs7*%l%~^8e%CyHkDMY0<1iv?)noFlP07OY(P^_P^3+TD%wP z)IEP!V>uFi>#-}Vwg=)rqel26C05BM&HcGS@@C=M{4WGMJ*7STU2k~=S_8`BZ{zzh zME~Y3#R#5=$vGJH^m@lu!nBs;zdB%LcLW_)cTyvA9J=Fvn5yr!ndqp?$%fPX@{IFd zikebYu2Xvf?7shz*n=?fmbAUG zmoTwjUTMT>Ofp0^rTX80otk`@;NZBb(7#a4cqj7X0@xK@PYtw_s zC(zD-Th60+v|h_c*K=#L1@LO@(rI&|YLZq@sHSJfaZma`W;uG)H#^}-zxWoxjAY2m z&=ju`30O0h8RI6}CaT=6`K@avP)qVVtB>lBh8AMusIdJxBZ91pg{(h7zyD!ZNB{Bv zFwH495(nvcDlv?R5JE%264HIfdF&-J;*Bh+I=#5lZif1gUYr2#P=lz~ypiYeTRGve zh?_Cz9&a>txl`#?&C+Ow>iOcoW zJzgU7^HoM(rSsR+E%Yaz|D*UyJk8TZiXVu)Hd5pMW7dMANq4VYNhvKDnpjQu6&+UJ zJCfmrV*aCzGs{R~XY3hWRltVHD}NOKEBN|6Uy|zPKglfFqjU8#n~@3MFBPc85X7E) z%Q8GV>C=6qz&^-LfGr99aiCE+K2uoSIG07;aG3u2X!1L-_rH>);d((r-&$>BrHiX( zB-mR-8c?;o_hUFZ^!vB`<2OH1Oow)!y^VhSKMnXZD#~!7lnKtrB#MuOtqy;yjT9x~ z>1kfGke27@dXzc@w8buv{jWOZ=Z)j7*B;C1`%i_T%aitEfa$OQ?g4l5JRQ;(FkeO0 z6FZ$BvbG(&&zuHC{kR89<&Nbwq!yjaS3F*~X?O>P(M;lv5WuE@CE8V`t<>JX`_owK z<|1yRJ>1yL^ES3FxdU)BAuY%Q@2*=ka~f$xLLLltEM?*GHqTgEm0hHt~7fm*w9<`~s31r;14cKZmnD3sxr4>2Elf*`51u2UnTwmSR{}Tfnh3Kx9asvD`k70%!U%n-L`aqrpvcl^#G%QDx?l4&Z zxe|=}doA8raF4p{QGzR;+{Ce};fLMBao-n9WXIFOYbGxpEB|D1<+YbPAZw2&JSvxG z$a+AGb9o_o)w?+;CfN+)#tj+|&(+~=-=Emv&4mS9Gd-kCL%cJd*XGa(Gb4S3Vgiq< z<*=1{-mp!esstGwyj59bl6@(|U8@*kJE#-`eQ;PeZS zbDuZZ;U^r@l7hw94vCIky_J*Oz{_IZWT$<7CEicp0Wl? zT*+9$JEVQ@*lrz}y|{vV>>zH0#ys{>?%t?r`IayA4IsA!5O%W$k4yZl5LQUO64O)giPDb$ z7SDg<9FiwKW%ax{<^`vTzH*}5|BYu5Z@v2*>*MA?yU#^d!o)OqBkHMdLp5IA{s)9@ zj7=f)VZ8Byfj0`k+$qU-rT_f@6@Zns3}klMMH0YLlcg3FWwZEKxaIeKkbXM;jc4^4 zqr9At?Y{%O*5=O5-~nW3fyM!+JNA6q$gLNsZ+`Q>qUoJd#~&hsXN(XZ-9q}^qr6+5 ztjyTlBrBh5eiQbwo6Vtr8tWK%1DtLIfM294J#BUyl>?99>~KCZ>L&?!PGh`m%+iGE z5UCy@6{<8{JBg9Bm{T5+Dj3Xr^8XawrOT1-7x37*^y{xY|LZa87p2g0yxV1LI_`Qy zF5kQ!wcD4@l$VcpLbHLpb7gj40TT5U?0$A-^?2I)jd|o+GkyqgkI&B+9*n?K6R*Iq zSFoN#063)1J6LRA^+=-S2pyxyx5{o5jOT#NjHcUu7qL>ld{|BN5OUmhX|nyxQ9zMW zFbxqSHtaC&(2u9bmuT3X#F*$`Cb>_#dCrY4(&2{!@r2WrolUT&t5$*P?9e|6vv>v+ z{J4I+yS$791po2=-G-1G(%rg>ub>uVq+5#;tS8S81P|K?;;88{sYM?*Z+?9-pS`E& zwMp?qnkDcAc6N9FmUkz9wzE#)?9!V#eG~Di=12K{0ic~&av#6b|43Hd(>EXQ5N3Jb zYmPy(<5eW+@kcFgzxm78>(5*d2d%K+EEUANzQpnRq?1Jkd!xO7x~DQnN<#g1F&> zFn)mO^nQJu33IVi*&?wJ@Z%h?@5{2#;t#ta zvBm9N;jnLJ|B&J|K{t%L<}?QP6uONZF9gOOcichZBLkkJ&zvMR zx797@{a8X?C%+Fb9{K8J-$?e4bvp54l~aDpGH8n(gO>zF$7uqr&6I}d4W|EsF1CKn zAH(GL@gl0~^yV@JfK&Xqf;e0g{#zNo#P1pS1vHVp;By2xIvN(lVB*lFt0lkkfcRGU z{DnCdIMB0LZ<#XxOxb&+5{foWD5%WMeH{%{T^NS7j(2cz3viZ{cLC~Wi-dTLZ z__~Ay+_DRkx?v8--ZaAAdv*ZX$lKYuJN5YBY`pGGu-tU%*5^R|;v#jrpv@uSy;}^g z`0q}o#z-pfHM0aY1&d6y2Er-`hZF5XGZ6XX0v345$U{?Z){pj zrCssk5~5;Dm>kw^F`CiSryd)aQ90k>=L=iFGveA<2vXj%`>sZct{mgoZAtQbNkT3V*Yj(eO|4WV!8`jTu@v@U(wp3FB^oS_z1rvS0@)zIO&DkmM z?1w^6mwudPak`Fx|D0EoF_el9?Nms!mMfvbM6mu#CpM104T;`QTQE28U(UhCX>OX?h`H<>u@WWy`~VB1cM zC(wl2xqkS1Uk}!3>39ceOB(usSq%Ip*yKlmb{$l=js=l04A5fX)Mj6}1WophCR7w! zlCx+GKoMW0a@Ay&qLl8FTLH?|;HrvlS|7^UsY3O>%ixF;1e@n4-gS2}JzgG>UUR!+ zk&*kHRQ86U#Ml05l<-|)Dw98r7HfqXyG7WAi#U(kQ*${$=nSUHOs;*n&97NoD! zg&1wp#>P%Oy$=iCW@6Bt2%}x(xRVPEz^vlb+Wu=gCN472jd`BgYlNov^Uz zvxqDi7>&7W@_p`qyhPRg<6x#Pp!b}g3FV)Cv06Q9X3@z2JO`2dLhIy#sP<>&4004-kDyT9=)IpFBUeB4gGMl?x+?eZUEZZu ztQc7z0|^p==ZNt2!}Gc|I+d)mr=QH~MwmT|(+!R*hlw-|s>Zzp1T?IeGW*34Y{Rtw z;8lN1xy=CnLjaEj60xE`EB3c%TGPB4HjnpFOW>K1=LM`@*0u`F)bpav=Asg}x~WYxEO#~fSozOeeV&~M9_l31@9n!C8k z&Cqj?3bZ0nlt=ef7RNrq~l{~fhdj2-wo#*y&vqU;{ z|8E=WP;12Hg&=gD8|5|HLe}6q`*Wc?;3_zOrf9@*cF)XQ4ML6~eTbWsUOHAV=gKoy(_3?Cef&D%XK6b5N1GTbm17LNZMocAfCHEm2eAoXCz8JsW zBLMKA_U=hyb9s3&6`NkgD`x8wAMlbnd-fFTI^3a`?#XKiR9)P`q#Yd#d) z%+TH(Qa-#Vz7L^(HWTbd0j0;VSLz||FC+s)j=+P*g(1R+0#CX2BZ?u!CBN2oH;upo-I2yTh?R$|FDAKgH63Ze_pXC|}q#{FJM$&P}%%>*892)c)k< z7%CHx4F1y(JH&&w04DE>bMuyxjgS%x)0dv|f-Hd0;-F0x;~-}9tJ%9I95c5JZwMW{ zQ}q9qJMj(zjsM--f4`ulERVLMtoyAa=6`$r32}@F2-#OXXm3MLe5$)LOW(TAtrLcM zSG+lmEpRVg;(zL#r{`{jwO(l>i&JRn>sy-<72%NHNR~_4f=ohKvYkP0@>(Z&;xaj5 z1wO1U>s0c>z4bSuV_aSmelKtF7f|ZAart&1bboZX%#e9_Gg0ok>tE)6;^TmJhz>oq zxXf(j?S8UU-A{ky66DIT_@fW}=J_9bM;9ItAlg;yQHrpj(#E)m`q$0spPcFI!Mk%F z^9N#2xe_#Z?)vUK%kz2ltjzqA>pjb@J~pmpI@XvCcnNCITdKQz+=oye>)KO0?uln2 zRwVgK{pAXy9#+VG8d9|WGeFt-`~>hpX$@+35d0$l?KrCm{ zSPzei5cHle8Vel1{|Q%==1|@-aHi+p+^O!XsEGJeo5~@RbRhMFI-_kmk;6RkR&8YC zyv)~%SMVSWdwBuU1AbUzO!D@-Ok+tw;t_zCTeT+EdH_u-9*KkfMFdkFNIIe(Sm-Iq8jowLL@ z^njIMxuc{6d(u5_H#x31t!^=NBP|?BLQ|q-QFx8p!XP6hqa`qhE9Mn)S}qf#N&0-a z?QFWS%~xlckhZ@jWjl+vHf5TvuX@c5EQu`xKwglHg*WX*Ofr;WJG#hOzPN#_NWO^j z6^%TYzdLL=v#2m#q&}qk5zm88r2L9%%@YwIK9?AKqS1fHC(M|MNlmCHJh_$Dbx!lu zETi7^Kk)=j>3~HJ(+1|#7jGKqzqlrHP?@ix8>Mois zliI9&@d=se!wEBIV6Ede`fHfJ{%bfj8BZ%Yefx&g#!|@lld&+&~iso^170Vvie>0_38Ux=8?L6Nxz!!h><`;VV zhWx(Rt88J`Hm1)@X{)TyMheX!D_DSTNpuE&z8gO+D%|JHl(c0LN3An+3PD>Th+B2; zt%t>zHk^HKtr@4yX3i^y*jclvH9t-IupQI|r(b$pA&DSE3x#ZYZ^en^+6G%}g}*BZ zV$qf${-7%ET)5K%-ZY<3fY&$7K`cDYPW|ds)qs~wZ;U-_&6afK6!gb6xYw))%OenA zp2yKRu_X^nUSgW*jcSm~!|Z_Bo&xk>-XUb=QN~NnjbhGelFgni%> zOKev3EIHC&yh4`B9jbHCUWG*=a0PJFe_oNh9Hr*BMEp@^UAft zp2Hb|V*eg;4t==nB&GVy%J=;_k_G(i;aaFNng?PT{3%wRn)kW+v<5cZ*7BymuYuMt#RIb!u4Ui%E_}Z$FI!>|k_YQSU7r1=tUgB6)xC5W@~F2ck`> zO{U!y1C{1cvwI1lsL?b)MwIVz*;j61ugM84nbt0L=t*t(X4pKrH z6InDe8ph*FmXk5&w1o#6-6O_Vv2MI%XJnL2@2?}4<2KaGj0PNyU3}}w*L<%HYo4_6 zYJTTZsE$-*M>Viv5<%a5L?d@>+}nq60s5ghN!9%^_>{nR-X*iEOEp5`-fC9kjuXi~ z9fIfH?+Bh-upSbbllUtC#^j50oHKLO^O`_|VNO=PcU9l25gER&V-0=x4NZ+ni+Nw( z)amfnHY1S(R~d@qrF`+?lQ&oTXITFAi0-J;7R2_}7k0vLk2*9y)#t5Nvimttty7#G zF8|=nrhc<9{Oq$YH1WxuX?9sJf(%Rb#-mGf<5+7TR0guHX zh!a-00ukifGuu0jHtQ6*8>CKPyrf)kWeUf-5`O-ZwET3#P}|3Ojren; zeU{rGIN-^1&U_VuZtuXBkQf-}az_K&2u(SxD_I>*RBE0z|HAA?GEACVr`l?)CPG2u z-9Q<7`F^G8()S}3$Aa6c&98H{v%-}Ke{O#hDo>Ki;IkE+^uni6H9QZE1APyE#84rO z_tiX);tl3Ut@6^*C*Ox(`^Foy^f1QUCR!_H4EXYr8knxYI86|C`zbO7Ru$PfRnp)& zv9S?9vWHB1IoCBr%aFhNFKS--ff=$daF4Je3aH&NPqGu@4(UWOS)t7J$V*=KA`#{rRmpWMjQRv;2r@s zhsrAKqfia$vp%A*gS^xHa8t&2yj7oBekc+b7BV* zEHO~1cU%+yjn;G|_Bn^{i%i-_JMixxN<#Q(ELB6Owj_edli@u?i`^q}LL(%VMamk) z6~ZQl%8IJ^t&y%SIeu^zepX(qTBt!*U%zAH_=F+z@pbVoyMM91N2>f62>Q40y?aoQ z^A644(O=KP7tWC_}R43a=xW$t{{k4v65(lG3 z6_@OQ2;9|Xd$y8(ASgOEqlv}(fxB#58*YA90u<%66;G*C-$QBEfrt=mTV)KTNp`4f z4)owQHG?Z79z_tl>?M)v)VeoRQ{5{Ha6Am{(m)DLCcIGa!zIGT|7i?KbZO4j8jbni^z=h6r4I!_dm=f z0E5La-Q_=JpBw5O1)X_C1G)7V`C+dE-i;qGTTq^s+o5C`qX*%4sf0vcYxMHW@WBdz z{xSPH?daoclFg8YDHcr7!MW*M_>|Y{=G`RV;a3E1MGH9u8#H7%JzlA;vbhxrWa89a zw3>LYHOQ}Xb@|HD{IPt$ST6#W;L^4(21yrpTy~)5zOV+-oDfmdDKP@1`(}E zr)y<&HWwv*Jb}qyGtQ6xBxTc4#{z7}Bl8qq5G~IzC&EInv5Q8+Z)#XxZ+^?(4CL^c z17O8q4KrRSv;}d2&+D4cjsKEc;M#6X6G1FMi0)GL+Uu#zGSXJHSh{HfB@Wg6*@Kp~ z)?we{;is3>jigej-%V?dCHrQ(PQ#*Jlm7KX_2{s2cxxjI;}*;n*RAM4m|Z$8DlL!GOD5M1M|9Z9(hiX~p}P&Qt7X(G zEc~FGM+;sJZr9FcN0#IbI^-J0+S&E6Dj%C$WD%YK*2x;2C`{Wkx4ed4wx)@!d33J} zPMUg0x+!xjr4s;&gA=W!hx5j$$gzaL+5}eaHkGakhZ$byjic-eP(QqV|ZO z?n)CmNTo92tEFD#=BeG#z~3aJvCB!ZKft@t4h^BC5(S-aBt0+ z&nrhFu09Um6JNvF$;UbkGokj2=cW^UE6q*rg+ZVuGe2;D!`=qJ#n{R{4-Ez*5?uU* zeA4Ge>UpVtef2HOC|9^RY&Zrj$KoC}O!tnvPp<~$7uM|g&E}Y+@H!B83e8RAuv(0$ zu!=7~r3Rw8;50kwgBRY5AsA{nm(sIz&$dI&XKb1dxYn(eIT;#RoNnoyK5YT6wdiomq7)J%2^JR$kOYVmV)fI9z;BU1`6o2un((BJj=4)+oL0INos zJ_12V)1Wi_Wr2*3leV?{8G7griK5&?5G>26xGiQ_bHK@7Ieg84&+6#w9CdrB(MTK1 zXLUAZV-JSQsrSDvb^dHoEP(BAo8o`TMG;XFk%`03Js9hw*qUs5BuX&QYS`yJa7)WJ zvWMU8E?e5G;0GPe3LpS|NZf!_Qfx}{nf>&5cvETU1pxQt<6$?@s#HL^u3gy=<~~hpbMAY&bi2 z5c=Z~{n+l7m2s?8BLx=T=v+@uEGh4xC3Ais4>-a)a^Lj^(u&Efwhs9cvrN=jPq$9< zSVO*MEntS~^ODpC>DU)}8p$pfy2!hr6n-rsCbst<|9T#F)_%G63$u@QY&}MQyLE|A ze49MGPw+5*(Qpx5VVaxBK=)`tQvl+em3DhM-)mw%FJWo0F`|dZlt2l2VIE(8Sihj{ zRy&txDO$lN@8Q3fwYkITxT>1D1>2SwygGlVEHFoUmh(v@Fr2g;kI z_EV47B2CG3o&e9WkauM? zB9sDNEctRFMsH-GyB6=wlu2UT?$vHO-z%wv67IU!vpjDdA89rMyXlA*eQ+Vv{9NIYujionu*2X{vt8hLuxdvY@4wznp#UfApi|R(4t_fun42BRfw{mE(*Lm$8T8~ z%-_5cVuq1-2cnRG3*|TUq$r#PZX+L0*i?g9&88k;=_Q-u%8-=90R= zoTIfjs9>Eg&hMG2T#M08liQ&*PpGz3%i+}(kY9c?8Kt!>-6Q*k$VSefH350SUq*P^ z&m!MLXbbq#t$0pRNbFKt5Nz{T5E*sb5oHFKGfX&ITXj2~Wppv*l$+80gtk|kq4-kG zSc=A3S$R9X)ck=G)3{6AHxtN+g6+DpSR1$}r3}(|9$w_|Yd-DJ;P5CZOgq}79R^hy zczA*;HNb9_pd7LXFJiYvd7>)ZVJ<@sGBVGe%HH7InS)C42TfcSRY7#Q4|IP0yDz%! zUBI;3`vLTL8GMD?4{hhwyN+9YE>_KlJ3R^6u6&CL5#EQ=h``@$Ad29zxnuOT(m9?(|q8`$2 zb-9~Vn#(D%g-dy^q~EF%dJbsC7OapzD`CCE&!sNHN*O`CRYI8m=b(Z9+eh8QWK_&D z`yGjM&^jA&W%pEATBZN{Nsox;eYv{n6eml;A-;j*-xg6WkY}|$)t`O2lOoOJIT4cU zB46mJ8`EL>Z3DFW9j|Fj+%milMJ)@0I#2&PGzcs$QV3&F4Ydbz_qo*cK(NjdbXv7@xKn~}_)(z9-04eND=DAs?E)5t97vpGUlTcsS@p7ch))bjRBKLLgTbQaGzlrV(%4 z7b~s0Ab4TPe51vBbMM_>T<_m?o%qXQ2{Kj?=s*9&&4xyo@pw^kS`9R4L04}6HqKK~ zY_8rb^G9pQ{j3Q5p?&82QsK|%Jz_A~V1#v5s{QjnjNP{#%PQ4h6Vu**HI@vj5dX`! zlhUtC7QoW0Hk$xCejI-s8zO1P5PQtla(99zwerZLc1*xeNTn;EUW5R|J+5-qvZ2=Rt{`-1AH*- zi*n0_FQ7FbZO0P}eX%)?$`u=#L9jJCc(9?zCEW=S3UA%zj33oj$JT51`$o?2<`BL~S#r2BPkF8VJN*f+%;=YV15Yuic zVg?1Sjzv`k?C&(I7g`r-qbqxK(W$cVHtZ0(3}sre{;*bJ2Pxq6Yb}1xCur5w9BjJg zy5|5zHamgL9Ln8a>Q-!gWr4PDf5pgZdIOuAP;#^_e)UHokm}=F&c?>_yekJ!Y%qt` z1bXjW>x6M)c&Uq)%~6hoa9g~R2`a}v>JESYlh71z!J8j;#}9wjmA~sNo84~GgEfp4 zw7nyteH#8qF)!S~CFfxJtXiv=+$)XYBrWdKY7pLLp0YQ|r+7*|!dRb=bgZ6hx-n);67jIDFW)nOf#@F2UnixW ziNzjv70{OgKO7j0>fs=;tM3NJza6YOONW};&Z}<6xbByE2Ueo@j`>jazVr3SYDm{UWp49m(w@}Pays3oi@Z5p-crgMfjHTPrjzBJ znc&>+U%O2Rq9-7EFh+8(_upm%rqGMGD6Jfg2tC0PIU=!R)0WpAS1Wb?j?f?O!9D0v zQ2Kh_Jk-f8656>hOVk0v^~}Qd=y2mE8~v!Kj-$RumK@nh=%FFuq3lFK2y=JBwi;VB^#aoXU zc?Atv6cEOeB>O8)H}N@?mO}1j{S2<&e}>k=z>S=gYNzi`k?UT-5K;9D2r6V< zZM84&0p=aVPjzjQI`3zG01;%P+mJK)%N#?=+o{6ZjV(@lQoD}V5>t0cyqLLdYGG?6 z;{a!CNPaL@I8GoyipOar$GpA0g~@s6F)$LyIaIdRw};wD0yqH_=0JmSvXlv1Ruw6t zdca*y%kW2YX=D=I_7_i@kS%G;q$}C)IGgxI9^A`{pcWE|wvgU=a>udugF(UNZn>Sn z-4@_p^drUlPvOZm%-`Ag6Kc5(IeJU)P4R-A+UR+oLL~G%25tf1sR2{7XOsaRK9*O4M##bkG9F9IAI2X*zl8A_^o)f5v3b+zR9sdTzIzL)vBAR zag?HlHt1@}N zu;R$_JAa0M(mMQK{>lSj<|SRNB+v@cuV`h)$8a2QUog??3nkz-BNNj^-rTfsTL1Jj zqjW+AQ8eG5!Bb0byS|FRRF5{lt)|gLnYMKRq}*;O{!e*+XF5(S41+Gt@kVacpf2mI zj*k$Hdq@*t69<3)iR;f8>ummn6rQtBz*O7r4}C=+$)9!$J-D~^eK#co_B~N5<@_Ck z-Df=6LkIYu|M0V_`VSZBtXMxO8GirN%^zxe&SnxXYb#T>5&x#b7O9m6gzE4Y_)p3%E9EyVfosEb4tK+T-W=%rfn3uGI$tB% zHFSpgI~k`EZ*qAabrS0C%kaX+H6so%z@>%r#!7l6H?1oMCd;TwbA>+}m^^+!7moKF z-OsSv2eQgRhQTOJ5?5z2KJ`{I-u4T-m~HWO#PEuUX@i#m2)gmh)ITT`vtu=7S?}?f zVWK83erU=#vjivW>S@csvSNY&04~kHUy*Fo`7c33eA|8com?8AwRwephw*6f_?0xf z4maB9reYvu*U-20TNPW>lJ=j7q(o-gJ9s!OL3Ihx-##~Xv{j5>li6DJxMDaDP9fV5 z+1@fBvBrUqu+?|%P^YNwG}LKce)?IG$2s}Bhzrm`PTCrCm2%9##rTJ zP)p7*!nRffzFRf!qm6$gvGnn<(THmkUV)S66LY$bvMJjRO~0`HZ652N>&g$iru7b@q@<0Mv_IlU`v^q8 zMI9`IO&DKk(#h={L2J|o>zOCUunXb{jQ@FP^&G+-eRjzP$vYN(_KQXq-b%m zNgr$D%H8c`(Po6^fA)*N9`NjT$toe{dp6>oDfPZezf-+XD(E#!TFzU2yCr??9 zlyCby0dZKkQ@IP;2hCQd4xjb`tVQ0Zrsc+TxP{XWveb@r`l4AU}#iK!? zF9yTzK8n=7!3pbH7jCmIk8c*9VBnyeuv}w7a3#q>Ygw0Yh0KCPD*nGqZa!co?a%b+ zfTe+jnaRNc#LenIuRx`NQOK}mOO4Qsv*g+PiVtG=@NS;9MD3Hrk}audR(75GcIF#^ zxY;5>+wJAgCKo60p%Z_82YBN~5fV_juupL#Dx7!^omy3FLbZ3SQO;u~ta z3^ofv2DG6sDsgG3KeUiArjcK&(S$2Lf@ zB;UWJ$tSk%3nL1Aa^pC^A5l@b|CB?NUkUCrt|ulFe@`G-IeGj)h=2pesF0xQcIdkN zy{MT8zXvaGj>B6i6`9l7qB4fVDSy2}4M&RjGoMghi`y!XgQiavvpZgr5DoT z_C`pt?_xeHLfSOokO^4J-g~%Z-Gz(y8*$P_~R=mi&CtHPedzXmd{n5KtC-b{_(* zDVN4=M8SI0l8}3__|;JmhgSb_#bW!o=;7mw+Ps}JH@=b%eV!n?j8=XYKA!L+ABmzf z%n^fP-%SSg{du;eS$fE?>RuXg9=q_^DtS>)C}@|MoLNp({~`YSk7TlfSfnx3sk0Q|J6*J==2xi9{Z44_DPU*l9Re z7M*4e)j;i}d9u?0^NXxhM3l0?tyxtFD|{25(~kXIlb!-NLNzW5R35>BS~H^?u>3b$ z&!&K24Iiet=S|ubK^zV7-i9973-s_Q+6l9LuQ9LlF{A;8%5(~ZorqKUY(E9`y-sMn2gg9;uDz?Q?V7QiP1Ozu0yaZvZuJ+r_B*W>PDb9a_) z2T@oLUjDIcF(%zENGx5>qK{Q$@F*P1o^4hWQD*S4^r<~9{=y+XQQK@9BM8K%^KNJU z9fTAoD%h+@TmK}a`+I$ye{IffDR$5ujXB~Rf@{m;p4`I;%2fnNerLm>k)BzEBm<|3 zJDeJ{e5vKpb1b2k)m(l@ax8bt`SFS!5Csj{Sr)|sc(*M9@w|4Xk|~%0UvFMd6W+)f z1WVQ(^)6D15QGN4rqNmAA(ArDhuboSDYRE*b!wpPsjGmhRpLrBx{$1t;U2< zt3|X67ycO&y5)~)q-HaIf1iR2o z1KlMpG9EHKy_+ZPDNbs6xjX{d;?;)Qh>|n=vD;JQZTrin>gL0ZF0F3ew8iWB?^d?a zgx>L@YCkpjg;k|)?H6)<>3QTNu#Me*b$(Q`E-#qyGF8y)^rhK3#kUiex@YAX3>_Q% zge0?+hZ^_Kr8@;8%WpY>GdB`wkoj>xIVUZ}(&ShzWTdko&qA>PX^2}Fm}o87s*fE*l2(Ea>UTG0HK zcE;{~{$QgdCQ5o9*n$Ps|Q1SdJQ++Xby;j>=>vYBWzthbE%?dx#udCitT%Fg%4=gX8I23Y1;3vyQE#y)2ouBs$Gk(%|_pBv%4 z``kVJAR>i8|1;!=Qx87{C&hu|D#M(z!J`qt7o&I6tz#2eol+8thBrwH<$Yqi>1y+7 zduqWGmm!z2mrl1bOH~)A`M3;9KVMW(uju_tR4nOpg61!bkHu z=i|pvsWXg6gcWthixSRL!k#Nu%lp(R^kx+j<^2*NU_bN^+*Q`R1l!yh1x;_Hf$pdS z|2km8!9{71e+Q0shvcb9RTLVwy_W?bl}9od!~BgdMHlYr5|w7n>1~+H_ypj4k$=nn zdii*S5Hr+Qi%r5uyU1)5=U%<1EVc!{!26Fg0t$>siXnB`Jmhkq7RvSrN$vOg3&?v0 zB)|h(mRZ($_h2T2@-kN+g%{cy4vCcfq4yk8;vA8dQDW-S>>LTEOzAEZ_PGumUzT)%~TA7`FpiV0p~(3_gm3FiEEg2 z{#JQV@o|VX*3Sa`r(eBqfG&hgEXLe6t9|zQ=(zw$cEdf=Q+bd$U7TsBeht{dZloh(0|udgx8HLirRe87Wr1(rOUSI7FG4cqBEOo*)~_? z_|=1y6=ObYyg*y3&5~Hocd}n&ugHmQg@h!Zb!NEamIt|D@Vs|a+4OtOyF#k)ore*B8 z9r91`b4S7`KebWr5}EJmSM30muDI-Bcxo4hANy@*akVc4dB8dA(It)Ky#mwV!I>27g{DQq&>lg8_pv(g#7GVh! zOJF#@{#t4Al4WB6Uv8LioL7@Ew4<2q;63vma6KVa*?dN3l zEBaPK@$%snBb{R8O?l`w{^+w$Mz{a*(%QTCtkHaY;DSLqZbvUE>vCJ(eu||L|4(Ij z@CeI7+yTV1GdX115Zc#}u25^N^zNUc;h!PDA@Oe?_yuAM_P&3M(Jh#pF~xLedjD^4 z$8-3DEyVCKMy={4`j!fDM|0%a%Q}8)O{UUc$a3yK4NCz$5$7XGgH-Z*bMmI6Ux_Qu zI~p$KS{hIiLrhG1ntZ!i8^8LdVBrtgadmm}!sQSi&D4r7&4gHd^E@eowM$dLLo z?%Jzk`1{`jxSM};kejlfccL92m+~d`n4@$hv~iw-5*2%hOZ*5?a2!@M(wpi6WOvh_JPdJ{4Cv@L5=9x4B#fUI7PUZsK2Cwq)`9)TBFiv8gX8L5# z3Gt)&LZpfKrJekG1-n*R^ns~?V(*^20c8V4%_Buia=NJ3@OBadEpe)(sqSBiUss@u z--e$`k>5lYjRv<0iJLP-g^8Dswoh7<1v!7-O()mMWW&8Qms2)LzWYda3zpHtu#fDJ zHk^?Yc@8|Bm#*nJ!p9o+qaA|bIM6$=9t8>8YXY;+zUh$nF-(-bTgT)1uUuSph6(~~ zbX<&&tsg)|s_~hcYHOSz%{*C3dwfkyc@1m&L$iw3$K&_#7&R)a!k~vd^9f7COmphv zk*o{eKn@YL@s`0sYg3}0g*RHu5prscV%6aT9p^3kY;^s+_z(bg?B7>A+5KZRXn(AkF+avP zH-T3o2$h$#S(l=s&qg&OILSDAE6@LU$SK^M^d_THiq~^b5Qr+cLs>o?K`XR4C^O0^ z%k;z4yWO1r_3*a~hO`GTez~*uYXN{BuA2TmvBUJs$&c)7{rIS+0RpXj-ny-QBn5v- zzAK;1tKnu!PF5ZKuI-Uv)6ZV3ROruel;b-RLqp@X)rI#Y8uK4u%A+Hq!ia@5U~LVo zQ~HYyZFaaeZFi>#I$@5!KG|;^^-nd~;Q2aHqoF%#e)D zx!7cIz&HAP7#sbkHaX}&%U73{fh?Ow?x^v-m>vD&@We{;O6jL`_nz?B)hQM}>#7k> z80Jiw$xT$i8@t@+EVr!=AFWI!4l)BPx(@0~xB5Vl6S7i)X5&)VQms&tz_Dro43(|$H|vYVrpGB{}=*t*fXK` z^tRY!Jb+XSSe|sn30;rcu4oovc0hi%5I@OkIbSV*;wTrnyjf$@+ z%_CB^9$P$oBdoctRTrG*T?Ctjo7GNDps!}?r{+B>qp}nX@`D%U=61}{z=Z$BFpnb~ z9T|+sKVuOxYD<7pPi>dV+;g-eHm1$J^{RGqhz?~jPu@mRVY^`ZITf7N{(vQyH`(XW zIQfmqiP(WtM!kIqU*lA*XW`roRF+5LSnI^n8_sXEw?YT(hrb+TWSW?kl0r1r?xS=d zd4M)fcujd;h>TgqTBc>(3xeGmV}StF>esY5hok1XK}og9M6a7NQdI$E&EcEPD)Hp^ z&SHOl!(bVNUX%T80!Dr1Wos;)zrG|SOc)Mh5c5b&?Eh)$Is=->y6B1&r6WiOrAmhc zQ9wZ<^b(a8dMF7f zML(QYFV)*#=1hfr-fr7sGL&}KvL>70GumA-;n%I-YYp-de+rv2$W0kW%H7nQg)@07W&h5va*Ah9t+2D~K4@j{?P zyWt%o^7L9f>B5*Ojvst%c!ctfx}9oynBdj$KxUpeMTCqAsvyMU0r)Fuijb+5_nL# zg9}He@G%Z1=h(|ZI1#W&Zs3cs$ zWGzHy*ZNH|K&|phHr>nI!ckV->6wSuS6=~RMR6unU#n{AYEM_cCD!4v<^M<=M7qcm zBh6WsN2E8+v7Vki!VAqzr0G@VzW&jVEfzDQu3VEwX!gl&(_;i>KouNU*izt6txk>7 zcjGssQ2dkd2#iU*6=)FgprnC@-}p$nbG)zr6FY|SV#2&JAqxS(EycJA{)x8>LAz3( zK+|EJ9lAjTBQF))%Wa^Z=U6RI)L)zP{atFGKa!dS3R=or6!}g6A+%EVow+%_wHF(@ ziH~RN?3oWep(*x@I|2CE*PnI30C_l&ktQ$2a>G+8UjnYhFr&3 zxB5deOpI?SZGgOCdY(J#!Fm$4HdEJsdJpojK8^I!?sQ^F@y&)oeM14|Vla~G4Ls!Y zv|4ra7OUZ3V_QRWkhoDyHRK#F%tk&76k|O2{p6Y9eP?x7aN542M)$A5s8Y8s=5u1# zIKkc+G-Umcpq<2p%o_2SFWkW~8487=R&L`5Wo`r0D~Fu5(n63@RsM_{VN!n87?u*v zAhigU4jiV}{>k9>g$5J zYdUlMgF4^mM#`m{9>%C5KxW9a$)OhKHPM@?9na9i)JNc9S4j}$Rpt*BCN8JOWRAJg zy2HQ%?#R=vjR*W>P4jyLcNr;LfvP265G1i=(E zdNJVhBqzKV^CC~zMbWf6g$_DxNktrc|1GLiGf8aBr#k;`Vzsr*SL4@-7&!1o3U?w4 zF?a<~YeI9~&2jQ%g*~5-Ath`b3x&Ld|1y=U7zlnPA9{Dd9&lR0(?|{@pyog+o;)wScg1_*#+UObtfMMMR4brrze2jKC2B+r>uPg? z^;g~Cce~FP5HgIA*$7b%>6}ERVvn{wNf&1dICA8Kh=aRHstc(nDazL?1!&L#VM^o% zwl5vwOk2ei6tfBpH(+g)MctzAF9Y zK?Eoj+=)@+Abd@c-tvIX#W zRl&5sv#2%R**XKZj}HP|3Zktyd-%YM0_1Y?MVHlo>)=WXAmFAV|H^vktE4?gFq^Hz z7fD&OX)H*Xr1A}hhRtfzZ&9++5=UV^SJ%(p$%z5yFA#}4-xJ3_DLq`WOO#2w$g2YQ z$yku*iQ;KNZLY_JS%d)Fjal9SKl`Hb1kwag{dL5#jXwiTEB8WP2pmd$WufB{(pkDQ zNmHSoZZ6*s^$0JM$LAblpSwncSs503ZJlQZ?{W9uL4uw->9mzVV{wPUmC_qSfr3zO zsdzTRuk=#hhwOU{lS#XP58RJ^qy(W^J7*!<4U-B}ij9TGW6>c3C*@o_j^K_XK(?+U zJ>w+X|EVimx&7xUG#v?*k;%Cp(*RDq{nkf1wRxz}p=b=A8V6R9T$iCJjq?dJ3i#)i z;}VVFnkp5}tq**P#L4KLPEeae`|-axije>o^;W@-0g;FJ!CSngL-t;%)$znpVaOa# zw4?GO&PZR5eq0YT_3Hb`DVlVff%sm9=*7R$Od9?>eLD4mTgSwX3f-m-9f@@x*cvIp7=3fy`R%ZNLJhy-+elMCvE`S)mr)TMXI6eo$bJm${8&}#F);@uy4%-T0I0< z!EUaQ`Reyv3C3q*;_Ow&0GRyx(rU=OLTw&y)<*3!WLZMU2BL7AYr$8x@gkl{53j9} zZXV80V?!Z>%Pg9aV}Zkob(+Q>eMc7m+$+8mwtks%_uN!}3EN?@IU}^=XkH?KsLPRR zT`Xl6qYx=(L(stX;n7aq3Z(jyO5rJjWec`C(qS>umCdmMVj(`M=xAvuF*@uNT&c+v zo)YI=_XD`gH}{1?p}sDzq7>PTomQYQCxW{!?t_FRy;G5g7b{Y z&}Vm`_0}6WakW`BkSc2Tp&@TVd=z|W3+Z^haj)=jUW~lxVoT{b9x)XQy%pem1>N+y zCTHr%n&J42P~iXuM7L8u@p~BjaGQ)=M}}HFAtYP}4LN zAdapN4STZkTCXJx>Ed8ViAH!zquGoN{pw3ti>v#)W#KK9JZ&rj`f|8^FQgWr&eM{ES7 zSF}&P6i&c?umfa3G&RYJ3wwX~Kx9U<9>*J_mQ1 zDN4f^*{(_s`MFvtR5raA@t}`Y!Lh``L6nZ);Bn5tQbEas9I(g*Hs5jVR3+E)Saqfgy-4y<7s1iwf5|26I`l-sT-30Kf$8(a_QrQ+=Jlg$4vgu6ZLx4$S{OT zEWWl3gv)2s`#WDrx@Yu~gUG)*UcoOUJ+VI!c2Ynt^LZ4%Cpx9s6mv))Hm`LfxI3FU z&<#?er-|JRZhtda(u_ChU~cjK0Tb}C`0V1fp^)UaR$_DAacN|6Q}}iOR8nLG&dERZ z;d!i14&DyklZV&~z_ee6EsbX7jsORY2n1cT6@Z-8<0Uu3?`<$CeE8W925KKZY7p2P ZyYsS+${bC7A8@NPduyZ>)iU7r{{h6!j^+RW literal 9244 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 diff --git a/static/icons/feature-component-item-icon.png b/static/icons/feature-component-item-icon.png index c3353db553b0b75a394c1ee877d99e62049a4365..20207f4c23ca7570b2f6067044d933ccc570ae8a 100644 GIT binary patch literal 28280 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 OLssT?$0|&5asLBre`UG= literal 3773 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 diff --git a/static/icons/feature-component-refresher-icon.png b/static/icons/feature-component-refresher-icon.png index 528354fbad0030cd318bdddcaa142c4d12951edd..8091f23f92e103fd5b3df5ed49af93436f115e93 100644 GIT binary patch literal 57345 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≤Dvp7wQ|<`wq=@(7cvN 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 VWe@hO03-fC53jUk70zpR+!#86sb>9OZPK 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 E0V0nI00000 literal 7207 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 diff --git a/static/icons/feature-component-tabs-icon.png b/static/icons/feature-component-tabs-icon.png index c73c0ffa45c65d64695ffc0088e4123ae397609f..6fad513f6fb9c4f2ca338c0a820bf4c8dc3132d2 100644 GIT binary patch literal 108141 zcmXt9b5x~o7Y&nbdupc1c1>==OtxJ&+qRp@w#~`zX4|$o`3t}Ak5;QztLL8Q-RJDH z_c?E{^iNR)SX@{T5D~(rU7Un zf~yzd_qf783ZZSagQzNqFT@;yKod5@go}y|Yf6^YL4bdV1BybMX^^AS4qttF@+Boi z`T6`7gQ~iyiZP98_~GUFN!~!DL>VO!BW-_GVmtY<>t*=4>gl@tMO^jn6tXt$_e;QMXyCNtih`|jU$r8yT%&9UA~W+lPm)>3_H+pq8wCt8~biPQ0nsbCfbOGX|Pl zvp=ONOlua8LD^KcY{GwjZ4XY4&y$gC zcYIGym(SCD=AO@|FKjO-l4k_Pq#;gB^-p+UEJp*1Q}or7I=h^5jxl9HJSn3v!lYub*c zJ7rkH_fL&vrMF)b6fj;mp0j_sZcEqkv=k)Xi5JI z*wr6o3Nz0eRP#lC`;=}d*Dsx@6ZAPbjKAwj#t(iv3=_?Sw(i*eYad7`vMwYOY1B>A zVp{(}^htFn0pw3ac{hZxWj0l(U3Aq+hD(8bBdqg{L~ynz%0D|yqP7`N_x`FI1LKlg8!mD%Va%$e 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%0DwCezndjiMg!1^#*uEqSt1EYNtZCR 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

    $>h}eDDm?9#{ElaZE{4fpLQk@}gsh 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 UG-nu@FHncBwh^RS>q+E)0T&Ip0RR91 literal 36082 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∈W$OFp|Vht{P#N6#f= zjwJ!}dl^87VfFt{F%d_-cn~FsQnS>hnMxhi){+eiGcyCGxl9>#E$7VVBy{sNCaJa| z&UeZ9;YXWSg^du#uyH^c`iCRZq>7Ch+0JMnsg^te8{;8pWUw-P2lOI`Q1$wrRLcdn zZ%(VNQ5#awVhpzou=&;wd_Vsyjss^`U?Z@ta1Q{O>G)C^odu53fD{1_Qk}IiMPe^} z7rxuTcE|XgFCv{6S7bDcJZ=MxmR_uSJ5XsD&28e}?%2L;R_JV!*h{_9B@l=WGY%gi zgWMr$*<)MvB5Gn!poFo6r<&%(-%KD`rPZMR8{t@LR=%zY9`M*tNqu9`ERPIv301kr zlgR9iz|F54m-8i}sfM$fiz9}aXGA(pe-e>j3CG0Bo#b>(b_B%X4|6wOVySR}t4Hha z9B_pwV|!O?8c$<#17f&Pxvlm}jM!ryX34Rw?Q$jpP?&!suz9N3^1GtI)0a6T`cApC z@`{H=s8)(8WjBB3F}`{8xWpg^dn?Qqt*|M`9FIWa(HFzTtnm{QG9k1so#s7D)vdr0 zMGj6I#sn9+8{My~Z(ge>FwK*`lNiDUvDfR8JDG5ooFDkDQ-jE{!J3+y(hhe&bVNf} z606DzvKt)jBMn~uLQvXjOMXATj|#kB#4)PImiQFOR4-Rg;(% ze3q67GpLE$>p_rqUfXQgwY|6PhxyWwMw@u)`_eSw#13egIaUS4o=W-}BG`;XBGSKD zmnKdg?Xblr8Z%U??mw+V>@J9|aNk9KfBhWJWtFVHL*6cex!M4vR>Fq+K;%=i!qqT`CDVE-IKpD5|`|QxF9Jb2&k8Hz^}G- zwRU37&DgM`vu%EF(8fG&L^-SeresP4i&t zF6qCm)+Z;8Y4srm30Xm9a@pRm3|r(>ZECw1Y)E(P@pMc<$xi733?EGA=J90;Zypn zeTwviEVc2PBz%ZA4{fv?ZAcg~&qRsh6;$!6d>xwKg>aO`a-Kx2y z8F`$V>Q8LT%z8mo#~su(q%YxJjcfW1aI4|!lu0Ejdug3YjrkSqUWEeY3{ zB<&|JD>$R6{;_9LLm?bSoB_aSM9vA<^mc|4!tN3EeHy~KA0o|B(9exh>dsyg{rDTE z+;@Iu&x3E2Ho1(omK~+rEwhr_;`;6VyBm{!GN!GIiP+hd)A*n2Egttrplto)(*m;z z!#cdeZ)0+MO(3S2rHE{xY*KI>_I>{)Mmzm!EbvLR^fkw}rY)DKl}f=0kP;VObW5Hj zdw5yM?*C)bd!t1B$Fbji@~H&^2d;yRt)yPZN(^nA5|d)u;5tmw>5S>luYD|i`3lbAzcI_poIkyg8nn&}<#F$m3^yWB z`u05~vJd52YELmxI0dPr;@r(X0&DS~^m&8_e?H|Wgb^%SgU*Y{R-GIpv_711-!}*j zcmtv&9E60nTuqlTAjxkX;&c-BnnxNfXssM_&J*ya>Qw6T|UG`Z8gpgCgRBm;>cvx5De*L@2G}C?v=u&`q9^^0^-lY%#dF3nf8#C5`B}W0O$m2VWX@O2lu9Ro z=Lrd@-)mhM@}&7DOQGDfg5N+`g$_GF{f9_q|bzhg7E}chnLQsk~0WOo1HN$0=i z5Jm(#aEQ4oY=>4yXYnTOmP!y?Ouc9u){(YiLeHa0Zm@p`wHvf*{6fM5*k_<&n6|$9 zm=V{b7=XhUMQ}0oPxqWRad*1}^>7s7M1Zt$EW<%b0+%+HCW%Mco`Wms07yaY}-w;4O#3q9eonI&Pz% zyazSK4#P@7)S>CJ%O?f*k6~I@jGaPnepA#^g1M)U0MV8@xQ%qslCRdKyOkw!xNroq zSyt{ZQ3=iRN*d)_x&MNN?g4=-_Z&0ebSiXq>Icm%N#wp$YwpR*hOpKuj8)psUzE1|dQlaWhFkn(Yt3WZDW#O?17TQIV#G82zhW!D;EXDJ zxp&w!gU4$zI%z7!7!k;?8c*^Mbpz6A=jLx{QhcG)iHGME zzeUe{4d00?KhxnA@%I-x-)#n_oII7}6w}Vb7;wv!hup0wmj%~046pcUSdeqp!)8{H zUKp<9(xjq-vwzH!$RKw~4#?Srhni^JUElfZ(7@Z^AE#&9?n(e=5y?x5d(D3>D#g!4 zph&RA%^aIw83B;oGkA9=>`l?C8npN3amy9kb!i6apr02ieXa*n(s2T7_--?PiTh0D9)W1u-S?BONs0mB*=P zjbWs=pgf)+V!=%JcBfw-?NC4VZ+TAOmMJ3#J~?bqhRWi}-Or+SFKW%^)rpeV-AyTu z>3+H*<~%X&w?2v8zGt!w(K~+^_XA~ICsy=v4?yEicfHjDiId_-nI1tH#lNox12z9SB`hGVm^G@DW+=84s+zJPQs_9=?JD}C}ltT?ukEJz1J3& zgz|R2tOj-xqc(|=;rs2uu*Nx}C5a5p(%Wtfew4-sh2qbhm z%`7bz%ZUe@`7dAoE)KW<7R>+!ln^;j;*^d~y|z*q?8oqn9LLN&8VJsL%|m0i*UoYT zN;T$`-tES%Jxwi4;63&6Whv8owJU%{9C(C((x-iu~&_rjq} z^P==Iz?2;x-fD36z8s0c1bL#Mfb=$y1HA9#MJckVi+4m+odIkL*obZOZSBy0O)FR!g{;2h{W4HZ2YN z;y~I^ehtNBt1Ni2kmH3nBE66qYUqUbi~Z@gnVlM@ygTCR9D4VZ+cmkD3v_nqT|$Em zL)*v30(0JnLHWYs{73vvtO9{RX7U3fC(?0r{KYTK5zXTgeJIvco8qi9tE8KFVRULl zx~>f#>KzGXn)A~_&-9%dY1Z80()YxIFr5EC{)U~QT-4i>ZTF=-7m=@Mun)DXhkIpI zxjvQ-I7MV@ulqlKI#S;6pu<4Jaq z#v)s1r@CoaJ0RA%Tv95i8sn?AWh!N`w5QY1l>Li2bKk~JU2cFlm|FuAh z*9V@c5}&`%&k|8vfe{)UqdZ<#Sqkk*zOkJ4)Y*oUsp9{_Iw;O&*#QP59|>HOj?|^sWt< zz7Hc)<3-fQk)~n9L=H=?ci)S*4a#n}@POvqXrzNu!jpHJ)E!^He+Co7Jg(dKYVq!e zMiUJrei;Sf`mm-sx;>5+2Hgw)B0;=MaM>e=4wTm7_uuNtZgm~$H_O1 zLZo#Xr018pl%mraa!NP+{IC6?O5vTta+UFW(ee4mQt(C9nDF~dT&K1mXKGP%OGz?& zxzvVk**VcyG}jGbD8X}^+Y&<)KBzI!4OYWOEaKm-kq;6L<9g+c=plwmsOu)Kyfg zv*JjJEBSj9JPPRh^S1*+GMI(Y0qKN4f!%igrP7Nj&2dY)zBrjE4++du@5vmMa3>Jf zl)(Dap{1iwr&FbgJnPE!*&R`d>IDaZptUpRgrUJ-eoO(FF{`gpZOrFNCJ&fN8rj?t zmm`LoOM|orcVDltL=*mcx_kYwYSFTJ~vz?dK9*q^SW{gf3L#yn^o!+N=OVP&Pd(i|v7H{;- zo{DfUj|S;b1)4Ho`1q{0=nW-QVL(EdYvA21yDNG80x4w*L0CRu#&_b*m+YQ=qeoG? zB;*sG)QpRxM#oD;1+17lZH(P&_F?&EC-6Yg2m(maNx@rJ@c! zk^<(#Yn|s5Xl1f_zT?0ZQABR@#Y)9J$>PqkgPHS`C20?dm}#y>88`-6 zpB4HMP+q_%DDB6sV~H3WtC@8NoW_(&YL&WeLNif3ZD z>by;abJe6RMCJLYiHH&@lFrLEhAf~z38D?8VTxk2^@4LUJ^}~%zR-*w^A$dlM?*ra zTlun+>t~?fOy}mbC2wb%YL8SrRgSKbS9{^@45N7e1;(=*GGxWr`r`odHL+@asn)k^kva4Bguv3%b(dGsGKmUT|o5h=VPUiS9-3(u75pW%=y zRwq6E!EDH2z*yj|#8b^=x$#g`Oh@!OhU=_lIDmBBZz{yM`0$LG%&4w?66;$U zYN)zY0J4ZC^6F=1r`~LHq6=<6RrGn*^%b73YY?RrNvx#kFQj#r`MaDY4|lcoZ<2Z$ zSIbRT555#*!EaEmdI60lgkX)R)8OC)hLL1m{g@~sjqU0##UCkHftIyYP;D&!<0FvJ z<1+ffF(7t}wND_iF7#DD&hZN#Y0qvxmn!f7e&shp+2$Zyb>N&;YpXQwH(rsS)Q75N zayn_x zM5LZ$^WY7%PZmarf4`Cbmh&UP_O14JrKN#wypCM&8}*wqE@{q>X}=w(*~|iVyV@st zNW@`mo>)aCI&iZZ3o2;q*eK(S7^&dTlXJ_tAIHb8zZ$IuZ?A`LsqhplB@cYMqkR6& zZDP+3TnHc3V{M|jM>ikV2ZRjsEP3cc*^sxQO|PykIsfIlV8i%OR$pAKJ3a|+Uj@N7 z4t!nAtl{vvTl8{qERk7Y0_z^%d1vr>ZWUJSGO2X@h`d#FGwQ+A{wHc^$Ru0?OJCC* zITixe0cpIYR~6H28E-O9Lh+kw5VqDQkY;Dr<`AuMurNe~@F_4T`8M*tr92j6TuiP` zb;wGuc4E45Ybm@CZ#?m3zj@tZ2 z|EA&_lJ!wpTe!#PzbUu#15%**o%z&gHpzh)MNM70kOJk$Kx~4CFV=?RM*Z;cIbH@h zu)Zb0)iS7sRaixak{wWiF4#>bkX(q~C4pw~dF4 zjN%V+Uuc>?+MmPnj3JSfD$q0UUX{6`c~zfGDXh)jfK|!w1GlEq|AMvl9i7Lf`YvXf zni9`;go__bC&cHQS<^>4V~E?pu|c$bHhzD}&7K>OMVlaRs~*v(1HNmTp<> zE$CVaO@U7+HGZ%zmxff+>uF^eQx5oT{RciynddI~UD;40VhsmaL=C=>I`W3NRyZ|% zZ`IR5xf*Sm8NENR&jxKzGxZ_n2ws-#Q&{+7`fk{A;bDkN=OF{)cW6RlLc!soyR==* zB#Q*E_06Yqg|UvOlcxI)T}=u@A$F*R}pa}w+|J?9O&?h<0#(Ag?<}*9Ak45sDArt48Qm(^)tgTFXc>G1ddM3 z)cN`k?`ndHn(C0VzWuXoMg`S`>VDtFFteMv*m@&W{SDr^x9>u6-ghTMb+f(Kzh%xZ z{gC^#bK-)8J){r6wsz->yfOT*kZDEYI`PEY<((=|#E zRbX%7{?;@9me59DW#9+sP%(g>m2%kR7GAkG7VWuhnzxQc>5>HY@2ifv0{jn zU3aWlajZh&WMn3CHOj{P>b+AF#2PBK~*4SE@khksMn7Nyk- z2W8$I=@Ru_N*?Zxe5`8>l;*qM-L8JU%+Qy}qp`*!LZU3#2wtZSVZ9Ye4z6kvKN_n& zOA_}9%#QyU8jwk-cN%*}Hlp?JXL{_k5K(4{`wIy!qMa9)|3XWEJHz!g{jz<@*n4J>5_F zuAV>KJq;})SaKd(i1b+#cxd+GFVows&7DNhp@cZy1qh!zl|BGEAxea;wi7ms z8Ok45jr}rCH%V7d|Jv=4cK-dhj-Ra5Uf;4Q!}N8-$|mifTdUhL(iv3BW+A&-r%X+D z`}cCH?4a&wMTlq{DSfqd+l5&O7dGIHQv6f8<=;y$%KQ?%c?%>0qUhrNS$PA&i-AjD zrN*a_du|;LPuq9+f11C4`lg>BPU-RCffiX*v8=;$$6=KoVRcI{iB`x!k4|w%BX;#HWq>J$~kL3`%P?w>88RxWkR3NH@jZ1h(|Y? zaz%g6?VSs;w5c|i_6<%fC>-{Dv}eSgjyzsa4SC3Sk-0`U6xj;v^c8kOw`r@^yQ8{eM>D=Pj8^{^Of zkidy2B9)r@$(cCVgU1efWo&+J)F!2e1FWWDbf;kqC*C98C|-BhBs|d@w^>{m_x=*iO*=9y=q=xq1}bzkMv=JxPe&>vg3P~VcAkRCYp%z zkMZBa^;f2+C*`w zKoPB|N3xXuDsd!ImRv}J_(_xsuB{Ysct`U<^-|Pi4$oFH@P(`7fK0E=;>#$TuQI2b z7uT1aM9dNYF*qKbp&E>KGy|R&zf9378Fh~AL?fWKmImJOP!(4@T5>9E*;)0{t@C1% zv$_DkJx-Tncb&nF8kKj0d;~9=$iM`AU6x|bMUUSqZZryQRx*3r(6=rtdmUnfWBH{*1eMDqj5Fn@OI&_@DOx8hO+ZjPs<4f+VJO2QiBQp@{}s`mc91d5UrTJ7|55g zi0aXKdt)P5FL124u&`z1jXU-}Cek1K@@<_~;F>(A+2v1_piID)k^Ta{69eYFun!rt zsjnXy&k-B`e5nexKk~d{A0V@rbsa;EpCp;7cXXYLeBqIGnQLZ28x2#g66QyJ_lt_) ziXiKW=f|gdm6C3f-5X^s?^L+=)+?0tfR$QfR|X*cxrZ}jXy;KDo?r2UBF{ngnZeVO z1gyM96v=N@jp}9Q2(nXDM~#Wd_cH_U7Jf_Yae#?RFWwY>S?UWYxpbDf@kOz+!5=&R z>}`)|A7$3q(e2riI*F=QKo~~pNQH#;+Uw(Zo;UH>sv3}00TJ}8T?fML9I;tW99vRb z1b6I@+`X@AH7A?n*ez&A8fg))cRtf91k4fq`zu8mYZ6DB)3&{vyn;hN!e2dg6Z-Q= zXiKn`UIEJ~RDuru!E}^#Z~xz;sI?69$NV2Rz0+ujzt|)Uq+I-iM38}##unSM#VxgI zBYzuItx>!ROaKj`ilK-_>$St)_R2`s82L#xOZe$BXdC zs4(^<$^d9Kq30eVWVX-7FlTiPcYR#g1K^L;z#UWj^X0N&@TrAfK^8qT9TELsxw6|S zzYF5+UENz6FadM(f?a7J*!H%~xI{H+m*Iz7t0S)Whf&!9r>_L0O$1OL^B^MnZ@%h_ zkEGV)<(7FlJhV-D&ifSMUY@YBCCml5Wem!M}ggCQphyr&gK`NVo9hs@jgXo zej^y8S%^4^z}8^c*v;b8b8jE??;OX+5*gqOv+CSJ`OG&#z7wT^Iuv} zY$ktrmG?tG_gbmXYgdsCr1D&>a3M#~*Y(%4C=`t1*|u?&+)uAwU1T*=1X)<2R}i09 zU?3&=OWqi<;O_h#i83cDQF3C`qD!M`WqQ3+vwDg>4dbS# z_!#90EOmeK^3R)P<{idR+~75p%;a%Sjx8P?NPYUxfc^!Jt-Ah`;)Y&IvtF6&Dn(XT zvi!=9;3=a0pjQ~Ua@mSt%^VDBD}l>;VJufMDy%R-m{nbs?*|1euU+MZm9KsIftO#n zSihXegaW7}CY?;xrK)tQFbV1co?wkYb$9%2ddxEr^XeSF>A|4lgrcCGx>b!{sL&hxt4mc>4OvTZ@$gbm+j+u432+B zg(U_uvT`AMTIN{~&WGr8S`6`dFKYknVtbY1krN$M(#)x|fo|bdcML@lfiq@m^c_n^ zVl+=OSZJE^QrRFG zzC$~1$hEr;N7u9X5l5gNN3qOlGBV4Q%1_7cB*56Dp)N?5{9?!DJvnMlmw$u9&TxEV zr|l3wO~o32J6G*cn)n>3LkxZGpgHA-=n&qV^Bk zR`qwi{50}M>A?L>hLn(*slP-24y$|k06XVRz#hH)%&Z@o8JAr~X!mc8&;Uow>o3`+ z+$s5KB?A_q)Y%Bjg!#L(X8g<-Q~J<|?ni&T?d+{kvm%ee3yZtZF3wz|iS$zT&*0xr zqMl3k?O#vU@CQ-ds_vzUng9CFcXih3@<(UjaISzrP}JYlRE&>nq%Qm8PX|)@W}_Jc z+Y@|6DDcA{W5=?ky<2!;_kN5HkCYVoHh=bMDm{@yI%fpOH$kxhpdKi3WY~jLMnd`p1vai-@0d z57Py7$W#q%E_5PZazFoEJ>4p;c#-x3@wh`YKQCoj{{VNLsxPzu+5RKMQhuO(J>l@h z-yFtVIj`oCmHrOoP{*0q==EM5!Xi+VZdB**=y>0voP^}!k@w|qk=Yr>*2$p%ZYADJ zT|Y3ZGdoLmxmcYK8tw@Ct2XoRyrE11m0V)F^gMXT5dW}>Zu|Oc%rlw(sf<)sG235J z?I~cok2UPp{s7d=5a_p+qLgA|dTwOB+UNH+0@FIEj<7}45H{1*Pfr?&PD}C`isq`W zjEA!5wbt;aCI9900uIjg6H-#CRKGyuKUYPUF6h|kz_lKe93OKVHD_6t{-*0MPoFfS_*vgz%__&5z{xYx&MvedV zb)f9S-k?+JqpTXeN3J-)jsAD3$vpg2U&4t3Bc*!0mv8X4n{B-3@zRqOaszy0rC@TJ zK9~`VXlm_f!{i6D-}^CR@KQkVBj-owHj6$JqpkWEW(>g{cGzQw!XZ%@;N(4B z9KFe)mJ{IJ*}#ugdyR3v2|;SYhU?m3|DgbDYTft;I!8O%C>hG6Hcy=gg2DHkYRNLg8Vzc(kY@Uj-Z*y3;h;6K1DC{3sNlHmI)|jp zi32BCEE_f4El?G1#NFpVICL$$1j_eM&sI`eR_F zsgqvh7ew-#AccFR5j>+ba{`J=3V1s)qwR~oM$NgV)bH7QY58qjn*k~x&%~QFq0N^& zDHq=Qa~MZ~TZ7fCpOx6!ljXs-;L{VS0nYq|XBukD)vn(_2z<`C?$P-L?x7#WL#tC7 z`huoRW9DN$jRL;b0t+*#IIDvoXPdt8V>w|EQJs*W@81THZ^%nV=6|NVBAFFRBVxG| zt@hbljfFZ)#R1Sa?+wy(Y0<#EZLjvmv2<#c zGBN)^wLG58*0nz_qlK}*Q}E<7L+A*TiOqR5?f!e<3}yrP*uBjtMcLsu48Qv^Zej4w z{}bn^GRoo1QAf**bqGkVPa~K2VqalgeLv?YFnp-*4^K#rN2tK_ARmRZX6e)q<{!%j zDEhRXatqrrLu{Ck92f1*!u<^T*l@Ow^0e88V1E9}4z{&}0EkqNeI8rBO0|_HwIBj7Wg> zSU9KJtXbu@G)hBXlgb6|KkKpjf$Gd1wj8*5P3nZeHZSx!wn?BSp#+bXLmtKoc72?@ z-X#cUBREWmQ|&OA5TpM4qo1i>I;H*7xd{1I^;3xpiM5yl>mToPdemCfq~fp} z;{FVU$oq!O$r3XIPA)!-sPQWZv$ zAv#>gu8BLfN1H%ap>{qmW+^Q7NtBwj6{v3BKjVEL`p#Ivr<6ape%eP?c5rUbLL9+X zz!A4rD6;DiIPe#2$+JNj4;cB@Uj9)guLIrc@Rin?`I8k^!!!Y8cX`kFhFor+|Lxc% zf7xS*6$)3H@$*^NnRos2-f9Tg?Cz?c{wD9iAAn07*G`XL2fK}ql06?2`kJG@sp5^} z>+KCON4?f?h?$^(nLO8s>>B9sbbhoU9Q~AA6Ct%R#q>_wj17NnMVC$pPx?QsycRE7 zPJPLNv6-${Py8*0@;M%$Is?IO5y6yGPZwml9x=UjR%paak~HTR{$Lw2g-t|GPzh2< zeT+@d$VKiUBYmngJKD67qwFBiWsa-Lh52@N;+|G@wu1?}g&jmCM)lOss5G>_F4fR)803ii{Z!pxy%NpKXa|m< zx8cG56WZO3=X*OK=T?S2F_RL1QcI2FK$O-kBm17WufM2zaY)!LbqK6mk^CJ;To4No33H7SU`(S)ckR= zqqe*Fy!q1o=hw1LMp5WwK%awGUVZyWD#7dDg>$>VtrY;6!hxQiRKp{k43;mxEAPGR zLlpvRG95mY64#V1VNZ2WO-(mMZ_sRif}|AI2vN1}PZ`8*4Yj*CfY4X9$ta2jI?h$& zX78pjDJKjuY_Z@y#<+nv(Z(Ea60IGo5Morer~OspL2`&WP19qb9vVcPAxH=eW@xG1 zg|w(R0;FU7I=9IvDivPJLx?8s2sDA}6>g*X06&v@gR;!hc)-~Vouqn?QnciYQfct5 zgT;b0nuy@@i$jfveODr-?l`$z1{le1*&7tq?&9D>VG;sZlQtPeAs!c<2zaTA!!&|? zZ2yj26W9p7zvXr?XfPmFnuesnCtyyoMi}yI+oLK$ciYI#Wi5s|7m~qEDK*HUF3cPq zPb-G{!fJPMkf<>xDYxs_CZi}XkQyHDvHjP_UpN#a$j9`t=a<811Y|OY;ZW8o?6j;{ zd?93DIZiEpr{!20ph94>&uBpdzCEY~MhBo0G_52}>xP~V^#Dn)7_M$FFxL{K?JkZR zU%vnLwQG}66sn2yC9-q*!-Mk#iRZ`1mhV?hU<1GaNb8H?#!#$3r}hg)%j!qaUFeIZ z#dATp!=Ux%nr(wo9w1+51_d+qy?k7&KTkR9$3kQOMq(&W#gR3D^dVT$n{n&4w-3MF z#UZuH*p}a36s_~6`)@Z-4A9BIU;pbV%C$NkbL(8S1pkZIk z!)P55bKOUT2{dHYpGj+y@&IAx@tOUPc{;JhS|GABee@GFhJYa<92TqK!%~KDTXu{*OvDEX@X0uW&Pn z&|-8bOg%q3LGQATCzwd)jut|c8g~pA1>=cxzo-?;10?%2iWqDj)ct8NPQ(Mmq@gM? zC=FirVI+*^aOImVzWwg;6&Jtu)_eJHFN!tO1O3qdyD;;J>ZHI+Mf}m$v>Nh-Q4(T_gSNn`_p4!ocCu+)d8tdBdwgA0s7Uf z8~oh-d06vYy_RY4fPw4`7b%XQRXF3e9$@$k=jIz?oPieFY;dKUEqZ~$SZBwVRjHC& zx?Lv(5McmJV3J^Tk5@`mLOlOqn`BJ(8aZmK-y@?o>8`PXtvjC{q~!! z$T`1h$Chv0Y0Fb+O&<5q`1(M_)<5<=UsmI%QE2E|B`w>wa>2Py@B@U_O!_hkkhx*R ztaEB>lm;j-iK!u{*^LLiT#cAcDXn#b#Ecr~Nn{=p3+jHXVy~eUGJ-TUe#45KU;RP% z0v%7!)OWtyiUY2d_4NyPy3yi>ke9Jo+T-)nKkzm8EUi^|nPytx)|bI^cFfBTi*@GM z53SJz=yrg*sjsfm05t-{r6)E~cPD9h6p}PXmEyA> ziye>iA3pzWdxFgS)o3e(bEnLH<5!N>+oFcggSVLfCjV{4AsRwIzH12iGvd$n&F9W| zm^(h#zU|lgIX8CvS~qN>v?KRT?g`SZxN3InwkOFj_#q`Tc z1Jn*cQVn*MI&%neCI z8z~Cah9Rvrq$k)aWg`|vQ53OM4}hiW0OeiaL-zrSVwIx5&IVyv%ZDfqf(n7Pd~+JK zUe7S`yOiXd0I6ttN{;g+&T)@orRp&hMNt&&{-)2w%2-}Q6zdcwg?UpW%Lb&uQ%@r&l^Q$Q<;Ti8sqz_2$K4SOGFV$6)I;S9i- z#EDlk6RaqTq5xpFL?vk2;_NMwy-Blr7v=J(- zDXJ25)&U;5yAonI$tg~0kl{)8_SFQsVe{tU{lFCLJygeihd=9-O@dEsW7O|uEM8a&JszGxZDds)I-qeRdVL=%QIMQxF2 zLR0eP;VX#6jlK1rb$)X5mO)`K2AvVY9sbJJwjFPZq9}?>?g1hV&^m7zWLaEu;-t+3 zF$o8v0b;laVOtM(kh3rvBpVu-7^)d+yHH!1#^Vcf5rcP!G)P7m_pdO9{f(P$9xj-Z zRCqI%0klFCMNu9gQYNrjT=GpdLj~kG z7I)9pl0Xa_P$`i*oY4EaYd1~~@c>Dk2l#sSP#tfIq9}^3t!*Q@bp4+je6lR|3p7hv zp)d2#Ie;GQD%ru8{sq2W9-u}6g24gNKj&^k>diFS&;7!H_9+`8f?kBq7y#Jg7oW7_ zO;Hp@@z}-xoIl?lD1z3I6|?y|X$H+emN3SE{@m!SCvAmM9-vkT)+`_aF!oNfJA{0g z-~>txs@bjpJ9*PBwk#y=@h2|Y@unz>qImp?C-d4ov_YJ`{k}YkrNH_EX6W&-uj2q_ z2$6(JL*ksf%aN-#@A;suR|p1$K;eKt)j$ z#pAo)pPii@b0!lkB_zIPwv?V+qgzb^+9IWM&rJ+7u|I6N4K-qO1Z~pt*v}R_urLZJ#9FFWTlPUOT z3^Ow`Gc)snW!^O}?;4iT?2x1|z1q8Vrq0)|PFp9V8AZ~Y`pvm%c-{SEC8d$)9juBnZC%d5&#;dwsng!FP!#^ZpSd7YNQv<)n4h&~OpcD6vG&t8h|fBfv&9(0^Jlu1TD*0|JPQk^l{Fd)NC> z6h%?&9(?)h-%_;J4szN(9|m?W*Hi?ttQO`a+FUfd<#T>vm_va%;J^o{^C9vID;35f z!9gZDgUDttOJgau?G1}Tq&)TE{jpry{ZV=N$?J3;(6X#|<`?`tpv!mtp@>CM6oorJ z|Lwo?_jPU?xkKmw9KHT;!Wd>R`Hm)J4x`u68j+JzvLEYh>6!dXjmj?HQ#(M5g6RyP ztZs%k?5JhN`5vmJLN{AroL_J6=|(?c(`M`_A%Z^oiO-@ailW%HyzO1@>num+*K#>= z<9$IQIW~uY>F6yHfS0pwfTa>PKF&p$g5Yfph@LtKaga7e{qpZgkVvqrQRU!9O`DiF zecI~W5#;S}9&s?G$3RgOMX~F4f4)3Di&u(#LzC*U=;?Bl!eGR9GZ(OPfaW*^Uj6Y6 zq7Fh_JmJHfR(GhB$x-Ih^qHK``pHt#X+7(2Mq=9PJWFP=OJLOe$@~j&R@+$Kv=+n{!t8-h|~H)>*D-^VSO@!Fhim%l;p^FCgn2pv4zKaZ8L~ zJ}P{;g~+6gEFH4QB)2KsuK%pR|AklyX69zFUE>Q>6h%?HKVNa@XXuQ%<>N2Jp;*}Y zm1-ZydeM?1kZo|rkM()K$9jeuJBNKuU=~9$%G~C= zQb@zopZy{fMNt&HX7|U;uoCY4$Ug~7fjn{ukVA)MzbsngK%Ozg5bI50jH}K8S|~{N z`M~jqPF|0r*KJzSe~%e(>19_;XHfhD{QfA4 zqNr1!zxs`Dhxl2+?$4&l1a_R)nFDf2w9X_&>gBz$De4TC<8f3m2-Szas|JH86WBtL zZ&1r=;0QrV@N5@LcN)jJS9@En-1{fx|EDYZ?;+`Hzx>s2aG#)}D2igIo4))kws;1w zggZa{Php&Y+a?DY1x%tvX)w}Zi8eaxB|&tU4LQWOa?c zZg)xW^je+%;x@O5`q!X^iSpXU4EVln;<0*{m#X0?C;UH4O=2sb;2@f$)n`?a6uCYj=9Y zpI{a69AO{*#Ai?xMN#Y=KJtmrxZ`tcZDqSZ{_OwL6m_K+XN7!?!rU2cy@YcdshrV# zK{m``Rwl5;!jky0Y$(+((NJis7`6?X+X#9Aa3FZ{p$x~Y!Y)uSZOi)h?5a`}MNxRf z?c3k^eh`4!Y(=|22OM$il=|YKz80a(?y@Fu&gYciZHpAk<}Wes8ApCOiBfOo z?@8`!8M`$rz<2(`vDuoUj04jPv{y_y1{7&yrkx=YBHFTYWH>k%FV-v**rGv*P6)C0 zfX~MRd70|BnNv*Wtr*)#kSP?NUh1ayKDZs&cY#(wY@JTFX%|7OLs1k(@svM(Dz3Z! zdXPJs?n0cf;l7dh6pSB<5Wf_X-k&?y`?8vs9HqNR$+}0FrAbke6$Q4KB!x>PtnW*8 zO=ox0N#Ag|rlnxR7{^WswWa>MJ>?}Uj&cj3^&hXg22X#^i?A|^q9}@IOwZD*uD%8U zVTKj6>HKGSX}yn6iU6|^K{22y*)|OlK}h~Tp^f^C^5fJ^W6Ty${*(aXKnSTW?6zj7 zTwx=$CexZ0D!w0PGM|yafkz&PJ3ai5S1N-1;?g-4uXyzvQ4~c{>=-Y9)f*Rh2KZcms(Qn|WOJy2tl3U1VObMXH#Vp%N{U^iThH3*5 z#eN*Tk5nhw(0V2B^)5W#OWoA#?stJZ$E_4o#6pF~?*K(n6fb}E8~quYUusw4_#7#a z6dBy_{17eq7g;o6UNXrdhhq~MV_o{h1d(BD`m6-dLW>@UUB3+srskK(PVzCuq^bvw z(wabZ&pBepO}g&^2Ti817q6nV&!&ICpRRNn%c3ZXGJCz)j};-gvYj8{&-VSMXFOW} z%Ybr*?)6MQHf5<~Hhp=w#$-)2_G4ufa}Llpn_;c7_uBLSQQgeEZZ?~{f6Uf_U;X+wxc-(OVb7vM-8VnrkuHAnvwo$fuTAGa9maUirE*a!V?eS9K%wu{ z9MG>ZrnmU91w(5li-#~P6WE&A39`8$b}x z-~A89xzBtT_SyfyRZRwa-Ss!%oCiIsPK@4z`0a0J*fS~iY7Kh?g+CKFKk$+MjMR(c z%Gu{{9O%z-cDp)$^)JCBEc}1Sx!)l(7(kyXWi*6Y9Ho&qPW{AKSM9Y#Thk8ECRLoo zO+v6~m&ib5W~N)utK(2dkc^gYdM_Q%5WMlcr>}Z4*ezSPx^v$%p8KNO4cY@Z>A1t) zoU+GJ;>S&3yEnyjXsrADyljg0+Vz1`Q&( z$e|!oKP9x{fBVec!pa9|aj~HgqDcgKDY9d;&tu=2>SUPJ8elVDk8Ci`Ty0u2*v#8N zBQS$cwD@zhrE&(Gc8`Z*>ka<{|NUQlchxiEf90#+!o`lAizQI#mtfuf$$on6;KPN!U2(;csqAk_g?fiHf-ZpO&O|BJQW_*r~ zlAQ*9O#`w;MAQz@0>ggGPh~o?Fp+xuxtg7kpaRU&w=CV{@r_NUGQXtsiH(!(`1rfr z8>@+#!2n!0{lkCeb6@OHVznEzMktEP>E-^AfAFV&9a-I1o#~nF0x0}F8^RTWXpQp! z0bx-pCzyX`1{gIC#5_L6E79C8O44n;ddm4RO8~8b#Hc9=oZ`81RAG>BKtoj6Cq30v zGSq#y%}LGe##l1pdR;fZhff}Q!kG}OY8LY-v5j{>$4@-=vyE8!xBJ? zPf7x(^TX3_j>gz+twL1-Q*B-hH6rS*QQyr5GMwDn(#1JNwD0~0;og7#8vlp2+Vl^B zFHfgOZ#a9i3!&N(S`><+qPt%9>Noha?IR!m%&H5XEPl>?<~#jNH-zv}*t=I_r^m9d zXuR|e6PYsAR5vwL$t9yT2zy^klmP04k6Bj5m|34R_m&r~JuZPj>QufIW?(D2j`xU7kms|0Lht{@4`d zwQbur>>MP1{29HJ>Y@Q?Y!WqowRj2klC60?#8DDL`dyIe&kq{8W^jDyZay}8Em8s~ zANb>?ur6Vj!`lvrH`9R&1k)+Sze_d(2(`_8t>n6+ z_x9XrQH_QT&1RJfW6eP1)EL_tr_w9z?+G`i@c*ML8}{=_$PYKhv{kid^*(5_3iJ#*;)0Gal^`90(rAu}i<2v8aIoUIJYIMM%&nZpg`;WcPOdTm@(;ANcDgh)# zBgh8F3`XmAhX}K7hGkP~cA^HN%S$jMJ9Ix<6tMoL_tJdL=IsV{Ytw)k;5$JNeBp=j zZ@%^(+;sKjzyH&ex`P!jzVvdx;z1-mIk(-b&NPl>T7CY3M&`CpOb3P;V0~z)DeBIw zUq|7mHtW}jKhN;Hqil_s%?yn#<%g3>W-O%d_jxfU*6Y!C=q`#j8EYfW&HefBDbLAu zIQqW0SM%YZ>KlGXf&^wWXS$={`_fpXYW)w|D;UTg`v}jMnxA z&Mpu?3UxpGNiW1c?(hr{z5iy*+1};<+538CXVczMn(Ajh=ZBht?(fk$-_-CyweFSN z%)HMhq&3$fd)@obUh}%O>;sgYq7C_O=oEVHHg&0+*)k?|A9d^1xjut-i1g5=q5+!O z+*v|@(2jWW}*R2{oW^sXcxC3c3RsjtO5F6(FkX}12pVsJ`X6rAc7J< zDIjRAQa(U><>_uBlahyxLkIH#R8i53oOXXQL>5&Fhi?sR+ByZA(xv(s_6KYE=XZSA zA7H~{|9UlZhZRLp6ocGecYV_HvGKg8f@n%@G3UqA?fx)!VPY6zj5)C@WIhMpD?y^& zSmbcyfhfwK=CkL+W|R9`O7RP7Zm;peTx>Sbb;b2fXk@IQ8xifzw6k(wj}s_13&!S3?MrM#AVV zuakr=%{N+?155=>3A2S7u|^g*=06EDL>Z&jC=~|pmyHArlhYZ;E<{Phj3UM&DnR*M zx-=L~TcjpDXz(W*rkeM;h}wAGU*o<{e_QPa6-803G{pUB zZ^OpN{T24x|6qU()(C6qd>=^ska`|_K}C1vAezP&jcgth-Zio@XsF)fEv3FtS5Hm@ zwT37sXd&^_6M}^5K|(M!L`tJE=VR1woqF4{wT-5mTs4QORKLNff4C>#?ZIe!?~5P& z&*eBs7e!GNw|~eV;OxoY=ip;cmNPS2n61*a*Sy;TWDaYs!O*2ZYJ{)hW3+|=UdpMt z7dnb0Bap+u;;SUYMuJH%`FVcr0IgY=)bK#Oa4>~gmZY0dQDUZ>6ic?>*3xP%WPIce zlT)1DD7=g}hM1S%ICK&FP2rh$eCSi~kXL*L$KB;#*gi#36va_zZ18919Uk_SDX`?A z{-DC%e59Rt^-F}b-oJ-nH>YWAFy|VP0)pkwV;sD1YkXAF!3SCVh!9(Al@dTByC{Hk zdZ@uLK)vkxZ0HM=#`GF#7%DFt?UEoeG(h&|rK`6&6OEk9JrnC3IPC`A^N(MRyFTH0 z1G89B6h(358F#_vr@j@NpZ+%Y^=Xjbj$iSN^>%|XKJyYy8Q&#>TIVYSUCfbP$?O&1 z7xW*?nN%av(5`0roT17CRwl57^*4sZNVc^`MP0fX12(8V7&FQzrd!pz8{bBzFRkaq zNR7+u%8#2k^n^2T#^%T2z)1vcx$%GEH^2BP);L8`l<@JF!#h0m4{+d7k;|)rO=hYb ziHmsI4AWTh&1_U^qYz9w1e%HnYcUT=@Te66%3=(W&;3bcG1ao^OZ5taU+ZMs==fAs z=A>VgZer{DEyl)&S@clV?jHge4sn3d=1vbKTgoA$Tzf!6>mBe~j7<*J-FEG%cY6pP z_VUl*zE69L|Knea6h%?O=e|#Ui#s_VwQkdrYeGXKC4QQozy3KJOgrt`Rq=9ZuEbBb zlW$%|1X=b^=2(-c!;pWE^k@5I@iXtBZRTZ;e$LbmP>~ceV6e227&XqPQc1$vl2{TJ zb0wtAB!obHZkjHbjylKOJZ+y^*A8272jQl%Qzu91lkfH*{Ce6A`pwUO>Sa+B#Uirz zbdcft2V8^=kNGRy{((=xfkz$-l4y`~vdM)Y9ZK8zVKTpL zX-YD3wFa8`_slR$=C%fSpKNiloUbs!TzJLGC*IbU9uDNo$t|$}P zLQoVXdXArhKu$UPfjH{SjoQx-u_H5+mkoe&YS%@iG>^`34&kP7So!}fIhhDpbRBEdPU>ia!Ky{;8@DYt3jmAo2r!I zT&67}%*XZF=nZBwtqWr2W4#KCJ)Uk?r_BJ9rt)hx>oWn{QVFlm!q>^i5XM-{&|tt) z^T;zd_(e1P>_@jwj?@3kMbXx&+*zzirV2h;D}>9eErbl&zPQBcky%3 znEWn7_*nBca%Oh#>;z4N>f!91Qx$1^_*f!|sn*pIj7(pulW9z!;XSWq$TiDR@@C^C z;3)WlfBtJjAYTC1bMV>C}Bd#QPv}1!5U8U2VW7o&L zKkATUF*QEM#b>6q6&5Vfl(M&5YD43KZ2B6RznBBx368BAsu#8l0aU*j43@_vVI5u8 z-Ph)QW(NOU;zHAVfs=%j>N5a7Uvs_BFpK(98Qvs5) z>9B1;LV&}v0-S(G@lC4dPN7qt<)Q<8&PW|KwCKJGfUAYIAN+oS$AN+K1d^U_^Cn!* zuu}`l!ZZ9Lb88oZCZfa?2Q-s1dC^5ij{W8F_FO?D>$%IQ`wRDYp4@`wCm{KJ(NI#IxphSc?5&8t;F-MevHRh*LArb^@3LUb|0QRFI^rY_)GHs zmqw>HaITEc_eh<99-5#WY7X$C>{BjxW0Kd>omU-qm zo;2*d0Z`_$Eq-`3U~hT~fL;J35CoIfqyRTPPNW3_Vo06<5j8UgMAQ!5IR0pZ0)oEJ z<0$Yk8-Xz~aPl@s&v8Yc9}G36C) zuip@f5fYBi2Y3(!GIZ4`?WDh5#;wPaRp;c3W7QKpkqqLSUrLgGCoAVU1{nIqsm}>y z+-a8ndi;F#iB_dm4%I30_`2_D07h$n78!hvIt482dW`t{c>7m`mPJ}~;+&9p8~~V- zOQ3)Z99}$9)hw}Kjo=9z(5`Fd`;5=r3^G5AVbh~2awoY_W2Eud-4T6 zUw?hHPX~1-yaSB#__~ujUnl(nAPTfPO;ZMk?ygyBkHao=n1PG|c6$mYJY7@a zs;QI4q-iFD-oE?R+JH==$ssgtDqH%#%}*UewBz!~Ic^)}rrnd}UgdJ$o;*gJKg+!H z*zp>xZYq+e*Vs+g7Pp;_;L>dFWTq!pzeln%#1SjYY}0W03jl(dWr zi$><635({cI7`R3`iiRreSo|IGy$BQnF$gN;5=%5(Ze_N{RKcj34po^ac+F21h51Y z3FJr%6*QvI=!#Y$Hc>_ z@eqyuPx9-1feduR^fXY!j|qYv90D{&+jAHNM(qzYJuzV!6lI0y$@z6ftMbi*8k;L2 z@scg|^20g+bOJ;eGMK{8C8ILdkBb@azTZtxUjXzp8MvGVh-63zi8VvX76`(d{ltGK z?a_+_nxIKZUTXK92L^qEK=;EBXeRkI!`!ORIQd2Vt+>m89i zz6Kfw6{jPg?t_u*%=}dzx*K^;ZU>cGSa13Pz%2j*vXk-k3%rk=ljpL}e@V2U&Ghke z8=hy&KYP2H7ishi97a>EF*dMX`WapVY^sB~y4_cXc5@Ds4-cuT1~o8Bxzww4cIF4` znWN39Wv)ULSj=4U!MUzzp1>R6DZnXUBl4!4z|4L>2l)Xw^hshJ-#bE3)-Ej;j5oai z=vi9Th=WB0s~5B$K*_ML5Ay+>q)`dK0F>re6tDs<55Nt;49ZhCJQbk^IiUmkfSjRi zA6h8ftabr4X!;xK`mTLZfnF?~S5IsC(!Ob2Z{_XuGv=v1-)58@2%_$8wb_!|mRt)q z{kimzzx(65f6`rapTp;U-Rak~gQ0$JJ(ou`Tlv^wH*(R>?4-zMB(9Icg#oYs>pMiC zBaP6xp#8z-)ZrDtbS{{>LVu`j5-_2tTgbbdnmviGBdyr$^!x&#-);_*>M@6cJ(Dv5 zAo5Ka>$$E&(W%wRL+SpDGAGS z0VM(f*C#6Sc;P?*mz2SwSw1;5e*qAkp)XIs4y<|FtTb}1;3p?3?tVWkVmU(`!Vd!V zq?>m23R9S?LDdf?xaIaT{QZv1zD9-HW9LCMKt-FpAyH~=g)?FQ7hh#@Z54ABgWs!zu z8OKi%lyZF<)RTiTPE=2tA!~wYszSTty2Frqu16GY&x9O4LkPu(zmnGyxhH--pyx2; z;DOHE{l5-gs8dw$?S*b<&h5e9Fp7ZIYF0KXpEq(fn6)V3jk4TN1CY=d!Kl z5IwU|?zC!Fc9}Q7oPE5UItX}dQrqP+KM}f)tNpy`&%CW*Fkm#D<+O>^(T?Nmw@J4O zt*se9TAdt!_FI%@Mb@5N2-Nm40_-9!fXfe`pqXrak@6qf9eyyx37HxsYiXELZUD7w zeuzX5%af-G7jk|<(9Z#&H|gnUQ<#^28_=1JOkXr19s2<_5TwNk$Ad%PJ1{D=#Zn;ImNuNX0X--4cn*Se zU5S3XZgw}3&^!l(yUe=A4g(*W8Li~eoP_|1EnGZxTNGB#PsSvm=y3a>!*KXWM2!;% zxvn>~`22__WwADBUT~vm1?dWIe3QNDR{@|G2<;0aqMj?yw3BTiM1i1~!$?o3nZMzztYeq!1?Xss{lzH!+uN=txo03D z?F)FF)~3uXJ8zA*o}=>7a$7xWO7a|JEMSQst%F6k-8Dn2#-)J4MldRVG=A!f>+RR4 zLB=wUJ4n-@?D_6rpD)j~>h0Rnq+Nc{slNbb0V{0R=I!KTJ)YzFfC)-|I0PCAS5L(f z!j87i7ljKun$Ea$d@8^J8zSuBCq;uW_L$}dHg21}7FC;WiZ}fn0D9B%8H-OvfdD<; zNhaF-Nc)lkLoSAYI(nur}|cq z{(^R7Gj;SOoEG4sNSXHR@LD8S{GLL?HWsJSFU#zgz0CJ3itF-n*j=XsNdu+UrZocY zS2bh!K>S-80hXtsY^he}uD0nts02(5EV^b1Wf~7UAlt;Zqex$`)?S9rGI{Pgh<4i+ z$1-gF)^#L@W>nwIkQ5%@NfDP0O&P=@j~p8VK;7C1A_p7MH7^!i5jZeY~N$-2t;YCj?jKq zl1{mOiDd3dvrgzI4!Ch=z91=^Rq314sLxT=kxf3AYJK<8RrN)_j=pKn zvjVC-#EUOa0gj5ATQp!@WwJW)E`CAs(Nx5c%`2$e0N*|zI1Y1ovtJ{ zP?3LEZ%Y8G@HGIe=3R}U#y>nNpYdUrOUc>DfXo0gR~(!VKitm8KasvWx^>_jeOb%n zO-LgKv^VfZ0?09tqSgnIXp{%=N1K~+FC92j%M_;TRE)U4m*pkWf6ZPm0Qv(UDBl0~ z?N2~KAQ^$QQPh}k2SEl`tnLUggBxjZu*F7Xm}spCu%OM#qK9GQcGA{3GKjzq!_?QX z={sSE&*BVwW^?#mL)rxZ0v3u{N-_|dUTQ})i-V^+s`geVQnhWe{`J4VSS{Oali(5> z|Nl9A-=^K8@6`75wV~?D*#2FBbKRa|)!acN+0AXMBY02UPih6%lG|yXf;DSJqd|g9 zu4k>$EMsxpwh(eRLCYjcz!VnzPi+KL1pFLv3qT3Tfo$07Lgub&@)Fn@ZPYq;&R%?e zq?!c{J{wyET>mpt2xc`5P*&PD_(~nZlEPP zYA0GS+P*{8+g3_bPHKs{W12n5wmw1z2Yo%IEgn%|e|7Ku=}~CbB)RFH_I7ryO&He~ zR^Lb7nv2D0w~gPL)YeZ$|9QTv(3|76=i7C5Z*KHsG4bsw0P)J$cNsOK@Z3A_-+4ZM zp8wo0#jLk`$EW{64}1F~;6Z|zf#A42!!0hjLbJ?Z4oUxvCqT2n&t}4sb2rsTl_q47 zC{^{9r-(2+K6f<#f}cMDfZpU-=Dt;i6V%e-;Wcvvpj5ws6r~=8Rs4&f5i(dhIX)*^ zt^fl?oR#G}*q@oj(H8y}ys_;&)SXv*(sBd`x@^MHL0x2Ye9>KjooAE64%jS%I6Ij> zw0@yfjD&v9RQ=ncZ5jcP7Ror*sA0!}iy86??slRSW;$iWxyDBgwnj zq7Q?Oc{3k37MG+(E+Y~ejXC(7tiO`4W?a)b##(d}4H19@Y2rYdcBN?q&yGR!GBREI z2iY}0;7ikj9m69V$HX!15GQ>;x{mMxAux$@VY83im*+ilm3u>GDWwA~t(Dj!hKvQ} zu|IUqjhvWgPgZC$I;e;778nK}_Yq?$fFeDZH$zRiz>-4P0bW3-!L>FCA4BPbof4UE z2kx;`H1B^Q%YUZzeqI3dn!}Kg2jC%6Js9*}?dCFTf?U38gA97y1_77k^u82)cpbDK zdOj9!gyXj;BlpX_@O{3osbV1L2juKwN5BPc~Ht)l#TSh!jr+x6%T zlT&9t`M&Okz+CMCOcjk|mxz$gykqC#y<5Ntr0Vxsz-0!kI(w)8;wDq17F9K{tqyEV zmNRDo-^Zoa_@K?M!BO4F+x>&O=Ewlt8Yrv0+&k1=LOcINdI8XzjK2G?Bdw~#bCPPz zy8e&lP~9jqQG049bW?5-^~1N5!>e7s zY;{E5&{i1gLN>>%ld(;YJhA2q*OL0wow#!`y8aOmrZ!Sx@Qz~Sl_z-=DlhF^3bwhV z>0DYYzT}s^MxNjQIq3*2fV^t!&M|=0y>YhC`F-6X$OsT47n}xu`ZJ?|Ntug#`>)^6 z3xNLl!O&OV8!TteCs5gdNm37W7qGELB>W9jLRB5C$3HkZ@qJ|2ytc17Y1^xqsy>{D z&t-ole-Y^cG1jW2Cw^lqS@rDkclb2&LgbVz0f2Qy#$)wE)mv$S8He*b!=}9faHNk% zM1Tgs{E{abGIov~zdmL;Xo@U$kCdF!VSG6QJd#TE0!%=)G0k%G$((n`W|^<#TuaCK zs!mi&D^dW5#~wboJ9%5^)WZY`Tp66|euXA0^txw!4Ok9i0Gh+M`~So#x%uKToE_sc z$=6`{T(z1u>A%=J16iG0H0q_wuoT%!PkQPW;FH$3SSxf_ieepcqo5M|puS ztQ7*8KME-4Zz%`)KEPvP^&I>GIK=S)Y^4V{;k965RjlrFD?KZa|JjWPSK5V`%G&XT z%>X2}@G%C^!i9zIWBP8avIGXo#eJo8d^Hr5)KY)l;P!M@fh$Q?l}HQMNYaV=1h&6J z?oaIV^0)IM-hDpL^M6W5qx^91?|YWLzrVObbD!Q%G_Z&bV}w8mnQD-+yQvUjE~HbX zfqg?kQSErp=z)d~l#8t`In#oOGj!LScK8Ih5c~@ngV7d_*r|x?LFZLzzl_vX|<@IA@ zf*0uXQw}=qR2yGJfeakiv7sC{uIN%y_gqLul8zFH8d)_8E@jmR@N{#RH?SqyLw0O3ujFHCqiz5X{^!B5o)>UD}ao{IE1qE5!YF2JAq0w=FayQy@8OQez+wTv6FYYn@Ie>rI zt8drqT%J${luu}n%Ls!Y?irmy-`(Xg$MH5kYjlA>Q$yHlAO1idw-gqETz&WL^a3h8hNfJLa z1j;$yC3OQNsia(sY@-7cJ;&i(M$&h?+GTe=3jI0G00Ot>HIr-1gSsXRdClvQwcjA0 z4_K1nm>i7lIm}(hgvicw$MvxiKG3|yLkxL>w7J3{LOL!}v~;?V0rV1{`SddmI$Q&2 zfrgLca3a^O=y<+u_N2!MlD^ADT3C9r1DSZJLu|aj{7}FA*;(Tzh zU6CHd?(mR9-J;GfMAi=@D`&bmiN%9>Yfiz*&A2!IWM!SWd&lcRKG1_}2JHe3$TM9s zVD2gR0nR_qQJsB)f`Ja*HN`T}f(y>|23aRdMr;@8`PgEAqP^tDdRoxLkR8H_N_K=Xe_R-AY`e!Oe|Wfc%K(32CF%PYf`Ptx z2Y|D%2G9>)6+%poWP>g|UnAfGkQ*kKo(p8S`I^$<&d|6VLmP&q=X7oW=seB$d70;R z9gpRo-}X=J%LQ>;5e`XF-E~B_@qg>koyN2yq<<+{7)VL2wx{Z45bFbX*uok>Khyx? z--GoMac$u%2sC5?=|mem0YGH@1^M!Z8#SRwP|E{L^$#8DbDwOe&rkOed4J9W;8E~E zTj=6lUzYdhoYwUDuY0J$F~WuDUWsxBUZ!a*QXqol$Y|H$gE|X#e%|a}xc>I{fBf@b z4>DW`vH%m3`j_tqFgz$LMd*~(80Uec{`(*Fpngl*mxLa3xsub`PdG2Ku3vtvAx03Q zf~KCS23m!iGastcL2xF^R)K60^1y?foFlz0Cm_uT-wfo!uipa=1@9A%3B`ln$d?e( zCxmzo<33SZY>SL*LhO1V%e=nJPFlpxjprY`y3%l8ubu-VoHH8an?G%wbYTi1=zxe` zI>X?B@2mH^O{~exf&C0D>Xn+$gO-x)#_=H3=@QqI`=as2tj{btw0fX95R{a7!&o=1-Jp7S1p8^TWO zjV{H(R`JnTr6J+`@u&i%&vC8beLd*U$jRr#DVUC_+;ZC`fnsN8sZ{N+~;X3b7owy4Vu%zNrvzpfh*&`(C*LhaX_ zF17EnIsWr@_owiI?wyX`oAbQir!MonzRNEz@2jAGs_iH%oC;Khj!JjM2ReZ~bsdbKG+9$}R$2R- znZ6-QsQ**nG@1#6mndVqZv5MGUbrue{uleF(?|c2SGqI1O6!gVd$By}d^tC@zR%bE z`A=|Kh=j~g*1|*6OD^&RezgNuW?DO%*@M|=7z@TAyM>JbTHq>yU{>Tw0`&E8ECT~ zMmmrfq_5k$m9hB1f)W98d!pFEI8?pOkAD)~cFHcge{#6-} zUL(J{x$bCK)=;qxONqtCy`90^_mI|HOc^BQaw?DY0Oq#so0)ifsZ6L zB)nPHpZD)n5Kpa+MCR{>H3T3FR8Uc1(CR4ZCVN^V{B7;hDvh?L4+Q!5OpTWA6&-W< z00pyMRxy?2CnprwFKlRoID#MCIAn~{KR}9VxSu-}I%RACi`03<6KS&Ynn}%VQAtZQ-fu4C^5)5tYSBW}jK5bf; zn!XEjQr=;s;jK{Hf7lxiYOu7pvE|(JHojtV{xKs_yqmi$xev~nSC|2+)*ja-tlJ)? zDI;{K8~WjLf?g1vlXARIK-)8%&bkf#Ji^t(;wlz3#g)GwaT`_;rNsvby|<~S5@m+@pqQa#1H zUX`rX>Suy(7deI;>v{)Es_l~%v6Z4qS)?;Y?KIzL9JGC4T(o%eKF6+?;P=IkRPaZ~7h|1#SSn^JB?yPHM3mIHoh0}o z+;ijU@Qi5BgyS*ec)MFN_Y_TU_3 zXu-V@%$(76(t6UA5p}pnQ>fX0xI=0N@z#Dwr(LO4EW`mtcF=J^&Kq$qZTd9?pgxhg zvcrO;REXEHk0!~iRIkyz1&fbP!MSFl9O#T}!MLO>u}y96i9qsii?6cypuoTG96I;K z^Ut}P%$O@yak`nWCQvxBd*$b-841Kx^YFpz-di?vh~KYEwK4bxvxUY_!xgHlo|lE- zb_OiJ9q2u7{`9x!s4+A05cyjGU1e?Z{rHTtQ00Z>SiXB4X3gA`ts;Qn_Sni)kN&)~ z6TxcnK2H7GU$7fS$(6L9)v^p3)`+xZZn2$S({mu_Ktdj_pJsiJ$eMC_=JRf~$hBqU z#!~Kl8|2RmjkHsw;N5LX*$L`3C`j{J*6?8ZJK`O%bk0X#D`SU`cSZ@7Y+*j@x`p$1>1Ay*{M>K%wM9V=fU^75yzJxlZl|Z zHO_N`hy93z@vnMF(&Zly%tf-P%V{SVX0b!+11dkYr%UUSY#4p=GQ4&!$~HK zylx>>uGGI|`d-Wp_ipF&WSG%Q3!bAOjV$ZWdCe~6A|u;RsaUj~WVZJx?fPI6V{zn2 z(l575aX+jgc=NAwCCTMs_uI&9V@E&ath4BzT}55Ux_$d(`ewv;N&wdRsfK*VnRL(i zp^mu}GW%LL-1LQ{P2olR9o%veLVdWLR^TSxOjga&g}2SPiNXt&_XD3dgSHqsNdWrKJm^2akIByo{wZaQMRF1ahPo<0HzA%NP7)DZnS+~X(Z7+80gaQqUoM2(Pbw?I=hMMH>_4k$xl3O zOh*L%tY5O$Zl7sdpFYDI>vrUyA#Vq#Jk7h%Txj*wZtq|p=yDiGfB%Mw91^*Brx&|t zNt|umE{R@Ib*Q1K+JW1Dq8IU{vC~li2lUx{<@l{4SHo7gu+1i4Wwh$3k^W089>R|q zBU+OZ6(YSYUFGpuvQc!@QKv}(og~x5laNn3OGC4JPiJ-{Zy%n!t8R5%dbRxKx2^3% zUj^HRGNUz0NQQra4pMzOgBEV0JjAo z<4r~8fHufr*}7dv|Chks?LsXkwESx_FKlJKw|5ZOH=}IX#r*w5>ty(@Z>R;TgEDiV z>PAD?l~|Wap38;r)t$MKW7^Srv24s2xzpw=VX+v^{vfn9Yj@e|K%V8*)sM6KL9GxQ zob_*&gxRbgrr5aXvvCv&yJjr&$x8Ekst`1271&%K9Fqp~s14&r`bE4xylc^sfEERS zUf|5)H{qb%MzP;ELKF-%4!NiRfQTpnmH^NM;Qs?TjsLFx4-l3C5nwbDo(}*7G*qE3 zZFUrv0$DJI$^nFZDPwf72p}#2^z2U^-lqV8fvfw{`(1RDE -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. - -

    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.

    @@ -58,7 +66,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.

    @@ -66,32 +74,38 @@ 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, Android, and desktop 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.

    - +

    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. +

    @@ -102,6 +116,10 @@ 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.

    +
    +

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

    @@ -114,12 +132,12 @@ 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.

    + +

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

    - -

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

    + +

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

    @@ -130,6 +148,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.

    @@ -143,14 +165,18 @@ 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.

    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/versioned_sidebars/version-v7-sidebars.json b/versioned_sidebars/version-v7-sidebars.json index 0f8d95b1b72..a0fa29d70cf 100644 --- a/versioned_sidebars/version-v7-sidebars.json +++ b/versioned_sidebars/version-v7-sidebars.json @@ -276,19 +276,19 @@ }, { "type": "category", - "label": "Action Sheet", + "label": "Accordion", "collapsed": false, "items": [ - "api/action-sheet" + "api/accordion", + "api/accordion-group" ] }, { "type": "category", - "label": "Accordion", + "label": "Action Sheet", "collapsed": false, "items": [ - "api/accordion", - "api/accordion-group" + "api/action-sheet" ] }, { @@ -309,7 +309,7 @@ }, { "type": "category", - "label": "Breadcrumb", + "label": "Breadcrumbs", "collapsed": false, "items": [ "api/breadcrumb", @@ -394,24 +394,24 @@ }, { "type": "category", - "label": "Infinite Scroll", + "label": "Icons", "collapsed": false, "items": [ - "api/infinite-scroll", - "api/infinite-scroll-content" + "api/icon" ] }, { "type": "category", - "label": "Icons", + "label": "Infinite Scroll", "collapsed": false, "items": [ - "api/icon" + "api/infinite-scroll", + "api/infinite-scroll-content" ] }, { "type": "category", - "label": "Input", + "label": "Inputs", "collapsed": false, "items": [ "api/input", From a2409e9082d010bac8fc3bdff68a2d76d5ea9cc5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Jul 2025 09:28:29 -0400 Subject: [PATCH 27/36] chore(deps): update dependency vite to v7.0.5 (#4204) 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 fae0bad76f2..8da0b9d6a18 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.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.4.tgz", - "integrity": "sha512-SkaSguuS7nnmV7mfJ8l81JGBFV7Gvzp8IzgE8A8t23+AxuNX61Q5H1Tpz5efduSN7NHC8nQXD3sKQKZAu5mNEA==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.5.tgz", + "integrity": "sha512-1mncVwJxy2C9ThLwz0+2GKZyEXuC3MyWtAAlNftlZZXZDP3AJt5FmwcMit/IGGaNZ8ZOB2BNO/HFUB+CpN0NQw==", "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.6", @@ -2800,9 +2800,9 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "vite": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.4.tgz", - "integrity": "sha512-SkaSguuS7nnmV7mfJ8l81JGBFV7Gvzp8IzgE8A8t23+AxuNX61Q5H1Tpz5efduSN7NHC8nQXD3sKQKZAu5mNEA==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.5.tgz", + "integrity": "sha512-1mncVwJxy2C9ThLwz0+2GKZyEXuC3MyWtAAlNftlZZXZDP3AJt5FmwcMit/IGGaNZ8ZOB2BNO/HFUB+CpN0NQw==", "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 13e52380005..5d59ca987e3 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.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.4.tgz", - "integrity": "sha512-SkaSguuS7nnmV7mfJ8l81JGBFV7Gvzp8IzgE8A8t23+AxuNX61Q5H1Tpz5efduSN7NHC8nQXD3sKQKZAu5mNEA==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.5.tgz", + "integrity": "sha512-1mncVwJxy2C9ThLwz0+2GKZyEXuC3MyWtAAlNftlZZXZDP3AJt5FmwcMit/IGGaNZ8ZOB2BNO/HFUB+CpN0NQw==", "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.6", @@ -2966,9 +2966,9 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "vite": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.4.tgz", - "integrity": "sha512-SkaSguuS7nnmV7mfJ8l81JGBFV7Gvzp8IzgE8A8t23+AxuNX61Q5H1Tpz5efduSN7NHC8nQXD3sKQKZAu5mNEA==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.5.tgz", + "integrity": "sha512-1mncVwJxy2C9ThLwz0+2GKZyEXuC3MyWtAAlNftlZZXZDP3AJt5FmwcMit/IGGaNZ8ZOB2BNO/HFUB+CpN0NQw==", "requires": { "esbuild": "^0.25.0", "fdir": "^6.4.6", From 72c69ea24261bf6b2df44918857462f1620eead6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Jul 2025 09:31:09 -0400 Subject: [PATCH 28/36] chore(deps): update dependency vite to v7.0.5 (#4205) 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 250b36a4d8d..cfb3f64704c 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.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.4.tgz", - "integrity": "sha512-SkaSguuS7nnmV7mfJ8l81JGBFV7Gvzp8IzgE8A8t23+AxuNX61Q5H1Tpz5efduSN7NHC8nQXD3sKQKZAu5mNEA==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.5.tgz", + "integrity": "sha512-1mncVwJxy2C9ThLwz0+2GKZyEXuC3MyWtAAlNftlZZXZDP3AJt5FmwcMit/IGGaNZ8ZOB2BNO/HFUB+CpN0NQw==", "dev": true, "dependencies": { "esbuild": "^0.25.0", @@ -2158,9 +2158,9 @@ "devOptional": true }, "vite": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.4.tgz", - "integrity": "sha512-SkaSguuS7nnmV7mfJ8l81JGBFV7Gvzp8IzgE8A8t23+AxuNX61Q5H1Tpz5efduSN7NHC8nQXD3sKQKZAu5mNEA==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.5.tgz", + "integrity": "sha512-1mncVwJxy2C9ThLwz0+2GKZyEXuC3MyWtAAlNftlZZXZDP3AJt5FmwcMit/IGGaNZ8ZOB2BNO/HFUB+CpN0NQw==", "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 7bccfd5f77b..249eee83b0c 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.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.4.tgz", - "integrity": "sha512-SkaSguuS7nnmV7mfJ8l81JGBFV7Gvzp8IzgE8A8t23+AxuNX61Q5H1Tpz5efduSN7NHC8nQXD3sKQKZAu5mNEA==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.5.tgz", + "integrity": "sha512-1mncVwJxy2C9ThLwz0+2GKZyEXuC3MyWtAAlNftlZZXZDP3AJt5FmwcMit/IGGaNZ8ZOB2BNO/HFUB+CpN0NQw==", "dev": true, "dependencies": { "esbuild": "^0.25.0", @@ -2353,9 +2353,9 @@ "devOptional": true }, "vite": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.4.tgz", - "integrity": "sha512-SkaSguuS7nnmV7mfJ8l81JGBFV7Gvzp8IzgE8A8t23+AxuNX61Q5H1Tpz5efduSN7NHC8nQXD3sKQKZAu5mNEA==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.5.tgz", + "integrity": "sha512-1mncVwJxy2C9ThLwz0+2GKZyEXuC3MyWtAAlNftlZZXZDP3AJt5FmwcMit/IGGaNZ8ZOB2BNO/HFUB+CpN0NQw==", "dev": true, "requires": { "esbuild": "^0.25.0", From acd98698e8633ec6634b97f9323c6073ae588050 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Jul 2025 09:32:19 -0400 Subject: [PATCH 29/36] chore(deps): update dependency @types/node to v22.16.4 (#4203) 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 8da0b9d6a18..089522dbc63 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.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.3.tgz", - "integrity": "sha512-sr4Xz74KOUeYadexo1r8imhRtlVXcs+j3XK3TcoiYk7B1t3YRVJgtaD3cwX73NYb71pmVuMLNRhJ9XKdoDB74g==", + "version": "22.16.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.4.tgz", + "integrity": "sha512-PYRhNtZdm2wH/NT2k/oAJ6/f2VD2N2Dag0lGlx2vWgMSJXGNmlce5MiTQzoWAiIJtso30mjnfQCOKVH+kAQC/g==", "dependencies": { "undici-types": "~6.21.0" } @@ -2349,9 +2349,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "@types/node": { - "version": "22.16.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.3.tgz", - "integrity": "sha512-sr4Xz74KOUeYadexo1r8imhRtlVXcs+j3XK3TcoiYk7B1t3YRVJgtaD3cwX73NYb71pmVuMLNRhJ9XKdoDB74g==", + "version": "22.16.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.4.tgz", + "integrity": "sha512-PYRhNtZdm2wH/NT2k/oAJ6/f2VD2N2Dag0lGlx2vWgMSJXGNmlce5MiTQzoWAiIJtso30mjnfQCOKVH+kAQC/g==", "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 5d59ca987e3..9e8b598c051 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.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.3.tgz", - "integrity": "sha512-sr4Xz74KOUeYadexo1r8imhRtlVXcs+j3XK3TcoiYk7B1t3YRVJgtaD3cwX73NYb71pmVuMLNRhJ9XKdoDB74g==", + "version": "22.16.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.4.tgz", + "integrity": "sha512-PYRhNtZdm2wH/NT2k/oAJ6/f2VD2N2Dag0lGlx2vWgMSJXGNmlce5MiTQzoWAiIJtso30mjnfQCOKVH+kAQC/g==", "dependencies": { "undici-types": "~6.21.0" } @@ -2515,9 +2515,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "@types/node": { - "version": "22.16.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.3.tgz", - "integrity": "sha512-sr4Xz74KOUeYadexo1r8imhRtlVXcs+j3XK3TcoiYk7B1t3YRVJgtaD3cwX73NYb71pmVuMLNRhJ9XKdoDB74g==", + "version": "22.16.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.4.tgz", + "integrity": "sha512-PYRhNtZdm2wH/NT2k/oAJ6/f2VD2N2Dag0lGlx2vWgMSJXGNmlce5MiTQzoWAiIJtso30mjnfQCOKVH+kAQC/g==", "requires": { "undici-types": "~6.21.0" } From 73d375a2064cd5235d47d41dec0267aeeb2f4468 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Jul 2025 09:33:10 -0400 Subject: [PATCH 30/36] chore(deps): update dependency vue-tsc to v3.0.2 (#4206) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../code/stackblitz/v7/vue/package-lock.json | 148 ++++++------------ .../code/stackblitz/v8/vue/package-lock.json | 148 ++++++------------ 2 files changed, 88 insertions(+), 208 deletions(-) diff --git a/static/code/stackblitz/v7/vue/package-lock.json b/static/code/stackblitz/v7/vue/package-lock.json index cfb3f64704c..2ec5d9275f0 100644 --- a/static/code/stackblitz/v7/vue/package-lock.json +++ b/static/code/stackblitz/v7/vue/package-lock.json @@ -489,27 +489,6 @@ "@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", @@ -816,27 +795,27 @@ } }, "node_modules/@volar/language-core": { - "version": "2.4.17", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.17.tgz", - "integrity": "sha512-chmRZMbKmcGpKMoO7Reb70uiLrzo0KWC2CkFttKUuKvrE+VYgi+fL9vWMJ07Fv5ulX0V1TAyyacN9q3nc5/ecA==", + "version": "2.4.19", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.19.tgz", + "integrity": "sha512-i0aLpNA8DYZ2uG05t5K47nUWe+zvvrN9tfz16zS5pCJV9td8F0u+rVAOVSQ1ypufDLUD+ej9BH2/lmug4+lawQ==", "dev": true, "dependencies": { - "@volar/source-map": "2.4.17" + "@volar/source-map": "2.4.19" } }, "node_modules/@volar/source-map": { - "version": "2.4.17", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.17.tgz", - "integrity": "sha512-QDybtQyO3Ms/NjFqNHTC5tbDN2oK5VH7ZaKrcubtfHBDj63n2pizHC3wlMQ+iT55kQXZUUAbmBX5L1C8CHFeBw==", + "version": "2.4.19", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.19.tgz", + "integrity": "sha512-ttWmO/Ld7r3ebIPPAYvAuSLrlJ96ZALPka44mD4sWA8bw2n9u7TGnMcaTUkiF0GLG8bq/K09beWmEAB1mqMy/A==", "dev": true }, "node_modules/@volar/typescript": { - "version": "2.4.17", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.17.tgz", - "integrity": "sha512-3paEFNh4P5DkgNUB2YkTRrfUekN4brAXxd3Ow1syMqdIPtCZHbUy4AW99S5RO/7mzyTWPMdDSo3mqTpB/LPObQ==", + "version": "2.4.19", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.19.tgz", + "integrity": "sha512-Xgo4QLuqusu2fqw4LCeoOY57d5UCn+fNUWZTg4PFubw07jBFFCSJIuJ7BDrRM3EZHDjCqq1RmUO9wkYihnM+8Q==", "dev": true, "dependencies": { - "@volar/language-core": "2.4.17", + "@volar/language-core": "2.4.19", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -903,19 +882,19 @@ "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" }, "node_modules/@vue/language-core": { - "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==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.2.tgz", + "integrity": "sha512-+UfQNLLbb0XbwqNjYOUphDVo6vtjtkWHncfZz92TfGNc5OXgNKFhygMuT8PvyZk4e8rjzrsSYay3d5HfjG3ipQ==", "dev": true, "dependencies": { - "@volar/language-core": "2.4.17", + "@volar/language-core": "2.4.19", "@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" + "path-browserify": "^1.0.1", + "picomatch": "^4.0.2" }, "peerDependencies": { "typescript": "*" @@ -1097,21 +1076,6 @@ "@jridgewell/sourcemap-codec": "^1.5.0" } }, - "node_modules/minimatch": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", - "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", - "dev": true, - "dependencies": { - "@isaacs/brace-expansion": "^5.0.0" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/muggle-string": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", @@ -1381,13 +1345,13 @@ } }, "node_modules/vue-tsc": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.1.tgz", - "integrity": "sha512-UvMLQD0hAGL1g/NfEQelnSVB4H5gtf/gz2lJKjMMwWNOUmSNyWkejwJagAxEbSjtV5CPPJYslOtoSuqJ63mhdg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.2.tgz", + "integrity": "sha512-DLdFSqY28f9i32XUqASldO4VxPccQbLovlglnaWUtkQ/yzl+IJprEhy/N1T4cbcEhR31G4CDE7FRLdwsT/2Qeg==", "dev": true, "dependencies": { - "@volar/typescript": "2.4.17", - "@vue/language-core": "3.0.1" + "@volar/typescript": "2.4.19", + "@vue/language-core": "3.0.2" }, "bin": { "vue-tsc": "bin/vue-tsc.js" @@ -1627,21 +1591,6 @@ "@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", @@ -1814,27 +1763,27 @@ } }, "@volar/language-core": { - "version": "2.4.17", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.17.tgz", - "integrity": "sha512-chmRZMbKmcGpKMoO7Reb70uiLrzo0KWC2CkFttKUuKvrE+VYgi+fL9vWMJ07Fv5ulX0V1TAyyacN9q3nc5/ecA==", + "version": "2.4.19", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.19.tgz", + "integrity": "sha512-i0aLpNA8DYZ2uG05t5K47nUWe+zvvrN9tfz16zS5pCJV9td8F0u+rVAOVSQ1ypufDLUD+ej9BH2/lmug4+lawQ==", "dev": true, "requires": { - "@volar/source-map": "2.4.17" + "@volar/source-map": "2.4.19" } }, "@volar/source-map": { - "version": "2.4.17", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.17.tgz", - "integrity": "sha512-QDybtQyO3Ms/NjFqNHTC5tbDN2oK5VH7ZaKrcubtfHBDj63n2pizHC3wlMQ+iT55kQXZUUAbmBX5L1C8CHFeBw==", + "version": "2.4.19", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.19.tgz", + "integrity": "sha512-ttWmO/Ld7r3ebIPPAYvAuSLrlJ96ZALPka44mD4sWA8bw2n9u7TGnMcaTUkiF0GLG8bq/K09beWmEAB1mqMy/A==", "dev": true }, "@volar/typescript": { - "version": "2.4.17", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.17.tgz", - "integrity": "sha512-3paEFNh4P5DkgNUB2YkTRrfUekN4brAXxd3Ow1syMqdIPtCZHbUy4AW99S5RO/7mzyTWPMdDSo3mqTpB/LPObQ==", + "version": "2.4.19", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.19.tgz", + "integrity": "sha512-Xgo4QLuqusu2fqw4LCeoOY57d5UCn+fNUWZTg4PFubw07jBFFCSJIuJ7BDrRM3EZHDjCqq1RmUO9wkYihnM+8Q==", "dev": true, "requires": { - "@volar/language-core": "2.4.17", + "@volar/language-core": "2.4.19", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -1901,19 +1850,19 @@ "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" }, "@vue/language-core": { - "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==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.2.tgz", + "integrity": "sha512-+UfQNLLbb0XbwqNjYOUphDVo6vtjtkWHncfZz92TfGNc5OXgNKFhygMuT8PvyZk4e8rjzrsSYay3d5HfjG3ipQ==", "dev": true, "requires": { - "@volar/language-core": "2.4.17", + "@volar/language-core": "2.4.19", "@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" + "path-browserify": "^1.0.1", + "picomatch": "^4.0.2" } }, "@vue/reactivity": { @@ -2054,15 +2003,6 @@ "@jridgewell/sourcemap-codec": "^1.5.0" } }, - "minimatch": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", - "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", - "dev": true, - "requires": { - "@isaacs/brace-expansion": "^5.0.0" - } - }, "muggle-string": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", @@ -2199,13 +2139,13 @@ } }, "vue-tsc": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.1.tgz", - "integrity": "sha512-UvMLQD0hAGL1g/NfEQelnSVB4H5gtf/gz2lJKjMMwWNOUmSNyWkejwJagAxEbSjtV5CPPJYslOtoSuqJ63mhdg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.2.tgz", + "integrity": "sha512-DLdFSqY28f9i32XUqASldO4VxPccQbLovlglnaWUtkQ/yzl+IJprEhy/N1T4cbcEhR31G4CDE7FRLdwsT/2Qeg==", "dev": true, "requires": { - "@volar/typescript": "2.4.17", - "@vue/language-core": "3.0.1" + "@volar/typescript": "2.4.19", + "@vue/language-core": "3.0.2" } } } diff --git a/static/code/stackblitz/v8/vue/package-lock.json b/static/code/stackblitz/v8/vue/package-lock.json index 249eee83b0c..1b5103beaa2 100644 --- a/static/code/stackblitz/v8/vue/package-lock.json +++ b/static/code/stackblitz/v8/vue/package-lock.json @@ -490,27 +490,6 @@ "@ionic/vue": "8.6.5" } }, - "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", @@ -944,27 +923,27 @@ } }, "node_modules/@volar/language-core": { - "version": "2.4.17", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.17.tgz", - "integrity": "sha512-chmRZMbKmcGpKMoO7Reb70uiLrzo0KWC2CkFttKUuKvrE+VYgi+fL9vWMJ07Fv5ulX0V1TAyyacN9q3nc5/ecA==", + "version": "2.4.19", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.19.tgz", + "integrity": "sha512-i0aLpNA8DYZ2uG05t5K47nUWe+zvvrN9tfz16zS5pCJV9td8F0u+rVAOVSQ1ypufDLUD+ej9BH2/lmug4+lawQ==", "dev": true, "dependencies": { - "@volar/source-map": "2.4.17" + "@volar/source-map": "2.4.19" } }, "node_modules/@volar/source-map": { - "version": "2.4.17", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.17.tgz", - "integrity": "sha512-QDybtQyO3Ms/NjFqNHTC5tbDN2oK5VH7ZaKrcubtfHBDj63n2pizHC3wlMQ+iT55kQXZUUAbmBX5L1C8CHFeBw==", + "version": "2.4.19", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.19.tgz", + "integrity": "sha512-ttWmO/Ld7r3ebIPPAYvAuSLrlJ96ZALPka44mD4sWA8bw2n9u7TGnMcaTUkiF0GLG8bq/K09beWmEAB1mqMy/A==", "dev": true }, "node_modules/@volar/typescript": { - "version": "2.4.17", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.17.tgz", - "integrity": "sha512-3paEFNh4P5DkgNUB2YkTRrfUekN4brAXxd3Ow1syMqdIPtCZHbUy4AW99S5RO/7mzyTWPMdDSo3mqTpB/LPObQ==", + "version": "2.4.19", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.19.tgz", + "integrity": "sha512-Xgo4QLuqusu2fqw4LCeoOY57d5UCn+fNUWZTg4PFubw07jBFFCSJIuJ7BDrRM3EZHDjCqq1RmUO9wkYihnM+8Q==", "dev": true, "dependencies": { - "@volar/language-core": "2.4.17", + "@volar/language-core": "2.4.19", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -1031,19 +1010,19 @@ "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" }, "node_modules/@vue/language-core": { - "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==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.2.tgz", + "integrity": "sha512-+UfQNLLbb0XbwqNjYOUphDVo6vtjtkWHncfZz92TfGNc5OXgNKFhygMuT8PvyZk4e8rjzrsSYay3d5HfjG3ipQ==", "dev": true, "dependencies": { - "@volar/language-core": "2.4.17", + "@volar/language-core": "2.4.19", "@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" + "path-browserify": "^1.0.1", + "picomatch": "^4.0.2" }, "peerDependencies": { "typescript": "*" @@ -1225,21 +1204,6 @@ "@jridgewell/sourcemap-codec": "^1.5.0" } }, - "node_modules/minimatch": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", - "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", - "dev": true, - "dependencies": { - "@isaacs/brace-expansion": "^5.0.0" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/muggle-string": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", @@ -1509,13 +1473,13 @@ } }, "node_modules/vue-tsc": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.1.tgz", - "integrity": "sha512-UvMLQD0hAGL1g/NfEQelnSVB4H5gtf/gz2lJKjMMwWNOUmSNyWkejwJagAxEbSjtV5CPPJYslOtoSuqJ63mhdg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.2.tgz", + "integrity": "sha512-DLdFSqY28f9i32XUqASldO4VxPccQbLovlglnaWUtkQ/yzl+IJprEhy/N1T4cbcEhR31G4CDE7FRLdwsT/2Qeg==", "dev": true, "dependencies": { - "@volar/typescript": "2.4.17", - "@vue/language-core": "3.0.1" + "@volar/typescript": "2.4.19", + "@vue/language-core": "3.0.2" }, "bin": { "vue-tsc": "bin/vue-tsc.js" @@ -1756,21 +1720,6 @@ "@ionic/vue": "8.6.5" } }, - "@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", @@ -2009,27 +1958,27 @@ } }, "@volar/language-core": { - "version": "2.4.17", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.17.tgz", - "integrity": "sha512-chmRZMbKmcGpKMoO7Reb70uiLrzo0KWC2CkFttKUuKvrE+VYgi+fL9vWMJ07Fv5ulX0V1TAyyacN9q3nc5/ecA==", + "version": "2.4.19", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.19.tgz", + "integrity": "sha512-i0aLpNA8DYZ2uG05t5K47nUWe+zvvrN9tfz16zS5pCJV9td8F0u+rVAOVSQ1ypufDLUD+ej9BH2/lmug4+lawQ==", "dev": true, "requires": { - "@volar/source-map": "2.4.17" + "@volar/source-map": "2.4.19" } }, "@volar/source-map": { - "version": "2.4.17", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.17.tgz", - "integrity": "sha512-QDybtQyO3Ms/NjFqNHTC5tbDN2oK5VH7ZaKrcubtfHBDj63n2pizHC3wlMQ+iT55kQXZUUAbmBX5L1C8CHFeBw==", + "version": "2.4.19", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.19.tgz", + "integrity": "sha512-ttWmO/Ld7r3ebIPPAYvAuSLrlJ96ZALPka44mD4sWA8bw2n9u7TGnMcaTUkiF0GLG8bq/K09beWmEAB1mqMy/A==", "dev": true }, "@volar/typescript": { - "version": "2.4.17", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.17.tgz", - "integrity": "sha512-3paEFNh4P5DkgNUB2YkTRrfUekN4brAXxd3Ow1syMqdIPtCZHbUy4AW99S5RO/7mzyTWPMdDSo3mqTpB/LPObQ==", + "version": "2.4.19", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.19.tgz", + "integrity": "sha512-Xgo4QLuqusu2fqw4LCeoOY57d5UCn+fNUWZTg4PFubw07jBFFCSJIuJ7BDrRM3EZHDjCqq1RmUO9wkYihnM+8Q==", "dev": true, "requires": { - "@volar/language-core": "2.4.17", + "@volar/language-core": "2.4.19", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -2096,19 +2045,19 @@ "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" }, "@vue/language-core": { - "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==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.2.tgz", + "integrity": "sha512-+UfQNLLbb0XbwqNjYOUphDVo6vtjtkWHncfZz92TfGNc5OXgNKFhygMuT8PvyZk4e8rjzrsSYay3d5HfjG3ipQ==", "dev": true, "requires": { - "@volar/language-core": "2.4.17", + "@volar/language-core": "2.4.19", "@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" + "path-browserify": "^1.0.1", + "picomatch": "^4.0.2" } }, "@vue/reactivity": { @@ -2249,15 +2198,6 @@ "@jridgewell/sourcemap-codec": "^1.5.0" } }, - "minimatch": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", - "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", - "dev": true, - "requires": { - "@isaacs/brace-expansion": "^5.0.0" - } - }, "muggle-string": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", @@ -2394,13 +2334,13 @@ } }, "vue-tsc": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.1.tgz", - "integrity": "sha512-UvMLQD0hAGL1g/NfEQelnSVB4H5gtf/gz2lJKjMMwWNOUmSNyWkejwJagAxEbSjtV5CPPJYslOtoSuqJ63mhdg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.2.tgz", + "integrity": "sha512-DLdFSqY28f9i32XUqASldO4VxPccQbLovlglnaWUtkQ/yzl+IJprEhy/N1T4cbcEhR31G4CDE7FRLdwsT/2Qeg==", "dev": true, "requires": { - "@volar/typescript": "2.4.17", - "@vue/language-core": "3.0.1" + "@volar/typescript": "2.4.19", + "@vue/language-core": "3.0.2" } } } From ea20bc173c8108727d44d413f86612eaff0e52e5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 22 Jul 2025 11:36:40 -0400 Subject: [PATCH 31/36] chore(deps): update dependency @types/node to v22.16.5 (#4208) 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 089522dbc63..df8397caf52 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.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.4.tgz", - "integrity": "sha512-PYRhNtZdm2wH/NT2k/oAJ6/f2VD2N2Dag0lGlx2vWgMSJXGNmlce5MiTQzoWAiIJtso30mjnfQCOKVH+kAQC/g==", + "version": "22.16.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.5.tgz", + "integrity": "sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ==", "dependencies": { "undici-types": "~6.21.0" } @@ -2349,9 +2349,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "@types/node": { - "version": "22.16.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.4.tgz", - "integrity": "sha512-PYRhNtZdm2wH/NT2k/oAJ6/f2VD2N2Dag0lGlx2vWgMSJXGNmlce5MiTQzoWAiIJtso30mjnfQCOKVH+kAQC/g==", + "version": "22.16.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.5.tgz", + "integrity": "sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ==", "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 9e8b598c051..90a5585f657 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.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.4.tgz", - "integrity": "sha512-PYRhNtZdm2wH/NT2k/oAJ6/f2VD2N2Dag0lGlx2vWgMSJXGNmlce5MiTQzoWAiIJtso30mjnfQCOKVH+kAQC/g==", + "version": "22.16.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.5.tgz", + "integrity": "sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ==", "dependencies": { "undici-types": "~6.21.0" } @@ -2515,9 +2515,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "@types/node": { - "version": "22.16.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.4.tgz", - "integrity": "sha512-PYRhNtZdm2wH/NT2k/oAJ6/f2VD2N2Dag0lGlx2vWgMSJXGNmlce5MiTQzoWAiIJtso30mjnfQCOKVH+kAQC/g==", + "version": "22.16.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.5.tgz", + "integrity": "sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ==", "requires": { "undici-types": "~6.21.0" } From 230ea459ed7b2d43336ccabd39ea471555c97289 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 22 Jul 2025 11:37:26 -0400 Subject: [PATCH 32/36] chore(deps): update dependency vue-tsc to v3.0.3 (#4209) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../code/stackblitz/v7/vue/package-lock.json | 80 +++++++++---------- .../code/stackblitz/v8/vue/package-lock.json | 80 +++++++++---------- 2 files changed, 80 insertions(+), 80 deletions(-) diff --git a/static/code/stackblitz/v7/vue/package-lock.json b/static/code/stackblitz/v7/vue/package-lock.json index 2ec5d9275f0..27e17f33d0b 100644 --- a/static/code/stackblitz/v7/vue/package-lock.json +++ b/static/code/stackblitz/v7/vue/package-lock.json @@ -795,27 +795,27 @@ } }, "node_modules/@volar/language-core": { - "version": "2.4.19", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.19.tgz", - "integrity": "sha512-i0aLpNA8DYZ2uG05t5K47nUWe+zvvrN9tfz16zS5pCJV9td8F0u+rVAOVSQ1ypufDLUD+ej9BH2/lmug4+lawQ==", + "version": "2.4.20", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.20.tgz", + "integrity": "sha512-dRDF1G33xaAIDqR6+mXUIjXYdu9vzSxlMGfMEwBxQsfY/JMUEXSpLTR057oTKlUQ2nIvCmP9k94A8h8z2VrNSA==", "dev": true, "dependencies": { - "@volar/source-map": "2.4.19" + "@volar/source-map": "2.4.20" } }, "node_modules/@volar/source-map": { - "version": "2.4.19", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.19.tgz", - "integrity": "sha512-ttWmO/Ld7r3ebIPPAYvAuSLrlJ96ZALPka44mD4sWA8bw2n9u7TGnMcaTUkiF0GLG8bq/K09beWmEAB1mqMy/A==", + "version": "2.4.20", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.20.tgz", + "integrity": "sha512-mVjmFQH8mC+nUaVwmbxoYUy8cww+abaO8dWzqPUjilsavjxH0jCJ3Mp8HFuHsdewZs2c+SP+EO7hCd8Z92whJg==", "dev": true }, "node_modules/@volar/typescript": { - "version": "2.4.19", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.19.tgz", - "integrity": "sha512-Xgo4QLuqusu2fqw4LCeoOY57d5UCn+fNUWZTg4PFubw07jBFFCSJIuJ7BDrRM3EZHDjCqq1RmUO9wkYihnM+8Q==", + "version": "2.4.20", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.20.tgz", + "integrity": "sha512-Oc4DczPwQyXcVbd+5RsNEqX6ia0+w3p+klwdZQ6ZKhFjWoBP9PCPQYlKYRi/tDemWphW93P/Vv13vcE9I9D2GQ==", "dev": true, "dependencies": { - "@volar/language-core": "2.4.19", + "@volar/language-core": "2.4.20", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -882,12 +882,12 @@ "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" }, "node_modules/@vue/language-core": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.2.tgz", - "integrity": "sha512-+UfQNLLbb0XbwqNjYOUphDVo6vtjtkWHncfZz92TfGNc5OXgNKFhygMuT8PvyZk4e8rjzrsSYay3d5HfjG3ipQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.3.tgz", + "integrity": "sha512-I9wY0ULMN9tMSua+2C7g+ez1cIziVMUzIHlDYGSl2rtru3Eh4sXj95vZ+4GBuXwwPnEmYfzSApVbXiVbI8V5Gg==", "dev": true, "dependencies": { - "@volar/language-core": "2.4.19", + "@volar/language-core": "2.4.20", "@vue/compiler-dom": "^3.5.0", "@vue/compiler-vue2": "^2.7.16", "@vue/shared": "^3.5.0", @@ -1345,13 +1345,13 @@ } }, "node_modules/vue-tsc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.2.tgz", - "integrity": "sha512-DLdFSqY28f9i32XUqASldO4VxPccQbLovlglnaWUtkQ/yzl+IJprEhy/N1T4cbcEhR31G4CDE7FRLdwsT/2Qeg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.3.tgz", + "integrity": "sha512-uU1OMSzWE8/y0+kDTc0iEIu9v82bmFkGyJpAO/x3wQqBkkHkButKgtygREyOkxL4E/xtcf/ExvgNhhjdzonldw==", "dev": true, "dependencies": { - "@volar/typescript": "2.4.19", - "@vue/language-core": "3.0.2" + "@volar/typescript": "2.4.20", + "@vue/language-core": "3.0.3" }, "bin": { "vue-tsc": "bin/vue-tsc.js" @@ -1763,27 +1763,27 @@ } }, "@volar/language-core": { - "version": "2.4.19", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.19.tgz", - "integrity": "sha512-i0aLpNA8DYZ2uG05t5K47nUWe+zvvrN9tfz16zS5pCJV9td8F0u+rVAOVSQ1ypufDLUD+ej9BH2/lmug4+lawQ==", + "version": "2.4.20", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.20.tgz", + "integrity": "sha512-dRDF1G33xaAIDqR6+mXUIjXYdu9vzSxlMGfMEwBxQsfY/JMUEXSpLTR057oTKlUQ2nIvCmP9k94A8h8z2VrNSA==", "dev": true, "requires": { - "@volar/source-map": "2.4.19" + "@volar/source-map": "2.4.20" } }, "@volar/source-map": { - "version": "2.4.19", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.19.tgz", - "integrity": "sha512-ttWmO/Ld7r3ebIPPAYvAuSLrlJ96ZALPka44mD4sWA8bw2n9u7TGnMcaTUkiF0GLG8bq/K09beWmEAB1mqMy/A==", + "version": "2.4.20", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.20.tgz", + "integrity": "sha512-mVjmFQH8mC+nUaVwmbxoYUy8cww+abaO8dWzqPUjilsavjxH0jCJ3Mp8HFuHsdewZs2c+SP+EO7hCd8Z92whJg==", "dev": true }, "@volar/typescript": { - "version": "2.4.19", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.19.tgz", - "integrity": "sha512-Xgo4QLuqusu2fqw4LCeoOY57d5UCn+fNUWZTg4PFubw07jBFFCSJIuJ7BDrRM3EZHDjCqq1RmUO9wkYihnM+8Q==", + "version": "2.4.20", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.20.tgz", + "integrity": "sha512-Oc4DczPwQyXcVbd+5RsNEqX6ia0+w3p+klwdZQ6ZKhFjWoBP9PCPQYlKYRi/tDemWphW93P/Vv13vcE9I9D2GQ==", "dev": true, "requires": { - "@volar/language-core": "2.4.19", + "@volar/language-core": "2.4.20", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -1850,12 +1850,12 @@ "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" }, "@vue/language-core": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.2.tgz", - "integrity": "sha512-+UfQNLLbb0XbwqNjYOUphDVo6vtjtkWHncfZz92TfGNc5OXgNKFhygMuT8PvyZk4e8rjzrsSYay3d5HfjG3ipQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.3.tgz", + "integrity": "sha512-I9wY0ULMN9tMSua+2C7g+ez1cIziVMUzIHlDYGSl2rtru3Eh4sXj95vZ+4GBuXwwPnEmYfzSApVbXiVbI8V5Gg==", "dev": true, "requires": { - "@volar/language-core": "2.4.19", + "@volar/language-core": "2.4.20", "@vue/compiler-dom": "^3.5.0", "@vue/compiler-vue2": "^2.7.16", "@vue/shared": "^3.5.0", @@ -2139,13 +2139,13 @@ } }, "vue-tsc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.2.tgz", - "integrity": "sha512-DLdFSqY28f9i32XUqASldO4VxPccQbLovlglnaWUtkQ/yzl+IJprEhy/N1T4cbcEhR31G4CDE7FRLdwsT/2Qeg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.3.tgz", + "integrity": "sha512-uU1OMSzWE8/y0+kDTc0iEIu9v82bmFkGyJpAO/x3wQqBkkHkButKgtygREyOkxL4E/xtcf/ExvgNhhjdzonldw==", "dev": true, "requires": { - "@volar/typescript": "2.4.19", - "@vue/language-core": "3.0.2" + "@volar/typescript": "2.4.20", + "@vue/language-core": "3.0.3" } } } diff --git a/static/code/stackblitz/v8/vue/package-lock.json b/static/code/stackblitz/v8/vue/package-lock.json index 1b5103beaa2..bb6d3dbde48 100644 --- a/static/code/stackblitz/v8/vue/package-lock.json +++ b/static/code/stackblitz/v8/vue/package-lock.json @@ -923,27 +923,27 @@ } }, "node_modules/@volar/language-core": { - "version": "2.4.19", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.19.tgz", - "integrity": "sha512-i0aLpNA8DYZ2uG05t5K47nUWe+zvvrN9tfz16zS5pCJV9td8F0u+rVAOVSQ1ypufDLUD+ej9BH2/lmug4+lawQ==", + "version": "2.4.20", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.20.tgz", + "integrity": "sha512-dRDF1G33xaAIDqR6+mXUIjXYdu9vzSxlMGfMEwBxQsfY/JMUEXSpLTR057oTKlUQ2nIvCmP9k94A8h8z2VrNSA==", "dev": true, "dependencies": { - "@volar/source-map": "2.4.19" + "@volar/source-map": "2.4.20" } }, "node_modules/@volar/source-map": { - "version": "2.4.19", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.19.tgz", - "integrity": "sha512-ttWmO/Ld7r3ebIPPAYvAuSLrlJ96ZALPka44mD4sWA8bw2n9u7TGnMcaTUkiF0GLG8bq/K09beWmEAB1mqMy/A==", + "version": "2.4.20", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.20.tgz", + "integrity": "sha512-mVjmFQH8mC+nUaVwmbxoYUy8cww+abaO8dWzqPUjilsavjxH0jCJ3Mp8HFuHsdewZs2c+SP+EO7hCd8Z92whJg==", "dev": true }, "node_modules/@volar/typescript": { - "version": "2.4.19", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.19.tgz", - "integrity": "sha512-Xgo4QLuqusu2fqw4LCeoOY57d5UCn+fNUWZTg4PFubw07jBFFCSJIuJ7BDrRM3EZHDjCqq1RmUO9wkYihnM+8Q==", + "version": "2.4.20", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.20.tgz", + "integrity": "sha512-Oc4DczPwQyXcVbd+5RsNEqX6ia0+w3p+klwdZQ6ZKhFjWoBP9PCPQYlKYRi/tDemWphW93P/Vv13vcE9I9D2GQ==", "dev": true, "dependencies": { - "@volar/language-core": "2.4.19", + "@volar/language-core": "2.4.20", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -1010,12 +1010,12 @@ "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" }, "node_modules/@vue/language-core": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.2.tgz", - "integrity": "sha512-+UfQNLLbb0XbwqNjYOUphDVo6vtjtkWHncfZz92TfGNc5OXgNKFhygMuT8PvyZk4e8rjzrsSYay3d5HfjG3ipQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.3.tgz", + "integrity": "sha512-I9wY0ULMN9tMSua+2C7g+ez1cIziVMUzIHlDYGSl2rtru3Eh4sXj95vZ+4GBuXwwPnEmYfzSApVbXiVbI8V5Gg==", "dev": true, "dependencies": { - "@volar/language-core": "2.4.19", + "@volar/language-core": "2.4.20", "@vue/compiler-dom": "^3.5.0", "@vue/compiler-vue2": "^2.7.16", "@vue/shared": "^3.5.0", @@ -1473,13 +1473,13 @@ } }, "node_modules/vue-tsc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.2.tgz", - "integrity": "sha512-DLdFSqY28f9i32XUqASldO4VxPccQbLovlglnaWUtkQ/yzl+IJprEhy/N1T4cbcEhR31G4CDE7FRLdwsT/2Qeg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.3.tgz", + "integrity": "sha512-uU1OMSzWE8/y0+kDTc0iEIu9v82bmFkGyJpAO/x3wQqBkkHkButKgtygREyOkxL4E/xtcf/ExvgNhhjdzonldw==", "dev": true, "dependencies": { - "@volar/typescript": "2.4.19", - "@vue/language-core": "3.0.2" + "@volar/typescript": "2.4.20", + "@vue/language-core": "3.0.3" }, "bin": { "vue-tsc": "bin/vue-tsc.js" @@ -1958,27 +1958,27 @@ } }, "@volar/language-core": { - "version": "2.4.19", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.19.tgz", - "integrity": "sha512-i0aLpNA8DYZ2uG05t5K47nUWe+zvvrN9tfz16zS5pCJV9td8F0u+rVAOVSQ1ypufDLUD+ej9BH2/lmug4+lawQ==", + "version": "2.4.20", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.20.tgz", + "integrity": "sha512-dRDF1G33xaAIDqR6+mXUIjXYdu9vzSxlMGfMEwBxQsfY/JMUEXSpLTR057oTKlUQ2nIvCmP9k94A8h8z2VrNSA==", "dev": true, "requires": { - "@volar/source-map": "2.4.19" + "@volar/source-map": "2.4.20" } }, "@volar/source-map": { - "version": "2.4.19", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.19.tgz", - "integrity": "sha512-ttWmO/Ld7r3ebIPPAYvAuSLrlJ96ZALPka44mD4sWA8bw2n9u7TGnMcaTUkiF0GLG8bq/K09beWmEAB1mqMy/A==", + "version": "2.4.20", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.20.tgz", + "integrity": "sha512-mVjmFQH8mC+nUaVwmbxoYUy8cww+abaO8dWzqPUjilsavjxH0jCJ3Mp8HFuHsdewZs2c+SP+EO7hCd8Z92whJg==", "dev": true }, "@volar/typescript": { - "version": "2.4.19", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.19.tgz", - "integrity": "sha512-Xgo4QLuqusu2fqw4LCeoOY57d5UCn+fNUWZTg4PFubw07jBFFCSJIuJ7BDrRM3EZHDjCqq1RmUO9wkYihnM+8Q==", + "version": "2.4.20", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.20.tgz", + "integrity": "sha512-Oc4DczPwQyXcVbd+5RsNEqX6ia0+w3p+klwdZQ6ZKhFjWoBP9PCPQYlKYRi/tDemWphW93P/Vv13vcE9I9D2GQ==", "dev": true, "requires": { - "@volar/language-core": "2.4.19", + "@volar/language-core": "2.4.20", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -2045,12 +2045,12 @@ "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" }, "@vue/language-core": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.2.tgz", - "integrity": "sha512-+UfQNLLbb0XbwqNjYOUphDVo6vtjtkWHncfZz92TfGNc5OXgNKFhygMuT8PvyZk4e8rjzrsSYay3d5HfjG3ipQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.3.tgz", + "integrity": "sha512-I9wY0ULMN9tMSua+2C7g+ez1cIziVMUzIHlDYGSl2rtru3Eh4sXj95vZ+4GBuXwwPnEmYfzSApVbXiVbI8V5Gg==", "dev": true, "requires": { - "@volar/language-core": "2.4.19", + "@volar/language-core": "2.4.20", "@vue/compiler-dom": "^3.5.0", "@vue/compiler-vue2": "^2.7.16", "@vue/shared": "^3.5.0", @@ -2334,13 +2334,13 @@ } }, "vue-tsc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.2.tgz", - "integrity": "sha512-DLdFSqY28f9i32XUqASldO4VxPccQbLovlglnaWUtkQ/yzl+IJprEhy/N1T4cbcEhR31G4CDE7FRLdwsT/2Qeg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.3.tgz", + "integrity": "sha512-uU1OMSzWE8/y0+kDTc0iEIu9v82bmFkGyJpAO/x3wQqBkkHkButKgtygREyOkxL4E/xtcf/ExvgNhhjdzonldw==", "dev": true, "requires": { - "@volar/typescript": "2.4.19", - "@vue/language-core": "3.0.2" + "@volar/typescript": "2.4.20", + "@vue/language-core": "3.0.3" } } } From df879afa35c96d299194fb57acb9843b5703ec62 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 22 Jul 2025 11:38:39 -0400 Subject: [PATCH 33/36] chore(deps): update dependency @vitejs/plugin-react to v4.7.0 (#4210) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../stackblitz/v7/react/package-lock.json | 238 ++++++++---------- .../stackblitz/v8/react/package-lock.json | 238 ++++++++---------- 2 files changed, 220 insertions(+), 256 deletions(-) diff --git a/static/code/stackblitz/v7/react/package-lock.json b/static/code/stackblitz/v7/react/package-lock.json index df8397caf52..99f3ce46ed7 100644 --- a/static/code/stackblitz/v7/react/package-lock.json +++ b/static/code/stackblitz/v7/react/package-lock.json @@ -60,20 +60,20 @@ } }, "node_modules/@babel/core": { - "version": "7.27.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", - "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz", + "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.3", + "@babel/generator": "^7.28.0", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.27.3", - "@babel/helpers": "^7.27.4", - "@babel/parser": "^7.27.4", + "@babel/helpers": "^7.27.6", + "@babel/parser": "^7.28.0", "@babel/template": "^7.27.2", - "@babel/traverse": "^7.27.4", - "@babel/types": "^7.27.3", + "@babel/traverse": "^7.28.0", + "@babel/types": "^7.28.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -89,14 +89,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", - "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz", + "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==", "dependencies": { - "@babel/parser": "^7.27.5", - "@babel/types": "^7.27.3", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", + "@babel/parser": "^7.28.0", + "@babel/types": "^7.28.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" }, "engines": { @@ -118,6 +118,14 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-module-imports": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", @@ -191,11 +199,11 @@ } }, "node_modules/@babel/parser": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", - "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", + "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", "dependencies": { - "@babel/types": "^7.27.3" + "@babel/types": "^7.28.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -257,26 +265,26 @@ } }, "node_modules/@babel/traverse": { - "version": "7.27.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", - "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz", + "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.3", - "@babel/parser": "^7.27.4", + "@babel/generator": "^7.28.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.0", "@babel/template": "^7.27.2", - "@babel/types": "^7.27.3", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/types": "^7.28.0", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/types": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", - "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", + "version": "7.28.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz", + "integrity": "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==", "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" @@ -700,16 +708,12 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", + "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { @@ -720,32 +724,24 @@ "node": ">=6.0.0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", + "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", + "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.19", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.19.tgz", - "integrity": "sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==" + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", + "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==" }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.40.0", @@ -1090,14 +1086,14 @@ } }, "node_modules/@vitejs/plugin-react": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.6.0.tgz", - "integrity": "sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", + "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", "dependencies": { - "@babel/core": "^7.27.4", + "@babel/core": "^7.28.0", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-beta.19", + "@rolldown/pluginutils": "1.0.0-beta.27", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" }, @@ -1105,7 +1101,7 @@ "node": "^14.18.0 || >=16.0.0" }, "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" } }, "node_modules/browserslist": { @@ -1278,14 +1274,6 @@ "node": ">=6.9.0" } }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "engines": { - "node": ">=4" - } - }, "node_modules/history": { "version": "4.10.1", "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", @@ -1800,20 +1788,20 @@ "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==" }, "@babel/core": { - "version": "7.27.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", - "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz", + "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==", "requires": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.3", + "@babel/generator": "^7.28.0", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.27.3", - "@babel/helpers": "^7.27.4", - "@babel/parser": "^7.27.4", + "@babel/helpers": "^7.27.6", + "@babel/parser": "^7.28.0", "@babel/template": "^7.27.2", - "@babel/traverse": "^7.27.4", - "@babel/types": "^7.27.3", + "@babel/traverse": "^7.28.0", + "@babel/types": "^7.28.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -1822,14 +1810,14 @@ } }, "@babel/generator": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", - "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz", + "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==", "requires": { - "@babel/parser": "^7.27.5", - "@babel/types": "^7.27.3", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", + "@babel/parser": "^7.28.0", + "@babel/types": "^7.28.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" } }, @@ -1845,6 +1833,11 @@ "semver": "^6.3.1" } }, + "@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==" + }, "@babel/helper-module-imports": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", @@ -1894,11 +1887,11 @@ } }, "@babel/parser": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", - "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", + "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", "requires": { - "@babel/types": "^7.27.3" + "@babel/types": "^7.28.0" } }, "@babel/plugin-transform-react-jsx-self": { @@ -1936,23 +1929,23 @@ } }, "@babel/traverse": { - "version": "7.27.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", - "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz", + "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==", "requires": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.3", - "@babel/parser": "^7.27.4", + "@babel/generator": "^7.28.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.0", "@babel/template": "^7.27.2", - "@babel/types": "^7.27.3", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/types": "^7.28.0", + "debug": "^4.3.1" } }, "@babel/types": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", - "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", + "version": "7.28.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz", + "integrity": "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==", "requires": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" @@ -2138,12 +2131,11 @@ } }, "@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", + "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", "requires": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, @@ -2152,29 +2144,24 @@ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==" }, - "@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==" - }, "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", + "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==" }, "@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", + "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", "requires": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "@rolldown/pluginutils": { - "version": "1.0.0-beta.19", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.19.tgz", - "integrity": "sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==" + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", + "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==" }, "@rollup/rollup-android-arm-eabi": { "version": "4.40.0", @@ -2390,14 +2377,14 @@ } }, "@vitejs/plugin-react": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.6.0.tgz", - "integrity": "sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", + "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", "requires": { - "@babel/core": "^7.27.4", + "@babel/core": "^7.28.0", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-beta.19", + "@rolldown/pluginutils": "1.0.0-beta.27", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" } @@ -2500,11 +2487,6 @@ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, "history": { "version": "4.10.1", "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index 90a5585f657..2f20f90617b 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -60,20 +60,20 @@ } }, "node_modules/@babel/core": { - "version": "7.27.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", - "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz", + "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.3", + "@babel/generator": "^7.28.0", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.27.3", - "@babel/helpers": "^7.27.4", - "@babel/parser": "^7.27.4", + "@babel/helpers": "^7.27.6", + "@babel/parser": "^7.28.0", "@babel/template": "^7.27.2", - "@babel/traverse": "^7.27.4", - "@babel/types": "^7.27.3", + "@babel/traverse": "^7.28.0", + "@babel/types": "^7.28.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -89,14 +89,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", - "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz", + "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==", "dependencies": { - "@babel/parser": "^7.27.5", - "@babel/types": "^7.27.3", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", + "@babel/parser": "^7.28.0", + "@babel/types": "^7.28.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" }, "engines": { @@ -118,6 +118,14 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-module-imports": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", @@ -191,11 +199,11 @@ } }, "node_modules/@babel/parser": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", - "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", + "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", "dependencies": { - "@babel/types": "^7.27.3" + "@babel/types": "^7.28.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -257,26 +265,26 @@ } }, "node_modules/@babel/traverse": { - "version": "7.27.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", - "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz", + "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.3", - "@babel/parser": "^7.27.4", + "@babel/generator": "^7.28.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.0", "@babel/template": "^7.27.2", - "@babel/types": "^7.27.3", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/types": "^7.28.0", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/types": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", - "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", + "version": "7.28.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz", + "integrity": "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==", "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" @@ -700,16 +708,12 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", + "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { @@ -720,32 +724,24 @@ "node": ">=6.0.0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", + "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", + "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.19", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.19.tgz", - "integrity": "sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==" + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", + "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==" }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.40.0", @@ -1196,14 +1192,14 @@ } }, "node_modules/@vitejs/plugin-react": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.6.0.tgz", - "integrity": "sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", + "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", "dependencies": { - "@babel/core": "^7.27.4", + "@babel/core": "^7.28.0", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-beta.19", + "@rolldown/pluginutils": "1.0.0-beta.27", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" }, @@ -1211,7 +1207,7 @@ "node": "^14.18.0 || >=16.0.0" }, "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" } }, "node_modules/browserslist": { @@ -1384,14 +1380,6 @@ "node": ">=6.9.0" } }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "engines": { - "node": ">=4" - } - }, "node_modules/history": { "version": "4.10.1", "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", @@ -1906,20 +1894,20 @@ "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==" }, "@babel/core": { - "version": "7.27.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", - "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz", + "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==", "requires": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.3", + "@babel/generator": "^7.28.0", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.27.3", - "@babel/helpers": "^7.27.4", - "@babel/parser": "^7.27.4", + "@babel/helpers": "^7.27.6", + "@babel/parser": "^7.28.0", "@babel/template": "^7.27.2", - "@babel/traverse": "^7.27.4", - "@babel/types": "^7.27.3", + "@babel/traverse": "^7.28.0", + "@babel/types": "^7.28.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -1928,14 +1916,14 @@ } }, "@babel/generator": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", - "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz", + "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==", "requires": { - "@babel/parser": "^7.27.5", - "@babel/types": "^7.27.3", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", + "@babel/parser": "^7.28.0", + "@babel/types": "^7.28.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" } }, @@ -1951,6 +1939,11 @@ "semver": "^6.3.1" } }, + "@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==" + }, "@babel/helper-module-imports": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", @@ -2000,11 +1993,11 @@ } }, "@babel/parser": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", - "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", + "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", "requires": { - "@babel/types": "^7.27.3" + "@babel/types": "^7.28.0" } }, "@babel/plugin-transform-react-jsx-self": { @@ -2042,23 +2035,23 @@ } }, "@babel/traverse": { - "version": "7.27.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", - "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz", + "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==", "requires": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.3", - "@babel/parser": "^7.27.4", + "@babel/generator": "^7.28.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.0", "@babel/template": "^7.27.2", - "@babel/types": "^7.27.3", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/types": "^7.28.0", + "debug": "^4.3.1" } }, "@babel/types": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", - "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", + "version": "7.28.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz", + "integrity": "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==", "requires": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" @@ -2244,12 +2237,11 @@ } }, "@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", + "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", "requires": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, @@ -2258,29 +2250,24 @@ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==" }, - "@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==" - }, "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", + "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==" }, "@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", + "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", "requires": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "@rolldown/pluginutils": { - "version": "1.0.0-beta.19", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.19.tgz", - "integrity": "sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==" + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", + "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==" }, "@rollup/rollup-android-arm-eabi": { "version": "4.40.0", @@ -2556,14 +2543,14 @@ } }, "@vitejs/plugin-react": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.6.0.tgz", - "integrity": "sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", + "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", "requires": { - "@babel/core": "^7.27.4", + "@babel/core": "^7.28.0", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-beta.19", + "@rolldown/pluginutils": "1.0.0-beta.27", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" } @@ -2666,11 +2653,6 @@ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, "history": { "version": "4.10.1", "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", From 9c0600836dee56cc24f1950b97e341fde07f9ca4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gon=C3=A7alo=20M=2E?= Date: Wed, 23 Jul 2025 21:32:41 +0100 Subject: [PATCH 34/36] docs(vscode): update VS Code Extension page to reflect the deprecation of the previous version (#4207) * Fixed broken link to @awesome-cordova-plugins/ionic-webview * Added support to run release notes using Windows * Update cspell-wordlist.txt * Update vscode-extension.md * Fix buttons height * Update vscode-extension.md * Update docs/intro/vscode-extension.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Added custom styling * Update versioned_docs/version-v5/native/ionic-webview.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/styles/custom.scss Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update docs/intro/vscode-extension.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update vscode-extension.md * Update custom.scss * Update vscode-extension.md * Fix styles broken and semantics * Update src/styles/custom.scss Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- cspell-wordlist.txt | 165 +++++++++--------- docs/core-concepts/webview.md | 2 +- docs/intro/vscode-extension.md | 47 ++--- scripts/release-notes.mjs | 7 +- src/styles/custom.scss | 26 +++ .../version-v5/native/ionic-webview.md | 3 +- .../version-v6/core-concepts/webview.md | 2 +- .../version-v7/core-concepts/webview.md | 2 +- 8 files changed, 137 insertions(+), 117 deletions(-) diff --git a/cspell-wordlist.txt b/cspell-wordlist.txt index 0889274c70b..13a8a710581 100644 --- a/cspell-wordlist.txt +++ b/cspell-wordlist.txt @@ -1,82 +1,83 @@ -Appflow -Codepen -Firestore -Genymotion -Hygen -Ionicon -Ionicons -Logcat -Maskito -Pluralsight -Swiper -Udemy -Vetur -Wistia -WCAG - -actionsheet -fabs -datetime -datetimes -datetimepicker -infinitescroll -searchbar -searchbars -sidemenu -textarea -textareas - -appstore -authed -autogrow -automations -autoplay -Callout -comparewith -composables -engageable -flexbox -frontmatter -fullscreen -geolocation -interactives -isopen -jank -janky -jarsigner -jsdelivr -keyframes -keytool -lifecycles -localstorage -mobileweb -phablet -playstore -preconfigured -preflighted -proxying -quickstart -retargeted -runtimes -scroller -subcomponent -subcomponents -swipeable -templating -transpiling -treeshaking -triaging -typeahead -unminified -unsanitized -viewports -webapps -webviews -xlarge -xsmall - -allowtransparency -mozallowfullscreen -msallowfullscreen -oallowfullscreen -webkitallowfullscreen +Appflow +Codepen +Firestore +Genymotion +Hygen +Ionicon +Ionicons +Logcat +Maskito +Pluralsight +Swiper +Udemy +Vetur +Wistia +WCAG + +actionsheet +fabs +datetime +datetimes +datetimepicker +infinitescroll +searchbar +searchbars +sidemenu +textarea +textareas + +appstore +authed +autogrow +automations +autoplay +Callout +comparewith +composables +engageable +flexbox +frontmatter +fullscreen +geolocation +interactives +isopen +jank +janky +jarsigner +jsdelivr +keyframes +keytool +lifecycles +localstorage +mobileweb +phablet +playstore +preconfigured +preflighted +proxying +quickstart +retargeted +runtimes +scroller +subcomponent +subcomponents +swipeable +templating +transpiling +treeshaking +triaging +typeahead +unminified +unsanitized +viewports +webapps +webviews +xlarge +xsmall + +allowtransparency +mozallowfullscreen +msallowfullscreen +oallowfullscreen +webkitallowfullscreen +webnative diff --git a/docs/core-concepts/webview.md b/docs/core-concepts/webview.md index 17382c430e1..d32f338a4dc 100644 --- a/docs/core-concepts/webview.md +++ b/docs/core-concepts/webview.md @@ -42,7 +42,7 @@ import { Capacitor } from '@capacitor/core'; Capacitor.convertFileSrc(filePath); ``` -For Cordova apps, the [Ionic Web View plugin](https://github.com/ionic-team/cordova-plugin-ionic-webview) provides a utility function for converting File URIs: `window.Ionic.WebView.convertFileSrc()`. There is also a corresponding Ionic Native plugin: [`@awesome-cordova-plugins/ionic-webview`](../native/ionic-webview.md). +For Cordova apps, the [Ionic Web View plugin](https://github.com/ionic-team/cordova-plugin-ionic-webview) provides a utility function for converting File URIs: `window.Ionic.WebView.convertFileSrc()`. There is also a corresponding Ionic Native plugin: [`@awesome-cordova-plugins/ionic-webview`](https://danielsogl.gitbook.io/awesome-cordova-plugins/ionic-webview). ### Implementations diff --git a/docs/intro/vscode-extension.md b/docs/intro/vscode-extension.md index 4c4a58e9791..2a4d3bddeac 100644 --- a/docs/intro/vscode-extension.md +++ b/docs/intro/vscode-extension.md @@ -1,39 +1,30 @@ --- -title: Ionic VS Code Extension +title: VS Code Extension --- - Using the Ionic Visual Studio Code Extension - + VS Code Extension + -The Ionic Visual Studio Code extension helps you perform various functions that are common to developing an Ionic app, all without leaving your VS Code window. You can install the [extension on the Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=ionic.ionic). Once you have the extension installed, you'll see the Ionic logo in the activity bar. +The [WebNative Visual Studio Code extension](https://marketplace.visualstudio.com/items?itemName=WebNative.webnative) is a community-maintained plugin that helps you perform common Ionic Framework development tasks without needing to remember CLI commands. -## Create a New Project +If you have VS Code on this computer click Install below. You can also find the extension by searching for "WebNative". -From an empty directory, you can create a new Angular, React, or Vue project by clicking one of the template options and providing an app name. +
    + + + + + -Video of creating a project +## Additional Documentation -With the new project created, the extension will provide access to all of the common tasks in your `package.json`. +Full documentation of the WebNative extension can be found at [webnative.dev](https://webnative.dev/introduction/getting-started/) covering topics like: -## Adding Capacitor - -You can also add [Capacitor](https://capacitorjs.com/) to your application by choosing "Integrate Capacitor". - -Video of adding Capacitor - -With Capacitor integrated, you can now run your app on web, Android, and iOS with the "Run On Web", "Run On Android", and "Run On iOS" options. - -## Doing More - -There is so much the Ionic VS Code extension can help with, including migrations, debugging, monorepo support, and more. For the full list of all of the extension's capabilities, checkout the [extension overview on the VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=ionic.ionic). +- Building, debugging and running your Ionic Framework application. +- Bundle analysis, dependency upgrades. +- Migration from Cordova. +- Changing native settings. +- Splash Screens & Icons. +- Developing without a Mac using the WebNative app. diff --git a/scripts/release-notes.mjs b/scripts/release-notes.mjs index 6e3effd8dbe..a4e82310881 100644 --- a/scripts/release-notes.mjs +++ b/scripts/release-notes.mjs @@ -1,12 +1,13 @@ import pkg from 'fs-extra'; import fetch from 'node-fetch'; -import { resolve } from 'path'; +import { resolve, dirname } from 'path'; import { compare } from 'semver'; -import { URL } from 'url'; +import { URL, fileURLToPath } from 'url'; import { renderMarkdown } from './utils.mjs'; -const __dirname = new URL('.', import.meta.url).pathname; +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); const OUTPUT_PATH = resolve(__dirname, '../src/components/page/reference/ReleaseNotes/release-notes.json'); // export default { diff --git a/src/styles/custom.scss b/src/styles/custom.scss index 0dba75fe64e..b518dd5de32 100644 --- a/src/styles/custom.scss +++ b/src/styles/custom.scss @@ -61,6 +61,7 @@ html[data-theme='light'] { --ifm-code-background: var(--c-indigo-10); --ifm-font-color-base: var(--c-carbon-90); + --ifm-info-color-bg: var(--c-carbon-90); } html[data-theme='dark'] { @@ -82,6 +83,7 @@ html[data-theme='dark'] { --ifm-font-color-base: var(--c-carbon-10); --ifm-background-color: var(--token-primary-bg-c); --ifm-dropdown-background-color: var(--token-secondary-bg-c); + --ifm-info-color-bg: var(--c-carbon-10); --ifm-menu-link-sublist-icon-filter: invert(100%); } @@ -225,3 +227,27 @@ iframe { } } } + +.install-button { + background-color: var(--ifm-info-color-bg); + border: 2px solid var(--ifm-font-color-base); + border-radius: 100px; + color: var(--admonition-info-c-bg); + cursor: pointer; + font-weight: bold; + padding: 16px; + padding-left: 32px; + padding-right: 32px; +} + +.docs-button { + background-color: transparent; + border: 2px solid var(--ifm-font-color-base); + border-radius: 100px; + color: var(--ifm-font-color-base); + cursor: pointer; + font-weight: bold; + padding: 16px; + padding-left: 32px; + padding-right: 32px; +} diff --git a/versioned_docs/version-v5/native/ionic-webview.md b/versioned_docs/version-v5/native/ionic-webview.md index 9f519d62ebc..0942368d3f4 100644 --- a/versioned_docs/version-v5/native/ionic-webview.md +++ b/versioned_docs/version-v5/native/ionic-webview.md @@ -53,8 +53,9 @@ Requires the Cordova plugin: `cordova-plugin-ionic-webview` > 2.0. For more info - $ ionic cordova plugin add cordova-plugin-ionic-webview {'\n'}$ npm install @awesome-cordova-plugins/ionic-webview{' '} + $ ionic cordova plugin add cordova-plugin-ionic-webview {'\n'}$ npm install @awesome-cordova-plugins/ionic-webview {'\n'} + # For more information, visit: [Awesome Cordova Plugins - Ionic WebView](https://danielsogl.gitbook.io/awesome-cordova-plugins/ionic-webview) diff --git a/versioned_docs/version-v6/core-concepts/webview.md b/versioned_docs/version-v6/core-concepts/webview.md index 359ead6fae3..7d1f6aaac1f 100644 --- a/versioned_docs/version-v6/core-concepts/webview.md +++ b/versioned_docs/version-v6/core-concepts/webview.md @@ -42,7 +42,7 @@ import { Capacitor } from '@capacitor/core'; Capacitor.convertFileSrc(filePath); ``` -For Cordova apps, the [Ionic Web View plugin](https://github.com/ionic-team/cordova-plugin-ionic-webview) provides a utility function for converting File URIs: `window.Ionic.WebView.convertFileSrc()`. There is also a corresponding Ionic Native plugin: [`@awesome-cordova-plugins/ionic-webview`](../native/ionic-webview.md). +For Cordova apps, the [Ionic Web View plugin](https://github.com/ionic-team/cordova-plugin-ionic-webview) provides a utility function for converting File URIs: `window.Ionic.WebView.convertFileSrc()`. There is also a corresponding Ionic Native plugin: [`@awesome-cordova-plugins/ionic-webview`](https://danielsogl.gitbook.io/awesome-cordova-plugins/ionic-webview). ### Implementations diff --git a/versioned_docs/version-v7/core-concepts/webview.md b/versioned_docs/version-v7/core-concepts/webview.md index 17382c430e1..d32f338a4dc 100644 --- a/versioned_docs/version-v7/core-concepts/webview.md +++ b/versioned_docs/version-v7/core-concepts/webview.md @@ -42,7 +42,7 @@ import { Capacitor } from '@capacitor/core'; Capacitor.convertFileSrc(filePath); ``` -For Cordova apps, the [Ionic Web View plugin](https://github.com/ionic-team/cordova-plugin-ionic-webview) provides a utility function for converting File URIs: `window.Ionic.WebView.convertFileSrc()`. There is also a corresponding Ionic Native plugin: [`@awesome-cordova-plugins/ionic-webview`](../native/ionic-webview.md). +For Cordova apps, the [Ionic Web View plugin](https://github.com/ionic-team/cordova-plugin-ionic-webview) provides a utility function for converting File URIs: `window.Ionic.WebView.convertFileSrc()`. There is also a corresponding Ionic Native plugin: [`@awesome-cordova-plugins/ionic-webview`](https://danielsogl.gitbook.io/awesome-cordova-plugins/ionic-webview). ### Implementations From 0e164eb368b1ba617decc9224a32e8211da5c313 Mon Sep 17 00:00:00 2001 From: Brandy Smith Date: Wed, 23 Jul 2025 17:19:27 -0400 Subject: [PATCH 35/36] fix(sidebar): scroll to the active item after navigating (#4211) Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com> --- src/theme/DocSidebar/index.tsx | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/theme/DocSidebar/index.tsx b/src/theme/DocSidebar/index.tsx index c99f9e85c83..5267a996e0e 100644 --- a/src/theme/DocSidebar/index.tsx +++ b/src/theme/DocSidebar/index.tsx @@ -3,15 +3,28 @@ * * Reason for modifying: * - Add a logo to the top of the sidebar + * - Scroll to the active item in the sidebar */ -import React from 'react'; +import React, { useEffect } from 'react'; +import { useLocation } from '@docusaurus/router'; import DocSidebar from '@theme-original/DocSidebar'; import type { Props } from '@theme/DocSidebar'; import Logo from '@theme-original/Logo'; export default function DocSidebarWrapper(props: Props): JSX.Element { + const location = useLocation(); + + useEffect(() => { + setTimeout(() => { + const activeItem = document.querySelector('.menu__link--active'); + if (activeItem && activeItem.scrollIntoView) { + activeItem.scrollIntoView({ block: 'center', behavior: 'auto' }); + } + }, 100); + }, [location.pathname]); + return ( <> From 705df1da019bca962febddb3847ac3e76cd44827 Mon Sep 17 00:00:00 2001 From: "kendra.jade" Date: Fri, 1 Aug 2025 11:54:34 -0500 Subject: [PATCH 36/36] docs(fundamentals): add Properties section to fundamentals --- docs/core-concepts/fundamentals.md | 16 + .../current/README.md | 17 + .../current/angular/build-options.md | 700 +++++++++++++++++ .../current/angular/lifecycle.md | 103 +++ .../current/angular/navigation.md | 475 +++++++++++ .../current/angular/overview.md | 46 ++ .../current/angular/performance.md | 73 ++ .../current/angular/platform.md | 246 ++++++ .../current/angular/pwa.md | 166 ++++ .../current/angular/slides.md | 366 +++++++++ .../current/angular/storage.md | 32 + .../current/angular/testing.md | 593 ++++++++++++++ .../current/angular/virtual-scroll.md | 133 ++++ .../current/angular/your-first-app.md | 182 +++++ .../angular/your-first-app/2-taking-photos.md | 134 ++++ .../angular/your-first-app/3-saving-photos.md | 81 ++ .../your-first-app/4-loading-photos.md | 69 ++ .../angular/your-first-app/5-adding-mobile.md | 117 +++ .../your-first-app/6-deploying-mobile.md | 114 +++ .../angular/your-first-app/7-live-reload.md | 114 +++ .../angular/your-first-app/8-distribute.md | 100 +++ .../current/api.md | 17 + .../current/api/accordion-group.md | 59 ++ .../current/api/accordion.md | 217 ++++++ .../current/api/action-sheet.md | 298 +++++++ .../current/api/alert.md | 350 +++++++++ .../current/api/app.md | 53 ++ .../current/api/avatar.md | 67 ++ .../current/api/back-button.md | 57 ++ .../current/api/backdrop.md | 51 ++ .../current/api/badge.md | 70 ++ .../current/api/breadcrumb.md | 60 ++ .../current/api/breadcrumbs.md | 104 +++ .../current/api/button.md | 115 +++ .../current/api/buttons.md | 87 +++ .../current/api/card-content.md | 35 + .../current/api/card-header.md | 37 + .../current/api/card-subtitle.md | 37 + .../current/api/card-title.md | 42 + .../current/api/card.md | 87 +++ .../current/api/checkbox.md | 157 ++++ .../current/api/chip.md | 64 ++ .../current/api/col.md | 49 ++ .../current/api/content.md | 183 +++++ .../current/api/datetime-button.md | 80 ++ .../current/api/datetime.md | 499 ++++++++++++ .../current/api/fab-button.md | 43 + .../current/api/fab-list.md | 35 + .../current/api/fab.md | 130 +++ .../current/api/footer.md | 79 ++ .../current/api/grid.md | 215 +++++ .../current/api/header.md | 92 +++ .../current/api/icon.md | 45 ++ .../current/api/img.md | 46 ++ .../current/api/infinite-scroll-content.md | 34 + .../current/api/infinite-scroll.md | 123 +++ .../current/api/input-otp.md | 173 ++++ .../current/api/input-password-toggle.md | 52 ++ .../current/api/input.md | 251 ++++++ .../current/api/item-divider.md | 63 ++ .../current/api/item-group.md | 50 ++ .../current/api/item-option.md | 42 + .../current/api/item-options.md | 50 ++ .../current/api/item-sliding.md | 77 ++ .../current/api/item.md | 295 +++++++ .../current/api/label.md | 61 ++ .../current/api/list-header.md | 74 ++ .../current/api/list.md | 66 ++ .../current/api/loading.md | 114 +++ .../current/api/menu-button.md | 42 + .../current/api/menu-toggle.md | 44 ++ .../current/api/menu.md | 110 +++ .../current/api/modal.md | 325 ++++++++ .../current/api/nav-link.md | 42 + .../current/api/nav.md | 80 ++ .../current/api/note.md | 65 ++ .../current/api/picker-column-option.md | 38 + .../current/api/picker-column.md | 38 + .../current/api/picker-legacy.md | 151 ++++ .../current/api/picker.md | 192 +++++ .../current/api/popover.md | 258 ++++++ .../current/api/progress-bar.md | 96 +++ .../current/api/radio-group.md | 60 ++ .../current/api/radio.md | 151 ++++ .../current/api/range.md | 219 ++++++ .../current/api/refresher-content.md | 35 + .../current/api/refresher.md | 143 ++++ .../current/api/reorder-group.md | 64 ++ .../current/api/reorder.md | 102 +++ .../current/api/ripple-effect.md | 67 ++ .../current/api/route-redirect.md | 114 +++ .../current/api/route.md | 269 +++++++ .../current/api/router-link.md | 45 ++ .../current/api/router-outlet.md | 59 ++ .../current/api/router.md | 114 +++ .../current/api/row.md | 49 ++ .../current/api/searchbar.md | 141 ++++ .../current/api/segment-button.md | 71 ++ .../current/api/segment-content.md | 52 ++ .../current/api/segment-view.md | 40 + .../current/api/segment.md | 134 ++++ .../current/api/select-option.md | 42 + .../current/api/select.md | 371 +++++++++ .../current/api/skeleton-text.md | 54 ++ .../current/api/spinner.md | 71 ++ .../current/api/split-pane.md | 81 ++ .../current/api/tab-bar.md | 179 +++++ .../current/api/tab-button.md | 233 ++++++ .../current/api/tab.md | 51 ++ .../current/api/tabs.md | 82 ++ .../current/api/text.md | 49 ++ .../current/api/textarea.md | 196 +++++ .../current/api/thumbnail.md | 61 ++ .../current/api/title.md | 96 +++ .../current/api/toast.md | 271 +++++++ .../current/api/toggle.md | 172 ++++ .../current/api/toolbar.md | 109 +++ .../current/cli.md | 54 ++ .../current/cli/commands/.gitignore | 2 + .../current/cli/configuration.md | 243 ++++++ .../current/cli/livereload.md | 73 ++ .../current/cli/using-a-proxy.md | 45 ++ .../current/components.md | 165 ++++ .../current/contributing/coc.md | 13 + .../current/contributing/how-to-contribute.md | 252 ++++++ .../current/core-concepts/cross-platform.md | 180 +++++ .../current/core-concepts/fundamentals.md | 54 ++ .../current/core-concepts/webview.md | 50 ++ .../what-are-progressive-web-apps.md | 72 ++ .../current/deployment/app-store.md | 124 +++ .../current/deployment/play-store.mdx | 79 ++ .../current/deployment/progressive-web-app.md | 25 + .../current/developer-resources/books.md | 81 ++ .../current/developer-resources/courses.md | 107 +++ .../current/developer-resources/guides.md | 9 + .../creating-photo-gallery-device-storage.md | 195 +++++ .../guides/first-app-v3/intro.md | 117 +++ .../guides/first-app-v3/ios-android-camera.md | 156 ++++ .../realtime-updates-ionic-deploy.md | 193 +++++ .../guides/first-app-v3/theming.md | 47 ++ .../track-bugs-ionic-monitoring.md | 92 +++ .../creating-photo-gallery-device-storage.md | 202 +++++ .../guides/first-app-v4/intro.md | 97 +++ .../guides/first-app-v4/ios-android-camera.md | 154 ++++ .../guides/first-app-v4/theming.md | 56 ++ .../current/developer-resources/posts.md | 77 ++ .../current/developer-resources/tools.md | 21 + .../current/developer-resources/videos.md | 21 + .../current/developing/android.md | 38 + .../current/developing/config.md | 206 +++++ .../current/developing/config/global/index.md | 89 +++ .../developing/config/per-component/index.md | 184 +++++ .../config/per-platform-fallback/index.md | 108 +++ .../config/per-platform-overrides/index.md | 120 +++ .../developing/config/per-platform/index.md | 89 +++ .../developing/hardware-back-button.md | 415 ++++++++++ .../current/developing/ios.md | 39 + .../current/developing/keyboard.md | 176 +++++ .../current/developing/managing-focus.md | 281 +++++++ .../current/developing/previewing.md | 88 +++ .../current/developing/scaffolding.md | 99 +++ .../current/developing/starting.md | 48 ++ .../current/developing/tips.md | 152 ++++ .../current/index.md | 152 ++++ .../current/intro/cdn.md | 166 ++++ .../current/intro/cli.md | 64 ++ .../current/intro/environment.md | 68 ++ .../current/intro/first-app.md | 24 + .../current/intro/next.md | 36 + .../current/intro/vscode-extension.md | 39 + .../current/layout/css-utilities.md | 549 +++++++++++++ .../current/layout/dynamic-font-scaling.md | 415 ++++++++++ .../current/layout/global-stylesheets.md | 71 ++ .../current/layout/structure.md | 62 ++ .../current/native-faq.md | 24 + .../current/native-setup.md | 145 ++++ .../current/native.md | 32 + .../current/native/.gitignore | 2 + .../current/react.md | 147 ++++ ...onic-react-to-an-existing-react-project.md | 146 ++++ .../current/react/lifecycle.md | 167 ++++ .../current/react/navigation.md | 654 ++++++++++++++++ .../current/react/overlays.md | 91 +++ .../current/react/performance.md | 47 ++ .../current/react/platform.md | 83 ++ .../current/react/pwa.md | 183 +++++ .../current/react/quickstart.md | 450 +++++++++++ .../current/react/slides.md | 571 ++++++++++++++ .../current/react/storage.md | 25 + .../current/react/testing/introduction.md | 21 + .../testing/unit-testing/best-practices.md | 51 ++ .../react/testing/unit-testing/examples.md | 112 +++ .../react/testing/unit-testing/setup.md | 40 + .../current/react/virtual-scroll.md | 82 ++ .../current/react/your-first-app.md | 204 +++++ .../react/your-first-app/2-taking-photos.md | 146 ++++ .../react/your-first-app/3-saving-photos.md | 81 ++ .../react/your-first-app/4-loading-photos.md | 65 ++ .../react/your-first-app/5-adding-mobile.md | 73 ++ .../your-first-app/6-deploying-mobile.md | 107 +++ .../react/your-first-app/7-live-reload.md | 120 +++ .../react/your-first-app/8-distribute.md | 100 +++ .../current/reference/browser-support.md | 47 ++ .../current/reference/glossary.md | 480 ++++++++++++ .../current/reference/release-notes.md | 7 + .../current/reference/support.md | 121 +++ .../current/reference/versioning.md | 28 + .../current/techniques/security.md | 233 ++++++ .../current/test/page1.md | 3 + .../current/test/page2.md | 3 + .../current/theming/advanced.md | 207 +++++ .../current/theming/basics.md | 42 + .../current/theming/color-generator.md | 19 + .../current/theming/colors.md | 114 +++ .../current/theming/css-shadow-parts.md | 165 ++++ .../current/theming/css-variables.md | 98 +++ .../current/theming/dark-mode.md | 272 +++++++ .../current/theming/high-contrast-mode.md | 245 ++++++ .../current/theming/platform-styles.md | 51 ++ .../current/theming/themes.md | 69 ++ .../current/troubleshooting/build.md | 207 +++++ .../current/troubleshooting/cors.md | 304 ++++++++ .../current/troubleshooting/debugging.md | 100 +++ .../current/troubleshooting/native.md | 96 +++ .../current/troubleshooting/runtime.md | 221 ++++++ .../current/updating/4-0.md | 285 +++++++ .../current/updating/5-0.md | 37 + .../current/updating/6-0.md | 478 ++++++++++++ .../current/updating/7-0.md | 155 ++++ .../current/updating/8-0.md | 262 +++++++ .../current/utilities/animations.md | 367 +++++++++ .../current/utilities/gestures.md | 237 ++++++ .../current/vue/lifecycle.md | 107 +++ .../current/vue/navigation.md | 660 ++++++++++++++++ .../current/vue/overview.md | 66 ++ .../current/vue/performance.md | 50 ++ .../current/vue/platform.md | 87 +++ .../current/vue/pwa.md | 263 +++++++ .../current/vue/quickstart.md | 737 ++++++++++++++++++ .../current/vue/slides.md | 572 ++++++++++++++ .../current/vue/storage.md | 32 + .../current/vue/troubleshooting.md | 134 ++++ .../current/vue/utility-functions.md | 184 +++++ .../current/vue/virtual-scroll.md | 143 ++++ .../current/vue/your-first-app.md | 220 ++++++ .../vue/your-first-app/2-taking-photos.md | 155 ++++ .../vue/your-first-app/3-saving-photos.md | 70 ++ .../vue/your-first-app/4-loading-photos.md | 69 ++ .../vue/your-first-app/5-adding-mobile.md | 80 ++ .../vue/your-first-app/6-deploying-mobile.md | 118 +++ .../vue/your-first-app/7-live-reload.md | 134 ++++ .../vue/your-first-app/8-distribute.md | 100 +++ 252 files changed, 34227 insertions(+) create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/README.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/angular/build-options.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/angular/lifecycle.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/angular/navigation.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/angular/overview.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/angular/performance.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/angular/platform.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/angular/pwa.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/angular/slides.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/angular/storage.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/angular/testing.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/angular/virtual-scroll.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/2-taking-photos.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/3-saving-photos.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/4-loading-photos.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/5-adding-mobile.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/6-deploying-mobile.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/7-live-reload.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/8-distribute.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/accordion-group.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/accordion.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/action-sheet.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/alert.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/app.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/avatar.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/back-button.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/backdrop.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/badge.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/breadcrumb.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/breadcrumbs.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/button.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/buttons.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/card-content.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/card-header.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/card-subtitle.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/card-title.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/card.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/checkbox.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/chip.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/col.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/content.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/datetime-button.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/datetime.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/fab-button.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/fab-list.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/fab.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/footer.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/grid.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/header.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/icon.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/img.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/infinite-scroll-content.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/infinite-scroll.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/input-otp.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/input-password-toggle.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/input.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/item-divider.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/item-group.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/item-option.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/item-options.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/item-sliding.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/item.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/label.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/list-header.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/list.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/loading.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/menu-button.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/menu-toggle.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/menu.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/modal.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/nav-link.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/nav.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/note.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/picker-column-option.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/picker-column.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/picker-legacy.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/picker.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/popover.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/progress-bar.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/radio-group.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/radio.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/range.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/refresher-content.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/refresher.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/reorder-group.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/reorder.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/ripple-effect.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/route-redirect.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/route.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/router-link.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/router-outlet.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/router.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/row.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/searchbar.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/segment-button.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/segment-content.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/segment-view.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/segment.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/select-option.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/select.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/skeleton-text.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/spinner.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/split-pane.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/tab-bar.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/tab-button.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/tab.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/tabs.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/text.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/textarea.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/thumbnail.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/title.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/toast.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/toggle.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/api/toolbar.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/cli.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/cli/commands/.gitignore create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/cli/configuration.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/cli/livereload.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/cli/using-a-proxy.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/components.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/contributing/coc.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/contributing/how-to-contribute.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/core-concepts/cross-platform.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/core-concepts/fundamentals.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/core-concepts/webview.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/core-concepts/what-are-progressive-web-apps.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/deployment/app-store.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/deployment/play-store.mdx create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/deployment/progressive-web-app.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developer-resources/books.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developer-resources/courses.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developer-resources/guides.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developer-resources/guides/first-app-v3/creating-photo-gallery-device-storage.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developer-resources/guides/first-app-v3/intro.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developer-resources/guides/first-app-v3/ios-android-camera.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developer-resources/guides/first-app-v3/realtime-updates-ionic-deploy.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developer-resources/guides/first-app-v3/theming.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developer-resources/guides/first-app-v3/track-bugs-ionic-monitoring.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developer-resources/guides/first-app-v4/creating-photo-gallery-device-storage.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developer-resources/guides/first-app-v4/intro.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developer-resources/guides/first-app-v4/ios-android-camera.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developer-resources/guides/first-app-v4/theming.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developer-resources/posts.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developer-resources/tools.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developer-resources/videos.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developing/android.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developing/config.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developing/config/global/index.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developing/config/per-component/index.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developing/config/per-platform-fallback/index.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developing/config/per-platform-overrides/index.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developing/config/per-platform/index.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developing/hardware-back-button.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developing/ios.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developing/keyboard.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developing/managing-focus.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developing/previewing.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developing/scaffolding.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developing/starting.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/developing/tips.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/index.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/intro/cdn.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/intro/cli.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/intro/environment.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/intro/first-app.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/intro/next.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/intro/vscode-extension.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/layout/css-utilities.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/layout/dynamic-font-scaling.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/layout/global-stylesheets.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/layout/structure.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/native-faq.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/native-setup.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/native.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/native/.gitignore create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/react.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/react/adding-ionic-react-to-an-existing-react-project.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/react/lifecycle.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/react/navigation.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/react/overlays.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/react/performance.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/react/platform.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/react/pwa.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/react/quickstart.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/react/slides.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/react/storage.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/react/testing/introduction.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/react/testing/unit-testing/best-practices.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/react/testing/unit-testing/examples.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/react/testing/unit-testing/setup.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/react/virtual-scroll.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/react/your-first-app.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/react/your-first-app/2-taking-photos.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/react/your-first-app/3-saving-photos.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/react/your-first-app/4-loading-photos.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/react/your-first-app/5-adding-mobile.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/react/your-first-app/6-deploying-mobile.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/react/your-first-app/7-live-reload.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/react/your-first-app/8-distribute.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/reference/browser-support.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/reference/glossary.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/reference/release-notes.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/reference/support.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/reference/versioning.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/techniques/security.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/test/page1.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/test/page2.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/theming/advanced.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/theming/basics.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/theming/color-generator.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/theming/colors.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/theming/css-shadow-parts.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/theming/css-variables.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/theming/dark-mode.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/theming/high-contrast-mode.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/theming/platform-styles.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/theming/themes.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/troubleshooting/build.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/troubleshooting/cors.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/troubleshooting/debugging.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/troubleshooting/native.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/troubleshooting/runtime.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/updating/4-0.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/updating/5-0.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/updating/6-0.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/updating/7-0.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/updating/8-0.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/utilities/animations.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/utilities/gestures.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/vue/lifecycle.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/vue/navigation.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/vue/overview.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/vue/performance.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/vue/platform.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/vue/pwa.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/vue/quickstart.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/vue/slides.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/vue/storage.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/vue/troubleshooting.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/vue/utility-functions.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/vue/virtual-scroll.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/vue/your-first-app.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/vue/your-first-app/2-taking-photos.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/vue/your-first-app/3-saving-photos.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/vue/your-first-app/4-loading-photos.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/vue/your-first-app/5-adding-mobile.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/vue/your-first-app/6-deploying-mobile.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/vue/your-first-app/7-live-reload.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/vue/your-first-app/8-distribute.md diff --git a/docs/core-concepts/fundamentals.md b/docs/core-concepts/fundamentals.md index a409e57bc0b..0a2087eb33f 100644 --- a/docs/core-concepts/fundamentals.md +++ b/docs/core-concepts/fundamentals.md @@ -51,3 +51,19 @@ At the core, Ionic Framework is built using + +``` + +**Routing** + +Developers who wish to use `routerLink`, `routerAction`, or `routerDirection` on Ionic components should import the `IonRouterLink` directive. Developers who wish to use these routing features on anchor (``) elements should import `IonRouterLinkWithHref` instead. + +```typescript title="home.page.ts" +import { Component } from '@angular/core'; +import { RouterLink } from '@angular/router'; +import { IonButton, IonRouterLink } from '@ionic/angular/standalone'; + +@Component({ + selector: 'app-home', + templateUrl: 'home.page.html', + styleUrls: ['home.page.scss'], + standalone: true, + imports: [ + IonButton, + RouterLink, // required to get base routerLink behavior for @angular/router + IonRouterLink, // use IonRouterLinkWithHref if you are using an element instead + ], +}) +export class HomePage {} +``` + +```html title="home.page.html" +Go to Foo Page +``` + +**Testing** + +Ionic Angular's standalone components use ES Modules. As a result, developers using Jest should ensure that ES Modules are transpiled to a format that Jest can use. Developers using Jest should add the following to their Jest config: + + + + +```json + +"transformIgnorePatterns": ["/node_modules/(?!(@ionic/angular|@ionic/core|ionicons|@stencil/core|@angular/*)/)"] +``` + + + + +```json + +"transformIgnorePatterns": ["/node_modules/.pnpm/(?!(@ionic/angular|@ionic/core|ionicons|@stencil/core|@angular/*)@)"] +``` + + + + +### Usage with NgModule-based Applications + +:::warning +All Ionic imports should be imported from the `@ionic/angular/standalone` submodule. This includes imports such as components, directives, providers, and types. Importing from `@ionic/angular` may pull in lazy loaded Ionic code which can interfere with treeshaking. +::: + +**Bootstrapping and Configuration** + +Ionic Angular needs to be configured in the `providers` array of `app.module.ts` using the `provideIonicAngular` function. Developers can pass any [IonicConfig](../developing/config#ionicconfig) values as an object in this function. Note that `provideIonicAngular` needs to be called even if no custom config is passed. + +```typescript title="app.module.ts" +import { NgModule } from '@angular/core'; +import { BrowserModule } from '@angular/platform-browser'; +import { RouteReuseStrategy } from '@angular/router'; + +import { IonicRouteStrategy, provideIonicAngular } from '@ionic/angular/standalone'; + +import { AppComponent } from './app.component'; +import { AppRoutingModule } from './app-routing.module'; + +@NgModule({ + declarations: [AppComponent], + imports: [BrowserModule, AppRoutingModule], + providers: [provideIonicAngular(), { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }], + bootstrap: [AppComponent], +}) +export class AppModule {} +``` + +**Components** + +In the example below, we are importing `IonContent` and `IonButton` from `@ionic/angular/standalone` and passing them to `imports` array in the Angular component's NgModule for use in the component template. We would get a compiler error if these components were not imported and provided to the `imports` array. + +```typescript title="home.module.ts" +import { NgModule } from '@angular/core'; +import { IonButton, IonContent } from '@ionic/angular/standalone'; +import { HomePage } from './home.page'; + +import { HomePageRoutingModule } from './home-routing.module'; + +@NgModule({ + imports: [IonButton, IonContent, HomePageRoutingModule], + declarations: [HomePage], +}) +export class HomePageModule {} +``` + +**Icons** + +The icon SVG data needs to be defined in the Angular component so it can be loaded correctly. Developers can use the `addIcons` function from `ionicons` to map the SVG data to a string name. Developers can then reference the icon by its string name using the `name` property on `IonIcon`. The `IonIcon` component should be added in `app.module.ts` just like the other Ionic components. + +We recommend calling `addIcons` in the Angular component `constructor` so the data is only added if the Angular component is being used. + +For developers using Ionicons 7.2 or newer, passing only the SVG data will cause the string name to be automatically generated. + +```typescript title="home.page.ts" +import { Component } from '@angular/core'; +import { addIcons } from 'ionicons'; +import { logoIonic } from 'ionicons/icons'; + +@Component({ + selector: 'app-home', + templateUrl: 'home.page.html', + styleUrls: ['home.page.scss'], +}) +export class HomePage { + constructor() { + /** + * On Ionicons 7.2+ this icon + * gets mapped to a "logo-ionic" key. + * Alternatively, developers can do: + * addIcons({ 'logo-ionic': logoIonic }); + */ + addIcons({ logoIonic }); + } +} +``` + +Icons can also be registered in entry points such as `app.component.ts` to avoid the need to call `addIcons` multiple times. Developers should be aware that the initial application chunk may increase because the registered icons will need to be loaded at application start. However, if your application uses a small number of icons the impact of this may be minimal. + +```typescript title="app.component.ts" +import { Component } from '@angular/core'; +import { addIcons } from 'ionicons'; +import { logoIonic } from 'ionicons/icons'; + +@Component({ + selector: 'app-root', + templateUrl: 'app.component.html', + styleUrls: ['app.component.scss'], +}) +export class AppComponent { + 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 }); + } +} +``` + +Icons registered in an application entry point can then be referenced by name anywhere in the application. + +```html title="home.page.html" + + +``` + +**Routing** + +Developers who wish to use `routerLink`, `routerAction`, or `routerDirection` on Ionic components should import the `IonRouterLink` directive. Developers who wish to use these routing features on anchor (``) elements should import `IonRouterLinkWithHref` instead. + +```typescript title="home.module.ts" +import { NgModule } from '@angular/core'; +import { RouterLink } from '@angular/router'; +import { IonButton, IonRouterLink } from '@ionic/angular/standalone'; +import { HomePage } from './home.page'; + +import { HomePageRoutingModule } from './home-routing.module'; + +@NgModule({ + imports: [ + IonButton, + RouterLink, // required to get base routerLink behavior for @angular/router + IonRouterLink, // use IonRouterLinkWithHref if you are using an element instead + HomePageRoutingModule, + ], + declarations: [HomePage], +}) +export class HomePageModule {} +``` + +```html title="home.page.html" +Go to Foo Page +``` + +**Testing** + +Ionic Angular's standalone components use ES Modules. As a result, developers using Jest should ensure that ES Modules are transpiled to a format that Jest can use. Developers using Jest should add the following to their Jest config: + + + + +```json + +"transformIgnorePatterns": ["/node_modules/(?!(@ionic/angular|@ionic/core|ionicons|@stencil/core|@angular/*)/)"] +``` + + + + +```json + +"transformIgnorePatterns": ["/node_modules/.pnpm/(?!(@ionic/angular|@ionic/core|ionicons|@stencil/core|@angular/*)@)"] +``` + + + + +## Modules + +### Overview + +Developers can also use the Modules approach by importing `IonicModule` and calling `IonicModule.forRoot()` in the `imports` array in `app.module.ts`. This registers a version of Ionic where Ionic components will be lazily loaded at runtime. + +**Benefits** + +1. Since components are lazily loaded as needed, developers do not need to spend time manually importing and registering each Ionic component. + +**Drawbacks** + +1. Lazily loading Ionic components means that the compiler does not know which components are needed at build time. This means your final application bundle may be much larger than it needs to be. +2. Developers are unable to use newer Angular features such as [ESBuild](https://angular.io/guide/esbuild). + +### Usage + +In the example below, we are using `IonicModule` to create a lazily loaded version of Ionic. We can then reference any Ionic component without needing to explicitly import it. + +```typescript +import { NgModule } from '@angular/core'; +import { BrowserModule } from '@angular/platform-browser'; + +import { IonicModule } from '@ionic/angular'; + +import { AppComponent } from './app.component'; + +@NgModule({ + declarations: [AppComponent], + imports: [BrowserModule, IonicModule.forRoot()], + bootstrap: [AppComponent], +}) +export class AppModule {} +``` + +## Migrating from Modules to Standalone + +:::tip +Try our automated utility for migrating to standalone! + +See https://github.com/ionic-team/ionic-angular-standalone-codemods for instructions on how to get started. All issues related to the migration utility should be filed on the linked repo. +::: + +The Standalone option is newer than the Modules option, so developers may wish to switch during the development of their application. This guide details the steps needed to migrate. + +Migrating to Ionic standalone components must be done all at the same time and cannot be done gradually. The Modules and Standalone approaches use two different build systems of Ionic that cannot be used at the same time. + +Developers are encouraged to try the [automated migration utility](https://github.com/ionic-team/ionic-angular-standalone-codemods), though they can also follow the steps below if they would like to manually migrate their applications. + +### Standalone-based Applications + +Follow these steps if your Angular application is already using the standalone architecture, and you want to use Ionic UI components as standalone components too. + +1. Run `npm install @ionic/angular@latest` to ensure you are running the latest version of Ionic. Ionic UI Standalone Components is supported in Ionic v7.5 or newer. + +2. Run `npm install ionicons@latest` to ensure you are running the latest version of Ionicons. Ionicons v7.2 brings usability improvements that reduce the code boilerplate needed to use icons with standalone components. + +3. Remove the `IonicModule` call in `main.ts` in favor of `provideIonicAngular` imported from `@ionic/angular/standalone`. Any config passed to `IonicModule.forRoot` can be passed as an object to this new function. + +```diff title="main.ts" +import { enableProdMode, importProvidersFrom } from '@angular/core'; +import { bootstrapApplication } from '@angular/platform-browser'; +import { RouteReuseStrategy, provideRouter } from '@angular/router'; +- import { IonicModule, IonicRouteStrategy } from '@ionic/angular'; ++ import { provideIonicAngular, IonicRouteStrategy } from '@ionic/angular/standalone'; + +import { routes } from './app/app.routes'; +import { AppComponent } from './app/app.component'; + +bootstrapApplication(AppComponent, { + providers: [ + { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }, + /** + * The custom config serves as an example + * of how to pass a config to provideIonicAngular. + * You do not need to set "mode: 'ios'" to + * use Ionic standalone components. + */ +- importProvidersFrom(IonicModule.forRoot({ mode: 'ios' })), ++ provideIonicAngular({ mode: 'ios' }), + provideRouter(routes), + ], +}); +``` + +4. Remove any references to `IonicModule` found elsewhere in your application. + +5. Update any existing imports from `@ionic/angular` to import from `@ionic/angular/standalone` instead. + +```diff +- import { Platform } from '@ionic/angular'; ++ import { Platform } from '@ionic/angular/standalone'; +``` + +6. Add imports for each Ionic component in the Angular component where they are used. Be sure to pass the imports to the `imports` array on your Angular component. + +```diff title="app.component.ts" +import { Component } from '@angular/core'; ++ import { IonApp, IonRouterOutlet } from '@ionic/angular/standalone'; + +@Component({ + selector: 'app-root', + templateUrl: 'app.component.html', + styleUrls: ['app.component.scss'], + standalone: true, ++ imports: [IonApp, IonRouterOutlet], +}) +export class AppComponent { + constructor() {} +} +``` + +7. If you are using Ionicons, define the icon SVG data used in each Angular component using `addIcons`. This allows you to continue referencing icons by string name in your component template. Note that you will need to do this for any additional icons added. + +```diff title="test.component.ts" +import { Component } from '@angular/core'; ++ import { IonIcon } from '@ionic/angular/standalone'; ++ import { addIcons } from 'ionicons'; ++ import { alarm, logoIonic } from 'ionicons/icons'; + +@Component({ + selector: 'app-root', + templateUrl: 'app.component.html', + styleUrls: ['app.component.scss'], + standalone: true, ++ imports: [IonIcon], +}) +export class TestComponent { + constructor() { ++ addIcons({ alarm, logoIonic }); + } +} +``` + +8. Remove the following code from your `angular.json` file if present. Note that it may appear multiple times. + +```diff title="angular.json" +- { +- "glob": "**/*.svg", +- "input": "node_modules/ionicons/dist/ionicons/svg", +- "output": "./svg" +- } +``` + +9. If you are using `routerLink`, `routerDirection`, or `routerAction` be sure to import the `IonRouterLink` directive for Ionic components or `IonRouterLinkWithHref` directive for `` elements. + +```diff title="test.component.ts" +import { Component } from '@angular/core'; +- import { IonButton } from '@ionic/angular/standalone'; ++ import { IonButton, IonRouterLink } from '@ionic/angular/standalone'; + +@Component({ + selector: 'app-root', + templateUrl: 'app.component.html', + styleUrls: ['app.component.scss'], + standalone: true, + imports: [ + IonButton, ++ IonRouterLink + ], +}) +export class TestComponent {} +``` + +10. If you are using VSCode it is recommended to ignore the `@ionic/angular/common` and `@ionic/angular` module specifiers for import recommendations. + +```json title=".vscode/settings.json" +{ + "typescript.preferences.autoImportFileExcludePatterns": ["@ionic/angular/common", "@ionic/angular"] +} +``` + +### NgModule-based Applications + +Follow these steps if your Angular application is still using the NgModule architecture, but you want to adopt Ionic UI components as standalone components now. + +1. Run `npm install @ionic/angular@latest` to ensure you are running the latest version of Ionic. Ionic UI Standalone Components is supported in Ionic v7.5 or newer. + +2. Run `npm install ionicons@latest` to ensure you are running the latest version of Ionicons. Ionicons v7.2 brings usability improvements that reduce the code boilerplate needed to use icons with standalone components. + +3. Remove the `IonicModule` call in `app.module.ts` in favor of `provideIonicAngular` imported from `@ionic/angular/standalone`. Any config passed to `IonicModule.forRoot` can be passed as an object to this new function. + +```diff title="app.module.ts" +import { enableProdMode, importProvidersFrom } from '@angular/core'; +import { bootstrapApplication } from '@angular/platform-browser'; +import { RouteReuseStrategy, provideRouter } from '@angular/router'; +- import { IonicModule, IonicRouteStrategy } from '@ionic/angular'; ++ import { provideIonicAngular, IonicRouteStrategy } from '@ionic/angular/standalone'; + +import { routes } from './app/app.routes'; +import { AppComponent } from './app/app.component'; + +@NgModule({ + declarations: [AppComponent], +- imports: [BrowserModule, IonicModule.forRoot({ mode: 'ios' }), AppRoutingModule], ++ imports: [BrowserModule, AppRoutingModule], + providers: [ + { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }, + /** + * The custom config serves as an example + * of how to pass a config to provideIonicAngular. + * You do not need to set "mode: 'ios'" to + * use Ionic standalone components. + */ ++ provideIonicAngular({ mode: 'ios' }), + ], + bootstrap: [AppComponent], +}) +export class AppModule {} +``` + +4. Remove any references to `IonicModule` found elsewhere in your application. + +5. Update any existing imports from `@ionic/angular` to import from `@ionic/angular/standalone` instead. + +```diff +- import { Platform } from '@ionic/angular'; ++ import { Platform } from '@ionic/angular/standalone'; +``` + +6. Add imports for each Ionic component in the NgModule for the Angular component where they are used. Be sure to pass the components to the `imports` array on the module. + +```diff title="app.module.ts" +import { enableProdMode, importProvidersFrom } from '@angular/core'; +import { bootstrapApplication } from '@angular/platform-browser'; +import { RouteReuseStrategy, provideRouter } from '@angular/router'; +- import { provideIonicAngular, IonicRouteStrategy } from '@ionic/angular/standalone'; ++ import { provideIonicAngular, IonicRouteStrategy, IonApp, IonRouterOutlet } from '@ionic/angular/standalone'; + +import { routes } from './app/app.routes'; +import { AppComponent } from './app/app.component'; + +@NgModule({ + declarations: [AppComponent], +- imports: [BrowserModule, AppRoutingModule], ++ imports: [BrowserModule, AppRoutingModule, IonApp, IonRouterOutlet], + providers: [ + { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }, + provideIonicAngular({ mode: 'ios' }) + ], + bootstrap: [AppComponent], +}) +export class AppModule {} +``` + +For example, all modules that are using Ionic components need to have the Ionic components imported in their component module. + +```diff title="home.module.ts" +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { HomePage } from './home.page'; + +import { HomePageRoutingModule } from './home-routing.module'; + ++ import { IonContent, IonHeader, IonTitle, IonToolbar } from '@ionic/angular/standalone'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + HomePageRoutingModule, ++ IonContent, ++ IonHeader, ++ IonTitle, ++ IonToolbar + ], + declarations: [HomePage] +}) +export class HomePageModule {} +``` + +7. If you are using Ionicons, define the icon SVG data used in each Angular component using `addIcons`. This allows you to continue referencing icons by string name in your component template. Note that you will need to do this for any additional icons added. The `IonIcon` component should still be provided in the NgModule. + +```diff title="test.component.ts" +import { Component } from '@angular/core'; ++ import { addIcons } from 'ionicons'; ++ import { alarm, logoIonic } from 'ionicons/icons'; + +@Component({ + selector: 'app-root', + templateUrl: 'app.component.html', + styleUrls: ['app.component.scss'], +}) +export class TestComponent { + constructor() { ++ addIcons({ alarm, logoIonic }); + } +} +``` + +```diff title="test.module.ts" +import { NgModule } from '@angular/core'; +import { TestComponent } from './test.component'; ++ import { IonIcon } from '@ionic/angular/standalone'; + +@NgModule({ + imports: [ ++ IonIcon, + ], + declarations: [TestComponent] +}) +export class TestComponentModule {} +``` + +8. Remove the following code from your `angular.json` file if present. Note that it may appear multiple times. + +```diff title="angular.json" +- { +- "glob": "**/*.svg", +- "input": "node_modules/ionicons/dist/ionicons/svg", +- "output": "./svg" +- } +``` + +9. If you are using `routerLink`, `routerDirection`, or `routerAction` be sure to import the `IonRouterLink` directive for Ionic components or `IonRouterLinkWithHref` directive for `` elements. + +```diff title="test.module.ts" +import { NgModule } from '@angular/core'; +import { TestComponent } from './test.component'; +- import { IonButton } from '@ionic/angular/standalone'; ++ import { IonButton, IonRouterLink } from '@ionic/angular/standalone'; + +@NgModule({ + imports: [ + IonButton, ++ IonRouterLink, + ], + declarations: [TestComponent] +}) +``` + +10. If you are using VSCode it is recommended to ignore the `@ionic/angular/common` and `@ionic/angular` module specifiers for import recommendations. + +```json title=".vscode/settings.json" +{ + "typescript.preferences.autoImportFileExcludePatterns": ["@ionic/angular/common", "@ionic/angular"] +} +``` diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/angular/lifecycle.md b/i18n/ja/docusaurus-plugin-content-docs/current/angular/lifecycle.md new file mode 100644 index 00000000000..85a76955693 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/angular/lifecycle.md @@ -0,0 +1,103 @@ +--- +title: Ionic PageのLife Cycle +sidebar_label: ライフサイクル +--- + + + AngularのページコンポーネントのLife Cycle - すべてのイベントのドキュメンテーション + + + +このガイドでは、Ionic と Angular を使用して構築されたアプリでの Page Life Cycle のしくみについて説明します。(追記:Life Cycle とは、表示をはじめてから破棄するまでを指します。この間の特定のタイミングに設定されているイベントを Life Cycle Events といいます) + +![Flowchart illustrating the Ionic page life cycle events and their sequence.](/img/guides/lifecycle/ioniclifecycle.png 'Ionic Lifecycle Diagram') + +## Angular の Life Cycle Events + +Ionic は Angular が提供する Life Cycle Events を取り入れています。最もよく使う 2 つの Angular イベントは次のとおりです。 + +| Event Name | Description | +| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ngOnInit` | コンポーネントの初期化中に発生します。このイベントを使用して、ローカルメンバーを初期化し、一度だけ実行する必要がある Service を呼び出すことができます。 | +| `ngOnDestroy` | Angular がビューを破棄する直前に発生します。 observables の unsubscribe などのクリーンアップに役立ちます。 | + +Angular の Component Life Cycle イベントの詳細については、それらの [component lifecycle docs](https://angular.jp/guide/lifecycle-hooks) をご覧ください。 + +:::note +`ion-nav` または `ion-router-outlet` を使用するコンポーネントは、 `OnPush` 変更検出方式を使用しないでください。そうすることで、 `ngOnInit` などのライフサイクル・フックが起動するのを防ぐことができます。また、非同期状態の変更は正しくレンダリングされない場合があります。 +::: + +## Ionic の Page Events + +Angular の Life Cycle Events に加えて、Ionic Angular には、使用可能ないくつかの追加イベントがあります: + +| Event Name | Description | +| ------------------ | ------------------------------------------------------------------------ | +| `ionViewWillEnter` | コンポーネントが表示されるアニメーションがはじまる時に発火します。 | +| `ionViewDidEnter` | コンポーネントが表示されるアニメーションが **終了した時に** 発火します。 | +| `ionViewWillLeave` | コンポーネントを離脱するアニメーションが **はじまる時に** 発火します。 | +| `ionViewDidLeave` | コンポーネントを離脱するアニメーションが **終了した時に** 発火します。 | + +これらのライフサイクルは、ルーターによって直接マッピングされたコンポーネントに対してのみ呼び出されます。つまり、`/pageOne`が`PageOneComponent`にマッピングされた場合、Ionic ライフサイクルは`PageOneComponent`で呼び出されますが、`PageOneComponent`がレンダリングする子コンポーネントでは呼び出されません。 + +`ionViewWillEnter`と`ionViewDidEnter`の違いは、いつ発火するかです。前者は `ngOnInit` の直後でページ遷移が始まる前に、後者は遷移が終わった後に直接呼び出されます。 + +`ionViewWillLeave` と `ionViewDidLeave` についてですが、 `ionViewWillLeave` は現在のページから離脱する処理がはじまる前に呼び出されますが、 `ionViewDidLeave` は新しいページに遷移する処理が成功してから呼び出されます (新しいページの `ionViewDidEnter` が発火した後になります)。 + +![Animated GIF showing Ionic page life cycle events in a console log as a page transition occurs.](/img/guides/lifecycle/ioniclifecycle.gif 'Ionic Lifecycle Animation') + +## Ionic が Page の Life をどのように処理するか + +Ionic は `` という router outlet を持っています。この outlet が Angular の `` を継承し、さらに拡張して、モバイルデバイスのためのより良い体験を可能にしました。 + +`` にアプリがラップされることで、Ionic はナビゲーションの扱いを少し変更します。新しいページに遷移すると、Ionic は古いページを既存の DOM に残しますが、ビューから隠して新しいページに移行します。これを行う理由は 2 つあります: + +1. 古いページの状態を維持することができます(画面上のデータ、スクロール位置など)。 +2. ページがすでに存在しており作成し直す必要がないため、ページへの移行がスムーズになります。 + +たとえば、UI の "戻る" ボタンまたはブラウザの "戻る" ボタンを押すことによってページが「Pop」されると、ページは DOM から削除されるだけとなります。 + +この特別な処理のために、`ngOnInit` と `ngOnDestroy` のメソッドは通常そうあるべきだと思うときには発火しないかもしれません。 + +`ngOnInit` はページが新しく作成されるたびに発火するだけなので、ページに戻ったときには発火されません。たとえば、タブのインタフェースで各ページ間を移動しても、各ページの `ngOnInit` メソッドは最初の 1 回だけ呼び出され、その後の表示では呼び出されません。`ngOnDestroy` はページが 「Pop」したときにのみ発生します。 + +## ルートガード + +Ionic 3 では、いつページにアクセスすることができるか( `ionViewCanEnter` )と離脱できるか(`ionViewCanLeave`)を制御するのに役立つ、いくつかの追加のライフサイクルメソッドがありました。これらは、許可されていないユーザーからページを保護したり、ユーザーがページを離れたくないときにユーザーをページ上に保持したりするために使用できます(フォーム入力中など)。 + +これらの方法は、Angular のルートガードを使用するために Ionic 4 で削除されました。 + +ルートガードは、ルートに対して特定のアクションを実行できるかどうかを判断するのに役立ちます。それらは特定のインターフェースを実装するクラスです。`CanActive` と `CanDeactivate` のインターフェイスは、`ionViewCanEnter` と `ionViewCanLeave` と同様のロジックでイベントを削除することができます。 + +```tsx +@Injectable() +export class AuthGuard implements CanActivate { + constructor(private authService: AuthService) {} + + canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { + return this.authService.isAuthenticated(); + } +} +``` + +このガードを使用するには、それをルート定義の適切なパラメータに追加します: + +```tsx +{ path: 'settings', canActivate: [AuthGuard], loadChildren: '...', } +``` + +ルートガードの使い方の詳細については、Angular の [router documentation](https://angular.jp/guide/router) を参照してください。 + +## Life Cycle メソッドのガイダンス + +以下は、life cycle events ごとのユースケースに関するヒントです。 + +- `ngOnInit` - コンポーネントを初期化し、Service からアクセスごとに更新する必要がないデータをロードします。 +- `ionViewWillEnter` - `ionViewWillEnter` は View がナビゲートされる度に呼び出されるので(初期化されているかどうかにかかわらず)、Service からデータをロードするのに適したメソッドです。ただし、アニメーション中にデータがを取得すると、大量の DOM 操作が開始される可能性があります。これにより、ぎこちないアニメーションが発生する可能性があります。 +- `ionViewDidEnter` - `ionViewWillEnter` を使ってデータを取得していてパフォーマンスに問題がある時は、`ionViewDidEnter` を代わりに使うことができます。ただし、Page がユーザーに表示されるまではこのイベントは発火しません。そのため、ロードインジケータまたはスケルトン画面を使用することをお勧めします。これにより、遷移が完了した後にコンテンツが不自然に点滅することはありません。 +- `ionViewWillLeave` - observables の unsubscribing のように、クリーンアップで利用します。 `ngOnDestroy` はあなたが現在のページから遷移する時には発火しない可能性がありますので、画面が表示されていない時にアクティブにしたくない場合はここでクリーンアップの処理を行います。 +- `ionViewDidLeave` - このイベントが発生すると、新しいページへと完全に遷移したことがわかります。そのため、ビューが表示されているときに通常は行わない可能性があるロジックはすべてここに移動できます。 +- `ngOnDestroy` - `ionViewWillLeave` でクリーンアップしたくないページのクリーンアップロジックはここにおいてください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/angular/navigation.md b/i18n/ja/docusaurus-plugin-content-docs/current/angular/navigation.md new file mode 100644 index 00000000000..96576a1b061 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/angular/navigation.md @@ -0,0 +1,475 @@ +--- +title: Angular ナビゲーション +sidebar_label: ナビゲーション/ルーティング +--- + +import useBaseUrl from '@docusaurus/useBaseUrl'; + + + Angular Navigation: How Routing & Redirects Work in Angular Apps + + + +このガイドでは、Ionic と Angular を使用して構築されたアプリでのルーティングのしくみについて説明します。 + +Angular Router は、Angular アプリケーションで最も重要なライブラリの 1 つです。これがなければ、アプリはシングルビュー/シングルコンテキストアプリになるか、ブラウザのリロード時にナビゲーションのステートを維持できなくなります。Angular Router を使用すると、リンク可能でリッチなアニメーションを持つリッチなアプリを作成できます(もちろん、Ionic と組み合わせると!)。Angular Router の基本と、それを Ionic アプリケーション用に設定する方法を見てみましょう。 + +## シンプルな Route + +ほとんどのアプリでは、some sort of route を持つことがしばしば必要になります。最も基本的な設定はこのようになります: + +```tsx + +import { RouterModule } from '@angular/router'; + +@NgModule({ + imports: [ + ... + RouterModule.forRoot([ + { path: '', component: LoginComponent }, + { path: 'detail', component: DetailComponent }, + ]) + ], +}) +``` + +URL path と Component の組み合わせを確認する最も簡単な方法は、ここをみるすることです。アプリがロードされると、ルーターはユーザーがロードしようとしている URL を読むことで動作を開始します。私たちのサンプルでは、Route は `''` を参照します。これは本質的に私たちのインデックスルートとなります。そうすると、一致するエントリを探し出して、 `LoginComponent` がロードされます。かなり簡単です。この処理は `path` が一致するまで、設定されているすべての Route のエントリを参照します。しかし、初期ロードと異なるパスをロードしたい場合はどうなりますか? + +## リダイレクトの処理 + +そういう場合には、ルーターリダイレクトを使用できます。リダイレクトは通常のルートオブジェクトと同じように書くことができますが、いくつかの異なるキーが含まれます。 + +```tsx +[ + { path: '', redirectTo: 'login', pathMatch: 'full' }, + { path: 'login', component: LoginComponent }, + { path: 'detail', component: DetailComponent }, +]; +``` + +このリダイレクトでは、アプリのインデックス(`''`)を探しはじめると、`login` にリダイレクトします。最後の `pathMatch` キーは、ルータにパスの検索方法を指示するために必要です。 + +`full` を使用すると、たとえ最後まで `/route1/route2/route3` と一致する path がなかったとしても、フルパスを比較する必要があることをルータに伝えることができます。つまり、次のようになります。 + +```tsx +{ path: '/route1/route2/route3', redirectTo: 'login', pathMatch: 'full' }, +{ path: 'login', component: LoginComponent }, +``` + +このように書くと `/route1/route2/route3` をロードすると、リダイレクトを行います。けれど仮に `/route1/route2/route4` であれば、すべての path が一致しないのでリダイレクトを行いません。 + +あるいは、こういう書き方もできます: + +```tsx +{ path: '/route1/route2', redirectTo: 'login', pathMatch: 'prefix' }, +{ path: 'login', component: LoginComponent }, +``` + +`/route1/route2/route3` と `/route1/route2/route4` の両方を読み込んだとおき, どちらの場合もリダイレクトします。 `pathMatch: 'prefix'` によって、一部でも一致したら該当するからです。 + +## routes へのナビゲーション + +routes について説明してきましたが、それではどのようにしてそのルートにナビゲーションしたらいいのでしょうか。これには、 `routerLink` directive を利用します。先ほどの簡単な router 設定でこれを確認してみましょう: + +```ts +RouterModule.forRoot([ + { path: '', component: LoginComponent }, + { path: 'detail', component: DetailComponent }, +]); +``` + +わたしたちは、次の HTML を利用することで、`LoginComponent` から `detail` route に遷移することができます。 + +```html + + + Login + + + + + Go to detail + +``` + +ここで重要なのは`ion-button` と `routerLink` directive です。RouterLink は典型的な `href` と同様の考えで動作しますが、URL を文字列として構築する代わりに配列として構築することができ、それによってより複雑なパスを書くこともできます。 + +Router API を使用して、プログラムで遷移することもできます。 + +```tsx +import { Component } from '@angular/core'; +import { Router } from '@angular/router'; + +@Component({ + ... +}) +export class LoginComponent { + + constructor(private router: Router){} + + navigate(){ + this.router.navigate(['/detail']) + } +} +``` + +どちらのオプションも同様のナビゲーションメカニズムを提供し、異なるユースケースで利用することができます。 + +### LocationStrategy.historyGo を使ったナビゲーション + +Angular Router には [LocationStrategy.historyGo](https://angular.io/api/common/LocationStrategy#historyGo) メソッドがあり、アプリケーションの履歴を進んだり戻ったりすることができます。例を見てみましょう。 + +次のようなアプリケーションの履歴があるとします: + +`/ページA` --> `/ページB` --> `/ページC`。 + +もし `/pageC` で `LocationStrategy.historyGo(-2)` を呼び出すと、 `/pageA` に戻る。その後、 `LocationStrategy.historyGo(2)` を呼び出すと、 `/pageC` に戻る。 + +`LocationStrategy.historyGo()` の主な特徴は、アプリケーションの履歴が線形であることを想定していることです。つまり、`LocationStrategy.historyGo()` は非線形のルーティングを使用するアプリケーションでは使用すべきではありません。詳しくは [リニアルーティング対非リニアルーティング](#linear-routing-versus-non-linear-routing) を参照してください。 + +## Lazy loading routes + +現在のルート設定では、すべての Component が、ルートとなる `app.module` と同じ `chunk` に含まれているので理想的ではありません。代わりに、ルータにはコンポーネントを独自の `chunk` に分離できるように設定されています。 + +```tsx + +import { RouterModule } from '@angular/router'; + +@NgModule({ + imports: [ + ... + RouterModule.forRoot([ + { path: '', redirectTo: 'login', pathMatch: 'full' }, + { path: 'login', loadChildren: () => import('./login/login.module').then(m => m.LoginModule) }, + { path: 'detail', loadChildren: () => import('./detail/detail.module').then(m => m.DetailModule) } + ]) + ], +}) +``` + +`loadChildren` プロパティはコンポーネントの代わりにネイティブインポートを直接仕様してモジュールを参照する方法です。ただしこれを行うには、コンポーネントごとにモジュールを作成する必要があります。 + +```tsx +... +import { RouterModule } from '@angular/router'; +import { LoginComponent } from './login.component'; + +@NgModule({ + imports: [ + ... + RouterModule.forChild([ + { path: '', component: LoginComponent }, + ]) + ], +}) +``` + +:::note +一部のコードを省略して紹介しています +::: + +ここでは、`RouterModule` のインポートとともに、典型的な `Angular Module` の設定がありますが、`RouterModule` では `forChild` によってコンポーネントを使用することを宣言しています。この設定では、ビルドを実行するときに、`App Component`(Root)、 `login Component` 、および `detail Component` において別々のチャンクを作成します。 + +## Standalone Components + +Standalone components allow developers to lazy load a component on a route without having to declare the component to an Angular module. + +Developers can use the existing syntax for standalone component routing from Angular: + +```ts +@NgModule({ + imports: [ + RouterModule.forRoot([ + { + path: 'standalone-route', + loadComponent: () => import('./path/to/my-component.component').then((c) => c.MyComponent), + }, + ]), + ], +}) +export class AppRoutingModule {} +``` + +:::tip +If you are using `routerLink`, `routerDirection`, or `routerAction` be sure to also import the `IonRouterLink` directive for Ionic components or the `IonRouterLinkWithHref` directive for `` elements. An example of this is available in the [Ionic Angular Build Options docs](./build-options.md#migrating-from-modules-to-standalone). +::: + +To get started with standalone components [visit Angular's official docs](https://angular.io/guide/standalone-components). + +## Live Example + +If you would prefer to get hands on with the concepts and code described above, please checkout our [live example](https://stackblitz.com/edit/ionic-angular-routing?file=src/app/app-routing.module.ts) of the topics above on StackBlitz. + +## Linear Routing versus Non-Linear Routing + +### Linear Routing + +If you have built a web app that uses routing, you likely have used linear routing before. Linear routing means that you can move forward or backward through the application history by pushing and popping pages. + +The following is an example of linear routing in a mobile app: + + + +The application history in this example has the following path: + +`Accessibility` --> `VoiceOver` --> `Speech` + +When we press the back button, we follow that same routing path except in reverse. Linear routing is helpful in that it allows for simple and predictable routing behaviors. It also means we can use router Angular Router APIs such as [LocationStrategy.historyGo()](#navigating-using-locationstrategy). + +The downside of linear routing is that it does not allow for complex user experiences such as tab views. This is where non-linear routing comes into play. + +### Non-Linear Routing + +Non-linear routing is a concept that may be new to many web developers learning to build mobile apps with Ionic. + +Non-linear routing means that the view that the user should go back to is not necessarily the previous view that was displayed on the screen. + +The following is an example of non-linear routing: + + + +In the example above, we start on the `Originals` tab. Tapping a card brings us to the `Ted Lasso` view within the `Originals` tab. + +From here, we switch to the `Search` tab. Then, we tap the `Originals` tab again and are brought back to the `Ted Lasso` view. At this point, we have started using non-linear routing. + +Why is this non-linear routing? The previous view we were on was the `Search` view. However, pressing the back button on the `Ted Lasso` view should bring us back to the root `Originals` view. This happens because each tab in a mobile app is treated as its own stack. The [Working with Tabs](#working-with-tabs) sections goes over this in more detail. + +If tapping the back button simply called `LocationStrategy.historyGo(-1)` from the `Ted Lasso` view, we would be brought back to the `Search` view which is not correct. + +Non-linear routing allows for sophisticated user flows that linear routing cannot handle. However, certain linear routing APIs such as `LocationStrategy.historyGo()` cannot be used in this non-linear environment. This means that `LocationStrategy.historyGo()` should not be used when using tabs or nested outlets. + +### Which one should I choose? + +We recommend keeping your application as simple as possible until you need to add non-linear routing. Non-linear routing is very powerful, but it also adds a considerable amount of complexity to mobile applications. + +The two most common uses of non-linear routing is with tabs and nested `ion-router-outlet`s. We recommend only using non-linear routing if your application meets the tabs or nested router outlet use cases. + +For more on tabs, please see [Working with Tabs](#working-with-tabs). + +For more on nested router outlets, please see [Nested Routes](#nested-routes). + +## Shared URLs versus Nested Routes + +A common point of confusion when setting up routing is deciding between shared URLs or nested routes. This part of the guide will explain both and help you decide which one to use. + +### Shared URLs + +Shared URLs is a route configuration where routes have pieces of the URL in common. The following is an example of a shared URL configuration: + +```tsx +const routes: Routes = [ + { + path: 'dashboard', + component: DashboardMainPage, + }, + { + path: 'dashboard/stats', + component: DashboardStatsPage, + }, +]; +``` + +The above routes are considered "shared" because they reuse the `dashboard` piece of the URL. + +### Nested Routes + +Nested Routes is a route configuration where routes are listed as children of other routes. The following is an example of a nested route configuration: + +```tsx +const routes: Routes = [ + { + path: 'dashboard', + component: DashboardRouterOutlet, + children: [ + { + path: '', + component: DashboardMainPage, + }, + { + path: 'stats', + component: DashboardStatsPage, + }, + ], + }, +]; +``` + +The above routes are nested because they are in the `children` array of the parent route. Notice that the parent route renders the `DashboardRouterOutlet` component. When you nest routes, you need to render another instance of `ion-router-outlet`. + +### Which one should I choose? + +Shared URLs are great when you want to transition from page A to page B while preserving the relationship between the two pages in the URL. In our previous example, a button on the `/dashboard` page could transition to the `/dashboard/stats` page. The relationship between the two pages is preserved because of a) the page transition and b) the url. + +Nested routes should be used when you want to render content in outlet A while also rendering sub-content inside of a nested outlet B. The most common use case you will run into is tabs. When you load up a tabs Ionic starter application, you will see `ion-tab-bar` and `ion-tabs` components rendered in the first `ion-router-outlet`. The `ion-tabs` component renders another `ion-router-outlet` which is responsible for rendering the contents of each tab. + +There are very few use cases in which nested routes make sense in mobile applications. When in doubt, use the shared URL route configuration. We strongly caution against using nested routing in contexts other than tabs as it can quickly make navigating your app confusing. + +## Working with Tabs + +タブを使用すると、Angular Router にどのコンポーネントをロードする必要があるかを知るためのメカニズムを Ionic が提供しますが、タブコンポーネントでは複雑な作業が行われます。簡単な例を見てみましょう。 + +```ts +const routes: Routes = [ + { + path: 'tabs', + component: TabsPage, + children: [ + { + path: 'tab1', + children: [ + { + path: '', + loadChildren: () => import('../tab1/tab1.module').then((m) => m.Tab1PageModule), + }, + ], + }, + { + path: '', + redirectTo: '/tabs/tab1', + pathMatch: 'full', + }, + ], + }, + { + path: '', + redirectTo: '/tabs/tab1', + pathMatch: 'full', + }, +]; +``` + +ここでは、 `tabs` パスを読み込んでいます。この例では、path を `tabs` としていますが、これは変更可能です。あなたのアプリに合った名前にすることができます。このルートオブジェクトでは、子ルートも定義することができます。この例では、トップレベルの子ルート「tab1」が「outlet」として機能し、さらに子ルートをロードすることができます。この例では、1 つの子ルートがあり、新しいコンポーネントをロードするだけです。Tabs のマークアップは、次のとおりです: + +```html + + + + + Tab One + + + +``` + +Ionic を使ってアプリを作成したことがあれば、このマークアップはおなじみのはずです。`ion-tabs` コンポーネントを作成し、`ion-tab-bar` を提供します。`ion-tab-bar` は、 `tab`と一緒に`ion-tab-button`を提供します。最新の `@ionic/angular` はもはや `` を必要とせず、開発者がタブバーを完全にカスタマイズできるようになり、すべての設定は Router の設定によって行えるようになりました。 + +### How Tabs in Ionic Work + +Each tab in Ionic is treated as an individual navigation stack. This means if you have three tabs in your application, each tab has its own navigation stack. Within each stack you can navigate forwards (push a view) and backwards (pop a view). + +This behavior is important to note as it is different than most tab implementations that are found in other web based UI libraries. Other libraries typically manage tabs as one single history stack. + +Since Ionic is focused on helping developers build mobile apps, the tabs in Ionic are designed to match native mobile tabs as closely as possible. As a result, there may be certain behaviors in Ionic's tabs that differ from tabs implementations you have seen in other UI libraries. Read on to learn more about some of these differences. + +### Child Routes within Tabs + +When adding additional routes to tabs you should write them as sibling routes with the parent tab as the path prefix. The example below defines the `/tabs/tab1/view` route as a sibling of the `/tabs/tab1` route. Since this new route has the `tab1` prefix, it will be rendered inside of the `Tabs` component, and Tab 1 will still be selected in the `ion-tab-bar`. + +```ts +const routes: Routes = [ + { + path: 'tabs', + component: TabsPage, + children: [ + { + path: 'tab1', + children: [ + { + path: '', + loadChildren: () => import('../tab1/tab1.module').then((m) => m.Tab1PageModule), + }, + ], + }, + { + path: 'tab1/view', + children: [ + { + path: '', + loadChildren: () => import('../tab1/tab1view.module').then((m) => m.Tab1ViewPageModule), + }, + ], + }, + { + path: 'tab2', + children: [ + { + path: '', + loadChildren: () => import('../tab2/tab2.module').then((m) => m.Tab2PageModule), + }, + ], + }, + { + path: 'tab3', + children: [ + { + path: '', + loadChildren: () => import('../tab3/tab3.module').then((m) => m.Tab3PageModule), + }, + ], + }, + ], + }, + { + path: '', + redirectTo: '/tabs/tab1', + pathMatch: 'full', + }, +]; +``` + +### Switching Between Tabs + +Since each tab is its own navigation stack, it is important to note that these navigation stacks should never interact. This means that there should never be a button in Tab 1 that routes a user to Tab 2. In other words, tabs should only be changed by the user tapping a tab button in the tab bar. + +A good example of this in practice is the iOS App Store and Google Play Store mobile applications. These apps both provide tabbed interfaces, but neither one ever routes the user across tabs. For example, the "Games" tab in the iOS App Store app never directs users to the "Search" tab and vice versa. + +Let's take a look at a couple common mistakes that are made with tabs. + +**A Settings Tab That Multiple Tabs Reference** + +A common practice is to create a Settings view as its own tab. This is great if developers need to present several nested settings menus. However, other tabs should never try to route to the Settings tab. As we mentioned above, the only way that the Settings tab should be activated is by a user tapping the appropriate tab button. + +If you find that your tabs need to reference the Settings tab, we recommend making the Settings view a modal by using `ion-modal`. This is a practice found in the iOS App Store app. With this approach, any tab can present the modal without breaking the mobile tabs pattern of each tab being its own stack. + +The example below shows how the iOS App Store app handles presenting an "Account" view from multiple tabs. By presenting the "Account" view in a modal, the app can work within the mobile tabs best practices to show the same view across multiple tabs. + + + +**Reusing Views Across Tabs** + +Another common practice is to present the same view in multiple tabs. Developers often try to do this by having the view contained in a single tab, with other tabs routing to that tab. As we mentioned above, this breaks the mobile tabs pattern and should be avoided. + +Instead, we recommend having routes in each tab that reference the same component. This is a practice done in popular apps like Spotify. For example, you can access an album or podcast from the "Home", "Search", and "Your Library" tabs. When accessing the album or podcast, users stay within that tab. The app does this by creating routes per tab and sharing a common component in the codebase. + +The example below shows how the Spotify app reuses the same album component to show content in multiple tabs. Notice that each screenshot shows the same album but from a different tab. + +| Home Tab | Search Tab | +| :-------------------------------------------------: | :---------------------------------------------------: | +| | | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/angular/overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/angular/overview.md new file mode 100644 index 00000000000..5d29843b7e6 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/angular/overview.md @@ -0,0 +1,46 @@ +--- +title: Ionic Angular の概要 +sidebar_label: 概要 +--- + + + Ionic Angular Overview | Angular Version Support and Tooling + + + +import DocsCard from '@components/global/DocsCard'; +import DocsCards from '@components/global/DocsCards'; + +`@ionic/angular` は core Ionic experience に、Angular 開発者向けにカスタマイズされたツールと API を組み合わせたものです。 + +## Angular バージョンサポート + +Ionic v7 は Angular v14+をサポートしています。アップグレード戦略の一環として、Angular にはアップグレードを自動化するためのツールが組み込まれており、API に変更があった際には開発者にフィードバックを提供します。これにより、アップデートの手間を減らし、エコシステムを最新の状態に保つことができます。 + +## Angular Tooling + +Ionic4 以降では、アプリケーション構築とルーティングのために公式の Angular スタックが使用されているため、あなたのアプリケーションは Angular エコシステムと同じように利用できます。更に独自の機能が必要な場合には、Ionic は`@ionic/angular-toolkit`を提供します。、これは [official Angular CLI](https://angular.jp/cli) を構築して統合し、`@ionic/angular` アプリ固有の機能を提供します。 + +## Resources + + + +

    Learn the fundamentals you need to know to start building amazing apps with Ionic Framework.

    +
    + + +

    Learn the basics of navigation inside your app with Ionic and Angular Router

    +
    + + +

    Learn about using Ionic lifecycle events in class components and with hooks

    +
    + + +

    Learn about using Modules or Standalone Components in Ionic.

    +
    + +
    diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/angular/performance.md b/i18n/ja/docusaurus-plugin-content-docs/current/angular/performance.md new file mode 100644 index 00000000000..d2c78341765 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/angular/performance.md @@ -0,0 +1,73 @@ +--- +title: Angularのパフォーマンス +sidebar_label: パフォーマンス +--- + + + Angular Performance: Manage App Component Change with ngFor + + + +## \*ngFor with Ionic Components + +When using `*ngFor` with Ionic components, we recommend using Angular's `trackBy` option. This allows Angular to manage change propagation in a much more efficient way and only update the content inside of the component rather than re-create the component altogether. + +By using `trackBy` you can provide a stable identity for each loop element so Angular can track insertions and deletions within the iterator. Below is an example of how to use `trackBy`: + +**home.page.html** + +```html + + {{ item.value }} + +``` + +**home.component.ts** + +```tsx + +items = [ + { id: 0, value: 'Item 0' }, + { id: 1, value: 'Item 1' }, + ... +] + +trackItems(index: number, itemObject: any) { + return itemObject.id; +} +``` + +In this example, we have an array of objects called `items`. Each object contains a `value` and an `id`. Using `trackBy`, we pass a `trackItems` function which returns the `id` of each object. This `id` is used to provide a stable identity for each loop element. + +For more information on how Angular manages change propagation with `ngFor` see https://angular.io/api/common/NgForOf#change-propagation. + +## From the Ionic Team + +[How to Lazy Load in Ionic Angular](https://ionicframework.com/blog/how-to-lazy-load-in-ionic-angular/) + +[Improved Perceived Performance with Skeleton Screens](https://ionicframework.com/blog/improved-perceived-performance-with-skeleton-screens/) + +## From the Angular Team + +[Build performant and progressive Angular apps](https://web.dev/angular) - web.dev + +## From the Community + + + +[High Performance Animations in Ionic](https://www.joshmorony.com/high-performance-animations-in-ionic/) - Josh Morony + +[High Performance List Filtering in Ionic](https://www.joshmorony.com/high-performance-list-filtering-in-ionic-2/) - Josh Morony + +[Increasing Performance with Efficient DOM Writes in Ionic](https://www.joshmorony.com/increasing-performance-with-efficient-dom-writes-in-ionic-2/) - Josh Morony + +[Ionic Framework is Fast (But Your Code Might Not Be)](https://www.joshmorony.com/ionic-framework-is-fast-but-your-code-might-not-be/) - Josh Morony + + + +:::note +Do you have a guide you'd like to share? Click the _Edit this page_ button below. +::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/angular/platform.md b/i18n/ja/docusaurus-plugin-content-docs/current/angular/platform.md new file mode 100644 index 00000000000..5cb3546fc72 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/angular/platform.md @@ -0,0 +1,246 @@ +--- +title: Platform +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + Platform | Ionic Platform to Customize Apps to Fit Any Device + + + +プラットフォームサービスは、現在のデバイスに関する情報を取得するために使用できます。`platforms` メソッドを利用することでデバイスに関連付けられているすべてのプラットフォームを取得できます。例えば、アプリがタブレットから表示されているかどうか(モバイルデバイスまたはブラウザ上にある場合)、および正確なプラットフォーム(iOS、Android など)などです。右から左への言語の向きなどを使用すれば、デバイスの向きもわかります。この情報を使用して、あらゆるデバイスに合わせてアプリを完全にカスタマイズできます。 + +## Usage + + + + +```tsx +import { Platform } from '@ionic/angular'; + +@Component({...}) +export class MyPage { + constructor(public platform: Platform) { + + } +} +``` + + + + +```tsx +import { Platform } from '@ionic/angular/standalone'; + +@Component({...}) +export class MyPage { + constructor(public platform: Platform) { + + } +} +``` + + + + +## Methods + +### `is` + +| | | +| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Description** | Depending on the platform the user is on, `is(platformName)` will return true or false. Note that the same app can return true for more than one platform name. For example, an app running from an iPad would return true for the platform names: `mobile`, `ios`, `ipad`, and `tablet`. Additionally, if the app was running from Cordova then `cordova` would be true. | +| **Signature** | `is(platformName: Platforms) => boolean` | + +#### Parameters + +| Name | Type | Description | +| -------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | +| `platformName` | `Platforms` | Name of the platform. Available options are android, capacitor, cordova, desktop, electron, hybrid, ios, ipad, iphone, mobile, phablet, pwa, tablet | + +#### Platforms + +以下は、利用可能なすべての platform の値とそれに対応する説明をまとめた表です。 + +| Platform Name | Description | +| ------------- | ---------------------------------------- | +| android | a device running Android | +| capacitor | a device running Capacitor | +| cordova | a device running Cordova | +| desktop | a desktop device | +| electron | a desktop device running Electron | +| hybrid | a device running Capacitor or Cordova | +| ios | a device running iOS | +| ipad | an iPad device | +| iphone | an iPhone device | +| mobile | a mobile device | +| mobileweb | a web browser running in a mobile device | +| phablet | a phablet device | +| pwa | a PWA app | +| tablet | a tablet device | + +#### Customizing Platform Detection Functions + +The function used to detect a specific platform can be overridden by providing an alternative function in the global [Ionic config](../developing/config). Each function takes `window` as a parameter and returns a boolean. + +```tsx +import { IonicModule } from '@ionic/angular'; + +@NgModule({ + ... + imports: [ + BrowserModule, + IonicModule.forRoot({ + platform: { + /** The default `desktop` function returns false for devices with a touchscreen. + * This is not always wanted, so this function tests the User Agent instead. + **/ + 'desktop': (win) => { + const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(win.navigator.userAgent); + return !isMobile; + } + }, + }), + AppRoutingModule + ], + ... +}) +``` + +```ts +type PlatformConfig = { + android?: ((win: Window) => boolean) | undefined; + capacitor?: ((win: Window) => boolean) | undefined; + cordova?: ((win: Window) => boolean) | undefined; + desktop?: ((win: Window) => boolean) | undefined; + electron?: ((win: Window) => boolean) | undefined; + hybrid?: ((win: Window) => boolean) | undefined; + ios?: ((win: Window) => boolean) | undefined; + ipad?: ((win: Window) => boolean) | undefined; + iphone?: ((win: Window) => boolean) | undefined; + mobile?: ((win: Window) => boolean) | undefined; + mobileweb?: ((win: Window) => boolean) | undefined; + phablet?: ((win: Window) => boolean) | undefined; + pwa?: ((win: Window) => boolean) | undefined; + tablet?: ((win: Window) => boolean) | undefined; +}; +``` + +### `platforms` + +| | | +| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Description** | Depending on what device you are on, `platforms` can return multiple values. Each possible value is a hierarchy of platforms. For example, on an iPhone, it would return `mobile`, `ios`, and `iphone`. | +| **Signature** | `platforms() => string[]` | + +### `ready` + +| | | +| --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Description** | Returns a promise when the platform is ready and native functionality can be called. If the app is running from within a web browser, then the promise will resolve when the DOM is ready. When the app is running from an application engine such as Cordova, then the promise will resolve when Cordova triggers the `deviceready` event. The resolved value is the `readySource`, which states the platform that was used.

    For example, when Cordova is ready, the resolved ready source is `cordova`. The default ready source value will be `dom`. The `readySource` is useful if different logic should run depending on the platform the app is running from. For example, only Capacitor and Cordova can execute the status bar plugin, so the web should not run status bar plugin logic. | +| **Signature** | `ready() => Promise` | + +### `isRTL` + +| | | +| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Description** | Returns if this app is using right-to-left language direction or not. We recommend the app's `index.html` file already has the correct `dir` attribute value set, such as `` or ``. [W3C: Structural markup and right-to-left text in HTML](http://www.w3.org/International/questions/qa-html-dir) | +| **Signature** | `isRTL() => boolean` | + +### `isLandscape` + +| | | +| --------------- | ----------------------------------------------- | +| **Description** | Returns `true` if the app is in landscape mode. | +| **Signature** | `isLandscape() => boolean` | + +### `isPortrait` + +| | | +| --------------- | ---------------------------------------------- | +| **Description** | Returns `true` if the app is in portrait mode. | +| **Signature** | `isPortrait() => boolean` | + +### `width` + +| | | +| --------------- | -------------------------------------------------------------------- | +| **Description** | Gets the width of the platform's viewport using `window.innerWidth`. | +| **Signature** | `width() => number` | + +### `height` + +| | | +| --------------- | ---------------------------------------------------------------------- | +| **Description** | Gets the height of the platform's viewport using `window.innerHeight`. | +| **Signature** | `height() => number` | + +### `url` + +| | | +| --------------- | -------------------- | +| **Description** | Get the current url. | +| **Signature** | `url() => string` | + +### `testUserAgent` + +| | | +| --------------- | ---------------------------------------------------------------------- | +| **Description** | Returns `true` if the expression is included in the user agent string. | +| **Signature** | `testUserAgent(expression: string) => boolean` | + +#### Parameters + +| Name | Type | Description | +| ---------- | ------ | ------------------------------------- | +| expression | string | The string to check in the user agent | + +## Events + +### `pause` + +`pause` イベントは、ネイティブ・プラットフォームがアプリケーションをバックグラウンドに置いたとき、通常はユーザーが別のアプリケーションに切り替えたときに発生します。このイベントは、Cordova/Capacitor アプリケーションがバックグラウンドに置かれたときに発生しますが、標準的な Web ブラウザでは発生しません。 + +#### Examples + +```tsx +this.platform.pause.subscribe(async () => { + alert('Pause event detected'); +}); +``` + +### `resize` + +`resize` イベントは、ブラウザウィンドウの寸法が変更されたときに発生します。これは、ブラウザーウィンドウが物理的にサイズ変更されている場合や、デバイスの向きが変わっている場合に発生します。 + +#### Examples + +```tsx +this.platform.resize.subscribe(async () => { + alert('Resize event detected'); +}); +``` + +### `resume` + +`resume` イベントは、ネイティブプラットフォームがバックグラウンドからアプリケーションを引き出したときに発生します。このイベントは、Cordova/Capacitor アプリがバックグラウンドから出てきても、標準的な Web ブラウザで起動しない場合に発生します。 + +#### Examples + +```tsx +this.platform.resume.subscribe(async () => { + alert('Resume event detected'); +}); +``` diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/angular/pwa.md b/i18n/ja/docusaurus-plugin-content-docs/current/angular/pwa.md new file mode 100644 index 00000000000..684c150c457 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/angular/pwa.md @@ -0,0 +1,166 @@ +--- +title: AngularでのPWA +sidebar_label: Progressive Web Apps +--- + + + Make Progressive Web Apps (PWA) in Angular - Ionic Tutorial + + + +## Making your Angular app a PWA + +The two main requirements of a PWA are a
    Service Worker and a Web Manifest. While it's possible to add both of these to an app manually, the Angular team has an `@angular/pwa` package that can be used to automate this. + +The `@angular/pwa` package will automatically add a service worker and an app manifest to the app. +To add this package to the app, run: + +```shell +ng add @angular/pwa +``` + +Once this package has been added run `ionic build --prod` and the `www` directory will be ready to deploy as a PWA. + +:::note +By default, the `@angular/pwa` package comes with the Angular logo for the app icons. Be sure to update the manifest to use the correct app name and also replace the icons. +::: + +:::note +Features like Service Workers and many JavaScript APIs (such as geolocation) require the app be hosted in a secure context. When deploying an app through a hosting service, be aware that HTTPS will be required to take full advantage of Service Workers. +::: + +## Service Worker configuration + +After `@angular/pwa` has been added, a new `ngsw-config.json` file will be created at the root of the project. This file is responsible for configuring how Angular's service worker mechanism will handle caching assets. By default, the following will be provided: + +```json +{ + "$schema": "./node_modules/@angular/service-worker/config/schema.json", + "index": "/index.html", + "assetGroups": [ + { + "name": "app", + "installMode": "prefetch", + "resources": { + "files": ["/favicon.ico", "/index.html", "/*.css", "/*.js"] + } + }, + { + "name": "assets", + "installMode": "lazy", + "updateMode": "prefetch", + "resources": { + "files": ["/assets/**", "/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)"] + } + } + ] +} +``` + +There are two sections in here, one for app specific resources (JS, CSS, HTML) and assets the app will load on demand. Depending on your app, these options can be customized. For a more detailed guide, read [the official guide from the Angular Team.](https://angular.io/guide/service-worker-config) + +## Deploying + +### Firebase + +Firebase hosting provides many benefits for Progressive Web Apps, including fast response times thanks to CDNs, HTTPS enabled by default, and support for [HTTP2 push](https://firebase.googleblog.com/2016/09/http2-comes-to-firebase-hosting.html). + +First, if not already available, [create the project](https://console.firebase.google.com) in Firebase. + +Next, in a Terminal, install the Firebase CLI: + +```shell +npm install -g firebase-tools +``` + +:::note +If it's the first time you use firebase-tools, login to your Google account with `firebase login` command. +::: + +With the Firebase CLI installed, run `firebase init` within your Ionic project. The CLI prompts: + +**"Which Firebase CLI features do you want to set up for this folder?"** Choose "Hosting: Configure files for Firebase Hosting and (optionally) set up GitHub Action deploys". + +Create a new Firebase project or select an existing one. + +**"Select a default Firebase project for this directory:"** Choose the project you created on the Firebase website. + +**"What do you want to use as your public directory?"** Enter "www". + +:::note +Answering this next question will ensure that routing, hard reload, and deep linking work in the app: +::: + +**Configure as a single-page app (rewrite all urls to /index.html)?"** Enter "Yes". + +**"File build/index.html already exists. Overwrite?"** Enter "No". + +**Set up automatic builds and deploys with Github?** Enter "Yes". + +**For which GitHub repository would you like to set up a Github Workflow?** Enter your project name. + +**Set up the workflow to run a build script before every deploy?** Enter "Yes". + +**What script should be run before every deploy?** Enter `npm ci && npm run build`. + +**Set up automatic deployment to your sites live channel when a PR is merged?** Enter "Yes". + +**What is the name of the get hooked branch associated with your sites live channel?** Enter your project's main branch name. + +A `firebase.json` config file is generated, configuring the app for deployment. + +The last thing needed is to make sure caching headers are being set correctly. To do this, add a `headers` snippet to the `firebase.json` file. The complete `firebase.json` looks like: + +```json +{ + "hosting": { + "public": "www", + "ignore": ["firebase.json", "**/.*", "**/node_modules/**"], + "rewrites": [ + { + "source": "**", + "destination": "/index.html" + } + ], + "headers": [ + { + "source": "/build/app/**", + "headers": [ + { + "key": "Cache-Control", + "value": "public, max-age=31536000" + } + ] + }, + { + "source": "ngsw-worker.js", + "headers": [ + { + "key": "Cache-Control", + "value": "no-cache" + } + ] + } + ] + } +} +``` + +For more information about the `firebase.json` properties, see the [Firebase documentation](https://firebase.google.com/docs/hosting/full-config#section-firebase-json). + +Next, build an optimized version of the app by running: + +```shell +ionic build --prod +``` + +Last, deploy the app by running: + +```shell +firebase deploy +``` + +After this completes, the app will be live. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/angular/slides.md b/i18n/ja/docusaurus-plugin-content-docs/current/angular/slides.md new file mode 100644 index 00000000000..836b717114a --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/angular/slides.md @@ -0,0 +1,366 @@ +--- +title: Migrating from ion-slides to Swiper.js +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + Set Up Swiper.js for Angular Slides [Example] | Ionic + + + +:::warning Looking for `ion-slides`? +`ion-slides` was deprecated in v6.0.0 and removed in v7.0.0. We recommend using the Swiper.js library directly. The migration process is detailed below. +::: + +We recommend Swiper.js if you need a modern touch slider component. Swiper 9 introduced Swiper Element as a replacement for its Angular component, so this guide will go over how to get Swiper Element set up in your Ionic Framework application. It will also go over any migration information you may need to move from `ion-slides` to Swiper Element. + +## Getting Started + +First, update to the latest version of Ionic: + +```shell +npm install @ionic/angular@latest +``` + +Once that is done, install the Swiper dependency in your project: + +```shell +npm install swiper@latest +``` + +Next, we need to add the `CUSTOM_ELEMENTS_SCHEMA`, which tells Angular that we will be using custom elements. This can be done in either `app.module.ts`, or the module file for the component where you will be using Swiper. + +```typescript +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; + +@NgModule({ + schemas: [..., CUSTOM_ELEMENTS_SCHEMA] +}); +... +``` + +Finally, we need to call Swiper's `register` function to globally register Swiper's custom elements. This should only be done once, so place it in `app.component.ts`. + +```typescript +import { register } from 'swiper/element/bundle'; + +register(); + +@Component({ + ... +}) +... +``` + +From there, we just have to replace `ion-slides` elements with `swiper-container` and `ion-slide` elements with `swiper-slide`. Note that these custom elements do not need to be imported, as calling `register` tells Angular about them on its own. + +```html + + Slide 1 + Slide 2 + Slide 3 + +``` + +## Bundled vs. Core Versions + +By default, make sure you import the `register` function from `swiper/element/bundle`. This uses the bundled version of Swiper, which automatically includes all modules and stylesheets needed to run Swiper's various features. + +If you would like to use the Core version instead, which does not include additional modules automatically, see https://swiperjs.com/element#core-version-and-modules. The rest of this migration guide will assume you are using the bundled version. + +## Swiping with Style + +To migrate over your CSS, first update your selectors to target the new custom elements instead: + +| ion-slides Selector | Swiper Selector | +| ------------------- | ------------------ | +| `ion-slides` | `swiper-container` | +| `ion-slide` | `swiper-slide` | + +If you were using the CSS custom properties found on `ion-slides`, below is a list of corresponding properties used in Swiper. + +| `ion-slides` CSS property | `swiper-container` CSS property | +| ---------------------------------- | ------------------------------------------- | +| `--bullet-background` | `--swiper-pagination-bullet-inactive-color` | +| `--bullet-background-active` | `--swiper-pagination-color` | +| `--progress-bar-background` | `--swiper-pagination-progressbar-bg-color` | +| `--progress-bar-background-active` | `--swiper-pagination-color` | +| `--scroll-bar-background` | `--swiper-scrollbar-bg-color` | +| `--scroll-bar-background-active` | `--swiper-scrollbar-drag-bg-color` | + +For additional custom CSS, because Swiper Element uses Shadow DOM encapsulation, styles will need to be injected into the Shadow DOM scope. See https://swiperjs.com/element#injecting-styles for instructions. + +### Additional `ion-slides` Styles + +The `ion-slides` component had additional styling that helped create a native look and feel. These styles are **not** required to use Swiper.js with Ionic, but if you would like to maintain the look of `ion-slides` as closely as possible, add the following CSS to your `global.scss`: + +```css +swiper-container { + --swiper-pagination-bullet-inactive-color: var(--ion-text-color-step-800, #cccccc); + --swiper-pagination-color: var(--ion-color-primary, #0054e9); + --swiper-pagination-progressbar-bg-color: rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.25); + --swiper-scrollbar-bg-color: rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1); + --swiper-scrollbar-drag-bg-color: rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.5); +} + +swiper-slide { + display: flex; + position: relative; + + flex-direction: column; + flex-shrink: 0; + align-items: center; + justify-content: center; + + width: 100%; + height: 100%; + + font-size: 18px; + + text-align: center; + box-sizing: border-box; +} + +swiper-slide img { + width: auto; + max-width: 100%; + height: auto; + max-height: 100%; +} +``` + +## The IonicSlides Module + +With `ion-slides`, Ionic automatically customized dozens of Swiper properties. This resulted in an experience that felt smooth when swiping on mobile devices. We recommend using the `IonicSlides` module to ensure that these properties are also set when using Swiper directly. However, using this module is **not** required to use Swiper.js in Ionic. + +It is recommended to review the [properties](https://github.com/ionic-team/ionic-framework/blob/main/core/src/components/slides/IonicSlides.ts) set by `IonicSlides` and determine which ones you would like to customize. + +We can install the `IonicSlides` module by importing and passing it to the `modules` property of `swiper-container` as an array: + + + + +```typescript +// home.page.ts + +import { IonicSlides } from '@ionic/angular'; + +@Component({ + ... +}) +export class HomePage { + swiperModules = [IonicSlides]; +} +``` + + + + +```typescript +// home.page.ts + +import { IonicSlides } from '@ionic/angular/standalone'; + +@Component({ + ... +}) +export class HomePage { + swiperModules = [IonicSlides]; +} +``` + + + + +```html + + + ... +``` + +:::note +If you are using the Core version of Swiper and have installed additional modules, ensure that `IonicSlides` is the last module in the array. This will let it automatically customize the settings of modules such as Pagination, Scrollbar, Zoom, and more. +::: + +## Properties + +Swiper options should be provided as individual properties directly on the `` component. + +Let's say in an app with `ion-slides` we had the `slidesPerView` and `loop` options set: + +```html + + Slide 1 + Slide 3 + Slide 3 + +``` + +To set these options as properties directly on `` we would do the following: + +```html + + Slide 1 + Slide 2 + Slide 3 + +``` + +Below is a full list of property changes when going from `ion-slides` to Swiper Element: + +| Name | Notes | +| ------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| options | Set each option as a property directly on the `` component. | +| mode | For different styles based upon the mode, you can target the slides with `.ios swiper-container` or `.md swiper-container` in your CSS. | +| pager | Use the `pagination` property instead. | + +:::note +All properties available in Swiper Element can be found at https://swiperjs.com/swiper-api#parameters. +::: + +## Events + +Since the `swiper-container` component is not provided by Ionic Framework, event names will not have an `ionSlide` prefix to them. Additionally, all event names should be lowercase instead of camelCase. + +Let's say in an app with `ion-slides` we used the `ionSlideDidChange` event: + +```html + + Slide 1 + Slide 3 + Slide 3 + +``` + +To migrate, we would change the name of the event to `swiperslidechange`: + +```html + + Slide 1 + Slide 2 + Slide 3 + +``` + +Below is a full list of event name changes when going from `ion-slides` to Swiper Angular: + +| ion-slides Event | Swiper Event | +| ------------------------- | ---------------------------------- | +| `ionSlideWillChange` | `swiperslidechangetransitionstart` | +| `ionSlideDidChange` | `swiperslidechange` | +| `ionSlideDoubleTap` | `swiperdoubletap` | +| `ionSlideDrag` | `swiperslidermove` | +| `ionSlideNextStart` | `swiperslidenexttransitionstart` | +| `ionSlideNextEnd` | `swiperslidenexttransitionend` | +| `ionSlidePrevStart` | `swiperslideprevtransitionstart` | +| `ionSlidePrevEnd` | `swiperslideprevtransitionend` | +| `ionSlideReachStart` | `swiperreachbeginning` | +| `ionSlideReachEnd` | `swiperreachend` | +| `ionSlideTap` | `swipertap` | +| `ionSlideTouchStart` | `swipertouchstart` | +| `ionSlideTouchEnd` | `swipertouchend` | +| `ionSlideTransitionStart` | `swipertransitionstart` | +| `ionSlideTransitionEnd` | `swipertransitionend` | +| `ionSlidesDidLoad` | `swiperinit` | + +:::note +All events available in Swiper Element can be found at https://swiperjs.com/swiper-api#events and should be lowercased and prefixed with the word `swiper`. +::: + +## Methods + +Most methods have been removed in favor of directly accessing the properties of the Swiper instance. To access the Swiper instance, first get a reference to the `` element (such as through `ViewChild`), then access its `swiper` prop: + +```html + + + + Slide 1 + Slide 2 + Slide 3 + +``` + +```typescript +// slides.component.ts + +import { ..., ElementRef, ViewChild } from '@angular/core'; + +@Component({ + ... +}) +export class SlidesExample { + @ViewChild('swiper') + swiperRef: ElementRef | undefined; + + logActiveIndex() { + console.log(this.swiperRef?.nativeElement.swiper.activeIndex); + } +} +``` + +Below is a full list of method changes when going from `ion-slides` to Swiper Element: + +| ion-slides Method | Notes | +| -------------------- | ------------------------------------------------------------------------------------ | +| `getActiveIndex()` | Use the `activeIndex` property instead. | +| `getPreviousIndex()` | Use the `previousIndex` property instead. | +| `getSwiper()` | Get a reference to the Swiper instance using the `swiper` prop. See example above. | +| `isBeginning()` | Use the `isBeginning` property instead. | +| `isEnd()` | Use the `isEnd` property instead. | +| `length()` | Use the `slides` property instead. (i.e swiper.slides.length) | +| `lockSwipeToNext()` | Use the `allowSlidesNext` property instead. | +| `lockSwipeToPrev()` | Use the `allowSlidePrev` property instead. | +| `lockSwipes()` | Use the `allowSlideNext`, `allowSlidePrev`, and `allowTouchMove` properties instead. | +| `startAutoplay()` | Use the `autoplay` property instead. | +| `stopAutoplay()` | Use the `autoplay` property instead. | + +:::note +All methods and properties available on the Swiper instance can be found at https://swiperjs.com/swiper-api#methods-and-properties. +::: + +## Effects + +Effects such as Cube or Fade can be used in Swiper Element with no additional imports, as long as you are using the bundled version of Swiper. For example, the below code will cause the slides to have a flip transition effect: + +```html + ... +``` + +:::note +For more information on effects in Swiper, please see https://swiperjs.com/swiper-api#fade-effect. +::: + +## Wrap Up + +Now that you have Swiper installed, there is a whole set of new Swiper features for you to enjoy. We recommend starting with the Swiper Element documentation and then referencing the Swiper API docs. + +## FAQ + +### Where can I find an example of this migration? + +You can find a sample app with `ion-slides` and the equivalent Swiper usage at https://github.com/ionic-team/slides-migration-samples. + +### Where can I get help with this migration? + +If you are running into issues with the migration, please create a post on the [Ionic Forum](https://forum.ionicframework.com/). + +### Where do I file bug reports? + +Before opening an issue, please consider creating a post on the Swiper Discussion Board or the Ionic Forum to see if your issue can be resolved by the community. + +If you are running into problems with the Swiper library, new bugs should be filed on the Swiper repo: https://github.com/nolimits4web/swiper/issues + +If you are running into problems with the `IonicSlides` module, new bugs should be filed on the Ionic Framework repo: https://github.com/ionic-team/ionic-framework/issues diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/angular/storage.md b/i18n/ja/docusaurus-plugin-content-docs/current/angular/storage.md new file mode 100644 index 00000000000..23c365eb7d4 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/angular/storage.md @@ -0,0 +1,32 @@ +--- +title: データストレージ +sidebar_label: ストレージ +--- + + + Angular App Data Storage Options - Ionic Documentation + + + +Ionic アプリ内にデータを保存するためのさまざまなオプションを用意しています。 + +Here are two official Ionic options: + +## Ionic Secure Storage + +For teams building mission-critical apps or requiring encryption support, [Ionic Secure Storage](https://ionic.io/docs/secure-storage) is an official premium solution from the Ionic team that provides a cross-platform data storage system that works on iOS and Android. + +It makes it easy to build high performance, offline-ready Ionic apps across iOS, Android, and the web. + +[Learn more](https://ionic.io/products/secure-storage) + +## @ionic/storage + +For developers not requiring encryption nor relational data support, [@ionic/storage](https://github.com/ionic-team/ionic-storage) is an open source key/value API for building apps that work across storage engines on multiple platforms. + +Additionally, Ionic Secure Storage has a driver that works with the key/value API in `@ionic/storage` while providing encryption and SQLite support. + +Learn more about [@ionic/storage](https://github.com/ionic-team/ionic-storage) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/angular/testing.md b/i18n/ja/docusaurus-plugin-content-docs/current/angular/testing.md new file mode 100644 index 00000000000..095c38c8061 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/angular/testing.md @@ -0,0 +1,593 @@ +--- +title: テスト +--- + + + Angular Unit and End-to-End Testing for Ionic App Components + + + +Ionic CLI を使用して `@ionic/angular` アプリケーションを生成すると、アプリケーションのユニットテストとエンドツーエンドのテスト用に自動的に準備されます。これは Angular CLI で使われる設定と同じものです。Angular で作られたアプリケーションのテストについての詳細は Angular Testing Guide をご参照ください。 + +## テストの原則 + +アプリケーションをテストするときは、テストによってシステムに欠陥があるかどうかを確認できる、ということを覚えておくことが一番です。しかし、どんなささいなシステムも完全に欠陥のないことを証明することは不可能です。このため、テストの目的はコードが正しいことを確認することではなく、コードの中の問題を見つけることです。これは微妙ですが、重要な違いです。 + +もし私たちがコードが正しいことを証明しようとするのであれば、私たちはコードを通じて幸せな道を歩み続けようとするでしょう。もし私が問題の発見しようとするのであれば、コードをより完全に実行し、そこに潜むバグを発見する可能性が高くなります。 + +最初からアプリケーションのテストを開始することも最良です。これにより、修正が容易な段階で早期に欠陥を発見できます。またこれにより、システムに新しい機能が追加されたときに、コードを確実にリファクタリングすることもできます。 + +## ユニットテスト + +ユニットテストでは、システムの他の部分から分離して、単一のコードユニット(Component、Page、Service、Pipe など)を実行します。分離は、コードの依存関係の代わりにモックオブジェクトを注入することによって実現されます。モックオブジェクトによって、テストは依存関係の切り出しをきめ細かく制御することができます。モックによって、どの依存関係が呼び出され、何が渡されたかをテストで判断することもできます。 + +適切に記述されたユニットテストは、コードの単位とそれに含まれる機能が `describe()` コールバックによって記述されるように構成されています。コード単位とその機能の要件は、`it()` コールバックによってテストされます。`describe()` コールバックと `it()` コールバックの説明を読むと、フレーズとして意味がわかります。ネストされた `describe()` と最後の `it()` の記述をつなげると、テストケースを完全に記述する文が形成されます。 + +ユニットテストはコードを分離して実行するため、高速で堅牢であり、高度なコードカバレッジが可能です。 + +### モックの利用 + +ユニットテストでは、コードをコードをモジュールで分離して実行します。これを簡単にするには、Jasmine(https://jasmine.github.io/) を使用することをお勧めします。Jasmine は、テスト実行中に依存関係の代わりにモックオブジェクト(Jasmine は 「スパイ」 と呼んでいます)を作成します。モックオブジェクトを使用すると、テストはその依存関係への呼び出しによって返される値を制御できるため、依存関係に加えられた変更から現在のテストを独立させることができます。これにより、テストのセットアップも簡単になり、テスト対象のモジュール内のコードだけをテストすることができます。 + +モックを使用すると、モックが呼び出されたかどうか、および `toHaveBeenCalled*` セットの関数を介してどのように呼び出されたかを判断するために、テストでモックを確認することもできます。これらの関数では、メソッドが呼び出されたことをテストするときに、`toHaveBeenCalled` メソッドの呼び出しよりも `toHaveBeenCalledTimes` の呼び出しを優先して、テストをできるだけ具体的に行う必要があります。つまり、`expect(mock.foo).toHaveBeenCalledTimes(1)` は `expect(mock.foo).toHaveBeenCalled()` よりも優れています。何かが呼ばれていないこと(`expect(mock.foo).not.toHaveBeenCalled()`)をテストする際は、逆のアドバイスに従うべきです。 + +Jasmine でモックオブジェクトを作成する一般的な方法は 2 つあります。モックオブジェクトは、`jasmine.createSpy` と`jasmine.createSpyObj` を使ってスクラッチで作成することも、`spyOn()` と `spyOnProperty()` を使って既存のオブジェクトにスパイをインストールすることもできます。 + +### `jasmine.createSpy` と `jasmine.createSpyObj` の利用 + +`jasmine.createSpyObj` は、作成時に定義された一連のモックメソッドを使用して、完全なモックオブジェクトをスクラッチで作成します。これはとてもシンプルで便利です。テストのために何かを組み立てたり注入したりする必要はありません。この関数の使用する欠点は、実際のオブジェクトと一致しないオブジェクトを生成できることです。 + +`jasmine.createSpy` も似ていますが、スタンドアロンのモック関数を作成します。 + +#### `spyOn()` と `spyOnProperty()` の利用 + +`spyOn()` は、既存のオブジェクトにスパイをインストールします。この手法を使用する利点は、オブジェクト上に存在しないメソッドをスパイしようとすると、例外が発生することです。これにより、テストが存在しないメソッドをモックすることを防ぎます。欠点は、テストが最初から完全に整形されたオブジェクトを必要とすることであり、これはテストに必要なセットアップの量を増加させるかと思います。 + +`spyOnProperty()` は似ていますが、メソッドではなくプロパティに対してスパイするという点で異なります。 + +### 一般的なテストの構成 + +ユニットテストは、エンティティ(Component、Page、Service、Pipe など)ごとに 1 つの `spec` ファイルを持つ `spec` ファイルに含まれています。`spec` ファイルは、テスト中のソースと一緒に存在し、かつその名前が付けられます。たとえば、プロジェクトに WeatherService という Service がある場合、そのコードは`weather.service.ts` という名前のファイルにあり、テストは `weather.service.spec.ts` という名前のファイルにあります。これらのファイルは両方とも同じフォルダにあります。 + +`spec` ファイル自体には、そのテスト全体を定義するただ一つの `describe` コールが含まれています。その中には、主要な機能領域を定義する他の `describe` コールがネストされています。各 `describe` コールには、setup コードと teardown コード(一般的に `beforeEach` と `afterEach` コールによって処理される)、機能を階層的に分解した `describe` コール、また個々のテストケースを定義する `it` コールが含まれます。 + +`describe` と `it` コールには、説明のテキストラベルも含まれます。適切な形式のテストでは、`describe` と `it` をコールすると、ラベルと組み合わせた適切なフレーズが実行され、各テストケースのすべてのラベルが `describe` と `it` ラベルを組み合わせて構成され、完全な文が作成されます。 + +例: + +```tsx +describe('Calculation', () => { + describe('divide', () => { + it('calculates 4 / 2 properly' () => {}); + it('cowardly refuses to divide by zero' () => {}); + ... + }); + + describe('multiply', () => { + ... + }); +}); +``` + +外側の `describe` コールは `Calculation` Service がテストされていることを示し、内側の `describe` コールはテストされている機能を正確に示し、そして `it` コールはテストケースが何であるかを示しています。各テストケースの完全なラベルを実行すると、意味のある文になります(卑劣な 0 での除算という計算を拒否しました)。 + +### ページとコンポーネント + +Pages は単なる Angular コンポーネントです。そのため、ページとコンポーネントは両方とも Angular のコンポーネントテストガイドライン を使ってテストされます。 + +ページとコンポーネントには TypeScript コードと HTML テンプレートマークアップの両方が含まれているため、コンポーネントクラスのテストとコンポーネント DOM のテストの両方を実行できます。ページが作成されると、生成されるテンプレートテストは次のようになります: + +```tsx +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { TabsPage } from './tabs.page'; + +describe('TabsPage', () => { + let component: TabsPage; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [TabsPage], + schemas: [CUSTOM_ELEMENTS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TabsPage); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); +``` + +コンポーネントクラスのテストを行う場合、コンポーネントオブジェクトは `component=fixture.componentInstance;` によって定義されたコンポーネントオブジェクトを使用してアクセスされます。これはコンポーネントクラスのインスタンスです。DOM テストを行う際には、`fixture.nativeElement` プロパティが使用されます。これはコンポーネントの実際の `HTMLElement`であり、テストで DOM を調べるために `HTMLElement.querySelector` などの標準の HTML API メソッドを使うことを可能にします。 + +## Service + +Service は、多くの場合、計算やその他の操作を実行するユーティリティの service と、主に HTTP 操作やデータ操作を実行するデータの service の 2 つの大まかなカテゴリーのいずれかに分類されます。 + +### 基本的な Service のテスト + +ほとんどの service をテストするために推奨する方法は、service をインスタンス化し、service が持つ依存関係のモックを手動で注入することです。こうすることで、コードを分離してテストすることができます。 + +たとえば、タイムカードの配列を取得して差引支給額を計算するメソッドを持つ service があるとします。また税金計算は、現在の service が依存しているもう一つの service を介して処理されるとします。この給与計算の service は、このようにテストすることができます: + +```tsx +import { PayrollService } from './payroll.service'; + +describe('PayrollService', () => { + let service: PayrollService; + let taxServiceSpy; + + beforeEach(() => { + taxServiceSpy = jasmine.createSpyObj('TaxService', { + federalIncomeTax: 0, + stateIncomeTax: 0, + socialSecurity: 0, + medicare: 0 + }); + service = new PayrollService(taxServiceSpy); + }); + + describe('net pay calculations', () => { + ... + }); +}); +``` + +これにより、テストでは `taxServiceSpy.federalIncomeTax.and.returnValue(73.24)` などのモックの設定を介して様々な税金計算から戻される値を制御できます。これにより、「差引支給額」のテストを税金計算ロジックから独立させることができます。税金のコードが変更された場合、修正する必要があるのは税金 service 関連のコードとテストのみです。差引支給額のテストは、税金がどのように計算されるかを考慮せず、値が適切に適用されるのみであるため、そのまま機能し続けることができます。 + +`ionic g service name` で service を生成するときに使われる scaffold は Angular のテストユーティリティを使ってテストモジュールをセットアップします。必ずしもそうする必要はありません。ただし、このコードを残しておくことで、手動でサービスを構築したり、次のように注入したりすることができます: + +```tsx +import { TestBed, inject } from '@angular/core/testing'; + +import { PayrollService } from './payroll.service'; +import { TaxService } from './tax.service'; + +describe('PayrolService', () => { + let taxServiceSpy; + + beforeEach(() => { + taxServiceSpy = jasmine.createSpyObj('TaxService', { + federalIncomeTax: 0, + stateIncomeTax: 0, + socialSecurity: 0, + medicare: 0, + }); + TestBed.configureTestingModule({ + providers: [PayrollService, { provide: TaxService, useValue: taxServiceSpy }], + }); + }); + + it('does some test where it is injected', inject([PayrollService], (service: PayrollService) => { + expect(service).toBeTruthy(); + })); + + it('does some test where it is manually built', () => { + const service = new PayrollService(taxServiceSpy); + expect(service).toBeTruthy(); + }); +}); +``` + +#### HTTP データ Service のテスト + +HTTP 操作を実行するほとんどの service は、それらの操作を実行するために Angular の HttpClient service を使用します。そのようなテストには、Angular の `HttpClientTestingModule` を使うことが推奨されています。このモジュールの詳細なドキュメントは Angular の HTTP リクエストをテストする のガイドを参照してください。 + +このようなテストの基本的な設定は次のようになります: + +```tsx +import { HttpBackend, HttpClient } from '@angular/common/http'; +import { HttpTestingController, HttpClientTestingModule } from '@angular/common/http/testing'; +import { TestBed, inject } from '@angular/core/testing'; + +import { IssTrackingDataService } from './iss-tracking-data.service'; + +describe('IssTrackingDataService', () => { + let httpClient: HttpClient; + let httpTestingController: HttpTestingController; + let issTrackingDataService: IssTrackingDataService; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + providers: [IssTrackingDataService], + }); + + httpClient = TestBed.get(HttpClient); + httpTestingController = TestBed.get(HttpTestingController); + issTrackingDataService = new IssTrackingDataService(httpClient); + }); + + it('exists', inject([IssTrackingDataService], (service: IssTrackingDataService) => { + expect(service).toBeTruthy(); + })); + + describe('location', () => { + it('gets the location of the ISS now', () => { + issTrackingDataService.location().subscribe((x) => { + expect(x).toEqual({ longitude: -138.1719, latitude: 44.4423 }); + }); + const req = httpTestingController.expectOne('http://api.open-notify.org/iss-now.json'); + expect(req.request.method).toEqual('GET'); + req.flush({ + iss_position: { longitude: '-138.1719', latitude: '44.4423' }, + timestamp: 1525950644, + message: 'success', + }); + httpTestingController.verify(); + }); + }); +}); +``` + +### Pipe + +pipe は、特別に定義されたインタフェースを持つ service のようなものです。このクラスには、入力値(およびその他のオプションの引数)を操作してページにレンダリングされる出力を作成するための public メソッド `transform` が含まれています。パイプをテストするには、パイプをインスタンス化し、transform メソッドを呼び出して結果を検証します。 + +簡単な例として、`Person` オブジェクトを受け取り、名前をフォーマットする pipe を見てみましょう。簡単にするために、`Person` は `id`、`firstName`、`lastName`、`middleInitial` で構成されるとします。パイプの要件は、名・姓・ミドルネームのいずれかが存在しない場合に、名前を「性、名 M(ミドルネーム)。」として出力することです。このようなテストは次のようになります: + +```tsx +import { NamePipe } from './name.pipe'; + +import { Person } from '../../models/person'; + +describe('NamePipe', () => { + let pipe: NamePipe; + let testPerson: Person; + + beforeEach(() => { + pipe = new NamePipe(); + testPerson = { + id: 42, + firstName: 'Douglas', + lastName: 'Adams', + middleInitial: 'N', + }; + }); + + it('exists', () => { + expect(pipe).toBeTruthy(); + }); + + it('formats a full name properly', () => { + expect(pipe.transform(testPerson)).toBeEqual('Adams, Douglas N.'); + }); + + it('handles having no middle initial', () => { + delete testPerson.middleInitial; + expect(pipe.transform(testPerson)).toBeEqual('Adams, Douglas'); + }); + + it('handles having no first name', () => { + delete testPerson.firstName; + expect(pipe.transform(testPerson)).toBeEqual('Adams N.'); + }); + + it('handles having no last name', () => { + delete testPerson.lastName; + expect(pipe.transform(testPerson)).toBeEqual('Douglas N.'); + }); +}); +``` + +また、pipe を利用するコンポーネントおよびページでの DOM テストを介して pipe を実行することも有益です。 + +## エンドツーエンドテスト + +エンドツーエンドのテストは、アプリケーションが全体として機能し、多くの場合、ライブデータへの接続を含むことを検証するために使用されます。一方で、ユニットテストは分離されたコードユニットに重点を置いているため、アプリケーションロジックの低レベルのテストが可能ですが、エンドツーエンドテストはさまざまなユーザーストーリーや使用・シナリオに重点を置いており、アプリケーション全体を通したデータフローの総合的な高レベルのテストを提供します。また一方で、ユニットテストではアプリケーションのロジックの問題を明らかにしようとしますが、エンドツーエンドテストでは、個々のユニットが一緒に使用される場合に発生する問題を明らかにしようとします。エンドツーエンドのテストにより、アプリケーションの全体的なアーキテクチャに関する問題が明らかになります。 + +エンドツーエンドテストはユーザーストーリーを実行し、個々のコードモジュールではなくアプリケーション全体を対象とするため、エンドツーエンドテストは、メインアプリケーション自体のコードとは別に、プロジェクト内の独自のアプリケーションとして存在します。ほとんどのエンドツーエンドテストは、アプリケーションとの共通のユーザー対話を自動化し、それらの対話の結果を判別するために DOM を調査します。 + +### テストの構成 + +`@ionic/angular` アプリケーションが作成されると、 デフォルトのエンドツーエンドのテストアプリケーションが `e2e` フォルダに生成されます。このアプリケーションは Protractor を使用してブラウザを制御し、Jasmine を使用してテストを構築し、実行します。アプリケーションは、初期時は次の 4 つのファイルで構成されています: + +- `protractor.conf.js` - Protractor の設定ファイル +- `tsconfig.e2e.json` - テストアプリケーション用の特定の TypeScript の設定 +- `src/app.po.ts` - アプリケーションをナビゲートするメソッド、DOM 内の要素を照会するメソッド、ページ上の要素を操作するメソッドを含むページオブジェクト +- `src/app.e2e-spec.ts` - テスト用のスクリプト + +#### ページオブジェクト + +エンドツーエンドのテストは、アプリケーションとの共通のユーザー対話を自動化し、アプリケーションが応答するのを待ち、対話の結果を判別するために DOM を検査します。これには、多くの DOM 操作と試験が必要です。これらをすべて手作業で行うと、テストは非常に脆くなり、見て理解することや保守が困難になります。 + +ページオブジェクトは、TypeScript クラスの単一ページの HTML をカプセル化し、テスト用のスクリプトがアプリケーションと対話するために使用する API を提供します。DOM 操作ロジックをページオブジェクト内にカプセル化することで、テストが読みやすくなり、かつ判断することがはるかに簡単になり、テストの保守コストが大幅に削減されます。洗練されたページオブジェクトを作成することは、高品質で保守しやすいエンドツーエンドのテストを作成するための鍵です。 + +##### ベースページオブジェクト + +多くのテストは、ページが表示されるのを待ったり、input にテキストを入力したり、ボタンをクリックするなどのアクションに依存しています。これを行うために使用されるメソッドは、適切な DOM 要素の変更を取得するために使用される CSS セレクターのみと一貫性があります。したがって、このロジックを、他のページオブジェクトが使用できるベースクラスに抽象化することは理にかなっています。 + +すべてのページオブジェクトがサポートを必要とするいくつかのベースメソッドを実装する例を次に示します: + +```tsx +import { browser, by, element, ExpectedConditions } from 'protractor'; + +export class PageObjectBase { + private path: string; + protected tag: string; + + constructor(tag: string, path: string) { + this.tag = tag; + this.path = path; + } + + load() { + return browser.get(this.path); + } + + rootElement() { + return element(by.css(this.tag)); + } + + waitUntilInvisible() { + browser.wait(ExpectedConditions.invisibilityOf(this.rootElement()), 3000); + } + + waitUntilPresent() { + browser.wait(ExpectedConditions.presenceOf(this.rootElement()), 3000); + } + + waitUntilNotPresent() { + browser.wait(ExpectedConditions.not(ExpectedConditions.presenceOf(this.rootElement())), 3000); + } + + waitUntilVisible() { + browser.wait(ExpectedConditions.visibilityOf(this.rootElement()), 3000); + } + + getTitle() { + return element(by.css(`${this.tag} ion-title`)).getText(); + } + + protected enterInputText(sel: string, text: string) { + const el = element(by.css(`${this.tag} ${sel}`)); + const inp = el.element(by.css('input')); + inp.sendKeys(text); + } + + protected enterTextareaText(sel: string, text: string) { + const el = element(by.css(`${this.tag} ${sel}`)); + const inp = el.element(by.css('textarea')); + inp.sendKeys(text); + } + + protected clickButton(sel: string) { + const el = element(by.css(`${this.tag} ${sel}`)); + browser.wait(ExpectedConditions.elementToBeClickable(el)); + el.click(); + } +} +``` + +##### ページ毎の要約 + +アプリケーションの各ページには、そのページの要素を抽象化する独自のページオブジェクトクラスがあります。ベースとなるページオブジェクトクラスを使用する場合、ページオブジェクトを作成するには、ほとんどの場合そのページに固有の要素のカスタムメソッドを作成する必要があります。多くの場合、これらのカスタム要素は、必要な作業を実行するためにベースクラスのメソッドの恩恵を受けます。 + +次に、単純ですが典型的なログインページのページオブジェクトの例を示します。`enterEMail()` のような多くのメソッドは、作業の大部分を行うベースクラスのメソッドを呼び出すことに注意してください。 + +```tsx +import { browser, by, element, ExpectedConditions } from 'protractor'; +import { PageObjectBase } from './base.po'; + +export class LoginPage extends PageObjectBase { + constructor() { + super('app-login', '/login'); + } + + waitForError() { + browser.wait(ExpectedConditions.presenceOf(element(by.css('.error'))), 3000); + } + + getErrorMessage() { + return element(by.css('.error')).getText(); + } + + enterEMail(email: string) { + this.enterInputText('#email-input', email); + } + + enterPassword(password: string) { + this.enterInputText('#password-input', password); + } + + clickSignIn() { + this.clickButton('#signin-button'); + } +} +``` + +#### テストスクリプト + +ユニットテストと同様に、エンドツーエンドのテストスクリプトはネストされた `describe()` と `it()` 関数で構成されています。エンドツーエンドのテストの場合、`describe()` 関数は一般に、特定のシナリオを、そのシナリオ内でアクションが実行されるときにアプリケーションによって表されるべき特定の振る舞いを示す `it()` 関数とともに示します。 + +また、ユニットテストと同様に、`describe()` および `it()` 関数で使用されるラベルは、"describe" または "it"と、完全なテストケースを形成するためにともに連結されるとき、両方とも意味をなします。 + +典型的なログインシナリオを実行するエンドツーエンドのテストスクリプトの簡単な例を次に示します。 + +```tsx +import { AppPage } from '../page-objects/pages/app.po'; +import { AboutPage } from '../page-objects/pages/about.po'; +import { CustomersPage } from '../page-objects/pages/customers.po'; +import { LoginPage } from '../page-objects/pages/login.po'; +import { MenuPage } from '../page-objects/pages/menu.po'; +import { TasksPage } from '../page-objects/pages/tasks.po'; + +describe('Login', () => { + const about = new AboutPage(); + const app = new AppPage(); + const customers = new CustomersPage(); + const login = new LoginPage(); + const menu = new MenuPage(); + const tasks = new TasksPage(); + + beforeEach(() => { + app.load(); + }); + + describe('before logged in', () => { + it('displays the login screen', () => { + expect(login.rootElement().isDisplayed()).toEqual(true); + }); + + it('allows in-app navigation to about', () => { + menu.clickAbout(); + about.waitUntilVisible(); + login.waitUntilInvisible(); + }); + + it('does not allow in-app navigation to tasks', () => { + menu.clickTasks(); + app.waitForPageNavigation(); + expect(login.rootElement().isDisplayed()).toEqual(true); + }); + + it('does not allow in-app navigation to customers', () => { + menu.clickCustomers(); + app.waitForPageNavigation(); + expect(login.rootElement().isDisplayed()).toEqual(true); + }); + + it('displays an error message if the login fails', () => { + login.enterEMail('test@test.com'); + login.enterPassword('bogus'); + login.clickSignIn(); + login.waitForError(); + expect(login.getErrorMessage()).toEqual('The password is invalid or the user does not have a password.'); + }); + + it('navigates to the tasks page if the login succeeds', () => { + login.enterEMail('test@test.com'); + login.enterPassword('testtest'); + login.clickSignIn(); + tasks.waitUntilVisible(); + }); + }); + + describe('once logged in', () => { + beforeEach(() => { + tasks.waitUntilVisible(); + }); + + it('allows navigation to the customers page', () => { + menu.clickCustomers(); + customers.waitUntilVisible(); + tasks.waitUntilInvisible(); + }); + + it('allows navigation to the about page', () => { + menu.clickAbout(); + about.waitUntilVisible(); + tasks.waitUntilInvisible(); + }); + + it('allows navigation back to the tasks page', () => { + menu.clickAbout(); + tasks.waitUntilInvisible(); + menu.clickTasks(); + tasks.waitUntilVisible(); + }); + }); +}); +``` + +### 設定 + +デフォルトの設定では、開発に使用される同じ `environment.ts` ファイルを使います。エンドツーエンドのテストで使用するデータをより適切に制御するには、テスト用の特定の環境を用意し、テストにその環境を使用すると便利なことが多いです。このセクションでは、この設定を作成する 1 つの方法を示します。 + +#### テスト環境 + +テスト環境を設定するには、テスト専用のバックエンドを使用する新しい環境ファイルを作成し、その環境を使うために `angular.json` ファイルを更新し、`package.json` 中の `e2e` スクリプトを `test` 環境を指定するように修正します。 + +##### `environment.e2e.ts` ファイルを生成 + +Angular の `environment.ts` と `environment.prod.ts` ファイルは、アプリケーションのバックエンドのデータサービスのベース URL などの情報を格納するために度々使用されます。また、同じ情報を提供する `environment.e2e.ts` を作成してください。これは、開発または本番のバックエンドサービスではなく、テスト専用のバックエンドサービスにのみ接続します。以下に例を示します: + +```tsx +export const environment = { + production: false, + databaseURL: 'https://e2e-test-api.my-great-app.com', + projectId: 'my-great-app-e2e', +}; +``` + +##### `angular.json` ファイルを修正 + +`angular.json` ファイルを使用するには、このファイルを修正する必要があります。これは階層化プロセスです。以下の XPath リストに従って、必要な設定を追加しましょう。 + +`/projects/app/architect/build/configurations` にファイルの置換を行う `test` という名前の設定を追加します: + +```json +"test": { + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.e2e.ts" + } + ] +} +``` + +`/projects/app/architect/serve/configurations` に、上記で定義した `test` というビルドの設定をブラウザターゲットに指定する `test` という名前の設定を追加します。 + +```json +"test": { + "browserTarget": "app:build:test" +} +``` + +`/projects/app-e2e/architect/e2e/configurations` に、上記で定義した `test` という起動設定で開発サーバーターゲットを指定する `test` という名前の設定を追加します。 + +```json +"test": { + "devServerTarget": "app:serve:test" +} +``` + +##### `package.json` ファイルを修正 + +`npm run e2e` が `test` の設定を使うように `package.json` ファイルを修正します。 + +```json +"scripts": { + "e2e": "ng e2e --configuration=test", + "lint": "ng lint", + "ng": "ng", + "start": "ng serve", + "test": "ng test", + "test:dev": "ng test --browsers=ChromeHeadlessCI", + "test:ci": "ng test --no-watch --browsers=ChromeHeadlessCI" +}, +``` + +#### テストクリーンアップ + +エンドツーエンドテストが何らかの方法でデータを変更する場合は、テストが完了したらデータを既知の状態に一度リセットすると便利です。そのための 1 つの方法は: + +1. クリーンアップを実行するエンドポイントを生成する。 +1. `protractor.conf.js` ファイルによってエクスポートされる `config` オブジェクトに `onCleanUp()` 関数を追加する + +次に例を示します: + +```javascript +onCleanUp() { + const axios = require('axios'); + return axios + .post( + 'https://e2e-test-api.my-great-app.com/purgeDatabase', + {} + ) + .then(res => { + console.log(res.data); + }) + .catch(err => console.log(err)); +} +``` diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/angular/virtual-scroll.md b/i18n/ja/docusaurus-plugin-content-docs/current/angular/virtual-scroll.md new file mode 100644 index 00000000000..3e239956e27 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/angular/virtual-scroll.md @@ -0,0 +1,133 @@ +# 仮想スクロール + +:::warning Looking for `ion-virtual-scroll`? + +`ion-virtual-scroll` was deprecated in v6.0.0 and removed in v7.0.0. We recommend using the `@angular/cdk` package detailed below. + +::: + +## Installation + +To setup the CDK Scroller, first install `@angular/cdk`: + +```shell +npm add @angular/cdk +``` + +This provides a collection of different utilities, but we'll focus on `ScrollingModule` for now. + +When we want to use the CDK Scroller, we'll need to import the module in our component. For example, in a tabs starter project, we can add our import to the `tabs1.module.ts` file. + +```diff + import { IonicModule } from '@ionic/angular'; + import { NgModule } from '@angular/core'; + import { CommonModule } from '@angular/common'; + import { FormsModule } from '@angular/forms'; + import { Tab1Page } from './tab1.page'; + import { ExploreContainerComponentModule } from '../explore-container/explore-container.module'; ++ import { ScrollingModule } from '@angular/cdk/scrolling'; + import { Tab1PageRoutingModule } from './tab1-routing.module'; + @NgModule({ + imports: [ + IonicModule, + CommonModule, + FormsModule, + ExploreContainerComponentModule, + Tab1PageRoutingModule, ++ ScrollingModule + ], + declarations: [Tab1Page] + }) + export class Tab1PageModule {} +``` + +With this added, we have access to the Virtual Scroller in the Tab1Page component. + +## Usage + +The CDK Virtual Scroller can be added to a component by adding the `cdk-virtual-scroll-viewport` to a component's template. + +```html + + + +``` + +`cdk-virtual-scroll-viewport` becomes the root of our scrollable content and is responsible for recycling DOM nodes as they scroll out of view. + +The DOM nodes at this point can be any content needed for an app. The difference is that when we want to iterate over a collection, `*cdkVirtualFor` is used instead of `*ngFor`. + +```html + + + + + + + + {{item }} + + + + +``` + +Here, `items` is an array, but it can be an array, `Observable`, or `DataSource`. `DataSource` is an abstract class that can provide the data needed as well as utility methods. For more details, check out the [CDK Virtual Scrolling docs](https://material.angular.io/cdk/scrolling/overview). + +The component is not complete yet as the `cdk-virtual-scroll-viewport` needs to know how big each node will be as well as the min/max buffer sizes. + +At the moment, CDK Virtual Scroller only supports fixed sized elements, but dynamic sized elements are planned for the future. For the `Tab1Page` component, since it is only rendering an item, it can be hard-coded to a fixed size. + +The min/max buffer size tells the scroller "render as many nodes as it takes to meet this minimum height, but not over this". + +```html + +``` + +For this case, the `cdk-virtual-scroll-viewport` will render cells at a height 56px until it reaches a height of 900px, but no more at 1350px. These numbers are arbitrary, so be sure to test out what values will work in a real use case. + +Putting everything together, the final HTML should look like: + +```html + + + + + + + + {{item }} + + + + +``` + +The last piece needed is a some CSS to size the viewport correctly. In the `tab1.page.scss` file, add the following + +```scss +cdk-virtual-scroll-viewport { + height: 100%; + width: 100%; +} +``` + +Since the viewport is built to fit various use cases, the default sizing is not set and is up to developers to set. + +## Usage with Ionic Components + +Ionic Framework requires that features such as collapsible large titles, `ion-infinite-scroll`, `ion-refresher`, and `ion-reorder-group` be used within an `ion-content`. To use these experiences with virtual scrolling, you must add the `.ion-content-scroll-host` class to the virtual scroll viewport. + +For example: + +```html + + + + + +``` + +## Further Reading + +This only covers a small portion of what the CDK Virtual Scroller is capable of. For more details, please see the [Angular CDK Virtual Scrolling docs](https://material.angular.io/cdk/scrolling/overview). diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app.md b/i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app.md new file mode 100644 index 00000000000..22a9b47a603 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app.md @@ -0,0 +1,182 @@ +--- +title: 'はじめてのIonicアプリ: Angular' +sidebar_label: はじめてのアプリ +--- + + + Build Your First Ionic Mobile App: Angular Development Tutorial + + + +Ionic の素晴らしいところは、1 つのコードベースで、使い慣れた Web ツールと言語を使用して任意のプラットフォーム用にビルドできることです。 Follow along as we learn the fundamentals of Ionic app development by creating a realistic app step by step. + +Here’s the finished app running on all 3 platforms: + + + +:::note +Looking for the previous version of this guide that covered Ionic 4 and Cordova? [See here.](../developer-resources/guides/first-app-v4/intro.md) +::: + +## What We'll Build + +We'll create a Photo Gallery app that offers the ability to take photos with your device's camera, display them in a grid, and store them permanently on the device. + +Highlights include: + +- One Angular-based codebase that runs on the web, iOS, and Android using Ionic Framework [UI components](https://ionicframework.com/docs/components). +- Deployed as a native iOS and Android mobile app using [Capacitor](https://capacitorjs.com), Ionic's official native app runtime. +- Photo Gallery functionality powered by the Capacitor [Camera](https://capacitorjs.com/docs/apis/camera), [Filesystem](https://capacitorjs.com/docs/apis/filesystem), and [Preferences](https://capacitorjs.com/docs/apis/preferences) APIs. + +Find the complete app code referenced in this guide [on GitHub](https://github.com/ionic-team/photo-gallery-capacitor-ng). + +## Download Required Tools + +Download and install these right away to ensure an optimal Ionic development experience: + +- **Node.js** for interacting with the Ionic ecosystem. [Download the LTS version here](https://nodejs.org/en/). +- **A code editor** for... writing code! We are fans of [Visual Studio Code](https://code.visualstudio.com/). +- **Command-line interface/terminal (CLI)**: + - **Windows** users: for the best Ionic experience, we recommend the built-in command line (cmd) or the Powershell + CLI, running in Administrator mode. + - **Mac/Linux** users, virtually any terminal will work. + +## Install Ionic Tooling + +Run the following in the command line terminal to install the Ionic CLI (`ionic`), `native-run`, used to run native binaries on devices and simulators/emulators, and `cordova-res`, used to generate native app icons and splash screens: + +:::note +To open a terminal in Visual Studio Code, go to Terminal -> New Terminal. +::: + +```shell +npm install -g @ionic/cli native-run cordova-res +``` + +:::note +The `-g` option means _install globally_. When packages are installed globally, `EACCES` permission errors can occur. + +Consider setting up npm to operate globally without elevated permissions. See [Resolving Permission Errors](../developing/tips.md#resolving-permission-errors) for more information. +::: + +## アプリの作成 + +次に、"Tabs" というアプリテンプレートを使用して Ionic Angular アプリを生成し、Native 機能を使うために Capacitor を追加します。 + +```shell +ionic start photo-gallery tabs --type=angular --capacitor +``` + +:::note + +`NgModules` と `Standalone` のどちらかを選択するプロンプトが表示されたら、このチュートリアルは `NgModules` のアプローチに従っているので、`NgModules` を選択する。 + +::: + +このスタータープロジェクトには、Ionic 開発のために事前に構成された 3 つのページとベストプラクティスが用意されています。共通の構成要素がすでに配置されているため、機能を簡単に追加できます! + +次に、アプリのフォルダに移動します: + +```shell +cd photo-gallery +``` + +Next we'll need to install the necessary Capacitor plugins to make the app's native functionality work: + +```shell +npm install @capacitor/camera @capacitor/preferences @capacitor/filesystem +``` + +### PWA Elements + +Some Capacitor plugins, including the Camera API, provide the web-based functionality and UI via the Ionic [PWA Elements library](https://github.com/ionic-team/ionic-pwa-elements). + +It's a separate dependency, so install it next: + +```shell +npm install @ionic/pwa-elements +``` + +Next, import `@ionic/pwa-elements` by editing `src/main.ts`. + +```tsx +import { defineCustomElements } from '@ionic/pwa-elements/loader'; + +// Call the element loader before the bootstrapModule/bootstrapApplication call +defineCustomElements(window); +``` + +That’s it! Now for the fun part - let’s see the app in action. + +## アプリを起動 + +次のコマンドを実行してください: + +```shell +ionic serve +``` + +And voilà! Your Ionic app is now running in a web browser. Most of your app can be built and tested right in the browser, greatly increasing development and testing speed. + +## Photo Gallery!!! + +There are three tabs. Click on the Tab2 tab. It’s a blank canvas, aka the perfect spot to transform into a Photo Gallery. The Ionic CLI features Live Reload, so when you make changes and save them, the app is updated immediately! + +![Animated GIF showing the live reload feature in an Ionic app, with changes in code immediately updating the app in a web browser.](/img/guides/first-app-cap-ng/email-photogallery.gif 'Live Reload Feature in Ionic App') + +Open the photo-gallery app folder in your code editor of choice, then navigate to `/src/app/tab2/tab2.page.html`. We see: + +```html + + + Tab 2 + + + + + + + Tab 2 + + + +``` + +`ion-header` represents the top navigation and toolbar, with "Tab 2" as the title (there are two of them due to iOS [Collapsible Large Title](https://ionicframework.com/docs/api/title#collapsible-large-titles) support). Rename both `ion-title` elements to: + +```html +Photo Gallery +``` + +We put the visual aspects of our app into ``. In this case, it’s where we’ll add a button that opens the device’s camera as well as displays the image captured by the camera. Start by adding a [floating action button](https://ionicframework.com/docs/api/fab) (FAB) to the bottom of the page and set the camera image as the icon. + +```html + + + + + + + +``` + +Next, open `src/app/tabs/tabs.page.html`. Change the label to “Photos” and the icon name to “images”: + +```html + + + Photos + +``` + +Save all changes to see them automatically applied in the browser. That’s just the start of all the cool things we can do with Ionic. Up next, implement camera taking functionality on the web, then build it for iOS and Android. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/2-taking-photos.md b/i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/2-taking-photos.md new file mode 100644 index 00000000000..efaa4f38961 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/2-taking-photos.md @@ -0,0 +1,134 @@ +--- +title: Taking Photos with the Camera +sidebar_label: カメラ撮影 +--- + + + Build Camera API for iOS, Android & Web | Ionic Capacitor Camera + + + +Now for the fun part - adding the ability to take photos with the device’s camera using the Capacitor [Camera API](https://capacitorjs.com/docs/apis/camera). We’ll begin with building it for the web, then make some small tweaks to make it work on mobile (iOS and Android). + +## Photo Service + +All Capacitor logic (Camera usage and other native features) will be encapsulated in a service class. Create `PhotoService` using the `ionic generate` command: + +```shell +ionic g service services/photo +``` + +Open the new `services/photo.service.ts` file, and let’s add the logic that will power the camera functionality. First, import Capacitor dependencies and get references to the Camera, Filesystem, and Storage plugins: + +```tsx +import { Camera, CameraResultType, CameraSource, Photo } from '@capacitor/camera'; +import { Filesystem, Directory } from '@capacitor/filesystem'; +import { Preferences } from '@capacitor/preferences'; +``` + +Next, define a new class method, `addNewToGallery`, that will contain the core logic to take a device photo and save it to the filesystem. Let’s start by opening the device camera: + +```tsx +public async addNewToGallery() { + // Take a photo + const capturedPhoto = await Camera.getPhoto({ + resultType: CameraResultType.Uri, + source: CameraSource.Camera, + quality: 100 + }); +} +``` + +Notice the magic here: there's no platform-specific code (web, iOS, or Android)! The Capacitor Camera plugin abstracts that away for us, leaving just one method call - `Camera.getPhoto()` - that will open up the device's camera and allow us to take photos. + +Next, open up `tab2.page.ts` and import the PhotoService class and add a method that calls the `addNewToGallery` method on the imported service: + +```tsx +import { PhotoService } from '../services/photo.service'; + +constructor(public photoService: PhotoService) { } + +addPhotoToGallery() { + this.photoService.addNewToGallery(); +} +``` + +Then, open `tab2.page.html` and call the `addPhotoToGallery()` function when the FAB is tapped/clicked: + +```html + + + + + + + +``` + +Save the file, and if it's not running already, restart the development server in your browser by running `ionic serve`. On the Photo Gallery tab, click the Camera button. If your computer has a webcam of any sort, a modal window appears. Take a selfie! + +![A photo gallery app displaying a webcam selfie.](/img/guides/first-app-cap-ng/camera-web.png 'Webcam Selfie in Photo Gallery') + +_(Your selfie is probably much better than mine)_ + +After taking a photo, it disappears right away. We need to display it within our app and save it for future access. + +## Displaying Photos + +Outside of the `PhotoService` class definition (the very bottom of the file), create a new interface, `UserPhoto`, to hold our photo metadata: + +```tsx +export interface UserPhoto { + filepath: string; + webviewPath?: string; +} +``` + +Back at the top of the file, define an array of Photos, which will contain a reference to each photo captured with the Camera. + +```tsx +export class PhotoService { + public photos: UserPhoto[] = []; + + // other code +} +``` + +Over in the `addNewToGallery` function, add the newly captured photo to the beginning of the Photos array. + +```tsx + const capturedPhoto = await Camera.getPhoto({ + resultType: CameraResultType.Uri, + source: CameraSource.Camera, + quality: 100 + }); + + this.photos.unshift({ + filepath: "soon...", + webviewPath: capturedPhoto.webPath! + }); +} +``` + +Next, move over to `tab2.page.html` so we can display the image on the screen. Add a [Grid component](https://ionicframework.com/docs/api/grid) so that each photo will display nicely as photos are added to the gallery, and loop through each photo in the `PhotoServices`'s Photos array, adding an Image component (``) for each. Point the `src` (source) at the photo’s path: + +```html + + + + + + + + + + + +``` + +Save all files. Within the web browser, click the Camera button and take another photo. This time, the photo is displayed in the Photo Gallery! + +Up next, we’ll add support for saving the photos to the filesystem, so they can be retrieved and displayed in our app at a later time. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/3-saving-photos.md b/i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/3-saving-photos.md new file mode 100644 index 00000000000..cf9b948c221 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/3-saving-photos.md @@ -0,0 +1,81 @@ +--- +sidebar_label: 写真の保存 +--- + +# Saving Photos to the Filesystem + +We’re now able to take multiple photos and display them in a photo gallery on the second tab of our app. These photos, however, are not currently being stored permanently, so when the app is closed, they will be deleted. + +## Filesystem API + +Fortunately, saving them to the filesystem only takes a few steps. Begin by creating a new class method, `savePicture()`, in the `PhotoService` class (`src/app/services/photo.service.ts`). We pass in the `photo` object, which represents the newly captured device photo: + +```tsx +private async savePicture(photo: Photo) { } +``` + +We can use this new method immediately in `addNewToGallery()`: + +```tsx +public async addNewToGallery() { + // Take a photo + const capturedPhoto = await Camera.getPhoto({ + resultType: CameraResultType.Uri, // file-based data; provides best performance + source: CameraSource.Camera, // automatically take a new photo with the camera + quality: 100 // highest quality (0 to 100) + }); + + // Save the picture and add it to photo collection + const savedImageFile = await this.savePicture(capturedPhoto); + this.photos.unshift(savedImageFile); +} +``` + +We’ll use the Capacitor [Filesystem API](https://capacitorjs.com/docs/apis/filesystem) to save the photo to the filesystem. To start, convert the photo to base64 format, then feed the data to the Filesystem’s `writeFile` function. As you’ll recall, we display each photo on the screen by setting each image’s source path (`src` attribute) in `tab2.page.html` to the webviewPath property. So, set it then return the new Photo object. + +```tsx +private async savePicture(photo: Photo) { + // Convert photo to base64 format, required by Filesystem API to save + const base64Data = await this.readAsBase64(photo); + + // Write the file to the data directory + const fileName = Date.now() + '.jpeg'; + const savedFile = await Filesystem.writeFile({ + path: fileName, + data: base64Data, + directory: Directory.Data + }); + + // Use webPath to display the new image instead of base64 since it's + // already loaded into memory + return { + filepath: fileName, + webviewPath: photo.webPath + }; +} +``` + +`readAsBase64()` is a helper function we’ll define next. It's useful to organize via a separate method since it requires a small amount of platform-specific (web vs. mobile) logic - more on that in a bit. For now, implement the logic for running on the web: + +```tsx +private async readAsBase64(photo: Photo) { + // Fetch the photo, read as a blob, then convert to base64 format + const response = await fetch(photo.webPath!); + const blob = await response.blob(); + + return await this.convertBlobToBase64(blob) as string; +} + +private convertBlobToBase64 = (blob: Blob) => new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.onerror = reject; + reader.onload = () => { + resolve(reader.result); + }; + reader.readAsDataURL(blob); +}); +``` + +Obtaining the camera photo as base64 format on the web appears to be a bit trickier than on mobile. In reality, we’re just using built-in web APIs: [fetch()](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) as a neat way to read the file into blob format, then FileReader’s [readAsDataURL()](https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL) to convert the photo blob to base64. + +There we go! Each time a new photo is taken, it’s now automatically saved to the filesystem. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/4-loading-photos.md b/i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/4-loading-photos.md new file mode 100644 index 00000000000..f2fc61b1fd1 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/4-loading-photos.md @@ -0,0 +1,69 @@ +--- +sidebar_label: 写真の読み込み +--- + +# Loading Photos from the Filesystem + +We’ve implemented photo taking and saving to the filesystem. There’s one last piece of functionality missing: the photos are stored in the filesystem, but we need a way to save pointers to each file so that they can be displayed again in the photo gallery. + +Fortunately, this is easy: we’ll leverage the Capacitor [Preferences API](https://capacitorjs.com/docs/apis/preferences) to store our array of Photos in a key-value store. + +## Preferences API + +Begin by defining a constant variable that will act as the key for the store: + +```tsx +export class PhotoService { + public photos: UserPhoto[] = []; + private PHOTO_STORAGE: string = 'photos'; + + // other code +} +``` + +Next, at the end of the `addNewToGallery` function, add a call to `Preferences.set()` to save the Photos array. By adding it here, the Photos array is stored each time a new photo is taken. This way, it doesn’t matter when the app user closes or switches to a different app - all photo data is saved. + +```tsx +Preferences.set({ + key: this.PHOTO_STORAGE, + value: JSON.stringify(this.photos), +}); +``` + +With the photo array data saved, create a function called `loadSaved()` that can retrieve that data. We use the same key to retrieve the photos array in JSON format, then parse it into an array: + +```tsx +public async loadSaved() { + // Retrieve cached photo array data + const { value } = await Preferences.get({ key: this.PHOTO_STORAGE }); + this.photos = (value ? JSON.parse(value) : []) as UserPhoto[]; + + // more to come... +} +``` + +On mobile (coming up next!), we can directly set the source of an image tag - `` - to each photo file on the Filesystem, displaying them automatically. On the web, however, we must read each image from the Filesystem into base64 format, using a new `base64` property on the `Photo` object. This is because the Filesystem API uses [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) under the hood. Below is the code you need to add in the `loadSaved()` function you just added: + +```tsx +// Display the photo by reading into base64 format +for (let photo of this.photos) { + // Read each saved photo's data from the Filesystem + const readFile = await Filesystem.readFile({ + path: photo.filepath, + directory: Directory.Data, + }); + + // Web platform only: Load the photo as base64 data + photo.webviewPath = `data:image/jpeg;base64,${readFile.data}`; +} +``` + +After, call this new method in `tab2.page.ts` so that when the user first navigates to Tab 2 (the Photo Gallery), all photos are loaded and displayed on the screen. + +```tsx +async ngOnInit() { + await this.photoService.loadSaved(); +} +``` + +That’s it! We’ve built a complete Photo Gallery feature in our Ionic app that works on the web. Next up, we’ll transform it into a mobile app for iOS and Android! diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/5-adding-mobile.md b/i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/5-adding-mobile.md new file mode 100644 index 00000000000..16235a008a4 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/5-adding-mobile.md @@ -0,0 +1,117 @@ +--- +strip_number_prefixes: false +--- + +# モバイルデバイス機能の追加 + +Our photo gallery app won’t be complete until it runs on iOS, Android, and the web - all using one codebase. All it takes is some small logic changes to support mobile platforms, installing some native tooling, then running the app on a device. Let’s go! + +## Import Platform API + +Let’s start with making some small code changes - then our app will “just work” when we deploy it to a device. + +Import the Ionic [Platform API](https://ionicframework.com/docs/angular/platform) into `photo.service.ts`, which is used to retrieve information about the current device. In this case, it’s useful for selecting which code to execute based on the platform the app is running on (web or mobile): + +```tsx +import { Platform } from '@ionic/angular'; + +export class PhotoService { + public photos: UserPhoto[] = []; + private PHOTO_STORAGE: string = 'photos'; + private platform: Platform; + + constructor(platform: Platform) { + this.platform = platform; + } + + // other code +} +``` + +## Platform-specific Logic + +First, we’ll update the photo saving functionality to support mobile. In the `readAsBase64()` function, check which platform the app is running on. If it’s “hybrid” (Capacitor or Cordova, two native runtimes), then read the photo file into base64 format using the Filesystem `readFile()` method. Otherwise, use the same logic as before when running the app on the web: + +```tsx +private async readAsBase64(photo: Photo) { + // "hybrid" will detect Cordova or Capacitor + if (this.platform.is('hybrid')) { + // Read the file into base64 format + const file = await Filesystem.readFile({ + path: photo.path! + }); + + return file.data; + } + else { + // Fetch the photo, read as a blob, then convert to base64 format + const response = await fetch(photo.webPath!); + const blob = await response.blob(); + + return await this.convertBlobToBase64(blob) as string; + } +} +``` + +Next, update the `savePicture()` method. When running on mobile, set `filepath` to the result of the `writeFile()` operation - `savedFile.uri`. When setting the `webviewPath`, use the special `Capacitor.convertFileSrc()` method ([details here](https://ionicframework.com/docs/core-concepts/webview#file-protocol)). + +```tsx +// Save picture to file on device +private async savePicture(photo: Photo) { + // Convert photo to base64 format, required by Filesystem API to save + const base64Data = await this.readAsBase64(photo); + + // Write the file to the data directory + const fileName = Date.now() + '.jpeg'; + const savedFile = await Filesystem.writeFile({ + path: fileName, + data: base64Data, + directory: Directory.Data + }); + + if (this.platform.is('hybrid')) { + // Display the new image by rewriting the 'file://' path to HTTP + // Details: https://ionicframework.com/docs/building/webview#file-protocol + return { + filepath: savedFile.uri, + webviewPath: Capacitor.convertFileSrc(savedFile.uri), + }; + } + else { + // Use webPath to display the new image instead of base64 since it's + // already loaded into memory + return { + filepath: fileName, + webviewPath: photo.webPath + }; + } +} +``` + +Next, head back over to the `loadSaved()` function we implemented for the web earlier. On mobile, we can directly set the source of an image tag - `` - to each photo file on the Filesystem, displaying them automatically. Thus, only the web requires reading each image from the Filesystem into base64 format. Update this function to add an _if statement_ around the Filesystem code: + +```tsx +public async loadSaved() { + // Retrieve cached photo array data + const { value } = await Preferences.get({ key: this.PHOTO_STORAGE }); + this.photos = (value ? JSON.parse(value) : []) as UserPhoto[]; + + // Easiest way to detect when running on the web: + // “when the platform is NOT hybrid, do this” + if (!this.platform.is('hybrid')) { + // Display the photo by reading into base64 format + for (let photo of this.photos) { + // Read each saved photo's data from the Filesystem + const readFile = await Filesystem.readFile({ + path: photo.filepath, + directory: Directory.Data + }); + + // Web platform only: Load the photo as base64 data + photo.webviewPath = `data:image/jpeg;base64,${readFile.data}`; + } + } +} +``` + +Our Photo Gallery now consists of one codebase that runs on the web, Android, and iOS. Next up, the part you’ve been waiting for - deploying the app to a device. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/6-deploying-mobile.md b/i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/6-deploying-mobile.md new file mode 100644 index 00000000000..06ae7100d8f --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/6-deploying-mobile.md @@ -0,0 +1,114 @@ +--- +title: Deploying to iOS and Android +sidebar_label: モバイルへのデプロイ +--- + + + Deploying to iOS and Android Apps - Capacitor Setup on Ionic + + + +Since we added Capacitor to our project when it was first created, there’s only a handful of steps remaining until the Photo Gallery app is on our device! Remember, you can find the complete source code for this app [here](https://github.com/ionic-team/photo-gallery-capacitor-ng). + +## Capacitor Setup + +Capacitor is Ionic’s official app runtime that makes it easy to deploy web apps to native platforms like iOS, Android, and more. If you’ve used Cordova in the past, consider reading more about the differences [here](https://capacitorjs.com/docs/cordova#differences-between-capacitor-and-cordova). + +If you’re still running `ionic serve` in the terminal, cancel it. Complete a fresh build of your Ionic project, fixing any errors that it reports: + +```shell +ionic build +``` + +Next, create both the iOS and Android projects: + +```shell +$ ionic cap add ios +$ ionic cap add android +``` + +Both android and ios folders at the root of the project are created. These are entirely standalone native projects that should be considered part of your Ionic app (i.e., check them into source control, edit them using their native tooling, etc.). + +Every time you perform a build (e.g. `ionic build`) that updates your web directory (default: `www`), you'll need to copy those changes into your native projects: + +```shell +ionic cap copy +``` + +Note: After making updates to the native portion of the code (such as adding a new plugin), use the `sync` command: + +```shell +ionic cap sync +``` + +## iOS Deployment + +:::note +To build an iOS app, you’ll need a Mac computer. +::: + +Capacitor iOS apps are configured and managed through Xcode (Apple’s iOS/Mac IDE), with dependencies managed by [CocoaPods](https://cocoapods.org/). Before running this app on an iOS device, there's a couple of steps to complete. + +First, run the Capacitor `open` command, which opens the native iOS project in Xcode: + +```shell +ionic cap open ios +``` + +In order for some native plugins to work, user permissions must be configured. In our photo gallery app, this includes the Camera plugin: iOS displays a modal dialog automatically after the first time that `Camera.getPhoto()` is called, prompting the user to allow the app to use the Camera. The permission that drives this is labeled “Privacy - Camera Usage.” To set it, the `Info.plist` file must be modified ([more details here](https://capacitorjs.com/docs/ios/configuration)). To access it, click "Info," then expand "Custom iOS Target Properties." + +![The Info.plist file in Xcode showing the NSCameraUsageDescription key added for camera access.](/img/guides/first-app-cap-ng/xcode-info-plist.png 'Xcode Info.plist Configuration') + +Each setting in `Info.plist` has a low-level parameter name and a high-level name. By default, the property list editor shows the high-level names, but it's often useful to switch to showing the raw, low-level names. To do this, right-click anywhere in the property list editor and toggle "Raw Keys/Values." + +Add the `NSCameraUsageDescription` Key and set the Value to something that describes why the app needs to use the camera, such as "To Take Photos." The Value field is displayed to the app user when the permission prompt opens. + +Follow the same process to add the other two Keys required of the Camera plugin: `NSPhotoLibraryAddUsageDescription` and `NSPhotoLibraryUsageDescription`. + +Next, click on `App` in the Project Navigator on the left-hand side, then within the `Signing & Capabilities` section, select your Development Team. + +![The Xcode interface displaying the Signing and Capabilities tab for an iOS app project.](/img/guides/first-app-cap-ng/xcode-signing.png 'Xcode Signing & Capabilities') + +With permissions in place and Development Team selected, we are ready to try out the app on a real device! Connect an iOS device to your Mac computer, select it (`App -> Matthew’s iPhone` for me) then click the "Build" button to build, install, and launch the app on your device: + +![Xcode toolbar highlighting the Build button used to compile and run an iOS app.](/img/guides/first-app-cap-ng/xcode-build-button.png 'Xcode Build Button') + +Upon tapping the Camera button on the Photo Gallery tab, the permission prompt will display. Tap OK, then take a picture with the Camera. Afterward, the photo shows in the app! + +![Two iPhones side by side, one showing the camera permission prompt and the other displaying a photo taken with the app.](/img/guides/first-app-cap-ng/ios-permissions-photo.png 'iOS Camera Permission Prompt and Photo Result') + +## Android Deployment + +Capacitor Android apps are configured and managed through Android Studio. Before running this app on an Android device, there's a couple of steps to complete. + +First, run the Capacitor `open` command, which opens the native Android project in Android Studio: + +```shell +ionic cap open android +``` + +Similar to iOS, we must enable the correct permissions to use the Camera. Configure these in the `AndroidManifest.xml` file. Android Studio will likely open this file automatically, but in case it doesn't, locate it under `android/app/src/main/`. + +![Android Studio editor showing the AndroidManifest.xml file with camera permissions.](/img/guides/first-app-cap-ng/android-manifest.png 'Android Manifest Permissions') + +Scroll to the `Permissions` section and ensure these entries are included: + +```xml + + +``` + +Save the file. With permissions in place, we are ready to try out the app on a real device! Connect an Android device to your computer. Within Android Studio, click the "Run" button, select the attached Android device, then click OK to build, install, and launch the app on your device. + +![The Android Studio interface with arrows pointing to the Run button and the connected device.](/img/guides/first-app-cap-ng/android-device.png 'Android Studio Run Configuration') + +Once again, upon tapping the Camera button on the Photo Gallery tab, the permission prompt should be displayed. Tap OK, then take a picture with the Camera. Afterward, the photo should appear in the app. + +![Two Android phones side by side, one showing the camera permission prompt and the other displaying a photo taken with the app.](/img/guides/first-app-cap-ng/android-permissions-photo.png 'Android Permissions and Photo Capture') + +Our Photo Gallery app has just been deployed to Android and iOS devices. 🎉 + +In the next portion of this tutorial, we’ll use the Ionic CLI’s Live Reload functionality to quickly implement photo deletion - thus completing our Photo Gallery feature. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/7-live-reload.md b/i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/7-live-reload.md new file mode 100644 index 00000000000..484feddcc0f --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/7-live-reload.md @@ -0,0 +1,114 @@ +--- +title: アプリ開発を高速化するためのライブリロード +sidebar_label: ライブリロード +--- + + + + + +So far, we’ve seen how easy it is to develop a cross-platform app that works everywhere. The development experience is pretty quick, but what if I told you there was a way to go faster? + +We can use the Ionic CLI’s [Live Reload functionality](https://ionicframework.com/docs/cli/livereload) to boost our productivity when building Ionic apps. When active, Live Reload will reload the browser and/or WebView when changes in the app are detected. + +## Live Reload + +Remember `ionic serve`? That was Live Reload working in the browser, allowing us to iterate quickly. + +We can also use it when developing on iOS and Android devices. This is particularly useful when writing code that interacts with native plugins - we must run it on a device to verify that it works. Therefore, being able to quickly write, build, test, and deploy code is crucial to keeping up our development speed. + +Let’s use Live Reload to implement photo deletion, the missing piece of our Photo Gallery feature. Select your platform of choice (iOS or Android) and connect a device to your computer. Next, run either command in a terminal, based on your chosen platform: + +```shell +$ ionic cap run ios -l --external + +$ ionic cap run android -l --external +``` + +The Live Reload server will start up, and the native IDE of choice will open if not opened already. Within the IDE, click the Play button to launch the app onto your device. + +## Deleting Photos + +With Live Reload running and the app open on your device, let’s implement photo deletion functionality. Open `tab2.page.html` and add a new click handler to each `` element. When the app user taps on a photo in our gallery, we’ll display an [Action Sheet](https://ionicframework.com/docs/api/action-sheet) dialog with the option to either delete the selected photo or cancel (close) the dialog. + +```html + + + +``` + +Over in `tab2.page.ts`, import Action Sheet and add it to the constructor: + +```tsx +import { ActionSheetController } from '@ionic/angular'; + +constructor(public photoService: PhotoService, + public actionSheetController: ActionSheetController) {} +``` + +Add `UserPhoto` to the import statement. + +```tsx +import { PhotoService, UserPhoto } from '../services/photo.service'; +``` + +Next, implement the `showActionSheet()` function. We add two options: `Delete` that calls PhotoService’s `deletePicture()` function (to be added next) and `Cancel`, which when given the role of “cancel” will automatically close the action sheet: + +```tsx +public async showActionSheet(photo: UserPhoto, position: number) { + const actionSheet = await this.actionSheetController.create({ + header: 'Photos', + buttons: [{ + text: 'Delete', + role: 'destructive', + icon: 'trash', + handler: () => { + this.photoService.deletePicture(photo, position); + } + }, { + text: 'Cancel', + icon: 'close', + role: 'cancel', + handler: () => { + // Nothing to do, action sheet is automatically closed + } + }] + }); + await actionSheet.present(); +} +``` + +Save both of the files we just edited. The Photo Gallery app will reload automatically, and now when we tap on one of the photos in the gallery, the action sheet displays. Tapping “Delete” doesn’t do anything yet, so head back into your code editor. + +In `src/app/services/photo.service.ts`, add the `deletePicture()` function: + +```tsx +public async deletePicture(photo: UserPhoto, position: number) { + // Remove this photo from the Photos reference data array + this.photos.splice(position, 1); + + // Update photos array cache by overwriting the existing photo array + Preferences.set({ + key: this.PHOTO_STORAGE, + value: JSON.stringify(this.photos) + }); + + // delete photo file from filesystem + const filename = photo.filepath + .substr(photo.filepath.lastIndexOf('/') + 1); + + await Filesystem.deleteFile({ + path: filename, + directory: Directory.Data + }); +} +``` + +The selected photo is removed from the Photos array first. Then, we use the Capacitor Preferences API to update the cached version of the Photos array. Finally, we delete the actual photo file itself using the Filesystem API. + +Save this file, then tap on a photo again and choose the “Delete” option. This time, the photo is deleted! Implemented much faster using Live Reload. 💪 + +In the final portion of this tutorial, we’ll walk you through the basics of the Appflow product used to build and deploy your application to users' devices. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/8-distribute.md b/i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/8-distribute.md new file mode 100644 index 00000000000..65ef475f6be --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/angular/your-first-app/8-distribute.md @@ -0,0 +1,100 @@ +--- +sidebar_label: Distribute +--- + +# Build and Deploy your App + +Now that you have built your first app, you are going to want to get it distributed so everyone can start using it. The mechanics of building and deploying your application can be quite cumbersome. That is where [Appflow](https://ionic.io/docs/appflow/) comes into play. Appflow allows you to effectively generate web and native builds, push out live app updates, publish your app to the app stores, and automate the whole process. The entire Quickstart guide can be found [here](https://ionic.io/docs/appflow/quickstart). + +Below we will run through an overview of the steps. + +## Connect Your Repo + +Appflow works directly with Git version control and uses your existing code base as the source of truth for Deploy and Package builds. You will first need to integrate with your hosting service, such as GitHub or Bitbucket, or you can push your code directly to Appflow. Once this is completed, Appflow will have access to your code. + +For more on connecting your code repository to Appflow, checkout the [Connect your Repo](https://ionic.io/docs/appflow/quickstart/connect) section inside the Appflow docs. + +## Install the Appflow SDK + +The Appflow SDK (also known as Ionic Deploy plugin) will allow you to take advantage of arguably two of the best Appflow features: deploying live updates to your app and bypassing the app stores. Ionic Appflow's Live Update feature is shipped with Appflow SDK and features the capabilities of detecting and syncing the updates for your app that you have pushed to your identified channels within the dashboard. + +To get the Appflow SDK plugin added to your project, you can follow the install instructions within the Appflow Dashboard by clicking on "Install Instructions" inside of the `Deploy > Destinations` section. Alternatively, you can install the plugin manually by executing the following command in your app's root directory: + +```shell +ionic deploy add \ + --app-id="YOUR_APP_ID" \ + --channel-name="YOUR_CHANNEL_NAME" \ + --update-method="background|auto|none" \ +``` + +For prerequisite and additional instructions on installing the Appflow SDK, visit the [Install the Appflow SDK](https://ionic.io/docs/appflow/quickstart/installation) section inside the Appflow docs. + +## Push a Commit + +In order for Appflow to access the latest and greatest changes to your code, you will need to push a commit via the version control integration of your choosing. For those that use GitHub or Bitbucket, this would look as follows: + +```shell +git add . # stage any changes +git commit -m "added appflow sdk" # commit staged changes +git push origin main # push the changes from the main branch to your git host +``` + +After the push is made, you will then see your commit under the `Commits` tab of the Appflow Dashboard. For more on this, take a look at the [Push a Commit](https://ionic.io/docs/appflow/quickstart/push) section inside the Appflow docs. + +## Deploy a Live Update + +With the Appflow SDK installed and your commit pushed up to the Dashboard, you are ready to deploy a live update to a device. The Live Update feature uses the installed Appflow SDK with your native application to listen to a particular Deploy Channel Destination. When a live update is assigned to a Channel Destination, that update will be deployed to user devices running binaries that are configured to listen to that specific Channel Destination. + +To get the live update deployed, a Web build will need to be created. This can be done through the `Start build` icon from the `Commits` tab or by clicking the `New build` button in the top right corner of the `Build > Builds` tab. After selecting the correct commit to deploy, select the `Web` target platform and the `Latest` build stack. Depending on your Appflow plan, you will then be able to include custom environments, if any are configured. Finally, you can enable `Live Update` and pick the Channel to automatically assign the build to once it successfully completes. + +Upon completion of the Web Build, additional versioning options are available to you. After completing this section and you have a successful Deploy build, you can then assign it to the same Channel you configured the Appflow SDK to listen to when you installed it by clicking the `Deploy live updates` button in the build detail page. The same can be done by clicking the `Deploy live updates` icon on the build in the `Build > Builds` tab and select the Channel from the dropdown. + +To receive this live update, you will need to run the app on a device or an emulator. The quickest and easiest way to do this is through the following command: + +```shell +ionic [cordova | cap] run [ios | android] [options] +``` + +Assuming the app is configured correctly to listen to the channel you deployed to, the app should immediately update on startup if you have chosen the auto update method during setup. If the background update method was chosen, be sure to stay in the app for about 30 seconds to ensure the update was downloaded. Then, close the application, reopen it, and you will see the updates applied! + +To dive into more details on the steps to deploy a live update, as well as additional information such as disabling deploy for development, check out the [Deploy a Live Update](https://ionic.io/docs/appflow/quickstart/deploy) section inside the Appflow docs. + +## Build a Native Binary + +Next up is a native binary for your app build and deploy process. This is done via the [Ionic Package](https://ionic.io/docs/appflow/package/intro) service. First things first, you will need to create a [Package build](https://ionic.io/docs/appflow/package/builds). This can be done by clicking the `Start build` icon from the `Commits` tab or by clicking the `New build` button in the top right from the `Build > Builds` tab. Then you will select the proper commit for your build and fill in all of the several required fields and any optional fields that you want to specify. After filling in all of the information and the build begins, you can check out it's progress and review the logs if you encounter any errors. + +Given a successful Package build, an iOS binary (`.ipa` or IPA) or/and an Android binary (`.apk` or APK) file becomes available to you. The file can subsequently be downloaded so you can install it on a device by clicking the file name in the `Artifacts` section in the right of the build detail page or clicking the `Download IPA/APK` icon on the build in the `Build > Builds` tab. + +Further information regarding building native binaries can be found inside of the [Build a Native Binary](https://ionic.io/docs/appflow/quickstart/package) section inside the Appflow docs. + +## Create an Automation + +[Automations](https://ionic.io/docs/appflow/automation/intro) enable you and your team to utilize the full CI/CD powers of Appflow. You can create automations that trigger [Package builds](https://ionic.io/docs/appflow/package/builds) and [Deploy builds](https://ionic.io/docs/appflow/deploy/builds) every time your team commits new code to a given branch. The automations can also be configured to use different environments and native configurations for building different versions of your app for development, staging, QA and production. + +For more information, visit the [Create an Automation](https://ionic.io/docs/appflow/quickstart/automation) section within the Appflow docs. There you will see details on creating a single automation. However, you can create multiple automations for different branches or workflows and customize them to fit your needs. An important note is that the ability to create an automation is available for those on our [Basic plans](https://ionic.io/pricing) and above. + +## Create an Environment + +[Package builds](https://ionic.io/docs/appflow/package/builds) and [Deploy builds](https://ionic.io/docs/appflow/deploy/builds) can be further customized via [Environments](https://ionic.io/docs/appflow/automation/environments). This powerful feature allows you to create different configurations based on the environment variables passed in at build time. When combined with the [Automation](https://ionic.io/docs/appflow/automation/intro) feature, development teams can easily configure development, staging, and production build configurations, allowing them to embrace DevOps best practices and ship better quality updates faster than ever. + +Creating an Environment is available for those on our [Basic plans](https://ionic.io/pricing) and above. More information on this can be found in the [Create an Environment](https://ionic.io/docs/appflow/quickstart/environment) section within the Appflow docs. + +## Create a Native Configuration + +[Native Configurations](https://ionic.io/docs/appflow/package/native-configs) allow you to easily modify common configuration values that can change between different environments (development, production, staging, etc.) so you do not need to use extra logic or manually commit them to version control. Native configurations can be attached to any [Package build](https://ionic.io/docs/appflow/package/intro) or [Automation](https://ionic.io/docs/appflow/automation/intro). + +Native configs can be used to: + +- Overwrite the unique bundle identifier or [id attribute](https://cordova.apache.org/docs/en/latest/config_ref/#widget) in `config.xml` +- Overwrite the App Name as it will appear on the home screen of a device +- Overwrite the [Appflow SDK (Deploy Plugin) variables and preferences](https://ionic.io/docs/appflow/deploy/api#plugin-variables) + +For access to the ability to create a Native Configuration, you will need to be on our [Basic plans](https://ionic.io/pricing) and above. Additional details of this feature can be found in the [Create a Native Configuration](https://ionic.io/docs/appflow/quickstart/native-config) section within the Appflow docs. + +## What’s Next? + +Congratulations! You developed a complete cross-platform Photo Gallery app that runs on the web, iOS, and Android. Not only that, you have also then built the app and deployed it to your users devices! + +There are many paths to follow from here. Try adding another [Ionic UI component](https://ionicframework.com/docs/components) to the app, or more [native functionality](https://capacitorjs.com/docs/apis). The sky’s the limit. Once you have added another feature, run the build and deploy process again through Appflow to get it out to your users. + +Happy app building! 💙 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/api.md b/i18n/ja/docusaurus-plugin-content-docs/current/api.md new file mode 100644 index 00000000000..01b482ea210 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/api.md @@ -0,0 +1,17 @@ +--- +title: APIインデックス +--- + +import APIList from '@components/page/api/APIList'; + + + API Index | API カスタム要素の Ionic Docs API Index + + + +各 Ionic の [コンポーネント](/docs/components) は、1 つ以上の [カスタム要素](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements) から構成されます。各カスタム要素は順番に、プロパティ、メソッド、イベント、および CSS カスタムプロパティを公開できます。 + + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/api/accordion-group.md b/i18n/ja/docusaurus-plugin-content-docs/current/api/accordion-group.md new file mode 100644 index 00000000000..be0d80eba1b --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/api/accordion-group.md @@ -0,0 +1,59 @@ +--- +title: "ion-accordion-group" +--- +import Props from '@ionic-internal/component-api/v8/accordion-group/props.md'; +import Events from '@ionic-internal/component-api/v8/accordion-group/events.md'; +import Methods from '@ionic-internal/component-api/v8/accordion-group/methods.md'; +import Parts from '@ionic-internal/component-api/v8/accordion-group/parts.md'; +import CustomProps from '@ionic-internal/component-api/v8/accordion-group/custom-props.mdx'; +import Slots from '@ionic-internal/component-api/v8/accordion-group/slots.md'; + +import EncapsulationPill from '@components/page/api/EncapsulationPill'; + + + +アコーディオン・グループは、アコーディオンインスタンスのためのコンテナです。これは、アコーディオンの状態を管理し、キーボードナビゲーションを提供します。 + +より詳細な情報や使用方法については、 [Accordion](./accordion) を参照ください。 + + +## Interfaces + +### AccordionGroupChangeEventDetail + +```typescript +interface AccordionGroupChangeEventDetail { + value: T; +} +``` + +### AccordionGroupCustomEvent + +必須ではありませんが、このコンポーネントから発行される Ionic イベントでより強く型付けを行うために、`CustomEvent` インターフェースの代わりにこのインターフェースを使用することが可能です。 + +```typescript +interface AccordionGroupCustomEvent extends CustomEvent { + detail: AccordionGroupChangeEventDetail; + target: HTMLIonAccordionGroupElement; +} +``` + + + +## プロパティ + + +## イベント + + +## メソッド + + +## CSS Shadow Parts + + +## CSSカスタムプロパティ + + +## Slots + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/api/accordion.md b/i18n/ja/docusaurus-plugin-content-docs/current/api/accordion.md new file mode 100644 index 00000000000..a60f352a68b --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/api/accordion.md @@ -0,0 +1,217 @@ +--- +title: "ion-accordion" +--- +import Props from '@ionic-internal/component-api/v8/accordion/props.md'; +import Events from '@ionic-internal/component-api/v8/accordion/events.md'; +import Methods from '@ionic-internal/component-api/v8/accordion/methods.md'; +import Parts from '@ionic-internal/component-api/v8/accordion/parts.md'; +import CustomProps from '@ionic-internal/component-api/v8/accordion/custom-props.mdx'; +import Slots from '@ionic-internal/component-api/v8/accordion/slots.md'; + + + ion-accordion: Accordion Components: How to Build & Examples + + + +import EncapsulationPill from '@components/page/api/EncapsulationPill'; + + + + +アコーディオンは、情報を整理してグループ化する方法を提供しながら、垂直方向のスペースを減らすために、コンテンツに折り畳み可能なセクションを提供します。すべての `ion-accordion` コンポーネントは `ion-accordion-group` コンポーネントの中にグループ化されている必要があります。 + +## 基本的な使い方 + +import Basic from '@site/static/usage/v8/accordion/basic/index.md'; + + + +## アコーディオンをトグルする方法 + +どのアコーディオンを開くかは、`ion-accordion-group` の `value` プロパティを設定することで制御できます。このプロパティを設定することで、開発者はプログラムによって特定のアコーディオンを展開したり折りたたんだりすることができます。 + +import Toggle from '@site/static/usage/v8/accordion/toggle/index.md'; + + + +## アコーディオンの状態変化を監視 + +:::caution +[Input](./input) や [Textarea](./textarea) などの他のコンポーネントが発する `ionChange` イベントのほとんどはバブル化されます。その結果、アコーディオンの中で関連コンポーネントが使用されている場合、これらのイベントはバブルアップし、アコーディオングループの `ionChange` リスナーを発火させます。 + +アコーディオンの内部で `ionChange` を発する他のコンポーネントを使用する場合は、アコーディオングループの `ionChange` コールバックに、コールバックに渡されたイベントの `target` キーをチェックさせ、`ionChange` がアコーディオングループからのものであり、子孫からのものでないことを確認することをお勧めします。 +::: + +開発者は `ionChange` イベントをリッスンして、アコーディオンが展開または折りたたまれたときに通知を受けることができます。 + +import ListenChanges from '@site/static/usage/v8/accordion/listen-changes/index.md'; + + + +## 複数のアコーディオン + +開発者は `multiple` プロパティを使用して、複数のアコーディオンを一度に開くことができるようにすることができます。 + +import Multiple from '@site/static/usage/v8/accordion/multiple/index.md'; + + + +## アコーディオンの無効化 + +### アコーディオンを無効にする + +個々のアコーディオンは、`ion-accordion` の `disabled` プロパティで無効にできます。 + +import DisableIndividual from '@site/static/usage/v8/accordion/disable/individual/index.md'; + + + +### アコーディオングループ + +アコーディオングループは、`ion-accordion-group` の `disabled` プロパティで無効にすることができます。 + +import DisableGroup from '@site/static/usage/v8/accordion/disable/group/index.md'; + + + +## 読み込み可能なアコーディオン + +### 個別アコーディオン + +個々のアコーディオンは、`ion-accordion` の `readonly` プロパティで無効にできます。 + +import ReadonlyIndividual from '@site/static/usage/v8/accordion/readonly/individual/index.md'; + + + +### アコーディオングループ + +アコーディオングループは、`ion-accordion-group` の `readonly` プロパティで無効にできます。 + +import ReadonlyGroup from '@site/static/usage/v8/accordion/readonly/group/index.md'; + + + +## 構造 + +## ヘッダー + +`header` slotは、アコーディオンを展開または折りたたむためのトグルとして使用されます。アクセシビリティとテーマ機能を利用するために、ここでは `ion-item` を使用することをお勧めします。 + +`header` slotに `ion-item` を使用する場合、 `ion-item` の `button` プロパティは `true` に、 `detail` プロパティは `false` に設定されます。さらに、`ion-item` にはトグルアイコンも自動的に追加されます。このアイコンは、アコーディオンを展開したり折りたたんだりすると、自動的に回転するようになります。詳しくは、 [アイコンのカスタマイズ](#icons) を参照してください。 + +### コンテンツ + +`content` slotは、アコーディオンの状態に応じて表示/非表示される部分として使用されます。1ページに1つだけ `ion-content` インスタンスを追加する必要があるため、ここには他の `ion-content` インスタンスを除いて何でも置くことができます。 + +## カスタマイズ + +### 拡張スタイル + +組み込みの拡張スタイルには、`compact` と `inset` の 2 種類があります。この拡張スタイルは `ion-accordion-group` の `expand` プロパティによって設定されます。 + +`expand="inset"` の場合、アコーディオングループにはborder radiusが与えられます。 `md` モードでは、アコーディオン全体を開くと下に移動します。 + +import ExpansionStyles from '@site/static/usage/v8/accordion/customization/expansion-styles/index.md'; + + + +### 高度な拡張スタイル + +アコーディオンの状態に応じてスタイルを設定することで、展開の動作をカスタマイズすることができます。 `ion-accordion` には4つのステートクラスが適用されています。これらのクラスを使ってスタイリングすることで、高度な状態遷移を作成することができます。 + +| Class Name | Description | +| ---------- |-----------------------------------| +| `.accordion-expanding` | アコーディオンがアクティブに展開しているときに適用されます。 | +| `.accordion-expanded` | アコーディオンが完全に展開されたときに適用されます。 | +| `.accordion-collapsing` | アコーディオンがアクティブに折りたたまれているときに適用されます。 | +| `.accordion-collapsed` | アコーディオンが完全に折りたたまれているときに適用されます。 | + +アコーディオンの特定の部分をターゲットにする必要がある場合、要素を直接ターゲットにすることをお勧めします。例えば、アコーディオンが展開されたときに `header` slot の ion-item をカスタマイズしたい場合、以下のセレクタを使用することができます。 + +```css +ion-accordion.accordion-expanding ion-item[slot="header"], +ion-accordion.accordion-expanded ion-item[slot="header"] { + --color: red; +} +``` + +import AdvancedExpansionStyles from '@site/static/usage/v8/accordion/customization/advanced-expansion-styles/index.md'; + + + +### アイコン + +`header` slot に `ion-item` を使用する場合、自動的に `ion-icon` が追加されます。使用するアイコンの種類は `toggleIcon` プロパティで制御でき、追加するスロットも `toggleIconSlot` プロパティで制御することができます。 + +アイコンを自分で管理したい場合や、`ion-icon` 以外のアイコンを使用したい場合は、icon 要素に `ion-accordion-toggle-icon` クラスを追加することができます。 + +どのオプションを選択しても、アコーディオンを展開または折りたたむと、アイコンは自動的に回転します。 + +import Icons from '@site/static/usage/v8/accordion/customization/icons/index.md'; + + + +### テーマ + +`ion-accordion` はヘッダーとコンテンツ要素を囲むシェルとして機能するので、アコーディオンを簡単に好きなようにテーマ化することができます。ヘッダーのテーマは、スロットの `ion-item` をターゲットにすることで行うことができます。 `ion-item` を使用しているので、 [ion-item CSS Variables](./item#css-custom-properties) と [ion-item Shadow Parts](./item#css-shadow-parts) にもすべてアクセスすることができます。コンテンツのテイムも、`content` slotにある要素をターゲットにすることで簡単に実現できます。 + +import Theming from '@site/static/usage/v8/accordion/customization/theming/index.md'; + + + +## アクセシビリティ + +### アニメーション + +デフォルトでは、アコーディオン・アイテムを展開したり折りたたんだりする際にアニメーションが有効になります。アニメーションは `prefers-reduced-motion` メディアクエリがサポートされ、`reduce` に設定されると自動的に無効化されます。対応していないブラウザでは、Ionic Frameworkアプリで `animated` を設定することで、アニメーションを無効にすることができます。 + +import AccessibilityAnimations from '@site/static/usage/v8/accordion/accessibility/animations/index.md'; + + + +### キーボードインタラクション + +`ion-accordion-group` の中で使用する場合、`ion-accordion` はキーボードによる操作を完全にサポートしています。次の表は、それぞれのキーが何をするのかの詳細です。 + +| Key | Description | +| ------------------------------------ | ------------------------------------------------------------ | +| Space or Enter | When focus is on the accordion header, the accordion will collapse or expand depending on the state of the component. | +| Tab | Moves focus to the next focusable element. | +| Shift + Tab | Moves focus to the previous focusable element. | +| Down Arrow | - When focus is on an accordion header, moves focus to the next accordion header.
    - When focus is on the last accordion header, moves focus to the first accordion header. | +| Up Arrow | - When focus is on an accordion header, moves focus to the previous accordion header.
    - When focus is on the first accordion header, moves focus to the last accordion header. | +| Home | When focus is on an accordion header, moves focus to the first accordion header. | +| End | When focus is on an accordion header, moves focus to the last accordion header. | + +## パフォーマンス + +### アニメーション + +アコーディオンアニメーションは、アニメーションを開始するときに `content` slotの高さを知ることによって動作します。アコーディオンは、この高さがアニメーションの間、一貫して保たれることを期待します。そのため、開発者はアニメーション中にコンテンツの高さを変更するような操作を行わないようにしなければなりません。 + +例えば、[ion-img](./img) を使用すると、画像を遅延ロードするため、レイアウトのずれが生じることがあります。つまり、アニメーションを再生すると、 `ion-img` が画像データをロードし、ロードされた画像データを考慮して `ion-img` の寸法が変更されることになります。その結果、 `content` slotの高さが変化してしまうことがあります。これを避けるために、開発者にはいくつかのオプションがあります。 + +1. 遅延読み込みを行わない `img` 要素を使用します。`ion-img` は常に遅延読み込みを使用しますが、`img` はデフォルトでは遅延読み込みを使用しません。これは最も単純なオプションで、遅延読み込みの恩恵をあまり受けない小さな画像を使用する場合に有効です。 + +2. `ion-img` に最小の幅と高さを設定します。遅延読み込みを使用する必要があり、前もって画像の寸法がわかっている場合(同じサイズのアイコンを読み込む場合など)、CSS を使用して `ion-img` に最小限の幅または高さを設定することができます。これにより、開発者はレイアウトの崩れを防ぎつつ、遅延ロードの恩恵を受けることができます。これは、 `img` 要素を `loading="lazy"` と共に使用する場合にも有効です! + +3. これらの解決方法を選択できない場合、開発者は [ion-accordion-group](./accordion-group) の `animated` プロパティを使用してアニメーションを完全に無効にすることを検討することができます。 + +## プロパティ + + +## イベント + + +## メソッド + + +## CSS Shadow Parts + + +## CSSカスタムプロパティ + + +## Slots + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/api/action-sheet.md b/i18n/ja/docusaurus-plugin-content-docs/current/api/action-sheet.md new file mode 100644 index 00000000000..441cda46e30 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/api/action-sheet.md @@ -0,0 +1,298 @@ +--- +title: "ion-action-sheet" +--- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +import Props from '@ionic-internal/component-api/v8/action-sheet/props.md'; +import Events from '@ionic-internal/component-api/v8/action-sheet/events.md'; +import Methods from '@ionic-internal/component-api/v8/action-sheet/methods.md'; +import Parts from '@ionic-internal/component-api/v8/action-sheet/parts.md'; +import CustomProps from '@ionic-internal/component-api/v8/action-sheet/custom-props.mdx'; +import Slots from '@ionic-internal/component-api/v8/action-sheet/slots.md'; + + + ion-action-sheet: Action Sheet Dialog for iOS and Android + + + +import EncapsulationPill from '@components/page/api/EncapsulationPill'; + + + + +Action Sheetは複数の選択肢を表示するダイアログです。アプリのコンテンツ上に表示され、ユーザが手動で破棄しないとアプリの利用を再開することはできません。`ios` modeでは、破壊的な選択肢は明示されます(コンテンツの削除などは赤字などでわかりやすく表示されます)。Action Sheetを破棄するには、背景をタップする、デスクトップのパソコンの場合はエスケープキーを押すなど、複数の選択肢があります。 + +## インラインアクションシート (推奨) + +`ion-action-sheet` は、テンプレートに直接コンポーネントを記述することで使用することができます。これにより、アクションシートを表示するために配線する必要があるハンドラの数を減らすことができます。 + +import Trigger from '@site/static/usage/v8/action-sheet/inline/trigger/index.md'; + + + +### `isOpen` を使う + +`ion-action-sheet` の `isOpen` プロパティは、開発者がアプリケーションの状態からアクションシートの表示状態を制御することを可能にします。つまり、`isOpen`が`true`に設定されるとアクションシートが表示され、`isOpen`が`false`に設定されるとアクションシートは解除されます。 + +`isOpen` は一方通行のデータバインディングを使用しているため、アクションシートが終了したときに自動的に `false` に設定されることはありません。開発者は `ionActionSheetDidDismiss` または `didDismiss` イベントをリッスンして `isOpen` を `false` に設定する必要があります。この理由は、`ion-action-sheet` の内部がアプリケーションの状態と密接に結合するのを防ぐためです。一方通行のデータバインディングでは、アクションシートはリアクティブ変数が提供するブーリアン値だけを気にすればよい。一方通行のデータバインディングでは、アクションシートは、ブーリアン値とリアクティブ変数の存在の両方に関心を持つ必要があります。これは、非決定的な動作につながり、アプリケーションのデバッグを困難にします。 + +import IsOpen from '@site/static/usage/v8/action-sheet/inline/isOpen/index.md'; + + + +## Controller アクションシート + +アクションシートの表示・非表示をより細かく制御したい場合は、`actionSheetController`を使用することができます。 + +import Controller from '@site/static/usage/v8/action-sheet/controller/index.md'; + + + +## Buttons + +Buttonの `role` プロパティは、 `destructive` か `cancel` のどちらかを利用できます。 roleプロパティがない場合は、プラットフォームに応じたデフォルトの外観となります。`cancel` role を持つButtonは、配列 `buttons` のどこに配置してもアクションシートの最下部に表示されます。 Note: `destructive` roleをつけるButtonは、一番上のButtonとして配置することをおすすめします。また、背景をタップしてアクションシートを破棄した場合、cancel role に設定されているhandlerが実行されます。 + +Buttonは `ActionSheetButton` の `data` プロパティを介してデータを渡すこともできます。これは `onDidDismiss` メソッドの戻り値にある `data` フィールドにデータを入力します。 + +## Collecting Role Information on Dismiss + +`didDismiss` イベントが発生すると、イベント詳細の `data` と `role` フィールドを使用して、アクションシートがどのように却下されたかについての情報を収集することができます。 + +import RoleInfo from '@site/static/usage/v8/action-sheet/role-info-on-dismiss/index.md'; + + + +## テーマ + +アクションシートはscopedによるカプセル化を採用しており、実行時に各スタイルにクラスを追加することで、自動的にCSSをスコープ化します。CSSでscopedセレクタをオーバーライドするには、[higher specificity](https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity) セレクタが必要です。 + +### スタイリング + +私たちは、 `create` メソッドで `cssClass` にカスタムクラスを渡し、それを使ってホストと内部要素にカスタムスタイルを追加することをお勧めします。このプロパティは、スペースで区切られた複数のクラスを受け付けることもできます。 + +```css +/* DOES NOT WORK - not specific enough */ +.action-sheet-group { + background: #e5e5e5; +} + +/* Works - pass "my-custom-class" in cssClass to increase specificity */ +.my-custom-class .action-sheet-group { + background: #e5e5e5; +} +``` + +import Styling from '@site/static/usage/v8/action-sheet/theming/styling/index.md'; + + + +## CSSカスタムプロパティ + +[CSSカスタムプロパティ](#css-custom-properties-1) は、個々の要素を対象とすることなく、アクションシートのスタイルに使用することができます。 + +import CssCustomProperties from '@site/static/usage/v8/action-sheet/theming/css-properties/index.md'; + + + +## アクセシビリティ + +### Screen Readers + +アクションシートは、スクリーンリーダーにとって [アクセシブル](../reference/glossary#a11y) であるためにariaプロパティを設定しますが、これらのプロパティは、十分な説明になっていなかったり、アクションシートがアプリでどのように使用されているかに合っていなかったりする場合、オーバーライドすることができます。 + +#### Role + +アクションシートには `role` として [`dialog`](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/dialog_role) が設定されます。ARIA仕様に合わせるためには、`aria-label`属性か`aria-labelledby`属性のどちらかを設定しなければなりません。 + +#### Action Sheet の概要 + +Ionicは自動的にヘッダー要素を指すように `aria-labelledby` を設定するので、すべてのアクションシートには `header` プロパティを定義することを強く推奨します。しかし、`header`を含めない場合は、`htmlAttributes`プロパティを使って、説明的な`aria-label`を指定するか、カスタムの`aria-labelledby`値を設定することもできます。 + + + + + +```javascript +const actionSheet = await this.actionSheetController.create({ + htmlAttributes: { + 'aria-label': 'action sheet dialog', + }, +}); +``` + + + + + +```javascript +const actionSheet = await this.actionSheetController.create({ + htmlAttributes: { + 'aria-label': 'action sheet dialog', + }, +}); +``` + + + + + +```javascript +useIonActionSheet({ + htmlAttributes: { + 'aria-label': 'action sheet dialog', + }, +}); +``` + + + + + +```javascript +const actionSheet = await actionSheetController.create({ + htmlAttributes: { + 'aria-label': 'action sheet dialog', + }, +}); +``` + + + + + +#### Action Sheet Buttons の概要 + +テキストを含むボタンはスクリーンリーダーによって読み取られる。ボタンがアイコンのみを含んでいる場合や、既存のテキスト以外の説明が必要な場合は、ボタンの `htmlAttributes` プロパティに `aria-label` を渡して、ラベルをボタンに割り当てる必要があります。 + + + + + +```javascript +const actionSheet = await this.actionSheetController.create({ + header: 'Header', + buttons: [ + { + icon: 'close', + htmlAttributes: { + 'aria-label': 'close', + }, + }, + ], +}); +``` + + + + + +```javascript +const actionSheet = await this.actionSheetController.create({ + header: 'Header', + buttons: [ + { + icon: 'close', + htmlAttributes: { + 'aria-label': 'close', + }, + }, + ], +}); +``` + + + + + +```javascript +useIonActionSheet({ + header: 'Header', + buttons: [ + { + icon: 'close', + htmlAttributes: { + 'aria-label': 'close', + }, + }, + ], +}); +``` + + + + + +```javascript +const actionSheet = await actionSheetController.create({ + header: 'Header', + buttons: [ + { + icon: 'close', + htmlAttributes: { + 'aria-label': 'close', + }, + }, + ], +}); +``` + + + + + +## Interfaces + +### ActionSheetButton + +```typescript +interface ActionSheetButton { + text?: string; + role?: 'cancel' | 'destructive' | 'selected' | string; + icon?: string; + cssClass?: string | string[]; + id?: string; + htmlAttributes?: { [key: string]: any }; + handler?: () => boolean | void | Promise; + data?: T; +} +``` + +### ActionSheetOptions + +```typescript +interface ActionSheetOptions { + header?: string; + subHeader?: string; + cssClass?: string | string[]; + buttons: (ActionSheetButton | string)[]; + backdropDismiss?: boolean; + translucent?: boolean; + animated?: boolean; + mode?: Mode; + keyboardClose?: boolean; + id?: string; + htmlAttributes?: { [key: string]: any }; + + enterAnimation?: AnimationBuilder; + leaveAnimation?: AnimationBuilder; +} +``` + +## プロパティ + + +## イベント + + +## メソッド + + +## CSS Shadow Parts + + +## CSSカスタムプロパティ + + +## Slots + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/api/alert.md b/i18n/ja/docusaurus-plugin-content-docs/current/api/alert.md new file mode 100644 index 00000000000..f313ff8c8bf --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/api/alert.md @@ -0,0 +1,350 @@ +--- +title: "ion-alert" +--- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +import Props from '@ionic-internal/component-api/v8/alert/props.md'; +import Events from '@ionic-internal/component-api/v8/alert/events.md'; +import Methods from '@ionic-internal/component-api/v8/alert/methods.md'; +import Parts from '@ionic-internal/component-api/v8/alert/parts.md'; +import CustomProps from '@ionic-internal/component-api/v8/alert/custom-props.mdx'; +import Slots from '@ionic-internal/component-api/v8/alert/slots.md'; + + + ion-alert: Ionic Alert Buttons with Custom Message Prompts + + + +import EncapsulationPill from '@components/page/api/EncapsulationPill'; + + + +アラートは、ユーザーに情報を提示したり、Inputを使ってユーザーから情報を収集したりするダイアログである。アラートはアプリのコンテンツの上に表示され、アプリとの対話を再開する前に、ユーザーが手動で解除する必要があります。また、オプションで `header`、`subHeader`、`message` を持つことができます。 + +## インラインアラート(推奨) + +`ion-alert` は、テンプレートに直接コンポーネントを記述して使用することができます。これにより、アラートを表示するために必要なハンドラの数を減らすことができます。 + +import Trigger from '@site/static/usage/v8/alert/presenting/trigger/index.md'; + + + +### `isOpen` を使う + +`ion-alert` の `isOpen` プロパティは、開発者がアプリケーションの状態からアラートの表示状態を制御することを可能にします。つまり、`isOpen` を `true` に設定するとアラートが表示され、`isOpen` を `false` に設定するとアラートは解除されます。 + +`isOpen` は一方通行のデータバインディングを使用しているため、アラートが解除されたときに自動的に `false` に設定されることはありません。開発者は `ionAlertDidDismiss` または `didDismiss` イベントを待ち、`isOpen` を `false` に設定する必要があります。この理由は、`ion-alert` の内部がアプリケーションの状態と密接に結合するのを防ぐためである。一方通行のデータバインディングでは、アラートはリアクティブ変数が提供するブーリアン値だけを気にすればよい。双方向のデータバインディングでは、アラートはブーリアン値とリアクティブ変数の存在の両方に関心を持つ必要があります。これは、非決定的な動作につながり、アプリケーションのデバッグを困難にする可能性があります。 + +import IsOpen from '@site/static/usage/v8/alert/presenting/isOpen/index.md'; + + + +## Controller Alerts + +`alertController`は、アラートを表示するタイミングや解除するタイミングをより細かく制御する必要がある場合に使用することができる。 + +import Controller from '@site/static/usage/v8/alert/presenting/controller/index.md'; + + + +## Buttons + +`buttons` の配列には、各buttonの `text` のプロパティと、オプションで `handler` を利用することができます。 `handler` が `false` を返した場合、buttonがクリックされてもAlertは自動的に解除されません。すべての `buttons` は、左から右にボタン配列に追加された順序で表示されます。 Note: 一番右のボタン(配列の最後の1つ)がメインボタンです。 + +オプションで、`cancel`のような `role` プロパティをボタンに追加することができます。もし `cancel` ロールがボタンのいずれかに設定されている場合、バックドロップをタップしてアラートが解除されると、キャンセルロールを持つボタンから handler が起動されます。 + +import Buttons from '@site/static/usage/v8/alert/buttons/index.md'; + + + + +## Inputs + +Alertには、複数の異なるInputを含めることもでき、そのデータをアプリで受け取ることができます。 Inputはユーザーに情報の入力を促す簡単な方法として使用できます。Radios, checkboxes と text inputs textarea はすべて利用できますが、これらを混ぜて利用することはできません。例えば、Alertはすべてbutton Inputであったり、すべてcheckboxでのInputを持つことはできますが、同一のAlertにradioとcheckbox Inputを混ぜることはできません。ただし、"text" Inputでは、 `url`, `email`, `text` などの複数のtypeを混ぜて利用することはできます。アラートのガイドラインに収まらない複雑なForm UIが必要な場合は、代わりにModal内でFormを構築することをお勧めします。 + +### Text Inputs Example + +import TextInputs from '@site/static/usage/v8/alert/inputs/text-inputs/index.md'; + + + +### Radio Example + +import Radios from '@site/static/usage/v8/alert/inputs/radios/index.md'; + + + +## カスタマイズ + +Alertはscopedによるカプセル化を使用しており、実行時に各スタイルにクラスを追加することで自動的にCSSをスコープします。CSSでscopedセレクタをオーバーライドするには、[higher specificity](https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity) セレクタが必要です。 + +`create` メソッドで `cssClass` にカスタムクラスを渡し、それを使ってホストと内部要素にカスタムスタイルを追加することをお勧めします。このプロパティは、スペースで区切られた複数のクラスを受け付けることもできます。 + +```css +/* DOES NOT WORK - not specific enough */ +.alert-wrapper { + background: #e5e5e5; +} + +/* Works - pass "my-custom-class" in cssClass to increase specificity */ +.my-custom-class .alert-wrapper { + background: #e5e5e5; +} +``` + +[CSSカスタムプロパティ](#css-custom-properties) は、個々の要素をターゲットにすることなく、アラートのスタイルに使用することができます。 + +```css +.my-custom-class { + --background: #e5e5e5; +} +``` + +import Customization from '@site/static/usage/v8/alert/customization/index.md'; + + + +:::note +IonicのAngularアプリを構築する場合、スタイルはグローバルなスタイルシートファイルに追加する必要があります。 +::: + +## アクセシビリティ + +### Screen Readers + +アラートは、スクリーンリーダーにとって[アクセシブル](../reference/glossary#a11y)であるために、ariaプロパティを設定しますが、これらのプロパティは、十分な説明がない場合、またはアラートがアプリでどのように使用されているかと一致しない場合は、オーバーライドすることができます。 + +#### Role + +Ionicは自動的にアラートの`role`を、入力やボタンがある場合は[`alertdialog`](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/alertdialog_role)に、何もない場合は[`alert`](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/alert_role)に設定します。 + +#### Alert の概要 + +アラートに `header` プロパティが定義されている場合、`aria-labelledby` 属性は自動的にヘッダの ID に設定されます。 `header` が定義されていない場合、`subHeader` 要素がフォールバックとして使用されます。同様に、 `aria-describedby` 属性が定義されている場合は、自動的に `message` 要素の ID が設定されます。 + +ARIAの仕様に合わせるために、アラートには `message` と `header` または `subHeader` を含めることを強くお勧めします。もし `header` や `subHeader` を含めない場合は、`htmlAttributes` プロパティを使用して、説明的な `aria-label` を指定することができます。 + + + + + +```javascript +const alert = await this.alertController.create({ + message: 'This is an alert with custom aria attributes.', + htmlAttributes: { + 'aria-label': 'alert dialog', + }, +}); +``` + + + + + +```javascript +const alert = await this.alertController.create({ + message: 'This is an alert with custom aria attributes.', + htmlAttributes: { + 'aria-label': 'alert dialog', + }, +}); +``` + + + + + +```javascript +useIonAlert({ + message: 'This is an alert with custom aria attributes.', + htmlAttributes: { + 'aria-label': 'alert dialog', + }, +}); +``` + + + + + +```javascript +const alert = await alertController.create({ + message: 'This is an alert with custom aria attributes.', + htmlAttributes: { + 'aria-label': 'alert dialog', + }, +}); +``` + + + + + + +すべてのARIA属性は、アラートの`htmlAttributes`プロパティにカスタム値を定義することで、手動で上書きすることができます。 + +#### Alert Buttons の概要 + +Buttons containing text will be read by a screen reader. If a description other than the existing text is desired, a label can be set on the button by passing `aria-label` to the `htmlAttributes` property on the button. + + + + + +```javascript +const alert = await this.alertController.create({ + header: 'Header', + buttons: [ + { + text: 'Exit', + htmlAttributes: { + 'aria-label': 'close', + }, + }, + ], +}); +``` + + + + + +```javascript +const alert = await this.alertController.create({ + header: 'Header', + buttons: [ + { + text: 'Exit', + htmlAttributes: { + 'aria-label': 'close', + }, + }, + ], +}); +``` + + + + + +```javascript +useIonAlert({ + header: 'Header', + buttons: [ + { + text: 'Exit', + htmlAttributes: { + 'aria-label': 'close', + }, + }, + ], +}); +``` + + + + + +```javascript +const alert = await alertController.create({ + header: 'Header', + buttons: [ + { + text: 'Exit', + htmlAttributes: { + 'aria-label': 'close', + }, + }, + ], +}); +``` + + + + + +## Interfaces + +### AlertButton + +```typescript +type AlertButtonOverlayHandler = boolean | void | { [key: string]: any }; + +interface AlertButton { + text: string; + role?: 'cancel' | 'destructive' | string; + cssClass?: string | string[]; + id?: string; + htmlAttributes?: { [key: string]: any }; + handler?: (value: any) => AlertButtonOverlayHandler | Promise; +} +``` + + +### AlertInput + +```typescript +interface AlertInput { + type?: TextFieldTypes | 'checkbox' | 'radio' | 'textarea'; + name?: string; + placeholder?: string; + value?: any; + /** + * The label text to display next to the input, if the input type is `radio` or `checkbox`. + */ + label?: string; + checked?: boolean; + disabled?: boolean; + id?: string; + handler?: (input: AlertInput) => void; + min?: string | number; + max?: string | number; + cssClass?: string | string[]; + attributes?: { [key: string]: any }; + tabindex?: number; +} +``` + + +### AlertOptions + +```typescript +interface AlertOptions { + header?: string; + subHeader?: string; + message?: string | IonicSafeString; + cssClass?: string | string[]; + inputs?: AlertInput[]; + buttons?: (AlertButton | string)[]; + backdropDismiss?: boolean; + translucent?: boolean; + animated?: boolean; + htmlAttributes?: { [key: string]: any }; + + mode?: Mode; + keyboardClose?: boolean; + id?: string; + + enterAnimation?: AnimationBuilder; + leaveAnimation?: AnimationBuilder; +} +``` + +## プロパティ + + +## イベント + + +## メソッド + + +## CSS Shadow Parts + + +## CSSカスタムプロパティ + + +## Slots + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/api/app.md b/i18n/ja/docusaurus-plugin-content-docs/current/api/app.md new file mode 100644 index 00000000000..32602254b86 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/api/app.md @@ -0,0 +1,53 @@ +--- +title: "ion-app" +--- +import Props from '@ionic-internal/component-api/v8/app/props.md'; +import Events from '@ionic-internal/component-api/v8/app/events.md'; +import Methods from '@ionic-internal/component-api/v8/app/methods.md'; +import Parts from '@ionic-internal/component-api/v8/app/parts.md'; +import CustomProps from '@ionic-internal/component-api/v8/app/custom-props.mdx'; +import Slots from '@ionic-internal/component-api/v8/app/slots.md'; + + + ion-app: Container Element for an Ionic Application + + + +import EncapsulationPill from '@components/page/api/EncapsulationPill'; + +AppはIonicアプリケーションのコンテナ要素です。1つのプロジェクトにつき``要素は1つだけです。アプリはメニュー、ヘッダー、コンテンツ、フッターなど多くのIonicコンポーネントを持つことができます。オーバーレイコンポーネントは表示時に `` に追加されます。 + +`ion-app`を使用すると、以下の動作が可能になります。 + +* [キーボードライフサイクルイベント](../developing/keyboard#keyboard-lifecycle-events) は、ネイティブプラグインを必要なくなります。 +* Android 端末のハードウェアバックボタンの動作をカスタマイズするための [Hardware Back Button Listeners](../developing/hardware-back-button) を使えます +* Capacitor や Cordova でステータスバーをサポートし、ステータスバーをタップすることでビューの最上部にスクロールできるようになります。 +* テキスト入力が画面上のキーボードにかからないように、コンテンツをスクロールさせるスクロールアシストユーティリティが使えます。 +* Material Design モードでのボタン操作時の[Ripple effect](./リップルエフェクト) が使えます。 +* Ionicアプリの使用感をよりネイティブなものにする、その他のタップやフォーカスのユーティリティが使えます。 + +## Programmatic Focus + +Ionic offers focus utilities for components with the `ion-focusable` class. These utilities automatically manage focus for components when certain keyboard keys, like Tab, are pressed. Components can also be programmatically focused in response to user actions using the `setFocus` method from `ion-app`. + +import SetFocus from '@site/static/usage/v8/app/set-focus/index.md'; + + + +## プロパティ + + +## イベント + + +## メソッド + + +## CSS Shadow Parts + + +## CSSカスタムプロパティ + + +## Slots + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/api/avatar.md b/i18n/ja/docusaurus-plugin-content-docs/current/api/avatar.md new file mode 100644 index 00000000000..9a3577b416b --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/api/avatar.md @@ -0,0 +1,67 @@ +--- +title: "ion-avatar" +--- + +import Props from '@ionic-internal/component-api/v8/avatar/props.md'; +import Events from '@ionic-internal/component-api/v8/avatar/events.md'; +import Methods from '@ionic-internal/component-api/v8/avatar/methods.md'; +import Parts from '@ionic-internal/component-api/v8/avatar/parts.md'; +import CustomProps from '@ionic-internal/component-api/v8/avatar/custom-props.mdx'; +import Slots from '@ionic-internal/component-api/v8/avatar/slots.md'; + + + ion-avatar: Circular Application Avatar Icon Component + + + +import EncapsulationPill from '@components/page/api/EncapsulationPill'; + + + +Avatarは通常、写真やアイコンをラップする円形のコンポーネントです。これらは、人またはオブジェクトを表示するために使用できます。 + +Avatarは、単独で使用することも、任意の要素の内部で使用することもできます。`ion-chip` または `ion-item` の内部に配置すると、Avatarは親コンポーネントに合わせてサイズ変更します。Avatarをitemの左側または右側に配置するには、`slot` を `start` か `end` に設定します。 + +## 基本的な使い方 + +import Basic from '@site/static/usage/v8/avatar/basic/index.md'; + + + +## Chip Avatar + +import Chip from '@site/static/usage/v8/avatar/chip/index.md'; + + + +## Item Avatar + +import Item from '@site/static/usage/v8/avatar/item/index.md'; + + + +## テーマ + +## CSSカスタムプロパティ + +import CSSProps from '@site/static/usage/v8/avatar/theming/css-properties/index.md'; + + + +## プロパティ + + +## イベント + + +## メソッド + + +## CSS Shadow Parts + + +## CSSカスタムプロパティ + + +## Slots + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/api/back-button.md b/i18n/ja/docusaurus-plugin-content-docs/current/api/back-button.md new file mode 100644 index 00000000000..a3b9e954761 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/api/back-button.md @@ -0,0 +1,57 @@ +--- +title: "ion-back-button" +--- +import Props from '@ionic-internal/component-api/v8/back-button/props.md'; +import Events from '@ionic-internal/component-api/v8/back-button/events.md'; +import Methods from '@ionic-internal/component-api/v8/back-button/methods.md'; +import Parts from '@ionic-internal/component-api/v8/back-button/parts.md'; +import CustomProps from '@ionic-internal/component-api/v8/back-button/custom-props.mdx'; +import Slots from '@ionic-internal/component-api/v8/back-button/slots.md'; + + + ion-back-button: Custom Menu Back Button for Applications + + + +import EncapsulationPill from '@components/page/api/EncapsulationPill'; + + + + +Back Buttonは、クリックされるとアプリの履歴に戻るようにナビゲートします。このボタンは、ナビゲーションスタックに履歴があるときのみ表示されます。ただし、 [`defaultHref`](#default-back-history) が設定されている場合は除きます。戻るボタンはモードに応じて異なるテキストとアイコンを表示しますが、これはカスタマイズすることができます。 + +## 基本的な使い方 + +import Basic from '@site/static/usage/v8/back-button/basic/index.md'; + + + +## カスタムのBack Button + +デフォルトでは、Back Buttonはテキスト `"Back"` と共に、`ios` では `"chevron-back"` アイコン、`md` では `"arrow-back-sharp"` アイコンを表示します。これは、`icon`または`text`プロパティを設定することで、戻るボタンコンポーネントごとにカスタマイズすることができます。また、グローバル設定の `backButtonIcon` または `backButtonText` プロパティを使用して、グローバルに設定することもできます。詳しくは、[Config docs](../developing/config) を参照してください。 + +import Custom from '@site/static/usage/v8/back-button/custom/index.md'; + + + +## デフォルトのBack履歴 + +時折、アプリが履歴がないときに戻るボタンを表示し、ナビゲートする必要がある場合があります。この場合、戻るボタンの `defaultHref` をパスに設定することで実現できます。 `defaultHref` を使用するには、アプリにパスが設定されたルーターが含まれている必要があります。 + +## プロパティ + + +## イベント + + +## メソッド + + +## CSS Shadow Parts + + +## CSSカスタムプロパティ + + +## Slots + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/api/backdrop.md b/i18n/ja/docusaurus-plugin-content-docs/current/api/backdrop.md new file mode 100644 index 00000000000..3ac77c97296 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/api/backdrop.md @@ -0,0 +1,51 @@ +--- +title: "ion-backdrop" +--- +import Props from '@ionic-internal/component-api/v8/backdrop/props.md'; +import Events from '@ionic-internal/component-api/v8/backdrop/events.md'; +import Methods from '@ionic-internal/component-api/v8/backdrop/methods.md'; +import Parts from '@ionic-internal/component-api/v8/backdrop/parts.md'; +import CustomProps from '@ionic-internal/component-api/v8/backdrop/custom-props.mdx'; +import Slots from '@ionic-internal/component-api/v8/backdrop/slots.md'; + +import EncapsulationPill from '@components/page/api/EncapsulationPill'; + + + +Backdropは、他のコンポーネントをオーバーレイするためフルスクリーンのコンポーネントです。これらは、他のコンテンツの上に遷移するコンポーネントのバックグラウンドで役立ち、そのコンポーネントを削除するために使用できます。 + +## 基本的な使い方 + +Backdropは、その後ろのコンテンツをクリックしたりタップしたりするのを防ぎます。デフォルトでは透明なので、下のデモではCSSで見えるようにしています。 + +import Basic from '@site/static/usage/v8/backdrop/basic/index.md'; + + + +## スタイリング + +バックドロップは、CSSプロパティをバックドロップ要素に直接割り当てることで、カスタマイズすることができます。一般的なプロパティには `background-color`, `background`, `opacity` があります。 + +コンテンツに `z-index` を設定し、背景よりも高い位置に表示させることができます(デフォルトは `2` です)。 + +import Styling from '@site/static/usage/v8/backdrop/styling/index.md'; + + + +## プロパティ + + +## イベント + + +## メソッド + + +## CSS Shadow Parts + + +## CSSカスタムプロパティ + + +## Slots + \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/api/badge.md b/i18n/ja/docusaurus-plugin-content-docs/current/api/badge.md new file mode 100644 index 00000000000..c7682a087a3 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/api/badge.md @@ -0,0 +1,70 @@ +--- +title: "ion-badge" +--- +import Props from '@ionic-internal/component-api/v8/badge/props.md'; +import Events from '@ionic-internal/component-api/v8/badge/events.md'; +import Methods from '@ionic-internal/component-api/v8/badge/methods.md'; +import Parts from '@ionic-internal/component-api/v8/badge/parts.md'; +import CustomProps from '@ionic-internal/component-api/v8/badge/custom-props.mdx'; +import Slots from '@ionic-internal/component-api/v8/badge/slots.md'; + + + ion-badge: iOS & Android App Notification Badge Icons + + + +import EncapsulationPill from '@components/page/api/EncapsulationPill'; + + + +バッジはインラインブロック要素で、通常は他の要素の近くに表示されます。通常、数字やその他の文字が含まれています。バッジは、ある要素に関連する追加項目があることを知らせたり、その項目の数を示したりするために使用されます。バッジは、コンテンツが渡されないと非表示になります。 + +## 基本的な使い方 + +import Basic from '@site/static/usage/v8/badge/basic/index.md'; + + + +## Tabボタン内のバッジ + +バッジはTabボタン内に追加することができ、多くの場合、通知を示したり、要素に関連する追加項目を強調するために使用されます。 + +:::info +Empty badges are only available for `md` mode. +::: + +import InsideTabBar from '@site/static/usage/v8/badge/inside-tab-bar/index.md'; + + + +## テーマ + +### Colors + +import Colors from '@site/static/usage/v8/badge/theming/colors/index.md'; + + + +### CSS Properties + +import CSSProps from '@site/static/usage/v8/badge/theming/css-properties/index.md'; + + + +## プロパティ + + +## イベント + + +## メソッド + + +## CSS Shadow Parts + + +## CSSカスタムプロパティ + + +## Slots + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/api/breadcrumb.md b/i18n/ja/docusaurus-plugin-content-docs/current/api/breadcrumb.md new file mode 100644 index 00000000000..e0e8c137690 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/api/breadcrumb.md @@ -0,0 +1,60 @@ +--- +title: "ion-breadcrumb" +--- +import Props from '@ionic-internal/component-api/v8/breadcrumb/props.md'; +import Events from '@ionic-internal/component-api/v8/breadcrumb/events.md'; +import Methods from '@ionic-internal/component-api/v8/breadcrumb/methods.md'; +import Parts from '@ionic-internal/component-api/v8/breadcrumb/parts.md'; +import CustomProps from '@ionic-internal/component-api/v8/breadcrumb/custom-props.mdx'; +import Slots from '@ionic-internal/component-api/v8/breadcrumb/slots.md'; + +import EncapsulationPill from '@components/page/api/EncapsulationPill'; + + + + +Breadcrumbは、Breadcrumbsコンポーネントの子であり、単一のナビゲーションアイテムです。Breadcrumbは、アプリ内の他の場所にリンクすることも、プレーンテキストにすることもできます。Breadcrumbsは、次のBreadcrumbとの間にセパレータを持ち、オプションでアイコンを含むことができます。 + +詳しい説明は [Breadcrumbs](./breadcrumbs) を参照ください。 + +## Interfaces + +### BreadcrumbCollapsedClickEventDetail + +```typescript +interface BreadcrumbCollapsedClickEventDetail { + collapsedBreadcrumbs?: HTMLIonBreadcrumbElement[]; +} +``` + +### BreadcrumbCustomEvent + +必須ではありませんが、より強い型付けのために、このインターフェースを `CustomEvent` インターフェースの代わりに使用することができます。 + +```typescript +interface BreadcrumbCustomEvent extends CustomEvent { + detail: BreadcrumbCollapsedClickEventDetail; + target: HTMLIonBreadcrumbElement; +} +``` + + + + +## プロパティ + + +## イベント + + +## メソッド + + +## CSS Shadow Parts + + +## CSSカスタムプロパティ + + +## Slots + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/api/breadcrumbs.md b/i18n/ja/docusaurus-plugin-content-docs/current/api/breadcrumbs.md new file mode 100644 index 00000000000..b00f98cd337 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/api/breadcrumbs.md @@ -0,0 +1,104 @@ +--- +title: "ion-breadcrumbs" +--- +import Props from '@ionic-internal/component-api/v8/breadcrumbs/props.md'; +import Events from '@ionic-internal/component-api/v8/breadcrumbs/events.md'; +import Methods from '@ionic-internal/component-api/v8/breadcrumbs/methods.md'; +import Parts from '@ionic-internal/component-api/v8/breadcrumbs/parts.md'; +import CustomProps from '@ionic-internal/component-api/v8/breadcrumbs/custom-props.mdx'; +import Slots from '@ionic-internal/component-api/v8/breadcrumbs/slots.md'; + + + +import EncapsulationPill from '@components/page/api/EncapsulationPill'; + + + +Breadcrumbsは、ユーザーがアプリやサイトのどこにいるのかを示すために使用されるナビゲーションアイテムです。大規模なサイトや、階層的に配置されたページを持つアプリで使用する必要があります。Breadcrumbsは、表示可能な最大数に応じて折りたたむことができ、折りたたんだインジケータをクリックすると、詳細情報を示すポップオーバーが表示され、折りたたんだBreadcrumbを展開することができます。 + +## 基本的な使い方 + +import Basic from '@site/static/usage/v8/breadcrumbs/basic/index.md'; + + + +## Using Icons + +### アイテムでのアイコン + +import IconsOnItems from '@site/static/usage/v8/breadcrumbs/icons/icons-on-items/index.md'; + + + +### Custom Separators + +import CustomSeparators from '@site/static/usage/v8/breadcrumbs/icons/custom-separators/index.md'; + + + +## Collapsing Items + +### Max Items + +`maxItems` の値よりも多くのアイテムがある場合、breadcrumbsは折りたたまれます。デフォルトでは、最初と最後のアイテムのみが表示されます。 + +import MaxItems from '@site/static/usage/v8/breadcrumbs/collapsing-items/max-items/index.md'; + + + +### Items Before or After Collapse + +アイテムが折りたたまれた後、表示するアイテムの数は `itemsBeforeCollapse` と `itemsAfterCollapse` プロパティで制御することができます。 + +import ItemsBeforeAfter from '@site/static/usage/v8/breadcrumbs/collapsing-items/items-before-after/index.md'; + + + +### Collapsed Indicator Click -- Expand Breadcrumbs + +インジケータをクリックすると、`ionCollapsedClick` イベントが発生します。これは、例えば、breadcrumbsを展開するために使うことができます。 + +import ExpandOnClick from '@site/static/usage/v8/breadcrumbs/collapsing-items/expand-on-click/index.md'; + + + +### Collapsed Indicator Click -- Present Popover + +また、`ionCollapsedClick` イベントは、隠されたパンくずを表示するオーバーレイ(この場合は `ion-popover` )を提示するために使用することができます。 + +import PopoverOnClick from '@site/static/usage/v8/breadcrumbs/collapsing-items/popover-on-click/index.md'; + + + +## テーマ + +### Colors + +import Colors from '@site/static/usage/v8/breadcrumbs/theming/colors/index.md'; + + + +## CSSカスタムプロパティ + +import CSSProps from '@site/static/usage/v8/breadcrumbs/theming/css-properties/index.md'; + + + + +## プロパティ + + +## イベント + + +## メソッド + + +## CSS Shadow Parts + + +## CSSカスタムプロパティ + + +## Slots + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/api/button.md b/i18n/ja/docusaurus-plugin-content-docs/current/api/button.md new file mode 100644 index 00000000000..5490dc07c4c --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/api/button.md @@ -0,0 +1,115 @@ +--- +title: "ion-button" +--- +import Props from '@ionic-internal/component-api/v8/button/props.md'; +import Events from '@ionic-internal/component-api/v8/button/events.md'; +import Methods from '@ionic-internal/component-api/v8/button/methods.md'; +import Parts from '@ionic-internal/component-api/v8/button/parts.md'; +import CustomProps from '@ionic-internal/component-api/v8/button/custom-props.mdx'; +import Slots from '@ionic-internal/component-api/v8/button/slots.md'; + + + ion-button: Style Buttons with Custom CSS Properties + + + +import EncapsulationPill from '@components/page/api/EncapsulationPill'; + + + +Buttonはクリック可能な要素を提供し、Form内や、標準の単機能なButton機能を必要とする任意の場所で使用できます。text、icon、またはその両方を表示できます。Buttonは、いくつかの属性を利用して特定の外観になるようにスタイル設定できます。 + +## 基本的な使い方 + +import Basic from '@site/static/usage/v8/button/basic/index.md'; + + + +## Expand + +このプロパティでは、ボタンの幅を指定することができます。デフォルトでは、ボタンは `display: inline-block` を持ちますが、このプロパティを設定すると、ボタンは `display: block` を持つ全角要素に変更されます。 + +import Expand from '@site/static/usage/v8/button/expand/index.md'; + + + +## Shape + +このプロパティは、ボタンの形状を指定することができます。デフォルトでは、ボタンは小さなボーダー半径を持つ長方形ですが、これを `"round"` に設定すると、ボタンは丸みを帯びた要素に変更されます。 + +import Shape from '@site/static/usage/v8/button/shape/index.md'; + + + + +## Fill + +この属性は、Buttonのbackgroundとborder-colorを設定します。デフォルトでは、Buttonはtoolbar内にない限り、backgroundは塗りつぶされます。toolbar内にある場合は、backgroundは透明になります。 + +import Fill from '@site/static/usage/v8/button/fill/index.md'; + + + +## Size + +この属性は、Buttonのサイズを指定します。この属性を設定すると、Buttonの高さとpaddingが変更されます + +import Size from '@site/static/usage/v8/button/size/index.md'; + + + +## Icons + +import Icons from '@site/static/usage/v8/button/icons/index.md'; + + + +## テーマ + +### Colors + +import Colors from '@site/static/usage/v8/button/theming/colors/index.md'; + + + +## CSSカスタムプロパティ + +import CSSProps from '@site/static/usage/v8/button/theming/css-properties/index.md'; + + + +## アクセシビリティ + +ボタンはアクセスしやすいように作られていますが、その内容によっては調整が必要な場合があります。ボタンコンポーネントは、ネイティブの[button element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button)をレンダリングし、ネイティブのボタンが提供する機能を利用できるようにします。 + +### Overflowing Text Content + +ボタンのテキスト・コンテンツがコンテナからはみ出す場合が多々あります。このような場合、すべてのテキストがまだ読めるように、ボタンの内側にテキストを折り返すことをお勧めします。ボタンコンポーネントは、テキストの余分な行を収容するために、その高さを自動的に調整します。 + +テキストが長すぎて収まらない場合、ボタンテキストは自動的に次の行に折り返されません。テキストを折り返すには、`ion-text-wrap`クラスを追加して、`white-space`プロパティを`"normal"`に設定します。これは将来のメジャーリリースでデフォルトになる予定である。 + +:::info +max-width`スタイルは、デモのためだけに下のボタンに設定されています。テキストラッピングは動的なボタン幅で動作します。 +::: + +import TextWrapping from '@site/static/usage/v8/button/text-wrapping/index.md'; + + + +## プロパティ + + +## イベント + + +## メソッド + + +## CSS Shadow Parts + + +## CSSカスタムプロパティ + + +## Slots + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/api/buttons.md b/i18n/ja/docusaurus-plugin-content-docs/current/api/buttons.md new file mode 100644 index 00000000000..d9698da934e --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/api/buttons.md @@ -0,0 +1,87 @@ +--- +title: "ion-buttons" +--- +import Props from '@ionic-internal/component-api/v8/buttons/props.md'; +import Events from '@ionic-internal/component-api/v8/buttons/events.md'; +import Methods from '@ionic-internal/component-api/v8/buttons/methods.md'; +import Parts from '@ionic-internal/component-api/v8/buttons/parts.md'; +import CustomProps from '@ionic-internal/component-api/v8/buttons/custom-props.mdx'; +import Slots from '@ionic-internal/component-api/v8/buttons/slots.md'; + + + ion-buttons: Toolbar Element with Named Slots for Buttons + + + +import EncapsulationPill from '@components/page/api/EncapsulationPill'; + + + + +Buttonsコンポーネントは、コンテナ要素です。 [ツールバー](./toolbar) の内部で使用し、標準の[ボタン](./button)、[メニューボタン](./menu-button)、[戻るボタン](./back-button)を含むいくつかのタイプのボタンを含めることができる。 + +## 基本的な使い方 + +import Basic from '@site/static/usage/v8/buttons/basic/index.md'; + + + + +## Buttons Placement + +ツールバー内のボタンは、スロットという名前を使って配置することができます。下図は各スロットの説明です。 + +| Slot | Description | +|--------------|----------------------------------------------------------------------------------------------------------| +| `start` | Positions to the `left` of the content in LTR, and to the `right` in RTL. | +| `end` | Positions to the `right` of the content in LTR, and to the `left` in RTL. | +| `secondary` | Positions element to the `left` of the content in `ios` mode, and directly to the `right` in `md` mode. | +| `primary` | Positions element to the `right` of the content in `ios` mode, and to the far `right` in `md` mode. | + +import Placement from '@site/static/usage/v8/buttons/placement/index.md'; + + + + +## Buttonsのタイプ + +ツールバーのボタンは、デフォルトでは透明ですが、ボタンの [`fill`](./button#fill) プロパティで変更することが可能です。この例で [バックボタン](./back-button) と [メニューボタン](./menu-button) に含まれるプロパティは表示目的であり、正しい使用方法はそれぞれのドキュメントをご覧ください。 + +import Types from '@site/static/usage/v8/buttons/types/index.md'; + + + + +## Collapsible Buttons + +ボタンに `collapse` プロパティを設定すると、ヘッダーが折りたたまれたときにボタンが折りたたまれます。これは通常、[collapsible large titles](./title#collapsible-large-titles) と共に使用します。 + +:::info + +この機能はiOS modeでのみ有効です。 + +::: + + +import CollapsibleLargeTitleButtons from '@site/static/usage/v8/title/collapsible-large-title/buttons/index.md'; + + + + +## プロパティ + + +## イベント + + +## メソッド + + +## CSS Shadow Parts + + +## CSSカスタムプロパティ + + +## Slots + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/api/card-content.md b/i18n/ja/docusaurus-plugin-content-docs/current/api/card-content.md new file mode 100644 index 00000000000..dc7e3181313 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/api/card-content.md @@ -0,0 +1,35 @@ +--- +title: "ion-card-content" +--- +import Props from '@ionic-internal/component-api/v8/card-content/props.md'; +import Events from '@ionic-internal/component-api/v8/card-content/events.md'; +import Methods from '@ionic-internal/component-api/v8/card-content/methods.md'; +import Parts from '@ionic-internal/component-api/v8/card-content/parts.md'; +import CustomProps from '@ionic-internal/component-api/v8/card-content/custom-props.mdx'; +import Slots from '@ionic-internal/component-api/v8/card-content/slots.md'; + +import EncapsulationPill from '@components/page/api/EncapsulationPill'; + + +カードコンテンツは、カードの子コンポーネントで、そのコンテンツの周りにパディングを追加します。カードのテキストコンテンツは、カードコンテンツの中に配置することが推奨されます。 + +詳しくは、[Card](./card)のドキュメントを参照してください。 + + +## プロパティ + + +## イベント + + +## メソッド + + +## CSS Shadow Parts + + +## CSSカスタムプロパティ + + +## Slots + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/api/card-header.md b/i18n/ja/docusaurus-plugin-content-docs/current/api/card-header.md new file mode 100644 index 00000000000..90768d9116d --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/api/card-header.md @@ -0,0 +1,37 @@ +--- +title: "ion-card-header" +--- +import Props from '@ionic-internal/component-api/v8/card-header/props.md'; +import Events from '@ionic-internal/component-api/v8/card-header/events.md'; +import Methods from '@ionic-internal/component-api/v8/card-header/methods.md'; +import Parts from '@ionic-internal/component-api/v8/card-header/parts.md'; +import CustomProps from '@ionic-internal/component-api/v8/card-header/custom-props.mdx'; +import Slots from '@ionic-internal/component-api/v8/card-header/slots.md'; + +import EncapsulationPill from '@components/page/api/EncapsulationPill'; + + + + +カードヘッダは、カードの子コンポーネントで、カードコンテンツの前に配置する必要があります。カードタイトル](./card-title)と[カードサブタイトル](./card-subtitle)を含むことができます。 + +詳しくは、[Card](./card)のドキュメントを参照してください。 + + +## プロパティ + + +## イベント + + +## メソッド + + +## CSS Shadow Parts + + +## CSSカスタムプロパティ + + +## Slots + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/api/card-subtitle.md b/i18n/ja/docusaurus-plugin-content-docs/current/api/card-subtitle.md new file mode 100644 index 00000000000..d22b0bd85b0 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/api/card-subtitle.md @@ -0,0 +1,37 @@ +--- +title: "ion-card-subtitle" +--- +import Props from '@ionic-internal/component-api/v8/card-subtitle/props.md'; +import Events from '@ionic-internal/component-api/v8/card-subtitle/events.md'; +import Methods from '@ionic-internal/component-api/v8/card-subtitle/methods.md'; +import Parts from '@ionic-internal/component-api/v8/card-subtitle/parts.md'; +import CustomProps from '@ionic-internal/component-api/v8/card-subtitle/custom-props.mdx'; +import Slots from '@ionic-internal/component-api/v8/card-subtitle/slots.md'; + +import EncapsulationPill from '@components/page/api/EncapsulationPill'; + + + + +カードサブタイトルは、[カードヘッダ](./card-header)の内側に配置されるべき、cardの子コンポーネントです。 + +詳しくは、[Card](./card)のドキュメントを参照してください。 + + +## プロパティ + + +## イベント + + +## メソッド + + +## CSS Shadow Parts + + +## CSSカスタムプロパティ + + +## Slots + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/api/card-title.md b/i18n/ja/docusaurus-plugin-content-docs/current/api/card-title.md new file mode 100644 index 00000000000..2f78daca981 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/api/card-title.md @@ -0,0 +1,42 @@ +--- +title: "ion-card-title" +--- +import Props from '@ionic-internal/component-api/v8/card-title/props.md'; +import Events from '@ionic-internal/component-api/v8/card-title/events.md'; +import Methods from '@ionic-internal/component-api/v8/card-title/methods.md'; +import Parts from '@ionic-internal/component-api/v8/card-title/parts.md'; +import CustomProps from '@ionic-internal/component-api/v8/card-title/custom-props.mdx'; +import Slots from '@ionic-internal/component-api/v8/card-title/slots.md'; + +import EncapsulationPill from '@components/page/api/EncapsulationPill'; + + + ion-card-title: Ionic App Card Title Component + + + + + + +Card titleはcardの子コンポーネントで、[card header](./card-header)の内側に配置する必要があります。 + +詳しくは、[Card](./card)のドキュメントを参照してください。 + + +## プロパティ + + +## イベント + + +## メソッド + + +## CSS Shadow Parts + + +## CSSカスタムプロパティ + + +## Slots + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/api/card.md b/i18n/ja/docusaurus-plugin-content-docs/current/api/card.md new file mode 100644 index 00000000000..aa14648067b --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/api/card.md @@ -0,0 +1,87 @@ +--- +title: "ion-card" +--- +import Props from '@ionic-internal/component-api/v8/card/props.md'; +import Events from '@ionic-internal/component-api/v8/card/events.md'; +import Methods from '@ionic-internal/component-api/v8/card/methods.md'; +import Parts from '@ionic-internal/component-api/v8/card/parts.md'; +import CustomProps from '@ionic-internal/component-api/v8/card/custom-props.mdx'; +import Slots from '@ionic-internal/component-api/v8/card/slots.md'; + +import EncapsulationPill from '@components/page/api/EncapsulationPill'; + + + ion-card: Card UI Components for Ionic Framework API + + + + + + +カードは、テキスト、画像、ボタン、リストなどのコンテンツを表示するためのコンテナです。 +カードは1つのコンポーネントで構成することもできますが、 +多くの場合、ヘッダー、タイトル、サブタイトル、コンテンツで構成されます。 +カードはこの構造に対応するため、いくつかのコンポーネントに分割されます。 +[カードヘッダ](./card-header)、[カードタイトル](./card-title)、[カードサブタイトル](./card-subtitle)、[カードコンテンツ](./card-content)。 + + +## 基本的な使い方 + +import Basic from '@site/static/usage/v8/card/basic/index.md'; + + + + +## Media Cards + +import Media from '@site/static/usage/v8/card/media/index.md'; + + + + +## Card Buttons + +import Buttons from '@site/static/usage/v8/card/buttons/index.md'; + + + + +## List Card + +import List from '@site/static/usage/v8/card/list/index.md'; + + + + +## テーマ + +### Colors + +import Colors from '@site/static/usage/v8/card/theming/colors/index.md'; + + + +## CSSカスタムプロパティ + +import CSSProps from '@site/static/usage/v8/card/theming/css-properties/index.md'; + + + + +## プロパティ + + +## イベント + + +## メソッド + + +## CSS Shadow Parts + + +## CSSカスタムプロパティ + + +## Slots + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/api/checkbox.md b/i18n/ja/docusaurus-plugin-content-docs/current/api/checkbox.md new file mode 100644 index 00000000000..153e5a58566 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/api/checkbox.md @@ -0,0 +1,157 @@ +--- +title: "ion-checkbox" +--- + +import Props from '@ionic-internal/component-api/v8/checkbox/props.md'; +import Events from '@ionic-internal/component-api/v8/checkbox/events.md'; +import Methods from '@ionic-internal/component-api/v8/checkbox/methods.md'; +import Parts from '@ionic-internal/component-api/v8/checkbox/parts.md'; +import CustomProps from '@ionic-internal/component-api/v8/checkbox/custom-props.mdx'; +import Slots from '@ionic-internal/component-api/v8/checkbox/slots.md'; + + + ion-checkbox: Ionic App Checkbox to Select Multiple Options + + + +import EncapsulationPill from '@components/page/api/EncapsulationPill'; + + + + +Checkboxを使用すると、一連のオプションから複数のオプションを選択できます。選択すると、チェックマークが付いた状態(checked)で表示されます。checkboxをクリックすると、 `checked` プロパティーが切り替わります。`checked` プロパティを設定して、プログラムで `checked` を切り替えることもできます。 + +## 基本的な使い方 + +import Basic from '@site/static/usage/v8/checkbox/basic/index.md'; + + + +## Label Placement + +開発者は `labelPlacement` プロパティを使用して、ラベルをコントロールに対してどのように配置するかを制御できます。このプロパティはフレックスボックスの `flex-direction` プロパティを反映しています。 + +import LabelPlacement from '@site/static/usage/v8/checkbox/label-placement/index.md'; + + + +## Alignment + +Developers can use the `alignment` property to control how the label and control are aligned on the cross axis. This property mirrors the flexbox `align-items` property. + +:::note +Stacked checkboxes can be aligned using the `alignment` property. This can be useful when the label and control need to be centered horizontally. +::: + +import Alignment from '@site/static/usage/v8/checkbox/alignment/index.md'; + + + +## Justification + +開発者は `justify` プロパティを使用して、ラベルとコントロールの行の詰め方を制御することができます。このプロパティはフレックスボックスの `justify-content` プロパティを反映しています。 + +import Justify from '@site/static/usage/v8/checkbox/justify/index.md'; + + + + +:::note +`ion-item`は、 `justify` がどのように機能するかを強調するためにデモで使用されているだけです。 `justify` が正しく機能するために必須ではありません。 +::: + +## Indeterminate Checkboxes + +import Indeterminate from '@site/static/usage/v8/checkbox/indeterminate/index.md'; + + + +## Links inside of Labels + +Checkbox labels can sometimes be accompanied with links. These links can provide more information related to the checkbox. However, clicking the link should not check the checkbox. To achieve this, we can use [stopPropagation](https://developer.mozilla.org/en-US/docs/Web/API/Event/stopPropagation) to prevent the click event from bubbling. When using this approach, the rest of the label still remains clickable. + +import LabelLink from '@site/static/usage/v8/checkbox/label-link/index.md'; + + + +## Helper & Error Text + +Helper and error text can be used inside of a checkbox with the `helperText` and `errorText` property. The error text will not be displayed unless the `ion-invalid` and `ion-touched` classes are added to the `ion-checkbox`. This ensures errors are not shown before the user has a chance to enter data. + +In Angular, this is done automatically through form validation. In JavaScript, React and Vue, the class needs to be manually added based on your own validation. + +import HelperError from '@site/static/usage/v8/checkbox/helper-error/index.md'; + + + +## Theming + +## CSSカスタムプロパティ + +import CSSProps from '@site/static/usage/v8/checkbox/theming/css-properties/index.md'; + + + +## Interfaces + +### CheckboxChangeEventDetail + +```typescript +interface CheckboxChangeEventDetail { + value: T; + checked: boolean; +} +``` + +### CheckboxCustomEvent + +必須ではありませんが、このコンポーネントから発行される Ionic イベントでより強く型付けを行うために、`CustomEvent` インターフェースの代わりにこのインターフェースを使用することが可能です。 + +```typescript +interface CheckboxCustomEvent extends CustomEvent { + detail: CheckboxChangeEventDetail; + target: HTMLIonCheckboxElement; +} +``` + +## レガシーなチェックボックス構文からのマイグレーション + +Ionic 7.0では、よりシンプルなチェックボックス構文が導入されました。この新しい構文は、チェックボックスの設定に必要な定型文を減らし、アクセシビリティの問題を解決し、開発者のエクスペリエンスを向上させます。 + +開発者は、この移行を一度に1つのチェックボックスずつ実行することができます。開発者はレガシー構文を使い続けることができますが、できるだけ早く移行することをお勧めします。 + +### 最新の構文の使い方 + +最新の構文を使用するには、`ion-label` を削除して、 `ion-checkbox` の中に直接ラベルを渡す必要があります。ラベルの配置は `ion-checkbox` の `labelPlacement` プロパティを使用して設定することができる。ラベルとコントロールの行の詰め方は、`ion-checkbox` の `justify` プロパティを使用して制御することができます。 + +import Migration from '@site/static/usage/v8/checkbox/migration/index.md'; + + + + +:::note +Ionic の過去のバージョンでは、`ion-checkbox` が正しく機能するために `ion-item` が必要でした。Ionic 7.0 からは、`ion-checkbox` は `ion-item` の中で、そのアイテムが `ion-list` に配置される場合にのみ使用されます。また、`ion-checkbox`が正しく機能するためには、`ion-item`はもはや必須ではありません。 +::: + +### レガシーな構文の使い方 + +Ionicは、アプリが最新のチェックボックス構文を使用しているかどうかをヒューリスティックに検出します。場合によっては、レガシーな構文を使い続けることが望ましい場合もあります。開発者は `ion-checkbox` の `legacy` プロパティを `true` に設定することで、そのチェックボックスのインスタンスがレガシー構文を使用するように強制できます。 + + +## プロパティ + + +## イベント + + +## メソッド + + +## CSS Shadow Parts + + +## CSSカスタムプロパティ + + +## Slots + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/api/chip.md b/i18n/ja/docusaurus-plugin-content-docs/current/api/chip.md new file mode 100644 index 00000000000..43f9f6b7726 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/api/chip.md @@ -0,0 +1,64 @@ +--- +title: "ion-chip" +--- +import Props from '@ionic-internal/component-api/v8/chip/props.md'; +import Events from '@ionic-internal/component-api/v8/chip/events.md'; +import Methods from '@ionic-internal/component-api/v8/chip/methods.md'; +import Parts from '@ionic-internal/component-api/v8/chip/parts.md'; +import CustomProps from '@ionic-internal/component-api/v8/chip/custom-props.mdx'; +import Slots from '@ionic-internal/component-api/v8/chip/slots.md'; + + + ion-chip: Text, Icon and Avatar for Ionic Framework Apps + + + +import EncapsulationPill from '@components/page/api/EncapsulationPill'; + + + +Chipは連絡先などを複数の小さなエンティティで表示します。 Chipにはavatars, text, や iconsなど、いくつかの異なる要素を含めることができます。 + +## 基本的な使い方 + +import Basic from '@site/static/usage/v8/chip/basic/index.md'; + + + +## Slotting Components and Icons + +import SlotExample from '@site/static/usage/v8/chip/slots/index.md'; + + + +## テーマ + +### Colors + +import Colors from '@site/static/usage/v8/chip/theming/colors/index.md'; + + + +## CSSカスタムプロパティ + +import CSSProps from '@site/static/usage/v8/chip/theming/css-properties/index.md'; + + + +## プロパティ + + +## イベント + + +## メソッド + + +## CSS Shadow Parts + + +## CSSカスタムプロパティ + + +## Slots + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/api/col.md b/i18n/ja/docusaurus-plugin-content-docs/current/api/col.md new file mode 100644 index 00000000000..9254ce927e0 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/api/col.md @@ -0,0 +1,49 @@ +--- +title: "ion-col" +--- +import Props from '@ionic-internal/component-api/v8/col/props.md'; +import Events from '@ionic-internal/component-api/v8/col/events.md'; +import Methods from '@ionic-internal/component-api/v8/col/methods.md'; +import Parts from '@ionic-internal/component-api/v8/col/parts.md'; +import CustomProps from '@ionic-internal/component-api/v8/col/custom-props.mdx'; +import Slots from '@ionic-internal/component-api/v8/col/slots.md'; + + + ion-col: Column Component Padding and Other Properties + + + +import EncapsulationPill from '@components/page/api/EncapsulationPill'; + + + + +Columnは、[Grid](./grid) システムのセルラーコンポーネントで、[row](./row)の内部に配置されます。列は行を埋めるように拡張されます。グリッド内のすべてのコンテンツは、カラムの内部に配置する必要があります。 + +詳しくは、[grid](./grid)のドキュメントを参照してください。 + + +## Column Alignment + +デフォルトでは、カラムは行の高さ全体を埋めるように引き伸ばされます。カラムは[フレックスアイテム](https://developer.mozilla.org/en-US/docs/Glossary/Flex_Item)なので、この動作をカスタマイズするために、カラムに適用できるいくつかの[CSSクラス](/docs/layout/css-utilities#flex-item-properties) があります。 + + + + +## プロパティ + + +## イベント + + +## メソッド + + +## CSS Shadow Parts + + +## CSSカスタムプロパティ + + +## Slots + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/api/content.md b/i18n/ja/docusaurus-plugin-content-docs/current/api/content.md new file mode 100644 index 00000000000..6782dfcce50 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/api/content.md @@ -0,0 +1,183 @@ +--- +title: "ion-content" +--- +import Props from '@ionic-internal/component-api/v8/content/props.md'; +import Events from '@ionic-internal/component-api/v8/content/events.md'; +import Methods from '@ionic-internal/component-api/v8/content/methods.md'; +import Parts from '@ionic-internal/component-api/v8/content/parts.md'; +import CustomProps from '@ionic-internal/component-api/v8/content/custom-props.mdx'; +import Slots from '@ionic-internal/component-api/v8/content/slots.md'; + + + ion-content: Scrollable Component for Ionic App Content + + + +import EncapsulationPill from '@components/page/api/EncapsulationPill'; + + + + +Contentコンポーネントは、スクロール可能領域を制御するいくつかの便利なメソッドを備えた、 +使いやすいコンテンツ領域を提供します。 +1つのビューに表示できるコンテンツは1つだけです。 + +Contentは、他の多くのIonicコンポーネントと同様に、 [CSS Utilities](/docs/layout/css-utilities) で提供されるグローバルスタイルを使用するか、CSSおよび使用可能な [CSS Custom Properties](#css-custom-properties) を使用して個別にスタイル設定することによって、`padding` や `margin` などを変更するようにカスタマイズできます。 + + +## 基本的な使い方 + +import Basic from '@site/static/usage/v8/content/basic/index.md'; + + + + +## Header & Footer + +コンテンツは、ページ内の唯一のトップレベル・コンポーネントとすることも、[ヘッダー](./header)、[フッター](./footer)、またはその両方と一緒に使用することも可能です。ヘッダーやフッターと一緒に使用すると、残りの高さを埋めるようにサイズが調整されます。 + +import HeaderFooter from '@site/static/usage/v8/content/header-footer/index.md'; + + + + +## Fullscreen Content + +デフォルトでは、コンテンツは [ヘッダー](./header)と [フッター](./footer)の間のスペースを埋めますが、それらの背景にまわることはありません。例えば、ヘッダーとフッターのどちらかに `translucent` プロパティを設定した場合や、ツールバーに `opacity` を設定した場合など、特定のケースでは、コンテンツをヘッダーとフッターの後ろにスクロールさせることが望まれるかもしれない。これは、コンテンツの `fullscreen` プロパティを `true` に設定することで実現することができます。 + +import Fullscreen from '@site/static/usage/v8/content/fullscreen/index.md'; + + + + +## コンテンツの固定 + +スクロール可能な領域の外側に要素を配置するには、`fixed`スロットに割り当てます。そうすることで、その要素はコンテンツの左上に[絶対位置](https://developer.mozilla.org/en-US/docs/Web/CSS/position#absolute_positioning)されます。要素の位置を変えるには、CSSの[top, right, bottom, left](https://developer.mozilla.org/en-US/docs/Web/CSS/position)プロパティを使ってスタイルを設定することができます。 + +The `fixedSlotPlacement` property is used to determine if content in the `fixed` slot is placed before or after the main content in the DOM. When set to `before`, fixed slot content will be placed before the main content and will therefore receive keyboard focus before the main content receives keyboard focus. This can be useful when the main content contains an infinitely-scrolling list, preventing a [FAB](./fab) or other fixed content from being reachable by pressing the tab key. + +import Fixed from '@site/static/usage/v8/content/fixed/index.md'; + + + +## スクロールメソッド + +コンテンツには [メソッド](#methods) が用意されており、これを呼び出すことでコンテンツを下、上、または特定のポイントにスクロールさせることができます。これらのメソッドには `duration` を渡すことができ、瞬時に位置を変更するのではなく、スムーズに移行することができます。 + +import ScrollMethods from '@site/static/usage/v8/content/scroll-methods/index.md'; + + + +## Scroll Events + +スクロールイベントは、パフォーマンス上、コンテンツに対してデフォルトで無効化されています。しかし、`scrollEvents` を `true` に設定することで、有効にすることができます。これは、 スクロール [イベント](#events) を聞く前に必要です。 + +import ScrollEvents from '@site/static/usage/v8/content/scroll-events/index.md'; + + + +Scroll events are disabled by default for content due to performance. However, they can be enabled by setting `scrollEvents` to `true`. This is necessary before listening to any of the scroll [events](#events). + +## テーマ + +### Colors + +import Colors from '@site/static/usage/v8/content/theming/colors/index.md'; + + + +### CSS Shadow Parts + +import CSSParts from '@site/static/usage/v8/content/theming/css-shadow-parts/index.md'; + + + +## CSSカスタムプロパティ + +import CSSProps from '@site/static/usage/v8/content/theming/css-properties/index.md'; + + + +### Safe Area Padding + +The content component will not automatically apply padding to any of its sides to account for the [safe area](/docs/theming/advanced#safe-area-padding). This is because the content component is often used in conjunction with other components that apply their own padding, such as [headers](./header) and [footers](./footer). However, if the content component is being used on its own, it may be desired to apply padding to the safe area. This can be done through CSS by using the `--ion-safe-area-(dir)` variables described in [Application Variables](../theming/advanced.md#application-variables). + +The most common use case for this is to apply padding to the top of the content to account for the status bar. This can be done by setting the `padding-top` property to the value of the `--ion-safe-area-top` variable. + +```css +ion-content::part(scroll) { + padding-top: var(--ion-safe-area-top, 0); +} +``` + +Another common use case is to apply padding to the left side of the content to account for the notch when the device is in landscape mode and the notch is on the left side. This can be done by setting the `padding-left` property to the value of the `--ion-safe-area-left` variable. + +```css +ion-content::part(scroll) { + padding-left: var(--ion-safe-area-left, 0); +} +``` + +import SafeArea from '@site/static/usage/v8/content/theming/safe-area/index.md'; + + + +## Interfaces + +### ScrollBaseDetail + +```typescript +interface ScrollBaseDetail { + isScrolling: boolean; +} +``` + +### ScrollDetail + +```typescript +interface ScrollDetail extends GestureDetail, ScrollBaseDetail { + scrollTop: number; + scrollLeft: number; +} +``` + +### ScrollBaseCustomEvent + +必須ではありませんが、`ionScrollStart` と `ionScrollEnd` イベントをより強く型付けするために、`CustomEvent` インターフェースの代わりにこのインターフェースを利用することが可能です。 + +```typescript +interface ScrollBaseCustomEvent extends CustomEvent { + detail: ScrollBaseDetail; + target: HTMLIonContentElement; +} +``` + +### ScrollCustomEvent + +必須ではありませんが、`ionScroll` イベントをより強く型付けするために、`CustomEvent` インターフェースの代わりにこのインターフェースを利用することが可能です。 + +```typescript +interface ScrollCustomEvent extends ScrollBaseCustomEvent { + detail: ScrollDetail; +} +``` + +### ScrollCustomEvent + +## プロパティ + + +## イベント + + +## メソッド + + +## CSS Shadow Parts + + +## CSSカスタムプロパティ + + +## Slots + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/api/datetime-button.md b/i18n/ja/docusaurus-plugin-content-docs/current/api/datetime-button.md new file mode 100644 index 00000000000..a9fcb17433c --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/api/datetime-button.md @@ -0,0 +1,80 @@ +--- +title: "ion-datetime-button" +--- +import Props from '@ionic-internal/component-api/v8/datetime-button/props.md'; +import Events from '@ionic-internal/component-api/v8/datetime-button/events.md'; +import Methods from '@ionic-internal/component-api/v8/datetime-button/methods.md'; +import Parts from '@ionic-internal/component-api/v8/datetime-button/parts.md'; +import CustomProps from '@ionic-internal/component-api/v8/datetime-button/custom-props.mdx'; +import Slots from '@ionic-internal/component-api/v8/datetime-button/slots.md'; + + + ion-datetime-button: Ionic Input for Datetime Picker + + + +import EncapsulationPill from '@components/page/api/EncapsulationPill'; + + + +Datetimeボタンは、[Datetime](./datetime) コンポーネントとリンクし、フォーマットされた日付と時刻を表示します。また、モーダルやポップオーバーなどで日時を表示するためのボタンも用意されています。 + +## 概要 + +Datetimeボタンは、スペースに制約がある場合に使用する必要があります。このコンポーネントは、現在の日付と時刻の値を表示するボタンを表示します。ボタンがタップされると、日付や時刻のピッカーがオーバーレイで表示されます。 + +Angular、React、VueなどのJavaScriptフレームワークでDatetime Buttonを使用する場合は、 [ion-modalのkeepContentsMountedプロパティ](./modal#keepcontentsmounted) または [ion-popover](./popover#keepcontentsmounted) を使用していることを確認してください。これにより、オーバーレイがまだ表示されていない場合でも、リンクされたdatetimeインスタンスがマウントされるようになります。 + +## 基本的な使い方 + +import Basic from '@site/static/usage/v8/datetime-button/basic/index.md'; + + + +## ローカライゼーション + +`ion-datetime-button` のローカライズされたテキストは、関連する `ion-datetime` インスタンスの `locale` プロパティによって決まります。詳しくは、[Datetime Localization](./datetime#localization) を参照してください。 + +## Format Options + +Datetimeインスタンスに`formatOptions`を指定することで、Datetime Buttonの日付と時刻の書式をカスタマイズすることができます。詳細は[Datetime Format Options](./datetime#format-options)を参照してください。 + +import FormatOptions from '@site/static/usage/v8/datetime-button/format-options/index.md'; + + + +## モーダルやポップオーバーと使う + +`ion-datetime-button` は、マウントされた `ion-datetime` インスタンスと関連付ける必要があります。そのため、[Inline Modals](./modal#inline-modals-recommended) と [Inline Popovers](./popover#inline-popovers) は `keepContentsMounted` プロパティを `true` に設定して使用しなければなりません。 + + + +## プロパティ + + +## イベント + + +## メソッド + + +## CSS Shadow Parts + + +## CSS カスタムプロパティ + + +## Slots + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/api/datetime.md b/i18n/ja/docusaurus-plugin-content-docs/current/api/datetime.md new file mode 100644 index 00000000000..af3f8671ebe --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/api/datetime.md @@ -0,0 +1,499 @@ +--- +title: "ion-datetime" +--- +import Props from '@ionic-internal/component-api/v8/datetime/props.md'; +import Events from '@ionic-internal/component-api/v8/datetime/events.md'; +import Methods from '@ionic-internal/component-api/v8/datetime/methods.md'; +import Parts from '@ionic-internal/component-api/v8/datetime/parts.md'; +import CustomProps from '@ionic-internal/component-api/v8/datetime/custom-props.mdx'; +import Slots from '@ionic-internal/component-api/v8/datetime/slots.md'; + +import Basic from '@site/static/usage/v8/datetime/basic/index.md'; + +import MaxMin from '@site/static/usage/v8/datetime/date-constraints/max-min/index.md'; +import Values from '@site/static/usage/v8/datetime/date-constraints/values/index.md'; +import Advanced from '@site/static/usage/v8/datetime/date-constraints/advanced/index.md'; + +import FormatOptions from '@site/static/usage/v8/datetime/format-options/index.md'; + +import CustomLocale from '@site/static/usage/v8/datetime/localization/custom-locale/index.md'; +import HourCycle from '@site/static/usage/v8/datetime/localization/hour-cycle/index.md'; +import FirstDayOfWeek from '@site/static/usage/v8/datetime/localization/first-day-of-week/index.md'; +import LocaleExtensionTags from '@site/static/usage/v8/datetime/localization/locale-extension-tags/index.md'; +import TimeLabel from '@site/static/usage/v8/datetime/localization/time-label/index.md'; + +import MonthAndYear from '@site/static/usage/v8/datetime/presentation/month-and-year/index.md'; +import Time from '@site/static/usage/v8/datetime/presentation/time/index.md'; +import Date from '@site/static/usage/v8/datetime/presentation/date/index.md'; + +import ShowingDefaultTitle from '@site/static/usage/v8/datetime/title/showing-default-title/index.md'; +import CustomizingTitle from '@site/static/usage/v8/datetime/title/customizing-title/index.md'; + +import ShowingConfirmationButtons from '@site/static/usage/v8/datetime/buttons/showing-confirmation-buttons/index.md'; +import CustomizingButtons from '@site/static/usage/v8/datetime/buttons/customizing-buttons/index.md'; +import CustomizingButtonTexts from '@site/static/usage/v8/datetime/buttons/customizing-button-texts/index.md'; + +import HighlightedDatesArray from '@site/static/usage/v8/datetime/highlightedDates/array/index.md'; +import HighlightedDatesCallback from '@site/static/usage/v8/datetime/highlightedDates/callback/index.md'; + +import ShowAdjacentDays from '@site/static/usage/v8/datetime/show-adjacent-days/index.md'; + +import MultipleDateSelection from '@site/static/usage/v8/datetime/multiple/index.md'; + +import GlobalTheming from '@site/static/usage/v8/datetime/styling/global-theming/index.md'; +import CalendarDaysStyling from '@site/static/usage/v8/datetime/styling/calendar-days/index.md'; +import WheelStyling from '@site/static/usage/v8/datetime/styling/wheel-styling/index.md'; + + + ion-datetime: Ionic API Input for Datetime Format Picker + + + +import EncapsulationPill from '@components/page/api/EncapsulationPill'; + + + +Datetimeはカレンダーとタイムホイールのインターフェイスを表示し、ユーザーが簡単に日付と時刻を選択できるようにします。Datetimeはネイティブの `datetime-local` の `input` 要素と似ていますが、Ionic FrameworkのDatetimeコンポーネントを使用すると、好みのフォーマットで日付と時刻を表示したり、datetimeの値を管理することが簡単にできます。 + +## 概要 + +これまで、JavaScriptやHTMLの入力でdatetimeの値を扱うことは、常に困難でした。 +入力でさえも、常に課題でした。 +特に、JavaScriptの `Date` オブジェクトは、datetime文字列を正しく解析したり、datetime値をフォーマットしたりするのが難しいことで有名です。 +さらに悪いことに、ブラウザやJavaScriptのバージョンによって、 +特にロケールごとに様々なdatetime文字列の解析が異なるのです。 + +Ionic Frameworkのdatetimeは、開発者が一般的な落とし穴を回避できるように設計されており、 +開発者は簡単にdatetime値を操作し、ユーザーにシンプルなdatetimeピッカーを提供し、素晴らしいユーザーエクスペリエンスを提供することができます。 + +### ISO 8601 Datetime Format: `YYYY-MM-DDTHH:mmZ` + +Ionic Frameworkでは、[ISO 8601 datetime format](https://www.w3.org/TR/NOTE-datetime) を値として使用します。 +この値は、JavaScriptの `Date` オブジェクトを使用するのではなく、単純に文字列として使用されます。 +ISO datetimeフォーマットを使用することで、 +JSONオブジェクトやデータベース内でのシリアライズやパースが容易になります。 + +以下は、 `ion-datetime` で使用できる ISO 8601 フォーマットの例です: + +| Description | Format | Datetime Value Example | +| -------------------- | ------------------------ | ------------------------------ | +| Year | `YYYY` | `1994` | +| Year and Month | `YYYY-MM` | `1994-12` | +| Complete Date | `YYYY-MM-DD` | `1994-12-15` | +| Date and Time | `YYYY-MM-DDTHH:mm` | `1994-12-15T13:47` | +| UTC Timezone | `YYYY-MM-DDTHH:mm:ssZ` | `1994-12-15T13:47:20Z` | +| Timezone Offset | `YYYY-MM-DDTHH:mm:ssTZD` | `1994-12-15T13:47:20+05:00` | +| Hour and Minute | `HH:mm` | `13:47` | + +年号は常に4桁、ミリ秒は(加算される場合は)常に3桁、その他は常に2桁であることに注意してください。 +ミリ秒は3桁、その他は2桁である。 +ですから、1月を表す数字には 1月を表す数字には常に先頭のゼロ、例えば`01`が付きます。 +また、時刻は常に24時間表示で、 +12時間表示の時計では「00」は「午前12時」、「13」は「午後1時」、「23」は「午後3時」を意味します。 + +:::note +秒、ミリ秒、タイムゾーンは ISO 8601 datetime フォーマットで指定できますが、 `ion-datetime` は秒、ミリ秒、タイムゾーンを選択するためのインターフェイスを提供しません。秒、ミリ秒、タイムゾーンの値を指定しても無視されます。 +::: + +## 基本的な使い方 + + + +## 日付ボタンと使う + +モーダルやポップオーバーなどのオーバーレイで日付時刻を表示する必要がある場合は、 [ion-datetime-button](./datetime-button) を使用することをお勧めします。スペースに制約がある場合は、 `ion-datetime-button` を使用する必要があります。このコンポーネントは、現在の日付と時刻の値を表示するボタンを表示します。ボタンがタップされると、日付と時刻のピッカーがオーバーレイで表示されます。 + +## 非同期に値を設定する + +すでにdatetimeが作成された後にプログラムで`value`が更新されると、datetimeは自動的に新しい日付にジャンプします。しかし、ユーザーがdatetimeを操作しているときに、この方法で`value`を更新することは避けることをお勧めします。例えば、datetimeの`value`が非同期処理で読み込まれる場合、値の更新が終わるまでCSSでdatetimeを非表示にすることをお勧めします。 + +## 日付コンテナ + +### 日付の最小値と最大値 + +日付の最小値と最大値をカスタマイズするには、 `min` と `max` コンポーネントプロパティを使用します。上の表にあるのと同じ IS0 8601 フォーマットに従って、各コンポーネントはユーザーが選択できる日付を制限することができます。 + +以下の例では、日付の選択を2022年3月から2022年5月のみに制限しています。 + + + +### 特定の値を選択する + +`min` と `max` プロパティでは、日付の選択をある範囲に制限することができますが、 `monthValues`, `dayValues`, `yearValues`, `hourValues`, `minuteValues` プロパティでは、ユーザーが選択できる特定の日や時刻を選択することが可能です。 + +次の例では、15分単位で分を選択することができます。また、日付を5刻みで選択することができます。 + + + +### 高度な日付制限 + +`isDateEnabled` プロパティを使用すると、開発者は `ion-datetime` をカスタマイズして、ISO 8601 の日付文字列を使用して、特定の日、日付の範囲、週末、または任意のカスタムルールを無効にすることができる。 +isDateEnabled` プロパティは、日付が有効かどうかを示すブール値を返す関数を受け付ける。この関数は、レンダリングされた各日付、前月、当月、翌月に対して呼び出されます。カスタムの実装では、ジャンクを避けるためにパフォーマンスを最適化する必要があります。 + +次の例では、週末の日付をすべて無効にする方法を示しています。より高度な日付操作を行うには、 `date-fns` のような日付ユーティリティを使用することをお勧めします。 + + + +## ローカライゼーション + +Ionic Frameworkでは、[Intl.DatetimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DatetimeFormat) Web APIを利用して、ユーザーの端末に設定されている言語や地域に応じて、月名と曜日名を自動的にローカライズすることが可能です。 + +### カスタムロケール + +特定のロケールが必要な場合、 `locale` プロパティを使用して設定することができます。ロケールは、表示される言語と日付・時刻のフォーマットの両方を制御します。 + +次の例では、ロケールをスペイン語(Spanish)に設定する方法を示しています。 + + + +:::note +時刻の表記は、自動的にローカライズされません。詳しくは [Time Label](#time-label) を参照してください。 +::: + +### 時間サイクル + +`ion-datetime` は、デフォルトで `locale` プロパティで指定された時間サイクルを使用します。例えば、 `locale` が `en-US` に設定されている場合、 `ion-datetime` は12時間のサイクルを使用します。 + +時間サイクルには4つのタイプがあります。 + +| Hour cycle type | Description | +| --------------- | ------------------------------------------------------------ | +| `'h12'` | Hour system using 1–12; corresponds to 'h' in patterns. The 12 hour clock, with midnight starting at 12:00 am. | +| `'h23'` | Hour system using 0–23; corresponds to 'H' in patterns. The 24 hour clock, with midnight starting at 0:00. | +| `'h11'` | Hour system using 0–11; corresponds to 'K' in patterns. The 12 hour clock, with midnight starting at 0:00 am. | +| `'h24'` | Hour system using 1–24; corresponds to 'k' in pattern. The 24 hour clock, with midnight starting at 24:00. | + +:::note + ソース: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle +::: + + +どの時間のサイクルを使用するか、もっとコントロールする必要があるシナリオがあるかもしれません。このような場合には、 `hourCycle` プロパティが役に立ちます。 + +次の例では、 `hourCycle` プロパティを使用して、ロケールが `en-GB` であるにもかかわらず、 `ion-datetime` に12時間周期を使用するように強制することができます。 + + + +### 週初めの日 + +`ion-datetime`の場合、週初めの曜日はデフォルトで日曜日です。2022年現在、Ionicがデバイスのロケールに基づいて自動的に週の最初の曜日を決定するためのブラウザAPIはありませんが、これに関する作業は進行中です(参照: [TC39 GitHub](https://github.com/tc39/ecma402/issues/6) ). + + + +### 時刻表記 + +時刻表記は自動的にローカライズされるわけではありません。幸いなことに、Ionicでは `time-label` スロットで簡単にカスタムのローカライズを提供することができます。 + + + +### ロケールエクステンションタグ + +`ion-datetime` は、 `Intl.Locale` API の一部として [locale extension tags](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) もサポートしています。これらのタグを使用すると、ロケールに関する情報をロケール文字列自体にエンコードすることができます。開発者は、アプリの中で [Intl.Locale API](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) を使っている場合、拡張タグのアプローチを使うことを好むかもしれません。 + +たとえば、 `en-GB` ロケールで 12 時間周期を使用したい場合は、 `locale` と `hourCycle` の両方のプロパティを使用するのではなく、拡張タグを使用します。 + + + +:::note +アプリで使用する前に、 `Intl.Locale` の [Browser Compatibility Chart](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale#browser_compatibility) を必ず確認してください。 +::: + +## プレゼンテーション + +デフォルトでは、 `ion-datetime` は日付と時刻の両方を選択することができる。さらに、ユーザは特定の月、年、時間、分を選択することができます。 + +ユースケースによっては、日付だけを選択したり、時間だけを選択したりすることもできます。 `presentation` プロパティでは、表示するピッカーとその順番を指定することができます。例えば、 `date-time` を設定すると、カレンダーピッカーがタイムピッカーよりも先に表示されます。 `time-date` を設定すると、カレンダーピッカーはtimeピッカーの後に表示されます。 + +### 月と年の選択 + +月と年の選択は、 `presentation` プロパティに `month-year` , `month` , または `year` を渡すことで行うことができます。 + +この例では、 `month-year` を設定した datetime を示しています。 + + + +### 時刻の選択 + +時刻の選択は、 `presentation` プロパティに `date-time`, `time-date`, `time` を渡すことで行うことができます。 + +この例では、`time`の設定で datetime を表示しています。 + +