diff --git a/CHANGELOG.md b/CHANGELOG.md index 35385b6418..aa2d33988c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,19 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.5.7](https://github.com/ionic-team/ionic-framework/compare/v6.5.6...v6.5.7) (2023-03-01) + + +### Bug Fixes + +* **content:** fullscreen values are recomputed on visible content ([#26847](https://github.com/ionic-team/ionic-framework/issues/26847)) ([6dcd98b](https://github.com/ionic-team/ionic-framework/commit/6dcd98b26ab8fd3bf0092416d613bf051fbdeacf)), closes [#26844](https://github.com/ionic-team/ionic-framework/issues/26844) +* **modal:** keyboard listener removed on dismiss ([#26856](https://github.com/ionic-team/ionic-framework/issues/26856)) ([b4bcba3](https://github.com/ionic-team/ionic-framework/commit/b4bcba353386b4d5d8d396e61ece421a15d42ff0)) +* **overlays:** focus trap refs cleared on dismiss ([#26855](https://github.com/ionic-team/ionic-framework/issues/26855)) ([8d1d0fa](https://github.com/ionic-team/ionic-framework/commit/8d1d0fa0c7a42a3c21a471131ba454774b26c314)) + + + + + ## [6.5.6](https://github.com/ionic-team/ionic-framework/compare/v6.5.5...v6.5.6) (2023-02-22) diff --git a/angular/CHANGELOG.md b/angular/CHANGELOG.md index 575803810b..9ab176df0e 100644 --- a/angular/CHANGELOG.md +++ b/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. +## [6.5.7](https://github.com/ionic-team/ionic/compare/v6.5.6...v6.5.7) (2023-03-01) + +**Note:** Version bump only for package @ionic/angular + + + + + ## [6.5.6](https://github.com/ionic-team/ionic/compare/v6.5.5...v6.5.6) (2023-02-22) **Note:** Version bump only for package @ionic/angular diff --git a/angular/package-lock.json b/angular/package-lock.json index 2946c99d70..dfbef671e0 100644 --- a/angular/package-lock.json +++ b/angular/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/angular", - "version": "6.5.6", + "version": "6.5.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/angular", - "version": "6.5.6", + "version": "6.5.7", "license": "MIT", "dependencies": { - "@ionic/core": "^6.5.6", + "@ionic/core": "^6.5.7", "ionicons": "^6.1.3", "jsonc-parser": "^3.0.0", "tslib": "^2.0.0" @@ -1006,9 +1006,9 @@ "license": "BSD-3-Clause" }, "node_modules/@ionic/core": { - "version": "6.5.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.6.tgz", - "integrity": "sha512-Bi87GXW+pgeXijDWD/sLKLq9yQOxzQLg9+U5V684fZZoORv4KnV9Qosjq3LmRm+vH7VuQeU0OZ8ZU3OuDAlrDA==", + "version": "6.5.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.7.tgz", + "integrity": "sha512-nEgB47Mwj5/LyKeN+r8vcSxoG66aWrODbS63Bp6BT5pb9QzMm2p9ZYe3160YwYxtj5Ax2jhDvkqpykkJWZT+KA==", "dependencies": { "@stencil/core": "^2.18.0", "ionicons": "^6.1.3", @@ -7335,9 +7335,9 @@ "dev": true }, "@ionic/core": { - "version": "6.5.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.6.tgz", - "integrity": "sha512-Bi87GXW+pgeXijDWD/sLKLq9yQOxzQLg9+U5V684fZZoORv4KnV9Qosjq3LmRm+vH7VuQeU0OZ8ZU3OuDAlrDA==", + "version": "6.5.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.7.tgz", + "integrity": "sha512-nEgB47Mwj5/LyKeN+r8vcSxoG66aWrODbS63Bp6BT5pb9QzMm2p9ZYe3160YwYxtj5Ax2jhDvkqpykkJWZT+KA==", "requires": { "@stencil/core": "^2.18.0", "ionicons": "^6.1.3", diff --git a/angular/package.json b/angular/package.json index 4a3b1ee7ba..80aac242dc 100644 --- a/angular/package.json +++ b/angular/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/angular", - "version": "6.5.6", + "version": "6.5.7", "description": "Angular specific wrappers for @ionic/core", "keywords": [ "ionic", @@ -42,7 +42,7 @@ "validate": "npm i && npm run lint && npm run test && npm run build" }, "dependencies": { - "@ionic/core": "^6.5.6", + "@ionic/core": "^6.5.7", "ionicons": "^6.1.3", "jsonc-parser": "^3.0.0", "tslib": "^2.0.0" diff --git a/core/CHANGELOG.md b/core/CHANGELOG.md index 19bc919774..21efde49cb 100644 --- a/core/CHANGELOG.md +++ b/core/CHANGELOG.md @@ -3,6 +3,19 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.5.7](https://github.com/ionic-team/ionic/compare/v6.5.6...v6.5.7) (2023-03-01) + + +### Bug Fixes + +* **content:** fullscreen values are recomputed on visible content ([#26847](https://github.com/ionic-team/ionic/issues/26847)) ([6dcd98b](https://github.com/ionic-team/ionic/commit/6dcd98b26ab8fd3bf0092416d613bf051fbdeacf)), closes [#26844](https://github.com/ionic-team/ionic/issues/26844) +* **modal:** keyboard listener removed on dismiss ([#26856](https://github.com/ionic-team/ionic/issues/26856)) ([b4bcba3](https://github.com/ionic-team/ionic/commit/b4bcba353386b4d5d8d396e61ece421a15d42ff0)) +* **overlays:** focus trap refs cleared on dismiss ([#26855](https://github.com/ionic-team/ionic/issues/26855)) ([8d1d0fa](https://github.com/ionic-team/ionic/commit/8d1d0fa0c7a42a3c21a471131ba454774b26c314)) + + + + + ## [6.5.6](https://github.com/ionic-team/ionic/compare/v6.5.5...v6.5.6) (2023-02-22) diff --git a/core/package-lock.json b/core/package-lock.json index 9d427735c7..18c2914ecd 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ionic/core", - "version": "6.5.6", + "version": "6.5.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/core", - "version": "6.5.6", + "version": "6.5.7", "license": "MIT", "dependencies": { "@stencil/core": "^2.18.0", diff --git a/core/package.json b/core/package.json index 18c346183d..5dff20cc9c 100644 --- a/core/package.json +++ b/core/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/core", - "version": "6.5.6", + "version": "6.5.7", "description": "Base components for Ionic", "keywords": [ "ionic", diff --git a/core/src/components/content/content.tsx b/core/src/components/content/content.tsx index c60fbe9cf0..ebb0eb3dc5 100644 --- a/core/src/components/content/content.tsx +++ b/core/src/components/content/content.tsx @@ -149,6 +149,16 @@ export class Content implements ComponentInterface { } this.resizeTimeout = setTimeout(() => { + /** + * Resize should only happen + * if the content is visible. + * When the content is hidden + * then offsetParent will be null. + */ + if (this.el.offsetParent === null) { + return; + } + this.resize(); }, 100); } diff --git a/core/src/components/datetime/test/presentation/datetime.e2e.ts b/core/src/components/datetime/test/presentation/datetime.e2e.ts index 180dd79f2c..548cb28ac5 100644 --- a/core/src/components/datetime/test/presentation/datetime.e2e.ts +++ b/core/src/components/datetime/test/presentation/datetime.e2e.ts @@ -108,45 +108,42 @@ test.describe('datetime: presentation', () => { }); }); -// TODO: FW-3018 -test.skip('datetime: presentation: time', () => { - let timePickerFixture: TimePickerFixture; - - test.beforeEach(async ({ page }) => { - timePickerFixture = new TimePickerFixture(page); - await timePickerFixture.goto(); +test.describe('datetime: presentation: time', () => { + test.beforeEach(async ({ skip }) => { + skip.rtl(); + skip.mode('md'); }); - test('changing value from AM to AM should update the text', async () => { - await timePickerFixture.setValue('04:20:00'); - await timePickerFixture.expectTime('4', '20', 'AM'); + test('changing value from AM to AM should update the text', async ({ page }) => { + const timePickerFixture = new TimePickerFixture(page); + await timePickerFixture.goto('04:20:00'); await timePickerFixture.setValue('11:03:00'); - await timePickerFixture.expectTime('11', '03', 'AM'); + await timePickerFixture.expectTime(11, 3, 'am'); }); - test('changing value from AM to PM should update the text', async () => { - await timePickerFixture.setValue('05:30:00'); - await timePickerFixture.expectTime('5', '30', 'AM'); + test('changing value from AM to PM should update the text', async ({ page }) => { + const timePickerFixture = new TimePickerFixture(page); + await timePickerFixture.goto('05:30:00'); await timePickerFixture.setValue('16:40:00'); - await timePickerFixture.expectTime('4', '40', 'PM'); + await timePickerFixture.expectTime(16, 40, 'pm'); }); - test('changing the value from PM to AM should update the text', async () => { - await timePickerFixture.setValue('16:40:00'); - await timePickerFixture.expectTime('4', '40', 'PM'); + test('changing the value from PM to AM should update the text', async ({ page }) => { + const timePickerFixture = new TimePickerFixture(page); + await timePickerFixture.goto('16:40:00'); await timePickerFixture.setValue('04:20:00'); - await timePickerFixture.expectTime('4', '20', 'AM'); + await timePickerFixture.expectTime(4, 20, 'am'); }); - test('changing the value from PM to PM should update the text', async () => { - await timePickerFixture.setValue('16:40:00'); - await timePickerFixture.expectTime('4', '40', 'PM'); + test('changing the value from PM to PM should update the text', async ({ page }) => { + const timePickerFixture = new TimePickerFixture(page); + await timePickerFixture.goto('16:40:00'); await timePickerFixture.setValue('19:32:00'); - await timePickerFixture.expectTime('7', '32', 'PM'); + await timePickerFixture.expectTime(19, 32, 'pm'); }); }); @@ -159,35 +156,27 @@ class TimePickerFixture { this.page = page; } - async goto() { + async goto(value: string) { await this.page.setContent(` - + `); await this.page.waitForSelector('.datetime-ready'); this.timePicker = this.page.locator('ion-datetime'); } async setValue(value: string) { - const ionChange = await this.page.spyOnEvent('ionChange'); await this.timePicker.evaluate((el: HTMLIonDatetimeElement, newValue: string) => { el.value = newValue; }, value); - await ionChange.next(); - - // Changing the value can take longer than the default 100ms to repaint - await this.page.waitForChanges(300); + await this.page.waitForChanges(); } - async expectTime(hour: string, minute: string, ampm: string) { - expect( - await this.timePicker.locator('ion-picker-column-internal:nth-child(1) .picker-item-active').textContent() - ).toBe(hour); - expect( - await this.timePicker.locator('ion-picker-column-internal:nth-child(2) .picker-item-active').textContent() - ).toBe(minute); - expect( - await this.timePicker.locator('ion-picker-column-internal:nth-child(3) .picker-item-active').textContent() - ).toBe(ampm); + async expectTime(hour: number, minute: number, ampm: string) { + const pickerColumns = this.timePicker.locator('ion-picker-column-internal'); + + await expect(pickerColumns.nth(0)).toHaveJSProperty('value', hour); + await expect(pickerColumns.nth(1)).toHaveJSProperty('value', minute); + await expect(pickerColumns.nth(2)).toHaveJSProperty('value', ampm); } } diff --git a/core/src/components/modal/modal.tsx b/core/src/components/modal/modal.tsx index 6802d3959f..06bca33b73 100644 --- a/core/src/components/modal/modal.tsx +++ b/core/src/components/modal/modal.tsx @@ -333,7 +333,7 @@ export class Modal implements ComponentInterface, OverlayInterface { if (this.gesture) { this.gesture.enable(enable); } else if (enable) { - await this.initSwipeToClose(); + this.initSwipeToClose(); } } @@ -532,6 +532,38 @@ export class Modal implements ComponentInterface, OverlayInterface { backdropBreakpoint: this.backdropBreakpoint, }); + /* tslint:disable-next-line */ + if (typeof window !== 'undefined') { + /** + * This needs to be setup before any + * non-transition async work so it can be dereferenced + * in the dismiss method. The dismiss method + * only waits for the entering transition + * to finish. It does not wait for all of the `present` + * method to resolve. + */ + this.keyboardOpenCallback = () => { + if (this.gesture) { + /** + * When the native keyboard is opened and the webview + * is resized, the gesture implementation will become unresponsive + * and enter a free-scroll mode. + * + * When the keyboard is opened, we disable the gesture for + * a single frame and re-enable once the contents have repositioned + * from the keyboard placement. + */ + this.gesture.enable(false); + raf(() => { + if (this.gesture) { + this.gesture.enable(true); + } + }); + } + }; + window.addEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback); + } + /** * TODO (FW-937) - In the next major release of Ionic, all card modals * will be swipeable by default. canDismiss will be used to determine if the @@ -559,31 +591,7 @@ export class Modal implements ComponentInterface, OverlayInterface { if (this.isSheetModal) { this.initSheetGesture(); } else if (hasCardModal) { - await this.initSwipeToClose(); - } - - /* tslint:disable-next-line */ - if (typeof window !== 'undefined') { - this.keyboardOpenCallback = () => { - if (this.gesture) { - /** - * When the native keyboard is opened and the webview - * is resized, the gesture implementation will become unresponsive - * and enter a free-scroll mode. - * - * When the keyboard is opened, we disable the gesture for - * a single frame and re-enable once the contents have repositioned - * from the keyboard placement. - */ - this.gesture.enable(false); - raf(() => { - if (this.gesture) { - this.gesture.enable(true); - } - }); - } - }; - window.addEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback); + this.initSwipeToClose(); } this.currentTransition = undefined; @@ -725,6 +733,7 @@ export class Modal implements ComponentInterface, OverlayInterface { /* tslint:disable-next-line */ if (typeof window !== 'undefined' && this.keyboardOpenCallback) { window.removeEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback); + this.keyboardOpenCallback = undefined; } /** diff --git a/core/src/components/popover/test/basic/popover.e2e.ts b/core/src/components/popover/test/basic/popover.e2e.ts index 5e905e16d8..3c8d2690f6 100644 --- a/core/src/components/popover/test/basic/popover.e2e.ts +++ b/core/src/components/popover/test/basic/popover.e2e.ts @@ -1,5 +1,4 @@ import { expect } from '@playwright/test'; -import type { E2EPage } from '@utils/test/playwright'; import { test } from '@utils/test/playwright'; import { openPopover, screenshotPopover } from '../test.utils'; @@ -38,145 +37,93 @@ test.describe('popover: focus trap', async () => { }); test('should focus the first ion-item on ArrowDown', async ({ page }) => { + const item0 = page.locator('ion-popover ion-item:nth-of-type(1)'); + await openPopover(page, 'basic-popover'); await page.keyboard.press('ArrowDown'); - await expectActiveElementTextToEqual(page, 'Item 0'); + await expect(item0).toBeFocused(); }); test('should trap focus', async ({ page, browserName }) => { + const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab'; + const items = page.locator('ion-popover ion-item'); + await openPopover(page, 'basic-popover'); - await page.keyboard.press('Tab'); + await page.keyboard.press(tabKey); + await expect(items.nth(0)).toBeFocused(); - await expectActiveElementTextToEqual(page, 'Item 0'); + await page.keyboard.press(`Shift+${tabKey}`); + await expect(items.nth(3)).toBeFocused(); - await page.keyboard.down('Shift'); - if (browserName === 'webkit') { - await page.keyboard.down('Alt'); - } - await page.keyboard.press('Tab'); - await page.keyboard.up('Shift'); - if (browserName === 'webkit') { - await page.keyboard.up('Alt'); - } - - await expectActiveElementTextToEqual(page, 'Item 3'); - - await page.keyboard.press('Tab'); - - await expectActiveElementTextToEqual(page, 'Item 0'); + await page.keyboard.press(tabKey); + await expect(items.nth(0)).toBeFocused(); await page.keyboard.press('ArrowDown'); - - await expectActiveElementTextToEqual(page, 'Item 1'); + await expect(items.nth(1)).toBeFocused(); await page.keyboard.press('ArrowDown'); - - await expectActiveElementTextToEqual(page, 'Item 2'); + await expect(items.nth(2)).toBeFocused(); await page.keyboard.press('Home'); - - await expectActiveElementTextToEqual(page, 'Item 0'); + await expect(items.nth(0)).toBeFocused(); await page.keyboard.press('End'); - - await expectActiveElementTextToEqual(page, 'Item 3'); + await expect(items.nth(3)).toBeFocused(); }); test('should not override keyboard interactions for textarea elements', async ({ page, browserName }) => { - await openPopover(page, 'popover-with-textarea'); - await page.waitForFunction(() => document.activeElement?.tagName === 'ION-POPOVER'); + const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab'; + const popover = page.locator('ion-popover'); + const innerNativeTextarea = page.locator('ion-textarea textarea'); + const vanillaTextarea = page.locator('ion-textarea + textarea'); - await page.keyboard.press('Tab'); + await openPopover(page, 'popover-with-textarea'); + + /** + * Focusing happens async inside of popover so we need + * to wait for the requestAnimationFrame to fire. + */ + await expect(popover).toBeFocused(); + + await page.keyboard.press(tabKey); // for Firefox, ion-textarea is focused first // need to tab again to get to native input if (browserName === 'firefox') { - await page.keyboard.press('Tab'); + await page.keyboard.press(tabKey); } - let activeElementTagName = await page.evaluate(() => document.activeElement!.tagName); - let scrollTop = null; - let selectionStart = null; - let previousSelectionStart = null; - - // This is the native textarea within ion-textarea - expect(activeElementTagName).toBe('TEXTAREA'); - - selectionStart = await getActiveElementSelectionStart(page); - expect(selectionStart).toBe(0); + await expect(innerNativeTextarea).toBeFocused(); await page.keyboard.press('ArrowDown'); - selectionStart = await getActiveElementSelectionStart(page); - expect(selectionStart).toBeGreaterThan(0); - previousSelectionStart = selectionStart; + await expect(innerNativeTextarea).toBeFocused(); - await page.keyboard.press('ArrowDown'); + await page.keyboard.press('ArrowUp'); - selectionStart = await getActiveElementSelectionStart(page); - expect(selectionStart).toBeGreaterThan(previousSelectionStart!); + await expect(innerNativeTextarea).toBeFocused(); - await page.keyboard.press('Tab'); + await page.keyboard.press(tabKey); // Checking within HTML textarea - // Reset tracking variables as the focus element has changed - scrollTop = null; - selectionStart = null; - previousSelectionStart = null; - - activeElementTagName = await page.evaluate(() => document.activeElement!.tagName); - expect(activeElementTagName).toBe('TEXTAREA'); - - selectionStart = await getActiveElementSelectionStart(page); - expect(selectionStart).toBe(0); + await expect(vanillaTextarea).toBeFocused(); await page.keyboard.press('ArrowDown'); - selectionStart = await getActiveElementSelectionStart(page); - expect(selectionStart).toBeGreaterThan(0); - previousSelectionStart = selectionStart; + await expect(vanillaTextarea).toBeFocused(); - await page.keyboard.press('ArrowDown'); + await page.keyboard.press('ArrowUp'); - selectionStart = await getActiveElementSelectionStart(page); - expect(selectionStart).toBeGreaterThan(previousSelectionStart!); + await expect(vanillaTextarea).toBeFocused(); await page.keyboard.press('Home'); - scrollTop = await getActiveElementScrollTop(page); - expect(scrollTop).toBeGreaterThan(0); - - const previousScrollTop = scrollTop; + await expect(vanillaTextarea).toBeFocused(); await page.keyboard.press('End'); - scrollTop = await getActiveElementScrollTop(page); - expect(scrollTop).toBeGreaterThanOrEqual(previousScrollTop); + await expect(vanillaTextarea).toBeFocused(); }); }); - -// TODO(FW-1424): convert these to Playwright assertions where possible - -/** - * Focusing happens async inside of popover so we need - * to wait for the requestAnimationFrame to fire. - */ -const expectActiveElementTextToEqual = async (page: E2EPage, textValue: string) => { - await page.evaluate((text) => document.activeElement!.textContent === text, textValue); -}; - -const getActiveElementSelectionStart = (page: E2EPage) => { - return page.evaluate(() => - document.activeElement instanceof HTMLTextAreaElement ? document.activeElement.selectionStart : null - ); -}; - -const getActiveElementScrollTop = (page: E2EPage) => { - return page.evaluate(() => { - // Returns the closest ion-textarea or active element - const target = document.activeElement!.closest('ion-textarea') ?? document.activeElement; - return target!.scrollTop; - }); -}; diff --git a/core/src/utils/overlays-interface.ts b/core/src/utils/overlays-interface.ts index 9ae79c95b4..a277f14e5c 100644 --- a/core/src/utils/overlays-interface.ts +++ b/core/src/utils/overlays-interface.ts @@ -8,7 +8,7 @@ export interface OverlayEventDetail { } export interface OverlayInterface { - el: HTMLElement; + el: HTMLIonOverlayElement; animated: boolean; keyboardClose: boolean; overlayIndex: number; diff --git a/core/src/utils/overlays.ts b/core/src/utils/overlays.ts index 5f570c83dd..ca049b144b 100644 --- a/core/src/utils/overlays.ts +++ b/core/src/utils/overlays.ts @@ -522,6 +522,14 @@ export const dismiss = async ( */ overlay.el.classList.add('overlay-hidden'); overlay.el.style.removeProperty('pointer-events'); + + /** + * Clear any focus trapping references + * when the overlay is dismissed. + */ + if (overlay.el.lastFocus !== undefined) { + overlay.el.lastFocus = undefined; + } } catch (err) { console.error(err); } diff --git a/core/src/utils/test/overlays/overlays.e2e.ts b/core/src/utils/test/overlays/overlays.e2e.ts index 9607f22cc4..440bdaf897 100644 --- a/core/src/utils/test/overlays/overlays.e2e.ts +++ b/core/src/utils/test/overlays/overlays.e2e.ts @@ -104,7 +104,8 @@ test.describe('overlays: dismiss', () => { }); }); -test.describe('overlays: focus', () => { +// TODO FW-3536 +test.describe.skip('overlays: focus', () => { test.beforeEach(({ skip }) => { skip.rtl(); }); diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 9c4e1bce1b..abfa00cb79 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. +## [6.5.7](https://github.com/ionic-team/ionic-docs/compare/v6.5.6...v6.5.7) (2023-03-01) + +**Note:** Version bump only for package @ionic/docs + + + + + ## [6.5.6](https://github.com/ionic-team/ionic-docs/compare/v6.5.5...v6.5.6) (2023-02-22) **Note:** Version bump only for package @ionic/docs diff --git a/docs/package-lock.json b/docs/package-lock.json index 6b5820dc46..df90d90ed2 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ionic/docs", - "version": "6.5.6", + "version": "6.5.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/docs", - "version": "6.5.6", + "version": "6.5.7", "license": "MIT" } } diff --git a/docs/package.json b/docs/package.json index 8df7cf7764..32515dbd89 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/docs", - "version": "6.5.6", + "version": "6.5.7", "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 1bce0ec1c1..9d9d1d77a1 100644 --- a/lerna.json +++ b/lerna.json @@ -5,5 +5,5 @@ "angular", "packages/*" ], - "version": "6.5.6" + "version": "6.5.7" } diff --git a/packages/angular-server/CHANGELOG.md b/packages/angular-server/CHANGELOG.md index 12fb8e5397..88d363f9cc 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. +## [6.5.7](https://github.com/ionic-team/ionic/compare/v6.5.6...v6.5.7) (2023-03-01) + +**Note:** Version bump only for package @ionic/angular-server + + + + + ## [6.5.6](https://github.com/ionic-team/ionic/compare/v6.5.5...v6.5.6) (2023-02-22) **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 1e82c070a5..7f9b65253f 100644 --- a/packages/angular-server/package-lock.json +++ b/packages/angular-server/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/angular-server", - "version": "6.5.6", + "version": "6.5.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/angular-server", - "version": "6.5.6", + "version": "6.5.7", "license": "MIT", "dependencies": { - "@ionic/core": "^6.5.6" + "@ionic/core": "^6.5.7" }, "devDependencies": { "@angular-eslint/eslint-plugin": "^12.6.1", @@ -742,9 +742,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "6.5.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.6.tgz", - "integrity": "sha512-Bi87GXW+pgeXijDWD/sLKLq9yQOxzQLg9+U5V684fZZoORv4KnV9Qosjq3LmRm+vH7VuQeU0OZ8ZU3OuDAlrDA==", + "version": "6.5.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.7.tgz", + "integrity": "sha512-nEgB47Mwj5/LyKeN+r8vcSxoG66aWrODbS63Bp6BT5pb9QzMm2p9ZYe3160YwYxtj5Ax2jhDvkqpykkJWZT+KA==", "dependencies": { "@stencil/core": "^2.18.0", "ionicons": "^6.1.3", @@ -7201,9 +7201,9 @@ "dev": true }, "@ionic/core": { - "version": "6.5.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.6.tgz", - "integrity": "sha512-Bi87GXW+pgeXijDWD/sLKLq9yQOxzQLg9+U5V684fZZoORv4KnV9Qosjq3LmRm+vH7VuQeU0OZ8ZU3OuDAlrDA==", + "version": "6.5.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.7.tgz", + "integrity": "sha512-nEgB47Mwj5/LyKeN+r8vcSxoG66aWrODbS63Bp6BT5pb9QzMm2p9ZYe3160YwYxtj5Ax2jhDvkqpykkJWZT+KA==", "requires": { "@stencil/core": "^2.18.0", "ionicons": "^6.1.3", diff --git a/packages/angular-server/package.json b/packages/angular-server/package.json index 7e8ac9b28f..50ba4729f2 100644 --- a/packages/angular-server/package.json +++ b/packages/angular-server/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/angular-server", - "version": "6.5.6", + "version": "6.5.7", "description": "Angular SSR Module for Ionic", "keywords": [ "ionic", @@ -69,6 +69,6 @@ }, "prettier": "@ionic/prettier-config", "dependencies": { - "@ionic/core": "^6.5.6" + "@ionic/core": "^6.5.7" } } diff --git a/packages/react-router/CHANGELOG.md b/packages/react-router/CHANGELOG.md index adff69e2c5..6334037c0f 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. +## [6.5.7](https://github.com/ionic-team/ionic/compare/v6.5.6...v6.5.7) (2023-03-01) + +**Note:** Version bump only for package @ionic/react-router + + + + + ## [6.5.6](https://github.com/ionic-team/ionic/compare/v6.5.5...v6.5.6) (2023-02-22) **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 c147386353..9c33d808c6 100644 --- a/packages/react-router/package-lock.json +++ b/packages/react-router/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/react-router", - "version": "6.5.6", + "version": "6.5.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/react-router", - "version": "6.5.6", + "version": "6.5.7", "license": "MIT", "dependencies": { - "@ionic/react": "^6.5.6", + "@ionic/react": "^6.5.7", "tslib": "*" }, "devDependencies": { @@ -205,9 +205,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "6.5.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.6.tgz", - "integrity": "sha512-Bi87GXW+pgeXijDWD/sLKLq9yQOxzQLg9+U5V684fZZoORv4KnV9Qosjq3LmRm+vH7VuQeU0OZ8ZU3OuDAlrDA==", + "version": "6.5.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.7.tgz", + "integrity": "sha512-nEgB47Mwj5/LyKeN+r8vcSxoG66aWrODbS63Bp6BT5pb9QzMm2p9ZYe3160YwYxtj5Ax2jhDvkqpykkJWZT+KA==", "dependencies": { "@stencil/core": "^2.18.0", "ionicons": "^6.1.3", @@ -381,11 +381,11 @@ } }, "node_modules/@ionic/react": { - "version": "6.5.6", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-6.5.6.tgz", - "integrity": "sha512-EyoBpYSgavDp4zYhpRBmf7xLlc3ZqeeHjmmtoM//1cUXfq4MVkFf67A7wPXTKjXrGQarQNN0Lz2mYfh+UwMbzw==", + "version": "6.5.7", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-6.5.7.tgz", + "integrity": "sha512-R/soREv+DK0EOVEaYWVCIo/kr+NPhzy6L84NSFHeW4tYDlKchKS+fw65DlKZXZVHoKKC5TKwfR6H9lv5W9Lm9Q==", "dependencies": { - "@ionic/core": "6.5.6", + "@ionic/core": "6.5.7", "ionicons": "^6.1.3", "tslib": "*" }, @@ -3630,9 +3630,9 @@ "dev": true }, "@ionic/core": { - "version": "6.5.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.6.tgz", - "integrity": "sha512-Bi87GXW+pgeXijDWD/sLKLq9yQOxzQLg9+U5V684fZZoORv4KnV9Qosjq3LmRm+vH7VuQeU0OZ8ZU3OuDAlrDA==", + "version": "6.5.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.7.tgz", + "integrity": "sha512-nEgB47Mwj5/LyKeN+r8vcSxoG66aWrODbS63Bp6BT5pb9QzMm2p9ZYe3160YwYxtj5Ax2jhDvkqpykkJWZT+KA==", "requires": { "@stencil/core": "^2.18.0", "ionicons": "^6.1.3", @@ -3736,11 +3736,11 @@ "requires": {} }, "@ionic/react": { - "version": "6.5.6", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-6.5.6.tgz", - "integrity": "sha512-EyoBpYSgavDp4zYhpRBmf7xLlc3ZqeeHjmmtoM//1cUXfq4MVkFf67A7wPXTKjXrGQarQNN0Lz2mYfh+UwMbzw==", + "version": "6.5.7", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-6.5.7.tgz", + "integrity": "sha512-R/soREv+DK0EOVEaYWVCIo/kr+NPhzy6L84NSFHeW4tYDlKchKS+fw65DlKZXZVHoKKC5TKwfR6H9lv5W9Lm9Q==", "requires": { - "@ionic/core": "6.5.6", + "@ionic/core": "6.5.7", "ionicons": "^6.1.3", "tslib": "*" } diff --git a/packages/react-router/package.json b/packages/react-router/package.json index c6543e55f2..01bd342a57 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/react-router", - "version": "6.5.6", + "version": "6.5.7", "description": "React Router wrapper for @ionic/react", "keywords": [ "ionic", @@ -38,7 +38,7 @@ "dist/" ], "dependencies": { - "@ionic/react": "^6.5.6", + "@ionic/react": "^6.5.7", "tslib": "*" }, "peerDependencies": { diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index f4e5528916..ae8ce99fe9 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. +## [6.5.7](https://github.com/ionic-team/ionic/compare/v6.5.6...v6.5.7) (2023-03-01) + +**Note:** Version bump only for package @ionic/react + + + + + ## [6.5.6](https://github.com/ionic-team/ionic/compare/v6.5.5...v6.5.6) (2023-02-22) **Note:** Version bump only for package @ionic/react diff --git a/packages/react/package-lock.json b/packages/react/package-lock.json index 3cbe5cbe2a..bcd2b5f07e 100644 --- a/packages/react/package-lock.json +++ b/packages/react/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/react", - "version": "6.5.6", + "version": "6.5.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/react", - "version": "6.5.6", + "version": "6.5.7", "license": "MIT", "dependencies": { - "@ionic/core": "^6.5.6", + "@ionic/core": "^6.5.7", "ionicons": "^6.1.3", "tslib": "*" }, @@ -697,9 +697,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "6.5.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.6.tgz", - "integrity": "sha512-Bi87GXW+pgeXijDWD/sLKLq9yQOxzQLg9+U5V684fZZoORv4KnV9Qosjq3LmRm+vH7VuQeU0OZ8ZU3OuDAlrDA==", + "version": "6.5.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.7.tgz", + "integrity": "sha512-nEgB47Mwj5/LyKeN+r8vcSxoG66aWrODbS63Bp6BT5pb9QzMm2p9ZYe3160YwYxtj5Ax2jhDvkqpykkJWZT+KA==", "dependencies": { "@stencil/core": "^2.18.0", "ionicons": "^6.1.3", @@ -11765,9 +11765,9 @@ "dev": true }, "@ionic/core": { - "version": "6.5.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.6.tgz", - "integrity": "sha512-Bi87GXW+pgeXijDWD/sLKLq9yQOxzQLg9+U5V684fZZoORv4KnV9Qosjq3LmRm+vH7VuQeU0OZ8ZU3OuDAlrDA==", + "version": "6.5.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.7.tgz", + "integrity": "sha512-nEgB47Mwj5/LyKeN+r8vcSxoG66aWrODbS63Bp6BT5pb9QzMm2p9ZYe3160YwYxtj5Ax2jhDvkqpykkJWZT+KA==", "requires": { "@stencil/core": "^2.18.0", "ionicons": "^6.1.3", diff --git a/packages/react/package.json b/packages/react/package.json index 4dfa31552e..3aa27edd46 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/react", - "version": "6.5.6", + "version": "6.5.7", "description": "React specific wrapper for @ionic/core", "keywords": [ "ionic", @@ -42,7 +42,7 @@ "css/" ], "dependencies": { - "@ionic/core": "^6.5.6", + "@ionic/core": "^6.5.7", "ionicons": "^6.1.3", "tslib": "*" }, diff --git a/packages/vue-router/CHANGELOG.md b/packages/vue-router/CHANGELOG.md index 965bfea515..b8526de7af 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. +## [6.5.7](https://github.com/ionic-team/ionic/compare/v6.5.6...v6.5.7) (2023-03-01) + +**Note:** Version bump only for package @ionic/vue-router + + + + + ## [6.5.6](https://github.com/ionic-team/ionic/compare/v6.5.5...v6.5.6) (2023-02-22) **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 5bb00b76a8..429ce9a3f0 100644 --- a/packages/vue-router/package-lock.json +++ b/packages/vue-router/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/vue-router", - "version": "6.5.6", + "version": "6.5.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/vue-router", - "version": "6.5.6", + "version": "6.5.7", "license": "MIT", "dependencies": { - "@ionic/vue": "^6.5.6" + "@ionic/vue": "^6.5.7" }, "devDependencies": { "@ionic/eslint-config": "^0.3.0", @@ -660,9 +660,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "6.5.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.6.tgz", - "integrity": "sha512-Bi87GXW+pgeXijDWD/sLKLq9yQOxzQLg9+U5V684fZZoORv4KnV9Qosjq3LmRm+vH7VuQeU0OZ8ZU3OuDAlrDA==", + "version": "6.5.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.7.tgz", + "integrity": "sha512-nEgB47Mwj5/LyKeN+r8vcSxoG66aWrODbS63Bp6BT5pb9QzMm2p9ZYe3160YwYxtj5Ax2jhDvkqpykkJWZT+KA==", "dependencies": { "@stencil/core": "^2.18.0", "ionicons": "^6.1.3", @@ -851,11 +851,11 @@ } }, "node_modules/@ionic/vue": { - "version": "6.5.6", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-6.5.6.tgz", - "integrity": "sha512-AY66JhWIgflkW4QaNx7BcV2LnZ5nruUR6P/NpLyYVRuUz0XpW3QOam0PZu9HlNsHR3NJvwMsaRejdjB63BSTKw==", + "version": "6.5.7", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-6.5.7.tgz", + "integrity": "sha512-njds6SfJrudo/yC684WVdxXj8qlaXMF5ktRJX/6cXX3pUtyJ7MwPrb4k94bfcSzu1nSgK4NdiyFXlo1G980WqQ==", "dependencies": { - "@ionic/core": "6.5.6", + "@ionic/core": "6.5.7", "ionicons": "^6.1.3" } }, @@ -7665,9 +7665,9 @@ "dev": true }, "@ionic/core": { - "version": "6.5.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.6.tgz", - "integrity": "sha512-Bi87GXW+pgeXijDWD/sLKLq9yQOxzQLg9+U5V684fZZoORv4KnV9Qosjq3LmRm+vH7VuQeU0OZ8ZU3OuDAlrDA==", + "version": "6.5.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.7.tgz", + "integrity": "sha512-nEgB47Mwj5/LyKeN+r8vcSxoG66aWrODbS63Bp6BT5pb9QzMm2p9ZYe3160YwYxtj5Ax2jhDvkqpykkJWZT+KA==", "requires": { "@stencil/core": "^2.18.0", "ionicons": "^6.1.3", @@ -7780,11 +7780,11 @@ "requires": {} }, "@ionic/vue": { - "version": "6.5.6", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-6.5.6.tgz", - "integrity": "sha512-AY66JhWIgflkW4QaNx7BcV2LnZ5nruUR6P/NpLyYVRuUz0XpW3QOam0PZu9HlNsHR3NJvwMsaRejdjB63BSTKw==", + "version": "6.5.7", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-6.5.7.tgz", + "integrity": "sha512-njds6SfJrudo/yC684WVdxXj8qlaXMF5ktRJX/6cXX3pUtyJ7MwPrb4k94bfcSzu1nSgK4NdiyFXlo1G980WqQ==", "requires": { - "@ionic/core": "6.5.6", + "@ionic/core": "6.5.7", "ionicons": "^6.1.3" } }, diff --git a/packages/vue-router/package.json b/packages/vue-router/package.json index 77d39c87ae..fc176ad8ad 100644 --- a/packages/vue-router/package.json +++ b/packages/vue-router/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/vue-router", - "version": "6.5.6", + "version": "6.5.7", "description": "Vue Router integration for @ionic/vue", "scripts": { "test.spec": "jest", @@ -46,7 +46,7 @@ }, "homepage": "https://github.com/ionic-team/ionic#readme", "dependencies": { - "@ionic/vue": "^6.5.6" + "@ionic/vue": "^6.5.7" }, "devDependencies": { "@ionic/eslint-config": "^0.3.0", diff --git a/packages/vue/CHANGELOG.md b/packages/vue/CHANGELOG.md index 88608559ab..fe044088f0 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. +## [6.5.7](https://github.com/ionic-team/ionic/compare/v6.5.6...v6.5.7) (2023-03-01) + +**Note:** Version bump only for package @ionic/vue + + + + + ## [6.5.6](https://github.com/ionic-team/ionic/compare/v6.5.5...v6.5.6) (2023-02-22) **Note:** Version bump only for package @ionic/vue diff --git a/packages/vue/package-lock.json b/packages/vue/package-lock.json index 104ccc7547..d88ca51aa2 100644 --- a/packages/vue/package-lock.json +++ b/packages/vue/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/vue", - "version": "6.5.6", + "version": "6.5.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/vue", - "version": "6.5.6", + "version": "6.5.7", "license": "MIT", "dependencies": { - "@ionic/core": "^6.5.6", + "@ionic/core": "^6.5.7", "ionicons": "^6.1.3" }, "devDependencies": { @@ -208,9 +208,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "6.5.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.6.tgz", - "integrity": "sha512-Bi87GXW+pgeXijDWD/sLKLq9yQOxzQLg9+U5V684fZZoORv4KnV9Qosjq3LmRm+vH7VuQeU0OZ8ZU3OuDAlrDA==", + "version": "6.5.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.7.tgz", + "integrity": "sha512-nEgB47Mwj5/LyKeN+r8vcSxoG66aWrODbS63Bp6BT5pb9QzMm2p9ZYe3160YwYxtj5Ax2jhDvkqpykkJWZT+KA==", "dependencies": { "@stencil/core": "^2.18.0", "ionicons": "^6.1.3", @@ -3776,9 +3776,9 @@ "dev": true }, "@ionic/core": { - "version": "6.5.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.6.tgz", - "integrity": "sha512-Bi87GXW+pgeXijDWD/sLKLq9yQOxzQLg9+U5V684fZZoORv4KnV9Qosjq3LmRm+vH7VuQeU0OZ8ZU3OuDAlrDA==", + "version": "6.5.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.7.tgz", + "integrity": "sha512-nEgB47Mwj5/LyKeN+r8vcSxoG66aWrODbS63Bp6BT5pb9QzMm2p9ZYe3160YwYxtj5Ax2jhDvkqpykkJWZT+KA==", "requires": { "@stencil/core": "^2.18.0", "ionicons": "^6.1.3", diff --git a/packages/vue/package.json b/packages/vue/package.json index ad68f18157..e19b4913d0 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/vue", - "version": "6.5.6", + "version": "6.5.7", "description": "Vue specific wrapper for @ionic/core", "scripts": { "eslint": "eslint src", @@ -68,7 +68,7 @@ "vue-router": "^4.0.16" }, "dependencies": { - "@ionic/core": "^6.5.6", + "@ionic/core": "^6.5.7", "ionicons": "^6.1.3" }, "vetur": {