From 658d1caccd530350843b85c0e24544ec27dd9eb4 Mon Sep 17 00:00:00 2001 From: Liam DeBeasi Date: Fri, 5 Jan 2024 09:10:53 -0500 Subject: [PATCH 1/5] feat: add experimental hardware back button support in browsers (#28705) resolves #28703 --- core/src/components/app/app.tsx | 15 ++++- core/src/components/menu/menu.tsx | 8 ++- core/src/utils/browser/index.ts | 27 ++++++++- core/src/utils/config.ts | 8 +++ core/src/utils/hardware-back-button.ts | 57 ++++++++++++++++++- core/src/utils/overlays.ts | 38 ++++++++++--- .../utils/test/hardware-back-button.spec.ts | 52 +++++++++++++++++ 7 files changed, 190 insertions(+), 15 deletions(-) diff --git a/core/src/components/app/app.tsx b/core/src/components/app/app.tsx index b0fc4731b3..44a67d2a15 100644 --- a/core/src/components/app/app.tsx +++ b/core/src/components/app/app.tsx @@ -1,6 +1,8 @@ import type { ComponentInterface } from '@stencil/core'; import { Build, Component, Element, Host, Method, h } from '@stencil/core'; import type { FocusVisibleUtility } from '@utils/focus-visible'; +import { shoudUseCloseWatcher } from '@utils/hardware-back-button'; +import { printIonWarning } from '@utils/logging'; import { isPlatform } from '@utils/platform'; import { config } from '../../global/config'; @@ -34,9 +36,20 @@ export class App implements ComponentInterface { import('../../utils/input-shims/input-shims').then((module) => module.startInputShims(config, platform)); } const hardwareBackButtonModule = await import('../../utils/hardware-back-button'); - if (config.getBoolean('hardwareBackButton', isHybrid)) { + const supportsHardwareBackButtonEvents = isHybrid || shoudUseCloseWatcher(); + if (config.getBoolean('hardwareBackButton', supportsHardwareBackButtonEvents)) { hardwareBackButtonModule.startHardwareBackButton(); } else { + /** + * If an app sets hardwareBackButton: false and experimentalCloseWatcher: true + * then the close watcher will not be used. + */ + if (shoudUseCloseWatcher()) { + printIonWarning( + 'experimentalCloseWatcher was set to `true`, but hardwareBackButton was set to `false`. Both config options must be `true` for the Close Watcher API to be used.' + ); + } + hardwareBackButtonModule.blockHardwareBackButton(); } if (typeof (window as any) !== 'undefined') { diff --git a/core/src/components/menu/menu.tsx b/core/src/components/menu/menu.tsx index 4925051837..a3574e1a2b 100644 --- a/core/src/components/menu/menu.tsx +++ b/core/src/components/menu/menu.tsx @@ -2,6 +2,7 @@ import type { ComponentInterface, EventEmitter } from '@stencil/core'; import { Build, Component, Element, Event, Host, Listen, Method, Prop, State, Watch, h } from '@stencil/core'; import { getTimeGivenProgression } from '@utils/animation/cubic-bezier'; import { GESTURE_CONTROLLER } from '@utils/gesture'; +import { shoudUseCloseWatcher } from '@utils/hardware-back-button'; import type { Attributes } from '@utils/helpers'; import { inheritAriaAttributes, assert, clamp, isEndSide as isEnd } from '@utils/helpers'; import { menuController } from '@utils/menu-controller'; @@ -321,7 +322,6 @@ export class Menu implements ComponentInterface, MenuI { } } - @Listen('keydown') onKeydown(ev: KeyboardEvent) { if (ev.key === 'Escape') { this.close(); @@ -781,8 +781,14 @@ export class Menu implements ComponentInterface, MenuI { const { type, disabled, isPaneVisible, inheritedAttributes, side } = this; const mode = getIonMode(this); + /** + * If the Close Watcher is enabled then + * the ionBackButton listener in the menu controller + * will handle closing the menu when Escape is pressed. + */ return ( void | null; + onclose: (event: Event) => void | null; +} + +interface CloseWatcherOptions { + signal: AbortSignal; +} + +/** + * Experimental browser features that + * are selectively used inside of Ionic + * Since they are experimental they typically + * do not have types yet, so we can add custom ones + * here until types are available. + */ +type ExperimentalWindowFeatures = { + CloseWatcher?: CloseWatcher; +}; + +type IonicWindow = Window & IonicEvents & ExperimentalWindowFeatures; type IonicDocument = Document & IonicEvents; export const win: IonicWindow | undefined = typeof window !== 'undefined' ? window : undefined; diff --git a/core/src/utils/config.ts b/core/src/utils/config.ts index 4cf3cc08d0..bc1dc785c2 100644 --- a/core/src/utils/config.ts +++ b/core/src/utils/config.ts @@ -204,6 +204,14 @@ export interface IonicConfig { */ platform?: PlatformConfig; + /** + * @experimental + * If `true`, the [CloseWatcher API](https://github.com/WICG/close-watcher) will be used to handle + * all Escape key and hardware back button presses to dismiss menus and overlays and to navigate. + * Note that the `hardwareBackButton` config option must also be `true`. + */ + experimentalCloseWatcher?: boolean; + // PRIVATE configs keyboardHeight?: number; inputShims?: boolean; diff --git a/core/src/utils/hardware-back-button.ts b/core/src/utils/hardware-back-button.ts index 91a0bc540f..1005497faa 100644 --- a/core/src/utils/hardware-back-button.ts +++ b/core/src/utils/hardware-back-button.ts @@ -1,3 +1,8 @@ +import { win } from '@utils/browser'; +import type { CloseWatcher } from '@utils/browser'; + +import { config } from '../global/config'; + // TODO(FW-2832): type type Handler = (processNextHandler: () => void) => Promise | void | null; @@ -13,6 +18,21 @@ interface HandlerRegister { id: number; } +/** + * CloseWatcher is a newer API that lets + * use detect the hardware back button event + * in a web browser: https://caniuse.com/?search=closewatcher + * However, not every browser supports it yet. + * + * This needs to be a function so that we can + * check the config once it has been set. + * Otherwise, this code would be evaluated the + * moment this file is evaluated which could be + * before the config is set. + */ +export const shoudUseCloseWatcher = () => + config.get('experimentalCloseWatcher', false) && win !== undefined && 'CloseWatcher' in win; + /** * When hardwareBackButton: false in config, * we need to make sure we also block the default @@ -29,9 +49,9 @@ export const blockHardwareBackButton = () => { export const startHardwareBackButton = () => { const doc = document; - let busy = false; - doc.addEventListener('backbutton', () => { + + const backButtonCallback = () => { if (busy) { return; } @@ -81,7 +101,38 @@ export const startHardwareBackButton = () => { }; processHandlers(); - }); + }; + + /** + * If the CloseWatcher is defined then + * we don't want to also listen for the native + * backbutton event otherwise we may get duplicate + * events firing. + */ + if (shoudUseCloseWatcher()) { + let watcher: CloseWatcher | undefined; + + const configureWatcher = () => { + watcher?.destroy(); + watcher = new win!.CloseWatcher!(); + + /** + * Once a close request happens + * the watcher gets destroyed. + * As a result, we need to re-configure + * the watcher so we can respond to other + * close requests. + */ + watcher!.onclose = () => { + backButtonCallback(); + configureWatcher(); + }; + }; + + configureWatcher(); + } else { + doc.addEventListener('backbutton', backButtonCallback); + } }; export const OVERLAY_BACK_BUTTON_PRIORITY = 100; diff --git a/core/src/utils/overlays.ts b/core/src/utils/overlays.ts index bd56ac3684..0ea4cb6272 100644 --- a/core/src/utils/overlays.ts +++ b/core/src/utils/overlays.ts @@ -1,5 +1,6 @@ import { doc } from '@utils/browser'; import type { BackButtonEvent } from '@utils/hardware-back-button'; +import { shoudUseCloseWatcher } from '@utils/hardware-back-button'; import { config } from '../global/config'; import { getIonMode } from '../global/ionic-global'; @@ -353,20 +354,39 @@ const connectListeners = (doc: Document) => { const lastOverlay = getPresentedOverlay(doc); if (lastOverlay?.backdropDismiss) { (ev as BackButtonEvent).detail.register(OVERLAY_BACK_BUTTON_PRIORITY, () => { - return lastOverlay.dismiss(undefined, BACKDROP); + /** + * Do not return this promise otherwise + * the hardware back button utility will + * be blocked until the overlay dismisses. + * This is important for a modal with canDismiss. + * If the application presents a confirmation alert + * in the "canDismiss" callback, then it will be impossible + * to use the hardware back button to dismiss the alert + * dialog because the hardware back button utility + * is blocked on waiting for the modal to dismiss. + */ + lastOverlay.dismiss(undefined, BACKDROP); }); } }); - // handle ESC to close overlay - doc.addEventListener('keydown', (ev) => { - if (ev.key === 'Escape') { - const lastOverlay = getPresentedOverlay(doc); - if (lastOverlay?.backdropDismiss) { - lastOverlay.dismiss(undefined, BACKDROP); + /** + * Handle ESC to close overlay. + * CloseWatcher also handles pressing the Esc + * key, so if a browser supports CloseWatcher then + * this behavior will be handled via the ionBackButton + * event. + */ + if (!shoudUseCloseWatcher()) { + doc.addEventListener('keydown', (ev) => { + if (ev.key === 'Escape') { + const lastOverlay = getPresentedOverlay(doc); + if (lastOverlay?.backdropDismiss) { + lastOverlay.dismiss(undefined, BACKDROP); + } } - } - }); + }); + } } }; diff --git a/core/src/utils/test/hardware-back-button.spec.ts b/core/src/utils/test/hardware-back-button.spec.ts index a4e5bbb7c4..87f27d407c 100644 --- a/core/src/utils/test/hardware-back-button.spec.ts +++ b/core/src/utils/test/hardware-back-button.spec.ts @@ -1,5 +1,7 @@ import type { BackButtonEvent } from '../../../src/interface'; import { startHardwareBackButton } from '../hardware-back-button'; +import { config } from '../../global/config'; +import { win } from '@utils/browser'; describe('Hardware Back Button', () => { beforeEach(() => startHardwareBackButton()); @@ -54,6 +56,56 @@ describe('Hardware Back Button', () => { }); }); +describe('Experimental Close Watcher', () => { + test('should not use the Close Watcher API when available', () => { + const mockAPI = mockCloseWatcher(); + + config.reset({ experimentalCloseWatcher: false }); + + startHardwareBackButton(); + + expect(mockAPI.mock.calls).toHaveLength(0); + }); + test('should use the Close Watcher API when available', () => { + const mockAPI = mockCloseWatcher(); + + config.reset({ experimentalCloseWatcher: true }); + + startHardwareBackButton(); + + expect(mockAPI.mock.calls).toHaveLength(1); + }); + test('Close Watcher should dispatch ionBackButton events', () => { + const mockAPI = mockCloseWatcher(); + + config.reset({ experimentalCloseWatcher: true }); + + startHardwareBackButton(); + + const cbSpy = jest.fn(); + document.addEventListener('ionBackButton', cbSpy); + + // Call onclose on Ionic's instance of CloseWatcher + mockAPI.getMockImplementation()!().onclose(); + + expect(cbSpy).toHaveBeenCalled(); + }); +}); + +const mockCloseWatcher = () => { + const mockCloseWatcher = jest.fn(); + mockCloseWatcher.mockReturnValue({ + requestClose: () => null, + close: () => null, + destroy: () => null, + oncancel: () => null, + onclose: () => null, + }); + (win as any).CloseWatcher = mockCloseWatcher; + + return mockCloseWatcher; +}; + const dispatchBackButtonEvent = () => { const ev = new Event('backbutton'); document.dispatchEvent(ev); From e22c78d682c50d88c56e8c9c6cf080ac0c1d9463 Mon Sep 17 00:00:00 2001 From: Liam DeBeasi Date: Mon, 8 Jan 2024 10:22:31 -0500 Subject: [PATCH 2/5] chore: remove any and resolve lint (#28782) Issue number: Internal --------- ## What is the current behavior? As part of FW-2832 the team has an initiative to remove much of the `any` usage in favor of stronger types. This will make modifications to this codebase safer as we will have access to proper type checking. ## What is the new behavior? - Added stronger types to the `animationTimeout` variable. Making this change causes our linter to fail because we are using a number value in a conditional which we do not allow. To avoid this, I needed to check if `animationTimeout` was `undefined`. This should not cause any changes for Ionic developers, but I want to ship this a) in a separate patch and b) in a minor release to de-risk just in case there's an edge case I am not considering. ## Does this introduce a breaking change? - [ ] Yes - [x] No ## Other information --- core/src/utils/helpers.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/utils/helpers.ts b/core/src/utils/helpers.ts index ee5d8bcd10..92d43fc7a6 100644 --- a/core/src/utils/helpers.ts +++ b/core/src/utils/helpers.ts @@ -22,7 +22,7 @@ export const transitionEndAsync = (el: HTMLElement | null, expectedDuration = 0) */ const transitionEnd = (el: HTMLElement | null, expectedDuration = 0, callback: (ev?: TransitionEvent) => void) => { let unRegTrans: (() => void) | undefined; - let animationTimeout: any; + let animationTimeout: number | undefined; const opts: any = { passive: true }; const ANIMATION_FALLBACK_TIMEOUT = 500; @@ -45,7 +45,7 @@ const transitionEnd = (el: HTMLElement | null, expectedDuration = 0, callback: ( animationTimeout = setTimeout(onTransitionEnd, expectedDuration + ANIMATION_FALLBACK_TIMEOUT); unRegTrans = () => { - if (animationTimeout) { + if (animationTimeout !== undefined) { clearTimeout(animationTimeout); animationTimeout = undefined; } From bb822b3ed0417a73989ead394efe4ed5836bcb79 Mon Sep 17 00:00:00 2001 From: Liam DeBeasi Date: Tue, 9 Jan 2024 13:32:30 -0500 Subject: [PATCH 3/5] chore: remove matchMedia check (#28783) Issue number: Internal --------- ## What is the current behavior? As part of FW-2832 the team has an initiative to remove much of the `any` usage in favor of stronger types. This will make modifications to this codebase safer as we will have access to proper type checking. ## What is the new behavior? - Removed the `any` case from window.matchMedia. This causes the linter to fail because `window.matchMedia` is always defined. I removed the check altogether. `matchMedia` is supported on all browsers that Ionic 7 supports. This should not cause any changes for Ionic developers, but I want to ship this a) in a separate patch and b) in a minor release to de-risk just in case there's an edge case I am not considering ## Does this introduce a breaking change? - [ ] Yes - [x] No ## Other information --- core/src/components/split-pane/split-pane.tsx | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/core/src/components/split-pane/split-pane.tsx b/core/src/components/split-pane/split-pane.tsx index decd5d7a59..f40fa75644 100644 --- a/core/src/components/split-pane/split-pane.tsx +++ b/core/src/components/split-pane/split-pane.tsx @@ -112,17 +112,16 @@ export class SplitPane implements ComponentInterface { return; } - if ((window as any).matchMedia) { - // Listen on media query - const callback = (q: MediaQueryList) => { - this.visible = q.matches; - }; + // Listen on media query + const callback = (q: MediaQueryList) => { + this.visible = q.matches; + }; - const mediaList = window.matchMedia(mediaQuery); - (mediaList as any).addListener(callback as any); - this.rmL = () => (mediaList as any).removeListener(callback as any); - this.visible = mediaList.matches; - } + const mediaList = window.matchMedia(mediaQuery); + // TODO FW-5869 + (mediaList as any).addListener(callback as any); + this.rmL = () => (mediaList as any).removeListener(callback as any); + this.visible = mediaList.matches; } private isPane(element: HTMLElement): boolean { From e672805406cfd5187b7b09c4d69cfa96d8721a43 Mon Sep 17 00:00:00 2001 From: ionitron Date: Wed, 31 Jan 2024 15:17:39 +0000 Subject: [PATCH 4/5] v7.7.0 --- CHANGELOG.md | 11 +++++++++++ core/CHANGELOG.md | 11 +++++++++++ core/package-lock.json | 4 ++-- core/package.json | 2 +- docs/CHANGELOG.md | 8 ++++++++ docs/package-lock.json | 4 ++-- docs/package.json | 2 +- lerna.json | 2 +- packages/angular-server/CHANGELOG.md | 8 ++++++++ packages/angular-server/package-lock.json | 6 +++--- packages/angular-server/package.json | 4 ++-- packages/angular/CHANGELOG.md | 8 ++++++++ packages/angular/package-lock.json | 6 +++--- packages/angular/package.json | 4 ++-- packages/react-router/CHANGELOG.md | 8 ++++++++ packages/react-router/package-lock.json | 6 +++--- packages/react-router/package.json | 4 ++-- packages/react/CHANGELOG.md | 8 ++++++++ packages/react/package-lock.json | 6 +++--- packages/react/package.json | 4 ++-- packages/vue-router/CHANGELOG.md | 8 ++++++++ packages/vue-router/package-lock.json | 6 +++--- packages/vue-router/package.json | 4 ++-- packages/vue/CHANGELOG.md | 8 ++++++++ packages/vue/package-lock.json | 6 +++--- packages/vue/package.json | 4 ++-- 26 files changed, 115 insertions(+), 37 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 103bb52127..37b951938d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [7.7.0](https://github.com/ionic-team/ionic-framework/compare/v7.6.7...v7.7.0) (2024-01-31) + + +### Features + +* add experimental hardware back button support in browsers ([#28705](https://github.com/ionic-team/ionic-framework/issues/28705)) ([658d1ca](https://github.com/ionic-team/ionic-framework/commit/658d1caccd530350843b85c0e24544ec27dd9eb4)), closes [#28703](https://github.com/ionic-team/ionic-framework/issues/28703) + + + + + ## [7.6.7](https://github.com/ionic-team/ionic-framework/compare/v7.6.6...v7.6.7) (2024-01-31) diff --git a/core/CHANGELOG.md b/core/CHANGELOG.md index 99bb098256..bdc18272f2 100644 --- a/core/CHANGELOG.md +++ b/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [7.7.0](https://github.com/ionic-team/ionic-framework/compare/v7.6.7...v7.7.0) (2024-01-31) + + +### Features + +* add experimental hardware back button support in browsers ([#28705](https://github.com/ionic-team/ionic-framework/issues/28705)) ([658d1ca](https://github.com/ionic-team/ionic-framework/commit/658d1caccd530350843b85c0e24544ec27dd9eb4)), closes [#28703](https://github.com/ionic-team/ionic-framework/issues/28703) + + + + + ## [7.6.7](https://github.com/ionic-team/ionic-framework/compare/v7.6.6...v7.6.7) (2024-01-31) diff --git a/core/package-lock.json b/core/package-lock.json index bbc1c89a11..5c0b02b76b 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ionic/core", - "version": "7.6.7", + "version": "7.7.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/core", - "version": "7.6.7", + "version": "7.7.0", "license": "MIT", "dependencies": { "@stencil/core": "^4.12.0", diff --git a/core/package.json b/core/package.json index eb3d5d4aa4..52b107641c 100644 --- a/core/package.json +++ b/core/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/core", - "version": "7.6.7", + "version": "7.7.0", "description": "Base components for Ionic", "keywords": [ "ionic", diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 4e0f51a199..5b90e786be 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [7.7.0](https://github.com/ionic-team/ionic-framework/compare/v7.6.7...v7.7.0) (2024-01-31) + +**Note:** Version bump only for package @ionic/docs + + + + + ## [7.6.7](https://github.com/ionic-team/ionic-framework/compare/v7.6.6...v7.6.7) (2024-01-31) **Note:** Version bump only for package @ionic/docs diff --git a/docs/package-lock.json b/docs/package-lock.json index d79ee44714..4351a19d89 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ionic/docs", - "version": "7.6.7", + "version": "7.7.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/docs", - "version": "7.6.7", + "version": "7.7.0", "license": "MIT" } } diff --git a/docs/package.json b/docs/package.json index 16b68117dc..5e902cb491 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/docs", - "version": "7.6.7", + "version": "7.7.0", "description": "Pre-packaged API documentation for the Ionic docs.", "main": "core.json", "types": "core.d.ts", diff --git a/lerna.json b/lerna.json index cf9b8a22c9..b62318314a 100644 --- a/lerna.json +++ b/lerna.json @@ -4,5 +4,5 @@ "docs", "packages/*" ], - "version": "7.6.7" + "version": "7.7.0" } diff --git a/packages/angular-server/CHANGELOG.md b/packages/angular-server/CHANGELOG.md index 5ef3e2b881..e9992ff908 100644 --- a/packages/angular-server/CHANGELOG.md +++ b/packages/angular-server/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [7.7.0](https://github.com/ionic-team/ionic-framework/compare/v7.6.7...v7.7.0) (2024-01-31) + +**Note:** Version bump only for package @ionic/angular-server + + + + + ## [7.6.7](https://github.com/ionic-team/ionic-framework/compare/v7.6.6...v7.6.7) (2024-01-31) **Note:** Version bump only for package @ionic/angular-server diff --git a/packages/angular-server/package-lock.json b/packages/angular-server/package-lock.json index fd4a071d5c..7eee096043 100644 --- a/packages/angular-server/package-lock.json +++ b/packages/angular-server/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/angular-server", - "version": "7.6.7", + "version": "7.7.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/angular-server", - "version": "7.6.7", + "version": "7.7.0", "license": "MIT", "dependencies": { - "@ionic/core": "^7.6.7" + "@ionic/core": "^7.7.0" }, "devDependencies": { "@angular-eslint/eslint-plugin": "^14.0.0", diff --git a/packages/angular-server/package.json b/packages/angular-server/package.json index fd5a71ddcc..bc0dcfc002 100644 --- a/packages/angular-server/package.json +++ b/packages/angular-server/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/angular-server", - "version": "7.6.7", + "version": "7.7.0", "description": "Angular SSR Module for Ionic", "keywords": [ "ionic", @@ -62,6 +62,6 @@ }, "prettier": "@ionic/prettier-config", "dependencies": { - "@ionic/core": "^7.6.7" + "@ionic/core": "^7.7.0" } } diff --git a/packages/angular/CHANGELOG.md b/packages/angular/CHANGELOG.md index a43b64f65b..20655b7967 100644 --- a/packages/angular/CHANGELOG.md +++ b/packages/angular/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [7.7.0](https://github.com/ionic-team/ionic-framework/compare/v7.6.7...v7.7.0) (2024-01-31) + +**Note:** Version bump only for package @ionic/angular + + + + + ## [7.6.7](https://github.com/ionic-team/ionic-framework/compare/v7.6.6...v7.6.7) (2024-01-31) **Note:** Version bump only for package @ionic/angular diff --git a/packages/angular/package-lock.json b/packages/angular/package-lock.json index ca02673c49..27fe373b99 100644 --- a/packages/angular/package-lock.json +++ b/packages/angular/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/angular", - "version": "7.6.7", + "version": "7.7.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/angular", - "version": "7.6.7", + "version": "7.7.0", "license": "MIT", "dependencies": { - "@ionic/core": "^7.6.7", + "@ionic/core": "^7.7.0", "ionicons": "^7.0.0", "jsonc-parser": "^3.0.0", "tslib": "^2.3.0" diff --git a/packages/angular/package.json b/packages/angular/package.json index c064c7585e..4e7803f91c 100644 --- a/packages/angular/package.json +++ b/packages/angular/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/angular", - "version": "7.6.7", + "version": "7.7.0", "description": "Angular specific wrappers for @ionic/core", "keywords": [ "ionic", @@ -47,7 +47,7 @@ } }, "dependencies": { - "@ionic/core": "^7.6.7", + "@ionic/core": "^7.7.0", "ionicons": "^7.0.0", "jsonc-parser": "^3.0.0", "tslib": "^2.3.0" diff --git a/packages/react-router/CHANGELOG.md b/packages/react-router/CHANGELOG.md index 45708f67d6..1113f0aec4 100644 --- a/packages/react-router/CHANGELOG.md +++ b/packages/react-router/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [7.7.0](https://github.com/ionic-team/ionic-framework/compare/v7.6.7...v7.7.0) (2024-01-31) + +**Note:** Version bump only for package @ionic/react-router + + + + + ## [7.6.7](https://github.com/ionic-team/ionic-framework/compare/v7.6.6...v7.6.7) (2024-01-31) **Note:** Version bump only for package @ionic/react-router diff --git a/packages/react-router/package-lock.json b/packages/react-router/package-lock.json index 185e4b13c5..df412c1dc4 100644 --- a/packages/react-router/package-lock.json +++ b/packages/react-router/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/react-router", - "version": "7.6.7", + "version": "7.7.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/react-router", - "version": "7.6.7", + "version": "7.7.0", "license": "MIT", "dependencies": { - "@ionic/react": "^7.6.7", + "@ionic/react": "^7.7.0", "tslib": "*" }, "devDependencies": { diff --git a/packages/react-router/package.json b/packages/react-router/package.json index e43bf90956..11796571b0 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/react-router", - "version": "7.6.7", + "version": "7.7.0", "description": "React Router wrapper for @ionic/react", "keywords": [ "ionic", @@ -36,7 +36,7 @@ "dist/" ], "dependencies": { - "@ionic/react": "^7.6.7", + "@ionic/react": "^7.7.0", "tslib": "*" }, "peerDependencies": { diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index 5a92f20507..964202d859 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [7.7.0](https://github.com/ionic-team/ionic-framework/compare/v7.6.7...v7.7.0) (2024-01-31) + +**Note:** Version bump only for package @ionic/react + + + + + ## [7.6.7](https://github.com/ionic-team/ionic-framework/compare/v7.6.6...v7.6.7) (2024-01-31) **Note:** Version bump only for package @ionic/react diff --git a/packages/react/package-lock.json b/packages/react/package-lock.json index 8e41cdb966..875c9617f3 100644 --- a/packages/react/package-lock.json +++ b/packages/react/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/react", - "version": "7.6.7", + "version": "7.7.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/react", - "version": "7.6.7", + "version": "7.7.0", "license": "MIT", "dependencies": { - "@ionic/core": "^7.6.7", + "@ionic/core": "^7.7.0", "ionicons": "^7.0.0", "tslib": "*" }, diff --git a/packages/react/package.json b/packages/react/package.json index aa516324e6..241a4dc256 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/react", - "version": "7.6.7", + "version": "7.7.0", "description": "React specific wrapper for @ionic/core", "keywords": [ "ionic", @@ -39,7 +39,7 @@ "css/" ], "dependencies": { - "@ionic/core": "^7.6.7", + "@ionic/core": "^7.7.0", "ionicons": "^7.0.0", "tslib": "*" }, diff --git a/packages/vue-router/CHANGELOG.md b/packages/vue-router/CHANGELOG.md index 34ae6308c7..4c99d7a319 100644 --- a/packages/vue-router/CHANGELOG.md +++ b/packages/vue-router/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [7.7.0](https://github.com/ionic-team/ionic-framework/compare/v7.6.7...v7.7.0) (2024-01-31) + +**Note:** Version bump only for package @ionic/vue-router + + + + + ## [7.6.7](https://github.com/ionic-team/ionic-framework/compare/v7.6.6...v7.6.7) (2024-01-31) **Note:** Version bump only for package @ionic/vue-router diff --git a/packages/vue-router/package-lock.json b/packages/vue-router/package-lock.json index 475dabde11..d33e8c2cec 100644 --- a/packages/vue-router/package-lock.json +++ b/packages/vue-router/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/vue-router", - "version": "7.6.7", + "version": "7.7.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/vue-router", - "version": "7.6.7", + "version": "7.7.0", "license": "MIT", "dependencies": { - "@ionic/vue": "^7.6.7" + "@ionic/vue": "^7.7.0" }, "devDependencies": { "@ionic/eslint-config": "^0.3.0", diff --git a/packages/vue-router/package.json b/packages/vue-router/package.json index f80f3a9215..9c26335ad6 100644 --- a/packages/vue-router/package.json +++ b/packages/vue-router/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/vue-router", - "version": "7.6.7", + "version": "7.7.0", "description": "Vue Router integration for @ionic/vue", "scripts": { "test.spec": "jest", @@ -44,7 +44,7 @@ }, "homepage": "https://github.com/ionic-team/ionic#readme", "dependencies": { - "@ionic/vue": "^7.6.7" + "@ionic/vue": "^7.7.0" }, "devDependencies": { "@ionic/eslint-config": "^0.3.0", diff --git a/packages/vue/CHANGELOG.md b/packages/vue/CHANGELOG.md index 7d8ad5c08b..f8d8ab7c25 100644 --- a/packages/vue/CHANGELOG.md +++ b/packages/vue/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [7.7.0](https://github.com/ionic-team/ionic-framework/compare/v7.6.7...v7.7.0) (2024-01-31) + +**Note:** Version bump only for package @ionic/vue + + + + + ## [7.6.7](https://github.com/ionic-team/ionic-framework/compare/v7.6.6...v7.6.7) (2024-01-31) **Note:** Version bump only for package @ionic/vue diff --git a/packages/vue/package-lock.json b/packages/vue/package-lock.json index 16940fea24..0f98ba2520 100644 --- a/packages/vue/package-lock.json +++ b/packages/vue/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/vue", - "version": "7.6.7", + "version": "7.7.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/vue", - "version": "7.6.7", + "version": "7.7.0", "license": "MIT", "dependencies": { - "@ionic/core": "^7.6.7", + "@ionic/core": "^7.7.0", "ionicons": "^7.0.0" }, "devDependencies": { diff --git a/packages/vue/package.json b/packages/vue/package.json index 4deb400ebc..a1ca410239 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/vue", - "version": "7.6.7", + "version": "7.7.0", "description": "Vue specific wrapper for @ionic/core", "scripts": { "eslint": "eslint src", @@ -66,7 +66,7 @@ "vue-router": "^4.0.16" }, "dependencies": { - "@ionic/core": "^7.6.7", + "@ionic/core": "^7.7.0", "ionicons": "^7.0.0" }, "vetur": { From 7bb08f9ce474e1f0f55a9bae6b9d7cc00f0d66a3 Mon Sep 17 00:00:00 2001 From: ionitron Date: Wed, 31 Jan 2024 15:18:19 +0000 Subject: [PATCH 5/5] chore(): update package lock files --- packages/angular-server/package-lock.json | 12 +++++----- packages/angular/package-lock.json | 12 +++++----- packages/react-router/package-lock.json | 28 +++++++++++------------ packages/react/package-lock.json | 12 +++++----- packages/vue-router/package-lock.json | 28 +++++++++++------------ packages/vue/package-lock.json | 12 +++++----- 6 files changed, 52 insertions(+), 52 deletions(-) diff --git a/packages/angular-server/package-lock.json b/packages/angular-server/package-lock.json index 7eee096043..9e0f5f28d6 100644 --- a/packages/angular-server/package-lock.json +++ b/packages/angular-server/package-lock.json @@ -1060,9 +1060,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.6.7.tgz", - "integrity": "sha512-cb5mYBVmD1u5rQJBtT7erkSpOVprb8Qu55fh/vA+PTfD7p7QQxFxn5DJBUFQTIx/E2+BqgxkvZz/p2xmB5dUfg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.7.0.tgz", + "integrity": "sha512-ewbvX8u4+FNRBAw1nqBuCy4dI8OLTxoqZgm4qRs4zbrNLJInwTpYjCPzYueN0KE9ufP0n9HhS23lfcrQzJC7Hg==", "dependencies": { "@stencil/core": "^4.12.0", "ionicons": "^7.2.2", @@ -7330,9 +7330,9 @@ "dev": true }, "@ionic/core": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.6.7.tgz", - "integrity": "sha512-cb5mYBVmD1u5rQJBtT7erkSpOVprb8Qu55fh/vA+PTfD7p7QQxFxn5DJBUFQTIx/E2+BqgxkvZz/p2xmB5dUfg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.7.0.tgz", + "integrity": "sha512-ewbvX8u4+FNRBAw1nqBuCy4dI8OLTxoqZgm4qRs4zbrNLJInwTpYjCPzYueN0KE9ufP0n9HhS23lfcrQzJC7Hg==", "requires": { "@stencil/core": "^4.12.0", "ionicons": "^7.2.2", diff --git a/packages/angular/package-lock.json b/packages/angular/package-lock.json index 27fe373b99..eeaa270687 100644 --- a/packages/angular/package-lock.json +++ b/packages/angular/package-lock.json @@ -1407,9 +1407,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.6.7.tgz", - "integrity": "sha512-cb5mYBVmD1u5rQJBtT7erkSpOVprb8Qu55fh/vA+PTfD7p7QQxFxn5DJBUFQTIx/E2+BqgxkvZz/p2xmB5dUfg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.7.0.tgz", + "integrity": "sha512-ewbvX8u4+FNRBAw1nqBuCy4dI8OLTxoqZgm4qRs4zbrNLJInwTpYjCPzYueN0KE9ufP0n9HhS23lfcrQzJC7Hg==", "dependencies": { "@stencil/core": "^4.12.0", "ionicons": "^7.2.2", @@ -9697,9 +9697,9 @@ "dev": true }, "@ionic/core": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.6.7.tgz", - "integrity": "sha512-cb5mYBVmD1u5rQJBtT7erkSpOVprb8Qu55fh/vA+PTfD7p7QQxFxn5DJBUFQTIx/E2+BqgxkvZz/p2xmB5dUfg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.7.0.tgz", + "integrity": "sha512-ewbvX8u4+FNRBAw1nqBuCy4dI8OLTxoqZgm4qRs4zbrNLJInwTpYjCPzYueN0KE9ufP0n9HhS23lfcrQzJC7Hg==", "requires": { "@stencil/core": "^4.12.0", "ionicons": "^7.2.2", diff --git a/packages/react-router/package-lock.json b/packages/react-router/package-lock.json index df412c1dc4..a79f47931f 100644 --- a/packages/react-router/package-lock.json +++ b/packages/react-router/package-lock.json @@ -238,9 +238,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.6.7.tgz", - "integrity": "sha512-cb5mYBVmD1u5rQJBtT7erkSpOVprb8Qu55fh/vA+PTfD7p7QQxFxn5DJBUFQTIx/E2+BqgxkvZz/p2xmB5dUfg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.7.0.tgz", + "integrity": "sha512-ewbvX8u4+FNRBAw1nqBuCy4dI8OLTxoqZgm4qRs4zbrNLJInwTpYjCPzYueN0KE9ufP0n9HhS23lfcrQzJC7Hg==", "dependencies": { "@stencil/core": "^4.12.0", "ionicons": "^7.2.2", @@ -414,11 +414,11 @@ } }, "node_modules/@ionic/react": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-7.6.7.tgz", - "integrity": "sha512-nAUc9tX0KfE5GtOcZ8UhBDnFqdYim4XBniZfGwTQL6gHDLWDeISFaOOAANkdZYwnkECOAp944AvqFN+s05LM5g==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-7.7.0.tgz", + "integrity": "sha512-ULZLQwuUDz/qDzzdBAn15zKs9LUEp5nl6hMIx8kdWgsEzW95vSKwGaH5Rf1GmYjIhmZfQrW1by02mmho4ahSQg==", "dependencies": { - "@ionic/core": "7.6.7", + "@ionic/core": "7.7.0", "ionicons": "^7.0.0", "tslib": "*" }, @@ -4050,9 +4050,9 @@ "dev": true }, "@ionic/core": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.6.7.tgz", - "integrity": "sha512-cb5mYBVmD1u5rQJBtT7erkSpOVprb8Qu55fh/vA+PTfD7p7QQxFxn5DJBUFQTIx/E2+BqgxkvZz/p2xmB5dUfg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.7.0.tgz", + "integrity": "sha512-ewbvX8u4+FNRBAw1nqBuCy4dI8OLTxoqZgm4qRs4zbrNLJInwTpYjCPzYueN0KE9ufP0n9HhS23lfcrQzJC7Hg==", "requires": { "@stencil/core": "^4.12.0", "ionicons": "^7.2.2", @@ -4156,11 +4156,11 @@ "requires": {} }, "@ionic/react": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-7.6.7.tgz", - "integrity": "sha512-nAUc9tX0KfE5GtOcZ8UhBDnFqdYim4XBniZfGwTQL6gHDLWDeISFaOOAANkdZYwnkECOAp944AvqFN+s05LM5g==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-7.7.0.tgz", + "integrity": "sha512-ULZLQwuUDz/qDzzdBAn15zKs9LUEp5nl6hMIx8kdWgsEzW95vSKwGaH5Rf1GmYjIhmZfQrW1by02mmho4ahSQg==", "requires": { - "@ionic/core": "7.6.7", + "@ionic/core": "7.7.0", "ionicons": "^7.0.0", "tslib": "*" } diff --git a/packages/react/package-lock.json b/packages/react/package-lock.json index 875c9617f3..39a60a7c3f 100644 --- a/packages/react/package-lock.json +++ b/packages/react/package-lock.json @@ -811,9 +811,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.6.7.tgz", - "integrity": "sha512-cb5mYBVmD1u5rQJBtT7erkSpOVprb8Qu55fh/vA+PTfD7p7QQxFxn5DJBUFQTIx/E2+BqgxkvZz/p2xmB5dUfg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.7.0.tgz", + "integrity": "sha512-ewbvX8u4+FNRBAw1nqBuCy4dI8OLTxoqZgm4qRs4zbrNLJInwTpYjCPzYueN0KE9ufP0n9HhS23lfcrQzJC7Hg==", "dependencies": { "@stencil/core": "^4.12.0", "ionicons": "^7.2.2", @@ -12857,9 +12857,9 @@ "dev": true }, "@ionic/core": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.6.7.tgz", - "integrity": "sha512-cb5mYBVmD1u5rQJBtT7erkSpOVprb8Qu55fh/vA+PTfD7p7QQxFxn5DJBUFQTIx/E2+BqgxkvZz/p2xmB5dUfg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.7.0.tgz", + "integrity": "sha512-ewbvX8u4+FNRBAw1nqBuCy4dI8OLTxoqZgm4qRs4zbrNLJInwTpYjCPzYueN0KE9ufP0n9HhS23lfcrQzJC7Hg==", "requires": { "@stencil/core": "^4.12.0", "ionicons": "^7.2.2", diff --git a/packages/vue-router/package-lock.json b/packages/vue-router/package-lock.json index d33e8c2cec..1037eaedc3 100644 --- a/packages/vue-router/package-lock.json +++ b/packages/vue-router/package-lock.json @@ -661,9 +661,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.6.7.tgz", - "integrity": "sha512-cb5mYBVmD1u5rQJBtT7erkSpOVprb8Qu55fh/vA+PTfD7p7QQxFxn5DJBUFQTIx/E2+BqgxkvZz/p2xmB5dUfg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.7.0.tgz", + "integrity": "sha512-ewbvX8u4+FNRBAw1nqBuCy4dI8OLTxoqZgm4qRs4zbrNLJInwTpYjCPzYueN0KE9ufP0n9HhS23lfcrQzJC7Hg==", "dependencies": { "@stencil/core": "^4.12.0", "ionicons": "^7.2.2", @@ -852,11 +852,11 @@ } }, "node_modules/@ionic/vue": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-7.6.7.tgz", - "integrity": "sha512-YsKkfn8aqUDuXJauqTjAPaem1ZM9e2dblatheLDHo5yGfYcnK2hO35D95V03v0Q+xiDKGcKJKhk+19wKAXmQ6A==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-7.7.0.tgz", + "integrity": "sha512-Uf+z7h0LbYV0ljBEewkSwScRIXVzKqbSSBcEzji1Hrkefoymwyiw+8uVF9wN0uNlC+sXLDSiPp/VF0vq3+dzpQ==", "dependencies": { - "@ionic/core": "7.6.7", + "@ionic/core": "7.7.0", "ionicons": "^7.0.0" } }, @@ -7878,9 +7878,9 @@ "dev": true }, "@ionic/core": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.6.7.tgz", - "integrity": "sha512-cb5mYBVmD1u5rQJBtT7erkSpOVprb8Qu55fh/vA+PTfD7p7QQxFxn5DJBUFQTIx/E2+BqgxkvZz/p2xmB5dUfg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.7.0.tgz", + "integrity": "sha512-ewbvX8u4+FNRBAw1nqBuCy4dI8OLTxoqZgm4qRs4zbrNLJInwTpYjCPzYueN0KE9ufP0n9HhS23lfcrQzJC7Hg==", "requires": { "@stencil/core": "^4.12.0", "ionicons": "^7.2.2", @@ -7993,11 +7993,11 @@ "requires": {} }, "@ionic/vue": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-7.6.7.tgz", - "integrity": "sha512-YsKkfn8aqUDuXJauqTjAPaem1ZM9e2dblatheLDHo5yGfYcnK2hO35D95V03v0Q+xiDKGcKJKhk+19wKAXmQ6A==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-7.7.0.tgz", + "integrity": "sha512-Uf+z7h0LbYV0ljBEewkSwScRIXVzKqbSSBcEzji1Hrkefoymwyiw+8uVF9wN0uNlC+sXLDSiPp/VF0vq3+dzpQ==", "requires": { - "@ionic/core": "7.6.7", + "@ionic/core": "7.7.0", "ionicons": "^7.0.0" } }, diff --git a/packages/vue/package-lock.json b/packages/vue/package-lock.json index 0f98ba2520..45b2d86a26 100644 --- a/packages/vue/package-lock.json +++ b/packages/vue/package-lock.json @@ -208,9 +208,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.6.7.tgz", - "integrity": "sha512-cb5mYBVmD1u5rQJBtT7erkSpOVprb8Qu55fh/vA+PTfD7p7QQxFxn5DJBUFQTIx/E2+BqgxkvZz/p2xmB5dUfg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.7.0.tgz", + "integrity": "sha512-ewbvX8u4+FNRBAw1nqBuCy4dI8OLTxoqZgm4qRs4zbrNLJInwTpYjCPzYueN0KE9ufP0n9HhS23lfcrQzJC7Hg==", "dependencies": { "@stencil/core": "^4.12.0", "ionicons": "^7.2.2", @@ -3959,9 +3959,9 @@ "dev": true }, "@ionic/core": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.6.7.tgz", - "integrity": "sha512-cb5mYBVmD1u5rQJBtT7erkSpOVprb8Qu55fh/vA+PTfD7p7QQxFxn5DJBUFQTIx/E2+BqgxkvZz/p2xmB5dUfg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.7.0.tgz", + "integrity": "sha512-ewbvX8u4+FNRBAw1nqBuCy4dI8OLTxoqZgm4qRs4zbrNLJInwTpYjCPzYueN0KE9ufP0n9HhS23lfcrQzJC7Hg==", "requires": { "@stencil/core": "^4.12.0", "ionicons": "^7.2.2",