diff --git a/CHANGELOG.md b/CHANGELOG.md index d4a9ca08c0..d4ae26b29d 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. +# [7.2.0](https://github.com/ionic-team/ionic-framework/compare/v7.1.4...v7.2.0) (2023-07-19) + + +### Features + +* **angular:** support binding routing data to component inputs ([#27694](https://github.com/ionic-team/ionic-framework/issues/27694)) ([90f4124](https://github.com/ionic-team/ionic-framework/commit/90f41243d9404caaad99076965b7cd649ddf7f33)), closes [#27476](https://github.com/ionic-team/ionic-framework/issues/27476) +* **button:** allow button to increase in height when text wraps ([#27547](https://github.com/ionic-team/ionic-framework/issues/27547)) ([6fe716f](https://github.com/ionic-team/ionic-framework/commit/6fe716fd1320935632854e5d4f741b57801bda92)) +* **searchbar:** add name property ([#27737](https://github.com/ionic-team/ionic-framework/issues/27737)) ([7131037](https://github.com/ionic-team/ionic-framework/commit/71310372c94862342d607007ece127340df92a8c)), closes [#27675](https://github.com/ionic-team/ionic-framework/issues/27675) + + + + + ## [7.1.4](https://github.com/ionic-team/ionic-framework/compare/v7.1.3...v7.1.4) (2023-07-19) diff --git a/core/CHANGELOG.md b/core/CHANGELOG.md index 4bf76784da..c30a907cae 100644 --- a/core/CHANGELOG.md +++ b/core/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [7.2.0](https://github.com/ionic-team/ionic-framework/compare/v7.1.4...v7.2.0) (2023-07-19) + + +### Features + +* **button:** allow button to increase in height when text wraps ([#27547](https://github.com/ionic-team/ionic-framework/issues/27547)) ([6fe716f](https://github.com/ionic-team/ionic-framework/commit/6fe716fd1320935632854e5d4f741b57801bda92)) +* **searchbar:** add name property ([#27737](https://github.com/ionic-team/ionic-framework/issues/27737)) ([7131037](https://github.com/ionic-team/ionic-framework/commit/71310372c94862342d607007ece127340df92a8c)), closes [#27675](https://github.com/ionic-team/ionic-framework/issues/27675) + + + + + ## [7.1.4](https://github.com/ionic-team/ionic-framework/compare/v7.1.3...v7.1.4) (2023-07-19) diff --git a/core/api.txt b/core/api.txt index eecee0c71f..55ace969a9 100644 --- a/core/api.txt +++ b/core/api.txt @@ -1157,6 +1157,7 @@ ion-searchbar,prop,disabled,boolean,false,false,false ion-searchbar,prop,enterkeyhint,"done" | "enter" | "go" | "next" | "previous" | "search" | "send" | undefined,undefined,false,false ion-searchbar,prop,inputmode,"decimal" | "email" | "none" | "numeric" | "search" | "tel" | "text" | "url" | undefined,undefined,false,false ion-searchbar,prop,mode,"ios" | "md",undefined,false,false +ion-searchbar,prop,name,string,this.inputId,false,false ion-searchbar,prop,placeholder,string,'Search',false,false ion-searchbar,prop,searchIcon,string | undefined,undefined,false,false ion-searchbar,prop,showCancelButton,"always" | "focus" | "never",'never',false,false diff --git a/core/package-lock.json b/core/package-lock.json index b0150d9c76..727f414798 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ionic/core", - "version": "7.1.4", + "version": "7.2.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/core", - "version": "7.1.4", + "version": "7.2.0", "license": "MIT", "dependencies": { "@stencil/core": "^3.4.0", diff --git a/core/package.json b/core/package.json index 6ae395d4a9..12a3d25d96 100644 --- a/core/package.json +++ b/core/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/core", - "version": "7.1.4", + "version": "7.2.0", "description": "Base components for Ionic", "keywords": [ "ionic", diff --git a/core/src/components.d.ts b/core/src/components.d.ts index 24f42a4887..0b839d4ee7 100644 --- a/core/src/components.d.ts +++ b/core/src/components.d.ts @@ -2578,6 +2578,10 @@ export namespace Components { * The mode determines which platform styles to use. */ "mode"?: "ios" | "md"; + /** + * If used in a form, set the name of the control, which is submitted with the form data. + */ + "name": string; /** * Set the input's placeholder. `placeholder` can accept either plaintext or HTML as a string. To display characters normally reserved for HTML, they must be escaped. For example `` would become `<Ionic>` For more information: [Security Documentation](https://ionicframework.com/docs/faq/security) */ @@ -6625,6 +6629,10 @@ declare namespace LocalJSX { * The mode determines which platform styles to use. */ "mode"?: "ios" | "md"; + /** + * If used in a form, set the name of the control, which is submitted with the form data. + */ + "name"?: string; /** * Emitted when the input loses focus. */ diff --git a/core/src/components/button/button.ios.scss b/core/src/components/button/button.ios.scss index 0725c54cf6..ea898ed60e 100644 --- a/core/src/components/button/button.ios.scss +++ b/core/src/components/button/button.ios.scss @@ -16,7 +16,7 @@ @include margin($button-ios-margin-top, $button-ios-margin-end, $button-ios-margin-bottom, $button-ios-margin-start); - height: #{$button-ios-height}; + min-height: #{$button-ios-min-height}; font-size: #{$button-ios-font-size}; font-weight: #{$button-ios-font-weight}; @@ -92,7 +92,7 @@ --padding-end: #{$button-ios-large-padding-end}; --padding-bottom: #{$button-ios-large-padding-bottom}; - height: #{$button-ios-large-height}; + min-height: #{$button-ios-large-min-height}; font-size: #{$button-ios-large-font-size}; } @@ -104,11 +104,16 @@ --padding-end: #{$button-ios-small-padding-end}; --padding-bottom: #{$button-ios-small-padding-bottom}; - height: #{$button-ios-small-height}; + min-height: #{$button-ios-small-min-height}; font-size: #{$button-ios-small-font-size}; } +:host(.button-has-icon-only) { + --padding-top: 0; + --padding-bottom: 0; +} + // iOS Round Button // -------------------------------------------------- diff --git a/core/src/components/button/button.ios.vars.scss b/core/src/components/button/button.ios.vars.scss index 1a7adecf6c..ed4c90d433 100644 --- a/core/src/components/button/button.ios.vars.scss +++ b/core/src/components/button/button.ios.vars.scss @@ -16,7 +16,7 @@ $button-ios-margin-bottom: 4px !default; $button-ios-margin-start: 2px !default; /// @prop - Padding top of the button -$button-ios-padding-top: 0 !default; +$button-ios-padding-top: 13px !default; /// @prop - Padding end of the button $button-ios-padding-end: 1em !default; @@ -27,8 +27,8 @@ $button-ios-padding-bottom: $button-ios-padding-top !d /// @prop - Padding start of the button $button-ios-padding-start: $button-ios-padding-end !default; -/// @prop - Height of the button -$button-ios-height: 3.1em !default; +/// @prop - Minimum height of the button +$button-ios-min-height: 3.1em !default; /// @prop - Border radius of the button $button-ios-border-radius: 14px !default; @@ -65,7 +65,7 @@ $button-ios-opacity-disabled: .5 !default; // -------------------------------------------------- /// @prop - Padding top of the large button -$button-ios-large-padding-top: 0 !default; +$button-ios-large-padding-top: 17px !default; /// @prop - Padding end of the large button $button-ios-large-padding-end: 1em !default; @@ -76,8 +76,8 @@ $button-ios-large-padding-bottom: $button-ios-large-padding- /// @prop - Padding start of the large button $button-ios-large-padding-start: $button-ios-large-padding-end !default; -/// @prop - Height of the large button -$button-ios-large-height: 3.1em !default; +/// @prop - Minimum height of the large button +$button-ios-large-min-height: 3.1em !default; /// @prop - Border radius of the large button $button-ios-large-border-radius: 16px !default; @@ -90,7 +90,7 @@ $button-ios-large-font-size: 20px !default; // -------------------------------------------------- /// @prop - Padding top of the small button -$button-ios-small-padding-top: 0 !default; +$button-ios-small-padding-top: 4px !default; /// @prop - Padding end of the small button $button-ios-small-padding-end: .9em !default; @@ -101,8 +101,8 @@ $button-ios-small-padding-bottom: $button-ios-small-padding- /// @prop - Padding start of the small button $button-ios-small-padding-start: $button-ios-small-padding-end !default; -/// @prop - Height of the small button -$button-ios-small-height: 2.1em !default; +/// @prop - Minimum height of the small button +$button-ios-small-min-height: 2.1em !default; /// @prop - Border radius of the small button $button-ios-small-border-radius: 6px !default; diff --git a/core/src/components/button/button.md.scss b/core/src/components/button/button.md.scss index a8493a2dbf..2a2a284506 100644 --- a/core/src/components/button/button.md.scss +++ b/core/src/components/button/button.md.scss @@ -16,7 +16,7 @@ @include margin($button-md-margin-top, $button-md-margin-end, $button-md-margin-bottom, $button-md-margin-start); - height: #{$button-md-height}; + min-height: #{$button-md-min-height}; font-size: #{$button-md-font-size}; font-weight: #{$button-md-font-weight}; @@ -97,7 +97,7 @@ --padding-end: #{$button-md-large-padding-end}; --padding-bottom: #{$button-md-large-padding-bottom}; - height: #{$button-md-large-height}; + min-height: #{$button-md-large-min-height}; font-size: #{$button-md-large-font-size}; } @@ -108,11 +108,16 @@ --padding-end: #{$button-md-small-padding-end}; --padding-bottom: #{$button-md-small-padding-bottom}; - height: #{$button-md-small-height}; + min-height: #{$button-md-small-min-height}; font-size: #{$button-md-small-font-size}; } +:host(.button-has-icon-only) { + --padding-top: 0; + --padding-bottom: 0; +} + // MD strong Button // -------------------------------------------------- diff --git a/core/src/components/button/button.md.vars.scss b/core/src/components/button/button.md.vars.scss index a5af53c952..148e52e768 100644 --- a/core/src/components/button/button.md.vars.scss +++ b/core/src/components/button/button.md.vars.scss @@ -16,19 +16,19 @@ $button-md-margin-bottom: 4px !default; $button-md-margin-start: 2px !default; /// @prop - Padding top of the button -$button-md-padding-top: 0 !default; +$button-md-padding-top: 8px !default; /// @prop - Padding end of the button $button-md-padding-end: 1.1em !default; /// @prop - Padding bottom of the button -$button-md-padding-bottom: 0 !default; +$button-md-padding-bottom: $button-md-padding-top !default; /// @prop - Padding start of the button $button-md-padding-start: 1.1em !default; -/// @prop - Height of the button -$button-md-height: 36px !default; +/// @prop - Minimum height of the button +$button-md-min-height: 36px !default; /// @prop - Border radius of the button $button-md-border-radius: 4px !default; @@ -63,7 +63,7 @@ $button-md-opacity-disabled: .5 !default; // -------------------------------------------------- /// @prop - Padding top of the large button -$button-md-large-padding-top: 0 !default; +$button-md-large-padding-top: 14px !default; /// @prop - Padding end of the large button $button-md-large-padding-end: 1em !default; @@ -74,8 +74,8 @@ $button-md-large-padding-bottom: $button-md-large-padding /// @prop - Padding start of the large button $button-md-large-padding-start: $button-md-large-padding-end !default; -/// @prop - Height of the large button -$button-md-large-height: 2.8em !default; +/// @prop - Minimum height of the large button +$button-md-large-min-height: 2.8em !default; /// @prop - Font size of the large button $button-md-large-font-size: 20px !default; @@ -85,7 +85,7 @@ $button-md-large-font-size: 20px !default; // -------------------------------------------------- /// @prop - Padding top of the small button -$button-md-small-padding-top: 0 !default; +$button-md-small-padding-top: 4px !default; /// @prop - Padding end of the small button $button-md-small-padding-end: .9em !default; @@ -96,8 +96,8 @@ $button-md-small-padding-bottom: $button-md-small-padding /// @prop - Padding start of the small button $button-md-small-padding-start: $button-md-small-padding-end !default; -/// @prop - Height of the small button -$button-md-small-height: 2.1em !default; +/// @prop - Minimum height of the small button +$button-md-small-min-height: 2.1em !default; /// @prop - Font size of the small button $button-md-small-font-size: 13px !default; diff --git a/core/src/components/button/button.scss b/core/src/components/button/button.scss index f75b76a683..c6668701c5 100644 --- a/core/src/components/button/button.scss +++ b/core/src/components/button/button.scss @@ -55,8 +55,8 @@ text-align: center; text-decoration: none; - text-overflow: ellipsis; + // TODO(FW-4599): change to normal white-space: nowrap; user-select: none; @@ -114,8 +114,6 @@ :host(.button-block) .button-native { @include margin-horizontal(0); - display: block; - width: 100%; clear: both; @@ -138,8 +136,6 @@ :host(.button-full) .button-native { @include margin-horizontal(0); - display: block; - width: 100%; contain: content; @@ -159,12 +155,17 @@ @include padding(var(--padding-top), var(--padding-end), var(--padding-bottom), var(--padding-start)); @include text-inherit(); - display: block; + display: flex; + position: relative; + align-items: center; + width: 100%; height: 100%; + min-height: inherit; + transition: var(--transition); border-width: var(--border-width); @@ -210,11 +211,20 @@ } +// Button Slots +// -------------------------------------------------- + +::slotted([slot=start]), +::slotted([slot=end]) { + flex-shrink: 0; +} + + // Button Icons // -------------------------------------------------- ::slotted(ion-icon) { - font-size: 1.4em; + font-size: 1.35em; pointer-events: none; } diff --git a/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-ios-ltr-Mobile-Chrome-linux.png index f4476a0e6c..e11aec5eda 100644 Binary files a/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-ios-ltr-Mobile-Chrome-linux.png and b/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-ios-ltr-Mobile-Firefox-linux.png index af7094d91e..77c6d3b18d 100644 Binary files a/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-ios-ltr-Mobile-Firefox-linux.png and b/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-ios-ltr-Mobile-Safari-linux.png b/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-ios-ltr-Mobile-Safari-linux.png index 0b9a67b8f5..c2b1ded65d 100644 Binary files a/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-ios-ltr-Mobile-Safari-linux.png and b/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-ios-rtl-Mobile-Chrome-linux.png index bfb8740d0a..3982223203 100644 Binary files a/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-ios-rtl-Mobile-Chrome-linux.png and b/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-ios-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-ios-rtl-Mobile-Firefox-linux.png index f358b1b022..a32260c894 100644 Binary files a/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-ios-rtl-Mobile-Firefox-linux.png and b/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-ios-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-ios-rtl-Mobile-Safari-linux.png b/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-ios-rtl-Mobile-Safari-linux.png index 27fabef700..8c8e5575c1 100644 Binary files a/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-ios-rtl-Mobile-Safari-linux.png and b/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-ios-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-md-ltr-Mobile-Chrome-linux.png b/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-md-ltr-Mobile-Chrome-linux.png index 657998f1e4..5390e07406 100644 Binary files a/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-md-ltr-Mobile-Chrome-linux.png and b/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-md-ltr-Mobile-Firefox-linux.png b/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-md-ltr-Mobile-Firefox-linux.png index 229d302764..a00c4093a9 100644 Binary files a/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-md-ltr-Mobile-Firefox-linux.png and b/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-md-ltr-Mobile-Safari-linux.png b/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-md-ltr-Mobile-Safari-linux.png index e83a7fe5d7..7a6cf541da 100644 Binary files a/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-md-ltr-Mobile-Safari-linux.png and b/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-md-rtl-Mobile-Chrome-linux.png b/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-md-rtl-Mobile-Chrome-linux.png index 30443ea40f..efcdae3330 100644 Binary files a/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-md-rtl-Mobile-Chrome-linux.png and b/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-md-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-md-rtl-Mobile-Firefox-linux.png b/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-md-rtl-Mobile-Firefox-linux.png index 37d048e4a2..51c80af3cc 100644 Binary files a/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-md-rtl-Mobile-Firefox-linux.png and b/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-md-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-md-rtl-Mobile-Safari-linux.png b/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-md-rtl-Mobile-Safari-linux.png index 706efb2781..48efc0adf2 100644 Binary files a/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-md-rtl-Mobile-Safari-linux.png and b/core/src/components/button/test/icon/button.e2e.ts-snapshots/button-icon-md-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts b/core/src/components/button/test/wrap/button.e2e.ts new file mode 100644 index 0000000000..d6279ec064 --- /dev/null +++ b/core/src/components/button/test/wrap/button.e2e.ts @@ -0,0 +1,207 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('button: wrap'), () => { + test('should render button with long text', async ({ page }) => { + // TODO(FW-4599): remove ion-text-wrap class + await page.setContent( + ` + This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends + `, + config + ); + + const button = page.locator('ion-button'); + + await expect(button).toHaveScreenshot(screenshot(`button-wrap`)); + }); + + test('should render small button with long text', async ({ page }) => { + // TODO(FW-4599): remove ion-text-wrap class + await page.setContent( + ` + This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends + `, + config + ); + + const button = page.locator('ion-button'); + + await expect(button).toHaveScreenshot(screenshot(`button-wrap-small`)); + }); + + test('should render large button with long text', async ({ page }) => { + // TODO(FW-4599): remove ion-text-wrap class + await page.setContent( + ` + This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends + `, + config + ); + + const button = page.locator('ion-button'); + + await expect(button).toHaveScreenshot(screenshot(`button-wrap-large`)); + }); + + test('should render button with long text and icons', async ({ page }) => { + // TODO(FW-4599): remove ion-text-wrap class + await page.setContent( + ` + + + This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends + + + `, + config + ); + + const button = page.locator('ion-button'); + + await expect(button).toHaveScreenshot(screenshot(`button-wrap-icons`)); + }); + + test('should render block button with long text', async ({ page }) => { + // TODO(FW-4599): remove ion-text-wrap class + await page.setContent( + ` + This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends + `, + config + ); + + const button = page.locator('ion-button'); + + await expect(button).toHaveScreenshot(screenshot(`button-wrap-block`)); + }); + + test('should render block button with long text and icons', async ({ page }) => { + // TODO(FW-4599): remove ion-text-wrap class + await page.setContent( + ` + + + This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends + + + `, + config + ); + + const button = page.locator('ion-button'); + + await expect(button).toHaveScreenshot(screenshot(`button-wrap-block-icons`)); + }); + + test('should render full button with long text', async ({ page }) => { + // TODO(FW-4599): remove ion-text-wrap class + await page.setContent( + ` + This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends + `, + config + ); + + const button = page.locator('ion-button'); + + await expect(button).toHaveScreenshot(screenshot(`button-wrap-full`)); + }); + + test('should render full button with long text and icons', async ({ page }) => { + // TODO(FW-4599): remove ion-text-wrap class + await page.setContent( + ` + + + This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends + + + `, + config + ); + + const button = page.locator('ion-button'); + + await expect(button).toHaveScreenshot(screenshot(`button-wrap-full-icons`)); + }); + + test('should render an item button with long text', async ({ page }) => { + // TODO(FW-4599): remove ion-text-wrap class + await page.setContent( + ` + + + This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends + + + `, + config + ); + + const item = page.locator('ion-item'); + + await expect(item).toHaveScreenshot(screenshot(`button-wrap-item-button`)); + }); + + test('should render an item button with long text and icons', async ({ page }) => { + // TODO(FW-4599): remove ion-text-wrap class + await page.setContent( + ` + + + + This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends + + + + `, + config + ); + + const item = page.locator('ion-item'); + + await expect(item).toHaveScreenshot(screenshot(`button-wrap-item-button-icons`)); + }); + + test('should render a list header button with long text', async ({ page }) => { + // TODO(FW-4599): remove ion-text-wrap class + await page.setContent( + ` + + List Header + + This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends + + + `, + config + ); + + const listHeader = page.locator('ion-list-header'); + + await expect(listHeader).toHaveScreenshot(screenshot(`button-wrap-list-header-button`)); + }); + + test('should render a toolbar button with long text', async ({ page }) => { + // TODO(FW-4599): remove ion-text-wrap class + await page.setContent( + ` + + + + This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends + + + + `, + config + ); + + const toolbar = page.locator('ion-toolbar'); + + await expect(toolbar).toHaveScreenshot(screenshot(`button-wrap-toolbar-button`)); + }); + }); +}); diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-icons-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-icons-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..e5fdc17bb6 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-icons-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-icons-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-icons-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..d3277c9bca Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-icons-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-icons-ios-ltr-Mobile-Safari-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-icons-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..b80a3796da Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-icons-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-icons-md-ltr-Mobile-Chrome-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-icons-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..2f76dadc26 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-icons-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-icons-md-ltr-Mobile-Firefox-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-icons-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..f1465c21bf Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-icons-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-icons-md-ltr-Mobile-Safari-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-icons-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..e070a291a5 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-icons-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..395e5dbe84 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..fcc88b0291 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-ios-ltr-Mobile-Safari-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..6347ade916 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-md-ltr-Mobile-Chrome-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..c4dd526997 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-md-ltr-Mobile-Firefox-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..e1e14c4617 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-md-ltr-Mobile-Safari-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..1c534333b7 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-block-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-icons-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-icons-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..dd722772e5 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-icons-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-icons-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-icons-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..7c2faa7ca1 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-icons-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-icons-ios-ltr-Mobile-Safari-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-icons-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..aba89e9c0c Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-icons-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-icons-md-ltr-Mobile-Chrome-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-icons-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..44c2477b25 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-icons-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-icons-md-ltr-Mobile-Firefox-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-icons-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..cef1d5b803 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-icons-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-icons-md-ltr-Mobile-Safari-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-icons-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..a82f125cf0 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-icons-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..140fe3f82c Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..4b52922150 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-ios-ltr-Mobile-Safari-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..b8db587f5b Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-md-ltr-Mobile-Chrome-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..255cccc5c6 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-md-ltr-Mobile-Firefox-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..4e53a8be27 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-md-ltr-Mobile-Safari-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..c4880a8a6a Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-full-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-icons-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-icons-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..e5fdc17bb6 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-icons-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-icons-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-icons-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..d3277c9bca Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-icons-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-icons-ios-ltr-Mobile-Safari-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-icons-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..b80a3796da Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-icons-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-icons-md-ltr-Mobile-Chrome-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-icons-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..2f76dadc26 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-icons-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-icons-md-ltr-Mobile-Firefox-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-icons-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..f1465c21bf Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-icons-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-icons-md-ltr-Mobile-Safari-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-icons-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..e070a291a5 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-icons-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..395e5dbe84 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..fcc88b0291 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-ios-ltr-Mobile-Safari-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..6347ade916 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-icons-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-icons-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..56d7f7876d Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-icons-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-icons-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-icons-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..2983ae6101 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-icons-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-icons-ios-ltr-Mobile-Safari-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-icons-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..669f243e60 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-icons-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-icons-md-ltr-Mobile-Chrome-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-icons-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..b5b7285d7c Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-icons-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-icons-md-ltr-Mobile-Firefox-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-icons-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..4b3c6d17ae Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-icons-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-icons-md-ltr-Mobile-Safari-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-icons-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..d98cd45a63 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-icons-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..799f5bad40 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..4df0af8873 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-ios-ltr-Mobile-Safari-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..0feb30d610 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-md-ltr-Mobile-Chrome-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..ea940976e5 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-md-ltr-Mobile-Firefox-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..4f1258ab80 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-md-ltr-Mobile-Safari-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..3163cd6707 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-item-button-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-large-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-large-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..70013c9ffa Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-large-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-large-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-large-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..71875a6e5c Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-large-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-large-ios-ltr-Mobile-Safari-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-large-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..76c9d374fb Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-large-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-large-md-ltr-Mobile-Chrome-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-large-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..decedaee98 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-large-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-large-md-ltr-Mobile-Firefox-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-large-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..24dcbd8ddd Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-large-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-large-md-ltr-Mobile-Safari-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-large-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..ce7dbe7cf1 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-large-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-list-header-button-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-list-header-button-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..6943572d26 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-list-header-button-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-list-header-button-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-list-header-button-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..e883114291 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-list-header-button-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-list-header-button-ios-ltr-Mobile-Safari-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-list-header-button-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..71c2e09800 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-list-header-button-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-list-header-button-md-ltr-Mobile-Chrome-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-list-header-button-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..44fe004a9a Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-list-header-button-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-list-header-button-md-ltr-Mobile-Firefox-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-list-header-button-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..e4bf509a44 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-list-header-button-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-list-header-button-md-ltr-Mobile-Safari-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-list-header-button-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..9c313d302a Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-list-header-button-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-md-ltr-Mobile-Chrome-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..c4dd526997 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-md-ltr-Mobile-Firefox-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..e1e14c4617 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-md-ltr-Mobile-Safari-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..1c534333b7 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-small-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-small-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..ef74e8815c Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-small-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-small-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-small-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..3482af3344 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-small-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-small-ios-ltr-Mobile-Safari-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-small-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..bdb74a097c Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-small-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-small-md-ltr-Mobile-Chrome-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-small-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..ba34ddee08 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-small-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-small-md-ltr-Mobile-Firefox-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-small-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..a91a83d7bb Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-small-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-small-md-ltr-Mobile-Safari-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-small-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..8203a2eb31 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-small-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-toolbar-button-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-toolbar-button-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..27a414e564 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-toolbar-button-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-toolbar-button-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-toolbar-button-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..a248f980e4 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-toolbar-button-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-toolbar-button-ios-ltr-Mobile-Safari-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-toolbar-button-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..d781f67fcd Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-toolbar-button-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-toolbar-button-md-ltr-Mobile-Chrome-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-toolbar-button-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..4651e4c59d Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-toolbar-button-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-toolbar-button-md-ltr-Mobile-Firefox-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-toolbar-button-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..946e1ffb98 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-toolbar-button-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-toolbar-button-md-ltr-Mobile-Safari-linux.png b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-toolbar-button-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..07f8e434e5 Binary files /dev/null and b/core/src/components/button/test/wrap/button.e2e.ts-snapshots/button-wrap-toolbar-button-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/button/test/wrap/index.html b/core/src/components/button/test/wrap/index.html new file mode 100644 index 0000000000..13cd523088 --- /dev/null +++ b/core/src/components/button/test/wrap/index.html @@ -0,0 +1,121 @@ + + + + + Button - Wrap + + + + + + + + + + + + + +

Item

+ + + This is the button that never ends it just goes on and on and on and on and on and on and on and on my + friends + + + + + This is the button that never ends it just goes on and on and on and on and on and on and on and on my + friends + + + + + This is the button that never ends it just goes on and on and on and on and on and on and on and on my + friends + + + +

Toolbar

+ + + + This is the button that never ends it just goes on and on and on and on and on and on and on and on my + friends + + + + +

Default

+ Button + This is the button that never ends it just goes on and on and on and on and on and on and on and on my + friends + + + This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends + + + +

Small

+ Button + + This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends + + + + This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends + + + +

Large

+ Button + + This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends + + + + This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends + + + +

Block

+ Button + This is the button that never ends it just goes on and on and on and on and on and on and on and on my + friends + + + This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends + + + +

Full

+ Button + This is the button that never ends it just goes on and on and on and on and on and on and on and on my + friends + + + This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends + + +
+
+ + diff --git a/core/src/components/buttons/buttons.ios.scss b/core/src/components/buttons/buttons.ios.scss index 49126cdadc..24d76cbf92 100644 --- a/core/src/components/buttons/buttons.ios.scss +++ b/core/src/components/buttons/buttons.ios.scss @@ -6,12 +6,19 @@ // -------------------------------------------------- ::slotted(*) ion-button { + --padding-top: 3px; + --padding-bottom: 3px; --padding-start: 5px; --padding-end: 5px; @include margin-horizontal(2px, 2px); - height: 32px; + min-height: 32px; +} + +::slotted(*) .button-has-icon-only { + --padding-top: 0; + --padding-bottom: 0; } ::slotted(*) ion-button:not(.button-round) { diff --git a/core/src/components/buttons/buttons.md.scss b/core/src/components/buttons/buttons.md.scss index cb10c4a484..39497941fa 100644 --- a/core/src/components/buttons/buttons.md.scss +++ b/core/src/components/buttons/buttons.md.scss @@ -5,15 +5,20 @@ // -------------------------------------------------- ::slotted(*) ion-button { - --padding-top: 0; - --padding-bottom: 0; + --padding-top: 3px; + --padding-bottom: 3px; --padding-start: 8px; --padding-end: 8px; --box-shadow: none; @include margin-horizontal(2px, 2px); - height: 32px; + min-height: 32px; +} + +::slotted(*) .button-has-icon-only { + --padding-top: 0; + --padding-bottom: 0; } ::slotted(*) ion-button:not(.button-round) { diff --git a/core/src/components/item/item.ios.scss b/core/src/components/item/item.ios.scss index c86f63f832..0b2996144d 100644 --- a/core/src/components/item/item.ios.scss +++ b/core/src/components/item/item.ios.scss @@ -154,12 +154,12 @@ // -------------------------------------------------- ::slotted(.button-small) { - --padding-top: 0px; - --padding-bottom: 0px; + --padding-top: 1px; + --padding-bottom: 1px; --padding-start: .5em; --padding-end: .5em; - height: 24px; + min-height: 24px; font-size: 13px; } diff --git a/core/src/components/item/item.md.scss b/core/src/components/item/item.md.scss index 05f2c097db..40770b0595 100644 --- a/core/src/components/item/item.md.scss +++ b/core/src/components/item/item.md.scss @@ -331,12 +331,12 @@ // -------------------------------------------------- ::slotted(.button-small) { - --padding-top: 0; - --padding-bottom: 0; + --padding-top: 2px; + --padding-bottom: 2px; --padding-start: .6em; --padding-end: .6em; - height: 25px; + min-height: 25px; font-size: 12px; } diff --git a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-dark-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-dark-diff-ios-ltr-Mobile-Chrome-linux.png index 887df90833..d7cd1f4a95 100644 Binary files a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-dark-diff-ios-ltr-Mobile-Chrome-linux.png and b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-dark-diff-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-dark-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-dark-diff-ios-ltr-Mobile-Firefox-linux.png index 5a753d7a86..f6dd1a563e 100644 Binary files a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-dark-diff-ios-ltr-Mobile-Firefox-linux.png and b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-dark-diff-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-dark-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-dark-diff-ios-ltr-Mobile-Safari-linux.png index b1bde09d83..3e69f5b296 100644 Binary files a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-dark-diff-ios-ltr-Mobile-Safari-linux.png and b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-dark-diff-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-dark-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-dark-diff-md-ltr-Mobile-Chrome-linux.png index e673d60db1..98a9323205 100644 Binary files a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-dark-diff-md-ltr-Mobile-Chrome-linux.png and b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-dark-diff-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-dark-diff-md-ltr-Mobile-Firefox-linux.png b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-dark-diff-md-ltr-Mobile-Firefox-linux.png index 4122bb5aa5..ccd24bc120 100644 Binary files a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-dark-diff-md-ltr-Mobile-Firefox-linux.png and b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-dark-diff-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-dark-diff-md-ltr-Mobile-Safari-linux.png b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-dark-diff-md-ltr-Mobile-Safari-linux.png index 09ae3a8197..fca1b90ec8 100644 Binary files a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-dark-diff-md-ltr-Mobile-Safari-linux.png and b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-dark-diff-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-ios-ltr-Mobile-Chrome-linux.png index 99f2d4f15d..f118a9acdd 100644 Binary files a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-ios-ltr-Mobile-Chrome-linux.png and b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-ios-ltr-Mobile-Firefox-linux.png index 5fd0cfb797..e2c4938048 100644 Binary files a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-ios-ltr-Mobile-Firefox-linux.png and b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-ios-ltr-Mobile-Safari-linux.png index 74bc1f00bc..44d31f9b61 100644 Binary files a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-ios-ltr-Mobile-Safari-linux.png and b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-ios-rtl-Mobile-Chrome-linux.png index b3298c7258..620c470820 100644 Binary files a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-ios-rtl-Mobile-Chrome-linux.png and b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-ios-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-ios-rtl-Mobile-Firefox-linux.png index ec6b14c94e..75f0ab5c4a 100644 Binary files a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-ios-rtl-Mobile-Firefox-linux.png and b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-ios-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-ios-rtl-Mobile-Safari-linux.png b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-ios-rtl-Mobile-Safari-linux.png index 3a104de5da..2678a1a284 100644 Binary files a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-ios-rtl-Mobile-Safari-linux.png and b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-ios-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-md-ltr-Mobile-Chrome-linux.png index a38e62a01c..5f94b3c67f 100644 Binary files a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-md-ltr-Mobile-Chrome-linux.png and b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-md-ltr-Mobile-Firefox-linux.png b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-md-ltr-Mobile-Firefox-linux.png index 85122c963b..0f3e460412 100644 Binary files a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-md-ltr-Mobile-Firefox-linux.png and b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-md-ltr-Mobile-Safari-linux.png b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-md-ltr-Mobile-Safari-linux.png index 5c7048d8b1..0fff3679d3 100644 Binary files a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-md-ltr-Mobile-Safari-linux.png and b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-md-rtl-Mobile-Chrome-linux.png b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-md-rtl-Mobile-Chrome-linux.png index 89a8d95a77..a9611f80da 100644 Binary files a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-md-rtl-Mobile-Chrome-linux.png and b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-md-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-md-rtl-Mobile-Firefox-linux.png b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-md-rtl-Mobile-Firefox-linux.png index bbc71f77d7..6b3978d18e 100644 Binary files a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-md-rtl-Mobile-Firefox-linux.png and b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-md-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-md-rtl-Mobile-Safari-linux.png b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-md-rtl-Mobile-Safari-linux.png index 87651cd421..e611adc408 100644 Binary files a/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-md-rtl-Mobile-Safari-linux.png and b/core/src/components/item/test/buttons/item.e2e.ts-snapshots/item-buttons-diff-md-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/item/test/colors/item.e2e.ts-snapshots/item-colors-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/item/test/colors/item.e2e.ts-snapshots/item-colors-diff-ios-ltr-Mobile-Chrome-linux.png index 49172661d4..1cb9c51ce6 100644 Binary files a/core/src/components/item/test/colors/item.e2e.ts-snapshots/item-colors-diff-ios-ltr-Mobile-Chrome-linux.png and b/core/src/components/item/test/colors/item.e2e.ts-snapshots/item-colors-diff-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/item/test/colors/item.e2e.ts-snapshots/item-colors-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/item/test/colors/item.e2e.ts-snapshots/item-colors-diff-ios-ltr-Mobile-Firefox-linux.png index 510adf99ef..437d1f29df 100644 Binary files a/core/src/components/item/test/colors/item.e2e.ts-snapshots/item-colors-diff-ios-ltr-Mobile-Firefox-linux.png and b/core/src/components/item/test/colors/item.e2e.ts-snapshots/item-colors-diff-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/item/test/colors/item.e2e.ts-snapshots/item-colors-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/item/test/colors/item.e2e.ts-snapshots/item-colors-diff-ios-ltr-Mobile-Safari-linux.png index e688766b2b..1675962d19 100644 Binary files a/core/src/components/item/test/colors/item.e2e.ts-snapshots/item-colors-diff-ios-ltr-Mobile-Safari-linux.png and b/core/src/components/item/test/colors/item.e2e.ts-snapshots/item-colors-diff-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/item/test/colors/item.e2e.ts-snapshots/item-colors-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/item/test/colors/item.e2e.ts-snapshots/item-colors-diff-md-ltr-Mobile-Chrome-linux.png index 00cdc360d8..a7f901ac0e 100644 Binary files a/core/src/components/item/test/colors/item.e2e.ts-snapshots/item-colors-diff-md-ltr-Mobile-Chrome-linux.png and b/core/src/components/item/test/colors/item.e2e.ts-snapshots/item-colors-diff-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/item/test/colors/item.e2e.ts-snapshots/item-colors-diff-md-ltr-Mobile-Firefox-linux.png b/core/src/components/item/test/colors/item.e2e.ts-snapshots/item-colors-diff-md-ltr-Mobile-Firefox-linux.png index 552c8d9359..80e56ec666 100644 Binary files a/core/src/components/item/test/colors/item.e2e.ts-snapshots/item-colors-diff-md-ltr-Mobile-Firefox-linux.png and b/core/src/components/item/test/colors/item.e2e.ts-snapshots/item-colors-diff-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/item/test/colors/item.e2e.ts-snapshots/item-colors-diff-md-ltr-Mobile-Safari-linux.png b/core/src/components/item/test/colors/item.e2e.ts-snapshots/item-colors-diff-md-ltr-Mobile-Safari-linux.png index beb586ce06..ec96f4c46f 100644 Binary files a/core/src/components/item/test/colors/item.e2e.ts-snapshots/item-colors-diff-md-ltr-Mobile-Safari-linux.png and b/core/src/components/item/test/colors/item.e2e.ts-snapshots/item-colors-diff-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-ios-ltr-Mobile-Chrome-linux.png index add6b828d2..30c8beb0b6 100644 Binary files a/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-ios-ltr-Mobile-Chrome-linux.png and b/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-ios-ltr-Mobile-Firefox-linux.png index 16ad708b30..7861a6dd3c 100644 Binary files a/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-ios-ltr-Mobile-Firefox-linux.png and b/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-ios-ltr-Mobile-Safari-linux.png index 473d0d4412..85c3785cd2 100644 Binary files a/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-ios-ltr-Mobile-Safari-linux.png and b/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-ios-rtl-Mobile-Firefox-linux.png index 3fa9ff1a6c..3d1cc94b60 100644 Binary files a/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-ios-rtl-Mobile-Firefox-linux.png and b/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-ios-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-ios-rtl-Mobile-Safari-linux.png b/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-ios-rtl-Mobile-Safari-linux.png index 55db784703..d152f6d185 100644 Binary files a/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-ios-rtl-Mobile-Safari-linux.png and b/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-ios-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-md-ltr-Mobile-Chrome-linux.png index 98ecf8a832..36f9b87fc6 100644 Binary files a/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-md-ltr-Mobile-Chrome-linux.png and b/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-md-ltr-Mobile-Firefox-linux.png b/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-md-ltr-Mobile-Firefox-linux.png index 8060724216..88c5f22df2 100644 Binary files a/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-md-ltr-Mobile-Firefox-linux.png and b/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-md-ltr-Mobile-Safari-linux.png b/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-md-ltr-Mobile-Safari-linux.png index aefef7ec1a..64cebda2ee 100644 Binary files a/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-md-ltr-Mobile-Safari-linux.png and b/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-md-rtl-Mobile-Firefox-linux.png b/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-md-rtl-Mobile-Firefox-linux.png index f8d6cf5ce1..a4ae22b21a 100644 Binary files a/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-md-rtl-Mobile-Firefox-linux.png and b/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-md-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-md-rtl-Mobile-Safari-linux.png b/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-md-rtl-Mobile-Safari-linux.png index bc443f556a..086751d143 100644 Binary files a/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-md-rtl-Mobile-Safari-linux.png and b/core/src/components/item/test/dividers/item.e2e.ts-snapshots/item-dividers-diff-md-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/list-header/list-header.ios.scss b/core/src/components/list-header/list-header.ios.scss index 87fbc73ab2..81fbcddfde 100644 --- a/core/src/components/list-header/list-header.ios.scss +++ b/core/src/components/list-header/list-header.ios.scss @@ -30,9 +30,12 @@ } ::slotted(ion-button) { + --padding-top: 0; + --padding-bottom: 0; + @include margin(null, 3px); - height: 1.4em; + min-height: 1.4em; } diff --git a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-ltr-Mobile-Chrome-linux.png index 1aa40b598b..f1469a6446 100644 Binary files a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-ltr-Mobile-Chrome-linux.png and b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-ltr-Mobile-Firefox-linux.png index 141223da2a..2be22edbd7 100644 Binary files a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-ltr-Mobile-Firefox-linux.png and b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-ltr-Mobile-Safari-linux.png index ffebeb13e8..aee69180f1 100644 Binary files a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-ltr-Mobile-Safari-linux.png and b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-rtl-Mobile-Chrome-linux.png index 55f0bdc51d..69521ff6fb 100644 Binary files a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-rtl-Mobile-Chrome-linux.png and b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-rtl-Mobile-Firefox-linux.png index 96cf951fdb..509fc18de6 100644 Binary files a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-rtl-Mobile-Firefox-linux.png and b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-rtl-Mobile-Safari-linux.png index 916a2e26b7..655f4423bc 100644 Binary files a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-rtl-Mobile-Safari-linux.png and b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-ltr-Mobile-Chrome-linux.png index 30bd73a105..7bf2c3997e 100644 Binary files a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-ltr-Mobile-Chrome-linux.png and b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-ltr-Mobile-Firefox-linux.png index 733f462941..1578349ae8 100644 Binary files a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-ltr-Mobile-Firefox-linux.png and b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-ltr-Mobile-Safari-linux.png index 212ec020c6..474bedbb95 100644 Binary files a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-ltr-Mobile-Safari-linux.png and b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-rtl-Mobile-Chrome-linux.png index 0af1e6653a..5baf114c31 100644 Binary files a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-rtl-Mobile-Chrome-linux.png and b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-rtl-Mobile-Firefox-linux.png index 2d0590c9fc..76b19a0830 100644 Binary files a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-rtl-Mobile-Firefox-linux.png and b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-rtl-Mobile-Safari-linux.png index 625afe9a97..7d64c60606 100644 Binary files a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-rtl-Mobile-Safari-linux.png and b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-ltr-Mobile-Chrome-linux.png index 8df1d68326..aa1b70cde4 100644 Binary files a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-ltr-Mobile-Chrome-linux.png and b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-ltr-Mobile-Firefox-linux.png index 657552000e..2714cc16d6 100644 Binary files a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-ltr-Mobile-Firefox-linux.png and b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-ltr-Mobile-Safari-linux.png index 9bb83cbce0..19f1f7cb72 100644 Binary files a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-ltr-Mobile-Safari-linux.png and b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-rtl-Mobile-Chrome-linux.png index 75fb3cf9dc..aa51dfa936 100644 Binary files a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-rtl-Mobile-Chrome-linux.png and b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-rtl-Mobile-Firefox-linux.png index 842e1becc3..3a3b396e0e 100644 Binary files a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-rtl-Mobile-Firefox-linux.png and b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-rtl-Mobile-Safari-linux.png index 3650534cd7..f23b06ab64 100644 Binary files a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-rtl-Mobile-Safari-linux.png and b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-ltr-Mobile-Chrome-linux.png index d273bbe495..4351083fe7 100644 Binary files a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-ltr-Mobile-Chrome-linux.png and b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-ltr-Mobile-Firefox-linux.png index 03133a9fe6..d09f949d1f 100644 Binary files a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-ltr-Mobile-Firefox-linux.png and b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-ltr-Mobile-Safari-linux.png index 7bd1cc8e07..325d08d604 100644 Binary files a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-ltr-Mobile-Safari-linux.png and b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-rtl-Mobile-Chrome-linux.png index b417daa2ab..0ee8f273f2 100644 Binary files a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-rtl-Mobile-Chrome-linux.png and b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-rtl-Mobile-Firefox-linux.png index b387faac1f..b9147d78ad 100644 Binary files a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-rtl-Mobile-Firefox-linux.png and b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-rtl-Mobile-Safari-linux.png index 309d70093e..1a6d83bfad 100644 Binary files a/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-rtl-Mobile-Safari-linux.png and b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/searchbar/searchbar.tsx b/core/src/components/searchbar/searchbar.tsx index 5a432c065d..c2e44fa5e0 100644 --- a/core/src/components/searchbar/searchbar.tsx +++ b/core/src/components/searchbar/searchbar.tsx @@ -27,6 +27,7 @@ export class Searchbar implements ComponentInterface { private isCancelVisible = false; private shouldAlignLeft = true; private originalIonInput?: EventEmitter; + private inputId = `ion-searchbar-${searchbarIds++}`; /** * The value of the input when the textarea is focused. @@ -111,6 +112,11 @@ export class Searchbar implements ComponentInterface { */ @Prop() enterkeyhint?: 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'; + /** + * If used in a form, set the name of the control, which is submitted with the form data. + */ + @Prop() name: string = this.inputId; + /** * Set the input's placeholder. * `placeholder` can accept either plaintext or HTML as a string. @@ -588,6 +594,7 @@ export class Searchbar implements ComponentInterface { class="searchbar-input" inputMode={this.inputmode} enterKeyHint={this.enterkeyhint} + name={this.name} onInput={this.onInput} onChange={this.onChange} onBlur={this.onBlur} @@ -639,3 +646,5 @@ export class Searchbar implements ComponentInterface { ); } } + +let searchbarIds = 0; diff --git a/core/src/components/searchbar/test/basic/index.html b/core/src/components/searchbar/test/basic/index.html index 7e607a4f1a..257339f6e8 100644 --- a/core/src/components/searchbar/test/basic/index.html +++ b/core/src/components/searchbar/test/basic/index.html @@ -106,6 +106,9 @@ > +
Search - Name
+ +
Toggle Property
diff --git a/core/src/components/searchbar/test/searchbar.spec.ts b/core/src/components/searchbar/test/searchbar.spec.ts new file mode 100644 index 0000000000..36731dac06 --- /dev/null +++ b/core/src/components/searchbar/test/searchbar.spec.ts @@ -0,0 +1,15 @@ +import { newSpecPage } from '@stencil/core/testing'; + +import { Searchbar } from '../searchbar'; + +describe('searchbar: rendering', () => { + it('should inherit attributes', async () => { + const page = await newSpecPage({ + components: [Searchbar], + html: '', + }); + + const nativeEl = page.body.querySelector('ion-searchbar input'); + expect(nativeEl.getAttribute('name')).toBe('search'); + }); +}); diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 32b25321f9..e20012d18c 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.2.0](https://github.com/ionic-team/ionic-framework/compare/v7.1.4...v7.2.0) (2023-07-19) + +**Note:** Version bump only for package @ionic/docs + + + + + ## [7.1.4](https://github.com/ionic-team/ionic-framework/compare/v7.1.3...v7.1.4) (2023-07-19) **Note:** Version bump only for package @ionic/docs diff --git a/docs/package-lock.json b/docs/package-lock.json index dfb48c8575..8d66ca1cc2 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ionic/docs", - "version": "7.1.4", + "version": "7.2.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/docs", - "version": "7.1.4", + "version": "7.2.0", "license": "MIT" } } diff --git a/docs/package.json b/docs/package.json index a907c9bd47..c510dc29a6 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/docs", - "version": "7.1.4", + "version": "7.2.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 e55701e582..d77b9b3520 100644 --- a/lerna.json +++ b/lerna.json @@ -4,5 +4,5 @@ "docs", "packages/*" ], - "version": "7.1.4" + "version": "7.2.0" } diff --git a/packages/angular-server/CHANGELOG.md b/packages/angular-server/CHANGELOG.md index 2d6ed30c2e..d1a40ba1d7 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.2.0](https://github.com/ionic-team/ionic-framework/compare/v7.1.4...v7.2.0) (2023-07-19) + +**Note:** Version bump only for package @ionic/angular-server + + + + + ## [7.1.4](https://github.com/ionic-team/ionic-framework/compare/v7.1.3...v7.1.4) (2023-07-19) **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 fa1a2d62a1..4b35776069 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.1.4", + "version": "7.2.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/angular-server", - "version": "7.1.4", + "version": "7.2.0", "license": "MIT", "dependencies": { - "@ionic/core": "^7.1.4" + "@ionic/core": "^7.2.0" }, "devDependencies": { "@angular-eslint/eslint-plugin": "^14.0.0", @@ -1060,9 +1060,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.1.4.tgz", - "integrity": "sha512-/h32Sc7Jd8csdMZ6BhddoTGC/X7cO0tIOeDuyC/ypMarXajScHc0pgVEBneAA7PVBEVxsoeMDP7yuqJt6Duaiw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.2.0.tgz", + "integrity": "sha512-FV2EAppqKc8jSedEOLZe25eJeW+Pqds2fFjyrHzlKododA1rxoFmiszBQC+e5cvrL1AEFSl/y0VxU/LNpImSZA==", "dependencies": { "@stencil/core": "^3.4.0", "ionicons": "7.1.0", @@ -7342,9 +7342,9 @@ "dev": true }, "@ionic/core": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.1.4.tgz", - "integrity": "sha512-/h32Sc7Jd8csdMZ6BhddoTGC/X7cO0tIOeDuyC/ypMarXajScHc0pgVEBneAA7PVBEVxsoeMDP7yuqJt6Duaiw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.2.0.tgz", + "integrity": "sha512-FV2EAppqKc8jSedEOLZe25eJeW+Pqds2fFjyrHzlKododA1rxoFmiszBQC+e5cvrL1AEFSl/y0VxU/LNpImSZA==", "requires": { "@stencil/core": "^3.4.0", "ionicons": "7.1.0", diff --git a/packages/angular-server/package.json b/packages/angular-server/package.json index 3b16367718..49a23e08ba 100644 --- a/packages/angular-server/package.json +++ b/packages/angular-server/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/angular-server", - "version": "7.1.4", + "version": "7.2.0", "description": "Angular SSR Module for Ionic", "keywords": [ "ionic", @@ -61,6 +61,6 @@ }, "prettier": "@ionic/prettier-config", "dependencies": { - "@ionic/core": "^7.1.4" + "@ionic/core": "^7.2.0" } } diff --git a/packages/angular/CHANGELOG.md b/packages/angular/CHANGELOG.md index c9fed57f35..72142886b3 100644 --- a/packages/angular/CHANGELOG.md +++ b/packages/angular/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [7.2.0](https://github.com/ionic-team/ionic-framework/compare/v7.1.4...v7.2.0) (2023-07-19) + + +### Features + +* **angular:** support binding routing data to component inputs ([#27694](https://github.com/ionic-team/ionic-framework/issues/27694)) ([90f4124](https://github.com/ionic-team/ionic-framework/commit/90f41243d9404caaad99076965b7cd649ddf7f33)), closes [#27476](https://github.com/ionic-team/ionic-framework/issues/27476) +* **searchbar:** add name property ([#27737](https://github.com/ionic-team/ionic-framework/issues/27737)) ([7131037](https://github.com/ionic-team/ionic-framework/commit/71310372c94862342d607007ece127340df92a8c)), closes [#27675](https://github.com/ionic-team/ionic-framework/issues/27675) + + + + + ## [7.1.4](https://github.com/ionic-team/ionic-framework/compare/v7.1.3...v7.1.4) (2023-07-19) **Note:** Version bump only for package @ionic/angular diff --git a/packages/angular/package-lock.json b/packages/angular/package-lock.json index e556c251c3..c9be7d4b66 100644 --- a/packages/angular/package-lock.json +++ b/packages/angular/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/angular", - "version": "7.1.4", + "version": "7.2.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/angular", - "version": "7.1.4", + "version": "7.2.0", "license": "MIT", "dependencies": { - "@ionic/core": "^7.1.4", + "@ionic/core": "^7.2.0", "ionicons": "^7.0.0", "jsonc-parser": "^3.0.0", "tslib": "^2.3.0" @@ -1227,9 +1227,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.1.4.tgz", - "integrity": "sha512-/h32Sc7Jd8csdMZ6BhddoTGC/X7cO0tIOeDuyC/ypMarXajScHc0pgVEBneAA7PVBEVxsoeMDP7yuqJt6Duaiw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.2.0.tgz", + "integrity": "sha512-FV2EAppqKc8jSedEOLZe25eJeW+Pqds2fFjyrHzlKododA1rxoFmiszBQC+e5cvrL1AEFSl/y0VxU/LNpImSZA==", "dependencies": { "@stencil/core": "^3.4.0", "ionicons": "7.1.0", @@ -8104,9 +8104,9 @@ "dev": true }, "@ionic/core": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.1.4.tgz", - "integrity": "sha512-/h32Sc7Jd8csdMZ6BhddoTGC/X7cO0tIOeDuyC/ypMarXajScHc0pgVEBneAA7PVBEVxsoeMDP7yuqJt6Duaiw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.2.0.tgz", + "integrity": "sha512-FV2EAppqKc8jSedEOLZe25eJeW+Pqds2fFjyrHzlKododA1rxoFmiszBQC+e5cvrL1AEFSl/y0VxU/LNpImSZA==", "requires": { "@stencil/core": "^3.4.0", "ionicons": "7.1.0", diff --git a/packages/angular/package.json b/packages/angular/package.json index ad0fbd4e83..3c294f4fb0 100644 --- a/packages/angular/package.json +++ b/packages/angular/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/angular", - "version": "7.1.4", + "version": "7.2.0", "description": "Angular specific wrappers for @ionic/core", "keywords": [ "ionic", @@ -47,7 +47,7 @@ } }, "dependencies": { - "@ionic/core": "^7.1.4", + "@ionic/core": "^7.2.0", "ionicons": "^7.0.0", "jsonc-parser": "^3.0.0", "tslib": "^2.3.0" diff --git a/packages/angular/src/directives/navigation/ion-router-outlet.ts b/packages/angular/src/directives/navigation/ion-router-outlet.ts index f94eaed05e..c54eaa17f3 100644 --- a/packages/angular/src/directives/navigation/ion-router-outlet.ts +++ b/packages/angular/src/directives/navigation/ion-router-outlet.ts @@ -15,10 +15,14 @@ import { Output, SkipSelf, EnvironmentInjector, + Input, + InjectionToken, + Injectable, + reflectComponentType, } from '@angular/core'; import { OutletContext, Router, ActivatedRoute, ChildrenOutletContexts, PRIMARY_OUTLET, Data } from '@angular/router'; import { componentOnReady } from '@ionic/core'; -import { Observable, BehaviorSubject } from 'rxjs'; +import { Observable, BehaviorSubject, Subscription, combineLatest, of } from 'rxjs'; import { distinctUntilChanged, filter, switchMap } from 'rxjs/operators'; import { AnimationBuilder } from '../../ionic-core'; @@ -39,22 +43,28 @@ import { RouteView, getUrl } from './stack-utils'; // eslint-disable-next-line @angular-eslint/directive-class-suffix export class IonRouterOutlet implements OnDestroy, OnInit { nativeEl: HTMLIonRouterOutletElement; - - private activated: ComponentRef | null = null; activatedView: RouteView | null = null; + tabsPrefix: string | undefined; - private _activatedRoute: ActivatedRoute | null = null; private _swipeGesture?: boolean; - private name: string; private stackCtrl: StackController; // Maintain map of activated route proxies for each component instance private proxyMap = new WeakMap(); - // Keep the latest activated route in a subject for the proxy routes to switch map to private currentActivatedRoute$ = new BehaviorSubject<{ component: any; activatedRoute: ActivatedRoute } | null>(null); - tabsPrefix: string | undefined; + private activated: ComponentRef | null = null; + /** @internal */ + get activatedComponentRef(): ComponentRef | null { + return this.activated; + } + private _activatedRoute: ActivatedRoute | null = null; + + /** + * The name of the outlet + */ + @Input() name = PRIMARY_OUTLET; @Output() stackEvents = new EventEmitter(); // eslint-disable-next-line @angular-eslint/no-output-rename @@ -65,6 +75,9 @@ export class IonRouterOutlet implements OnDestroy, OnInit { private parentContexts = inject(ChildrenOutletContexts); private location = inject(ViewContainerRef); private environmentInjector = inject(EnvironmentInjector); + private inputBinder = inject(INPUT_BINDER, { optional: true }); + /** @nodoc */ + readonly supportsBindingToComponentInputs = true; // Ionic providers private config = inject(Config); @@ -109,6 +122,7 @@ export class IonRouterOutlet implements OnDestroy, OnInit { ngOnDestroy(): void { this.stackCtrl.destroy(); + this.inputBinder?.unsubscribeFromRouteData(this); } getContext(): OutletContext | null { @@ -275,6 +289,8 @@ export class IonRouterOutlet implements OnDestroy, OnInit { this.currentActivatedRoute$.next({ component: cmpRef.instance, activatedRoute }); } + this.inputBinder?.bindActivatedRouteToOutletComponent(this); + this.activatedView = enteringView; /** @@ -415,3 +431,79 @@ class OutletInjector implements Injector { return this.parent.get(token, notFoundValue); } } + +// TODO: FW-4785 - Remove this once Angular 15 support is dropped +export const INPUT_BINDER = new InjectionToken(''); + +/** + * Injectable used as a tree-shakable provider for opting in to binding router data to component + * inputs. + * + * The RouterOutlet registers itself with this service when an `ActivatedRoute` is attached or + * activated. When this happens, the service subscribes to the `ActivatedRoute` observables (params, + * queryParams, data) and sets the inputs of the component using `ComponentRef.setInput`. + * Importantly, when an input does not have an item in the route data with a matching key, this + * input is set to `undefined`. If it were not done this way, the previous information would be + * retained if the data got removed from the route (i.e. if a query parameter is removed). + * + * The `RouterOutlet` should unregister itself when destroyed via `unsubscribeFromRouteData` so that + * the subscriptions are cleaned up. + */ +@Injectable() +export class RoutedComponentInputBinder { + private outletDataSubscriptions = new Map(); + + bindActivatedRouteToOutletComponent(outlet: IonRouterOutlet): void { + this.unsubscribeFromRouteData(outlet); + this.subscribeToRouteData(outlet); + } + + unsubscribeFromRouteData(outlet: IonRouterOutlet): void { + this.outletDataSubscriptions.get(outlet)?.unsubscribe(); + this.outletDataSubscriptions.delete(outlet); + } + + private subscribeToRouteData(outlet: IonRouterOutlet) { + const { activatedRoute } = outlet; + const dataSubscription = combineLatest([activatedRoute.queryParams, activatedRoute.params, activatedRoute.data]) + .pipe( + switchMap(([queryParams, params, data], index) => { + data = { ...queryParams, ...params, ...data }; + // Get the first result from the data subscription synchronously so it's available to + // the component as soon as possible (and doesn't require a second change detection). + if (index === 0) { + return of(data); + } + // Promise.resolve is used to avoid synchronously writing the wrong data when + // two of the Observables in the `combineLatest` stream emit one after + // another. + return Promise.resolve(data); + }) + ) + .subscribe((data) => { + // Outlet may have been deactivated or changed names to be associated with a different + // route + if ( + !outlet.isActivated || + !outlet.activatedComponentRef || + outlet.activatedRoute !== activatedRoute || + activatedRoute.component === null + ) { + this.unsubscribeFromRouteData(outlet); + return; + } + + const mirror = reflectComponentType(activatedRoute.component); + if (!mirror) { + this.unsubscribeFromRouteData(outlet); + return; + } + + for (const { templateName } of mirror.inputs) { + outlet.activatedComponentRef.setInput(templateName, data[templateName]); + } + }); + + this.outletDataSubscriptions.set(outlet, dataSubscription); + } +} diff --git a/packages/angular/src/directives/proxies.ts b/packages/angular/src/directives/proxies.ts index a5b24309ea..7429a4cc60 100644 --- a/packages/angular/src/directives/proxies.ts +++ b/packages/angular/src/directives/proxies.ts @@ -1843,7 +1843,7 @@ export declare interface IonRow extends Components.IonRow {} @ProxyCmp({ - inputs: ['animated', 'autocomplete', 'autocorrect', 'cancelButtonIcon', 'cancelButtonText', 'clearIcon', 'color', 'debounce', 'disabled', 'enterkeyhint', 'inputmode', 'mode', 'placeholder', 'searchIcon', 'showCancelButton', 'showClearButton', 'spellcheck', 'type', 'value'], + inputs: ['animated', 'autocomplete', 'autocorrect', 'cancelButtonIcon', 'cancelButtonText', 'clearIcon', 'color', 'debounce', 'disabled', 'enterkeyhint', 'inputmode', 'mode', 'name', 'placeholder', 'searchIcon', 'showCancelButton', 'showClearButton', 'spellcheck', 'type', 'value'], methods: ['setFocus', 'getInputElement'] }) @Component({ @@ -1851,7 +1851,7 @@ export declare interface IonRow extends Components.IonRow {} changeDetection: ChangeDetectionStrategy.OnPush, template: '', // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property - inputs: ['animated', 'autocomplete', 'autocorrect', 'cancelButtonIcon', 'cancelButtonText', 'clearIcon', 'color', 'debounce', 'disabled', 'enterkeyhint', 'inputmode', 'mode', 'placeholder', 'searchIcon', 'showCancelButton', 'showClearButton', 'spellcheck', 'type', 'value'], + inputs: ['animated', 'autocomplete', 'autocorrect', 'cancelButtonIcon', 'cancelButtonText', 'clearIcon', 'color', 'debounce', 'disabled', 'enterkeyhint', 'inputmode', 'mode', 'name', 'placeholder', 'searchIcon', 'showCancelButton', 'showClearButton', 'spellcheck', 'type', 'value'], }) export class IonSearchbar { protected el: HTMLElement; diff --git a/packages/angular/src/ionic-module.ts b/packages/angular/src/ionic-module.ts index 2db4f26d47..32ad4eaa4d 100644 --- a/packages/angular/src/ionic-module.ts +++ b/packages/angular/src/ionic-module.ts @@ -1,5 +1,6 @@ import { CommonModule, DOCUMENT } from '@angular/common'; import { ModuleWithProviders, APP_INITIALIZER, NgModule, NgZone } from '@angular/core'; +import { Router } from '@angular/router'; import { IonicConfig } from '@ionic/core'; import { appInitialize } from './app-initialize'; @@ -11,7 +12,7 @@ import { TextValueAccessorDirective, } from './directives/control-value-accessors'; import { IonBackButtonDelegateDirective } from './directives/navigation/ion-back-button'; -import { IonRouterOutlet } from './directives/navigation/ion-router-outlet'; +import { INPUT_BINDER, IonRouterOutlet, RoutedComponentInputBinder } from './directives/navigation/ion-router-outlet'; import { IonTabs } from './directives/navigation/ion-tabs'; import { NavDelegate } from './directives/navigation/nav-delegate'; import { @@ -71,7 +72,23 @@ export class IonicModule { multi: true, deps: [ConfigToken, DOCUMENT, NgZone], }, + { + provide: INPUT_BINDER, + useFactory: componentInputBindingFactory, + deps: [Router], + }, ], }; } } + +function componentInputBindingFactory(router?: Router) { + /** + * We cast the router to any here, since the componentInputBindingEnabled + * property is not available until Angular v16. + */ + if ((router as any)?.componentInputBindingEnabled) { + return new RoutedComponentInputBinder(); + } + return null; +} diff --git a/packages/angular/src/util/ionic-router-reuse-strategy.ts b/packages/angular/src/util/ionic-router-reuse-strategy.ts index 62454bfd8b..9176060949 100644 --- a/packages/angular/src/util/ionic-router-reuse-strategy.ts +++ b/packages/angular/src/util/ionic-router-reuse-strategy.ts @@ -1,30 +1,43 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ import { ActivatedRouteSnapshot, DetachedRouteHandle, RouteReuseStrategy } from '@angular/router'; +/** + * Provides a way to customize when activated routes get reused. + */ export class IonicRouteStrategy implements RouteReuseStrategy { - // eslint-disable-next-line @typescript-eslint/no-unused-vars + /** + * Whether the given route should detach for later reuse. + */ shouldDetach(_route: ActivatedRouteSnapshot): boolean { return false; } - // eslint-disable-next-line @typescript-eslint/no-unused-vars + /** + * Returns `false`, meaning the route (and its subtree) is never reattached + */ shouldAttach(_route: ActivatedRouteSnapshot): boolean { return false; } - store( - // eslint-disable-next-line @typescript-eslint/no-unused-vars - _route: ActivatedRouteSnapshot, - // eslint-disable-next-line @typescript-eslint/no-unused-vars - _detachedTree: DetachedRouteHandle - ): void { + /** + * A no-op; the route is never stored since this strategy never detaches routes for later re-use. + */ + store(_route: ActivatedRouteSnapshot, _detachedTree: DetachedRouteHandle): void { return; } - // eslint-disable-next-line @typescript-eslint/no-unused-vars + /** + * Returns `null` because this strategy does not store routes for later re-use. + */ retrieve(_route: ActivatedRouteSnapshot): DetachedRouteHandle | null { return null; } + /** + * Determines if a route should be reused. + * This strategy returns `true` when the future route config and + * current route config are identical and all route parameters are identical. + */ shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean { if (future.routeConfig !== curr.routeConfig) { return false; diff --git a/packages/angular/test/apps/ng16/e2e/src/bind-component-inputs.spec.ts b/packages/angular/test/apps/ng16/e2e/src/bind-component-inputs.spec.ts new file mode 100644 index 0000000000..9f60cb0f8e --- /dev/null +++ b/packages/angular/test/apps/ng16/e2e/src/bind-component-inputs.spec.ts @@ -0,0 +1,8 @@ +it("binding route data to inputs should work", () => { + cy.visit('/version-test/bind-route/test?query=test'); + + cy.get('#route-params').contains('test'); + cy.get('#query-params').contains('test'); + cy.get('#data').contains('data:bindToComponentInputs'); + cy.get('#resolve').contains('resolve:bindToComponentInputs'); +}); diff --git a/packages/angular/test/apps/ng16/src/app/app-routing.module.ts b/packages/angular/test/apps/ng16/src/app/app-routing.module.ts new file mode 100644 index 0000000000..3cf2c268f8 --- /dev/null +++ b/packages/angular/test/apps/ng16/src/app/app-routing.module.ts @@ -0,0 +1,10 @@ +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; + +import { routes } from './app.routes'; + +@NgModule({ + imports: [RouterModule.forRoot(routes, { bindToComponentInputs: true })], + exports: [RouterModule] +}) +export class AppRoutingModule { } diff --git a/packages/angular/test/apps/ng16/src/app/version-test/bind-component-inputs/bind-component-inputs.component.ts b/packages/angular/test/apps/ng16/src/app/version-test/bind-component-inputs/bind-component-inputs.component.ts new file mode 100644 index 0000000000..5eeed55d22 --- /dev/null +++ b/packages/angular/test/apps/ng16/src/app/version-test/bind-component-inputs/bind-component-inputs.component.ts @@ -0,0 +1,41 @@ +import { Component, Input, OnInit } from "@angular/core"; +import { IonicModule } from '@ionic/angular'; + +@Component({ + selector: 'app-bind-route', + template: ` + + + bindToComponentInputs + + + +
+

Bind Route

+

Route params: id: {{id}}

+

Query params: query: {{query}}

+

Data: title: {{title}}

+

Resolve: name: {{name}}

+
+
+ `, + standalone: true, + imports: [IonicModule] +}) +export class BindComponentInputsComponent implements OnInit { + + @Input() id?: string; // path parameter + @Input() query?: string; // query parameter + @Input() title?: string; // data property + @Input() name?: string; // resolve property + + ngOnInit(): void { + console.log('BindComponentInputsComponent.ngOnInit', { + id: this.id, + query: this.query, + title: this.title, + name: this.name + }); + } + +} diff --git a/packages/angular/test/apps/ng16/src/app/version-test/version-test-routing.module.ts b/packages/angular/test/apps/ng16/src/app/version-test/version-test-routing.module.ts index 7cd8857683..0aedfecabe 100644 --- a/packages/angular/test/apps/ng16/src/app/version-test/version-test-routing.module.ts +++ b/packages/angular/test/apps/ng16/src/app/version-test/version-test-routing.module.ts @@ -6,7 +6,17 @@ import { RouterModule } from "@angular/router"; RouterModule.forChild([ { path: 'modal-nav-params', - loadComponent: () => import('./modal-nav-params/modal-nav-params.component').then(m => m.ModalNavParamsComponent) + loadComponent: () => import('./modal-nav-params/modal-nav-params.component').then(m => m.ModalNavParamsComponent), + }, + { + path: 'bind-route/:id', + data: { + title: 'data:bindToComponentInputs' + }, + resolve: { + name: () => 'resolve:bindToComponentInputs' + }, + loadComponent: () => import('./bind-component-inputs/bind-component-inputs.component').then(c => c.BindComponentInputsComponent) } ]) ], diff --git a/packages/angular/test/base/src/app/app-routing.module.ts b/packages/angular/test/base/src/app/app-routing.module.ts index 183d235e94..0feced8896 100644 --- a/packages/angular/test/base/src/app/app-routing.module.ts +++ b/packages/angular/test/base/src/app/app-routing.module.ts @@ -1,85 +1,7 @@ import { NgModule } from '@angular/core'; -import { Routes, RouterModule } from '@angular/router'; -import { InputsComponent } from './inputs/inputs.component'; -import { ModalComponent } from './modal/modal.component'; -import { RouterLinkComponent } from './router-link/router-link.component'; -import { RouterLinkPageComponent } from './router-link-page/router-link-page.component'; -import { RouterLinkPage2Component } from './router-link-page2/router-link-page2.component'; -import { RouterLinkPage3Component } from './router-link-page3/router-link-page3.component'; -import { HomePageComponent } from './home-page/home-page.component'; -import { NestedOutletComponent } from './nested-outlet/nested-outlet.component'; -import { NestedOutletPageComponent } from './nested-outlet-page/nested-outlet-page.component'; -import { NestedOutletPage2Component } from './nested-outlet-page2/nested-outlet-page2.component'; -import { ViewChildComponent } from './view-child/view-child.component'; -import { ProvidersComponent } from './providers/providers.component'; -import { FormComponent } from './form/form.component'; -import { NavigationPage1Component } from './navigation-page1/navigation-page1.component'; -import { NavigationPage2Component } from './navigation-page2/navigation-page2.component'; -import { NavigationPage3Component } from './navigation-page3/navigation-page3.component'; -import { AlertComponent } from './alert/alert.component'; -import { AccordionComponent } from './accordion/accordion.component'; +import { RouterModule } from '@angular/router'; -const routes: Routes = [ - { path: '', component: HomePageComponent }, - { path: 'version-test', loadChildren: () => import('./version-test').then(m => m.VersionTestModule) }, - { path: 'accordions', component: AccordionComponent }, - { path: 'alerts', component: AlertComponent }, - { path: 'inputs', component: InputsComponent }, - { path: 'textarea', loadChildren: () => import('./textarea/textarea.module').then(m => m.TextareaModule) }, - { path: 'searchbar', loadChildren: () => import('./searchbar/searchbar.module').then(m => m.SearchbarModule) }, - { path: 'form', component: FormComponent }, - { path: 'modals', component: ModalComponent }, - { path: 'modal-inline', loadChildren: () => import('./modal-inline').then(m => m.ModalInlineModule) }, - { path: 'view-child', component: ViewChildComponent }, - { path: 'keep-contents-mounted', loadChildren: () => import('./keep-contents-mounted').then(m => m.OverlayAutoMountModule) }, - { path: 'overlays-inline', loadChildren: () => import('./overlays-inline').then(m => m.OverlaysInlineModule) }, - { path: 'popover-inline', loadChildren: () => import('./popover-inline').then(m => m.PopoverInlineModule) }, - { path: 'providers', component: ProvidersComponent }, - { path: 'router-link', component: RouterLinkComponent }, - { path: 'router-link-page', component: RouterLinkPageComponent }, - { path: 'router-link-page2/:id', component: RouterLinkPage2Component }, - { path: 'router-link-page3', component: RouterLinkPage3Component }, - { path: 'standalone', loadComponent: () => import('./standalone/standalone.component').then(c => c.StandaloneComponent) }, - { path: 'tabs', redirectTo: '/tabs/account', pathMatch: 'full' }, - { - path: 'navigation', - children: [ - { path: 'page1', component: NavigationPage1Component }, - { path: 'page2', component: NavigationPage2Component }, - { path: 'page3', component: NavigationPage3Component } - ] - }, - { - path: 'tabs', - loadChildren: () => import('./tabs/tabs.module').then(m => m.TabsPageModule) - }, - { - path: 'tabs-global', - loadChildren: () => import('./tabs-global/tabs-global.module').then(m => m.TabsGlobalModule) - }, - { - path: 'tabs-slots', - loadComponent: () => import('./tabs-slots.component').then(c => c.TabsSlotsComponent) - }, - { - path: 'nested-outlet', - component: NestedOutletComponent, - children: [ - { - path: 'page', - component: NestedOutletPageComponent - }, - { - path: 'page2', - component: NestedOutletPage2Component - } - ] - }, - { - path: 'form-controls/range', - loadChildren: () => import('./form-controls/range/range.module').then(m => m.RangeModule) - } -]; +import { routes } from './app.routes'; @NgModule({ imports: [RouterModule.forRoot(routes)], diff --git a/packages/angular/test/base/src/app/app.routes.ts b/packages/angular/test/base/src/app/app.routes.ts new file mode 100644 index 0000000000..1d709b16bb --- /dev/null +++ b/packages/angular/test/base/src/app/app.routes.ts @@ -0,0 +1,82 @@ +import { Routes } from '@angular/router'; +import { InputsComponent } from './inputs/inputs.component'; +import { ModalComponent } from './modal/modal.component'; +import { RouterLinkComponent } from './router-link/router-link.component'; +import { RouterLinkPageComponent } from './router-link-page/router-link-page.component'; +import { RouterLinkPage2Component } from './router-link-page2/router-link-page2.component'; +import { RouterLinkPage3Component } from './router-link-page3/router-link-page3.component'; +import { HomePageComponent } from './home-page/home-page.component'; +import { NestedOutletComponent } from './nested-outlet/nested-outlet.component'; +import { NestedOutletPageComponent } from './nested-outlet-page/nested-outlet-page.component'; +import { NestedOutletPage2Component } from './nested-outlet-page2/nested-outlet-page2.component'; +import { ViewChildComponent } from './view-child/view-child.component'; +import { ProvidersComponent } from './providers/providers.component'; +import { FormComponent } from './form/form.component'; +import { NavigationPage1Component } from './navigation-page1/navigation-page1.component'; +import { NavigationPage2Component } from './navigation-page2/navigation-page2.component'; +import { NavigationPage3Component } from './navigation-page3/navigation-page3.component'; +import { AlertComponent } from './alert/alert.component'; +import { AccordionComponent } from './accordion/accordion.component'; + +export const routes: Routes = [ + { path: '', component: HomePageComponent }, + { path: 'version-test', loadChildren: () => import('./version-test').then(m => m.VersionTestModule) }, + { path: 'accordions', component: AccordionComponent }, + { path: 'alerts', component: AlertComponent }, + { path: 'inputs', component: InputsComponent }, + { path: 'textarea', loadChildren: () => import('./textarea/textarea.module').then(m => m.TextareaModule) }, + { path: 'searchbar', loadChildren: () => import('./searchbar/searchbar.module').then(m => m.SearchbarModule) }, + { path: 'form', component: FormComponent }, + { path: 'modals', component: ModalComponent }, + { path: 'modal-inline', loadChildren: () => import('./modal-inline').then(m => m.ModalInlineModule) }, + { path: 'view-child', component: ViewChildComponent }, + { path: 'keep-contents-mounted', loadChildren: () => import('./keep-contents-mounted').then(m => m.OverlayAutoMountModule) }, + { path: 'overlays-inline', loadChildren: () => import('./overlays-inline').then(m => m.OverlaysInlineModule) }, + { path: 'popover-inline', loadChildren: () => import('./popover-inline').then(m => m.PopoverInlineModule) }, + { path: 'providers', component: ProvidersComponent }, + { path: 'router-link', component: RouterLinkComponent }, + { path: 'router-link-page', component: RouterLinkPageComponent }, + { path: 'router-link-page2/:id', component: RouterLinkPage2Component }, + { path: 'router-link-page3', component: RouterLinkPage3Component }, + { path: 'standalone', loadComponent: () => import('./standalone/standalone.component').then(c => c.StandaloneComponent) }, + { path: 'tabs', redirectTo: '/tabs/account', pathMatch: 'full' }, + { + path: 'navigation', + children: [ + { path: 'page1', component: NavigationPage1Component }, + { path: 'page2', component: NavigationPage2Component }, + { path: 'page3', component: NavigationPage3Component } + ] + }, + { + path: 'tabs', + loadChildren: () => import('./tabs/tabs.module').then(m => m.TabsPageModule) + }, + { + path: 'tabs-global', + loadChildren: () => import('./tabs-global/tabs-global.module').then(m => m.TabsGlobalModule) + }, + { + path: 'tabs-slots', + loadComponent: () => import('./tabs-slots.component').then(c => c.TabsSlotsComponent) + }, + { + path: 'nested-outlet', + component: NestedOutletComponent, + children: [ + { + path: 'page', + component: NestedOutletPageComponent + }, + { + path: 'page2', + component: NestedOutletPage2Component + } + ] + }, + { + path: 'form-controls/range', + loadChildren: () => import('./form-controls/range/range.module').then(m => m.RangeModule) + } +]; + diff --git a/packages/react-router/CHANGELOG.md b/packages/react-router/CHANGELOG.md index 182343d04e..e12abfb6a6 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.2.0](https://github.com/ionic-team/ionic-framework/compare/v7.1.4...v7.2.0) (2023-07-19) + +**Note:** Version bump only for package @ionic/react-router + + + + + ## [7.1.4](https://github.com/ionic-team/ionic-framework/compare/v7.1.3...v7.1.4) (2023-07-19) **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 de5ac963fd..5b03937593 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.1.4", + "version": "7.2.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/react-router", - "version": "7.1.4", + "version": "7.2.0", "license": "MIT", "dependencies": { - "@ionic/react": "^7.1.4", + "@ionic/react": "^7.2.0", "tslib": "*" }, "devDependencies": { @@ -205,9 +205,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.1.4.tgz", - "integrity": "sha512-/h32Sc7Jd8csdMZ6BhddoTGC/X7cO0tIOeDuyC/ypMarXajScHc0pgVEBneAA7PVBEVxsoeMDP7yuqJt6Duaiw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.2.0.tgz", + "integrity": "sha512-FV2EAppqKc8jSedEOLZe25eJeW+Pqds2fFjyrHzlKododA1rxoFmiszBQC+e5cvrL1AEFSl/y0VxU/LNpImSZA==", "dependencies": { "@stencil/core": "^3.4.0", "ionicons": "7.1.0", @@ -401,11 +401,11 @@ } }, "node_modules/@ionic/react": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-7.1.4.tgz", - "integrity": "sha512-sy8a4TXMzS3cfGEAr7gb73PYn+0VsmfUkpAJdH2rd4C9qdcvNqQfL3Yy+Ut9HfsvY6lk3LJsm1+eeqPbKgG94w==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-7.2.0.tgz", + "integrity": "sha512-90evXKqkpptvSVYbxyyY/D9hE20ZbRV1dyZhxL5PzeLt4eIuvz6G11gTfH8YCyEAhBFZpCsg+mpcIcoP45ITvA==", "dependencies": { - "@ionic/core": "7.1.4", + "@ionic/core": "7.2.0", "ionicons": "^7.0.0", "tslib": "*" }, @@ -3663,9 +3663,9 @@ "dev": true }, "@ionic/core": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.1.4.tgz", - "integrity": "sha512-/h32Sc7Jd8csdMZ6BhddoTGC/X7cO0tIOeDuyC/ypMarXajScHc0pgVEBneAA7PVBEVxsoeMDP7yuqJt6Duaiw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.2.0.tgz", + "integrity": "sha512-FV2EAppqKc8jSedEOLZe25eJeW+Pqds2fFjyrHzlKododA1rxoFmiszBQC+e5cvrL1AEFSl/y0VxU/LNpImSZA==", "requires": { "@stencil/core": "^3.4.0", "ionicons": "7.1.0", @@ -3786,11 +3786,11 @@ "requires": {} }, "@ionic/react": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-7.1.4.tgz", - "integrity": "sha512-sy8a4TXMzS3cfGEAr7gb73PYn+0VsmfUkpAJdH2rd4C9qdcvNqQfL3Yy+Ut9HfsvY6lk3LJsm1+eeqPbKgG94w==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-7.2.0.tgz", + "integrity": "sha512-90evXKqkpptvSVYbxyyY/D9hE20ZbRV1dyZhxL5PzeLt4eIuvz6G11gTfH8YCyEAhBFZpCsg+mpcIcoP45ITvA==", "requires": { - "@ionic/core": "7.1.4", + "@ionic/core": "7.2.0", "ionicons": "^7.0.0", "tslib": "*" } diff --git a/packages/react-router/package.json b/packages/react-router/package.json index 3092a6166d..0c10134b25 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/react-router", - "version": "7.1.4", + "version": "7.2.0", "description": "React Router wrapper for @ionic/react", "keywords": [ "ionic", @@ -37,7 +37,7 @@ "dist/" ], "dependencies": { - "@ionic/react": "^7.1.4", + "@ionic/react": "^7.2.0", "tslib": "*" }, "peerDependencies": { diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index 9aafa04c07..2c960b7512 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.2.0](https://github.com/ionic-team/ionic-framework/compare/v7.1.4...v7.2.0) (2023-07-19) + +**Note:** Version bump only for package @ionic/react + + + + + ## [7.1.4](https://github.com/ionic-team/ionic-framework/compare/v7.1.3...v7.1.4) (2023-07-19) **Note:** Version bump only for package @ionic/react diff --git a/packages/react/package-lock.json b/packages/react/package-lock.json index 99ff786420..b2387c4ec7 100644 --- a/packages/react/package-lock.json +++ b/packages/react/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/react", - "version": "7.1.4", + "version": "7.2.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/react", - "version": "7.1.4", + "version": "7.2.0", "license": "MIT", "dependencies": { - "@ionic/core": "^7.1.4", + "@ionic/core": "^7.2.0", "ionicons": "^7.0.0", "tslib": "*" }, @@ -697,9 +697,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.1.4.tgz", - "integrity": "sha512-/h32Sc7Jd8csdMZ6BhddoTGC/X7cO0tIOeDuyC/ypMarXajScHc0pgVEBneAA7PVBEVxsoeMDP7yuqJt6Duaiw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.2.0.tgz", + "integrity": "sha512-FV2EAppqKc8jSedEOLZe25eJeW+Pqds2fFjyrHzlKododA1rxoFmiszBQC+e5cvrL1AEFSl/y0VxU/LNpImSZA==", "dependencies": { "@stencil/core": "^3.4.0", "ionicons": "7.1.0", @@ -11778,9 +11778,9 @@ "dev": true }, "@ionic/core": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.1.4.tgz", - "integrity": "sha512-/h32Sc7Jd8csdMZ6BhddoTGC/X7cO0tIOeDuyC/ypMarXajScHc0pgVEBneAA7PVBEVxsoeMDP7yuqJt6Duaiw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.2.0.tgz", + "integrity": "sha512-FV2EAppqKc8jSedEOLZe25eJeW+Pqds2fFjyrHzlKododA1rxoFmiszBQC+e5cvrL1AEFSl/y0VxU/LNpImSZA==", "requires": { "@stencil/core": "^3.4.0", "ionicons": "7.1.0", diff --git a/packages/react/package.json b/packages/react/package.json index c74d912beb..0b1a58bff5 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/react", - "version": "7.1.4", + "version": "7.2.0", "description": "React specific wrapper for @ionic/core", "keywords": [ "ionic", @@ -41,7 +41,7 @@ "css/" ], "dependencies": { - "@ionic/core": "^7.1.4", + "@ionic/core": "^7.2.0", "ionicons": "^7.0.0", "tslib": "*" }, diff --git a/packages/vue-router/CHANGELOG.md b/packages/vue-router/CHANGELOG.md index 00470c5725..1864b5e7b1 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.2.0](https://github.com/ionic-team/ionic-framework/compare/v7.1.4...v7.2.0) (2023-07-19) + +**Note:** Version bump only for package @ionic/vue-router + + + + + ## [7.1.4](https://github.com/ionic-team/ionic-framework/compare/v7.1.3...v7.1.4) (2023-07-19) **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 533ce6f447..6debc824d0 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.1.4", + "version": "7.2.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/vue-router", - "version": "7.1.4", + "version": "7.2.0", "license": "MIT", "dependencies": { - "@ionic/vue": "^7.1.4" + "@ionic/vue": "^7.2.0" }, "devDependencies": { "@ionic/eslint-config": "^0.3.0", @@ -660,9 +660,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.1.4.tgz", - "integrity": "sha512-/h32Sc7Jd8csdMZ6BhddoTGC/X7cO0tIOeDuyC/ypMarXajScHc0pgVEBneAA7PVBEVxsoeMDP7yuqJt6Duaiw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.2.0.tgz", + "integrity": "sha512-FV2EAppqKc8jSedEOLZe25eJeW+Pqds2fFjyrHzlKododA1rxoFmiszBQC+e5cvrL1AEFSl/y0VxU/LNpImSZA==", "dependencies": { "@stencil/core": "^3.4.0", "ionicons": "7.1.0", @@ -871,11 +871,11 @@ } }, "node_modules/@ionic/vue": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-7.1.4.tgz", - "integrity": "sha512-r7UDUteuzCHVNJWlwiiucYVKhRoS6b2SQ8AqBm1rZy/dGghDyGLbIn3jjowUQNIE4qnV1M6+Im6JtzbwctevqQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-7.2.0.tgz", + "integrity": "sha512-KcfQ00pwevAhaRh5izlKnOEt9y38896WB6Qp8q8wpLux/+Ax4o+XPWNkSt5NxtEPHesdop5qv/oFTENn2diKnw==", "dependencies": { - "@ionic/core": "7.1.4", + "@ionic/core": "7.2.0", "ionicons": "^7.0.0" } }, @@ -7697,9 +7697,9 @@ "dev": true }, "@ionic/core": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.1.4.tgz", - "integrity": "sha512-/h32Sc7Jd8csdMZ6BhddoTGC/X7cO0tIOeDuyC/ypMarXajScHc0pgVEBneAA7PVBEVxsoeMDP7yuqJt6Duaiw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.2.0.tgz", + "integrity": "sha512-FV2EAppqKc8jSedEOLZe25eJeW+Pqds2fFjyrHzlKododA1rxoFmiszBQC+e5cvrL1AEFSl/y0VxU/LNpImSZA==", "requires": { "@stencil/core": "^3.4.0", "ionicons": "7.1.0", @@ -7829,11 +7829,11 @@ "requires": {} }, "@ionic/vue": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-7.1.4.tgz", - "integrity": "sha512-r7UDUteuzCHVNJWlwiiucYVKhRoS6b2SQ8AqBm1rZy/dGghDyGLbIn3jjowUQNIE4qnV1M6+Im6JtzbwctevqQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-7.2.0.tgz", + "integrity": "sha512-KcfQ00pwevAhaRh5izlKnOEt9y38896WB6Qp8q8wpLux/+Ax4o+XPWNkSt5NxtEPHesdop5qv/oFTENn2diKnw==", "requires": { - "@ionic/core": "7.1.4", + "@ionic/core": "7.2.0", "ionicons": "^7.0.0" } }, diff --git a/packages/vue-router/package.json b/packages/vue-router/package.json index 3373844504..98ec464641 100644 --- a/packages/vue-router/package.json +++ b/packages/vue-router/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/vue-router", - "version": "7.1.4", + "version": "7.2.0", "description": "Vue Router integration for @ionic/vue", "scripts": { "test.spec": "jest", @@ -45,7 +45,7 @@ }, "homepage": "https://github.com/ionic-team/ionic#readme", "dependencies": { - "@ionic/vue": "^7.1.4" + "@ionic/vue": "^7.2.0" }, "devDependencies": { "@ionic/eslint-config": "^0.3.0", diff --git a/packages/vue/CHANGELOG.md b/packages/vue/CHANGELOG.md index 5a547051ec..425d64c563 100644 --- a/packages/vue/CHANGELOG.md +++ b/packages/vue/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.2.0](https://github.com/ionic-team/ionic-framework/compare/v7.1.4...v7.2.0) (2023-07-19) + + +### Features + +* **searchbar:** add name property ([#27737](https://github.com/ionic-team/ionic-framework/issues/27737)) ([7131037](https://github.com/ionic-team/ionic-framework/commit/71310372c94862342d607007ece127340df92a8c)), closes [#27675](https://github.com/ionic-team/ionic-framework/issues/27675) + + + + + ## [7.1.4](https://github.com/ionic-team/ionic-framework/compare/v7.1.3...v7.1.4) (2023-07-19) **Note:** Version bump only for package @ionic/vue diff --git a/packages/vue/package-lock.json b/packages/vue/package-lock.json index 8c38a716dd..a9cd6f0fd9 100644 --- a/packages/vue/package-lock.json +++ b/packages/vue/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/vue", - "version": "7.1.4", + "version": "7.2.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/vue", - "version": "7.1.4", + "version": "7.2.0", "license": "MIT", "dependencies": { - "@ionic/core": "^7.1.4", + "@ionic/core": "^7.2.0", "ionicons": "^7.0.0" }, "devDependencies": { @@ -207,9 +207,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.1.4.tgz", - "integrity": "sha512-/h32Sc7Jd8csdMZ6BhddoTGC/X7cO0tIOeDuyC/ypMarXajScHc0pgVEBneAA7PVBEVxsoeMDP7yuqJt6Duaiw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.2.0.tgz", + "integrity": "sha512-FV2EAppqKc8jSedEOLZe25eJeW+Pqds2fFjyrHzlKododA1rxoFmiszBQC+e5cvrL1AEFSl/y0VxU/LNpImSZA==", "dependencies": { "@stencil/core": "^3.4.0", "ionicons": "7.1.0", @@ -3746,9 +3746,9 @@ "dev": true }, "@ionic/core": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.1.4.tgz", - "integrity": "sha512-/h32Sc7Jd8csdMZ6BhddoTGC/X7cO0tIOeDuyC/ypMarXajScHc0pgVEBneAA7PVBEVxsoeMDP7yuqJt6Duaiw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.2.0.tgz", + "integrity": "sha512-FV2EAppqKc8jSedEOLZe25eJeW+Pqds2fFjyrHzlKododA1rxoFmiszBQC+e5cvrL1AEFSl/y0VxU/LNpImSZA==", "requires": { "@stencil/core": "^3.4.0", "ionicons": "7.1.0", diff --git a/packages/vue/package.json b/packages/vue/package.json index 83a29e4e7b..5e523a1470 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/vue", - "version": "7.1.4", + "version": "7.2.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.1.4", + "@ionic/core": "^7.2.0", "ionicons": "^7.0.0" }, "vetur": { diff --git a/packages/vue/src/proxies.ts b/packages/vue/src/proxies.ts index 23131fb7bc..5e134feb16 100644 --- a/packages/vue/src/proxies.ts +++ b/packages/vue/src/proxies.ts @@ -681,6 +681,7 @@ export const IonSearchbar = /*@__PURE__*/ defineContainer