@ionic/core 7.2.4-nightly.20230814 → 7.2.4-nightly.20230815
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/ion-header.js +1 -1
- package/components/ion-title.js +1 -1
- package/components/ion-toolbar.js +1 -1
- package/dist/cjs/ion-app_8.cjs.entry.js +3 -3
- package/dist/collection/components/header/header.ios.css +1 -1
- package/dist/collection/components/item/item.ios.css +4 -4
- package/dist/collection/components/item/item.md.css +4 -4
- package/dist/collection/components/item-sliding/test/basic/item-sliding.e2e.js +2 -6
- package/dist/collection/components/modal/test/can-dismiss/modal-sheet.e2e.js +1 -1
- package/dist/collection/components/modal/test/card/modal-tablet.e2e.js +4 -4
- package/dist/collection/components/modal/test/card-nav/modal.e2e.js +3 -4
- package/dist/collection/components/modal/test/card-refresher/modal.e2e.js +1 -1
- package/dist/collection/components/modal/test/card-scroll-target/modal.e2e.js +1 -1
- package/dist/collection/components/modal/test/fixtures.js +1 -1
- package/dist/collection/components/modal/test/sheet/modal.e2e.js +1 -1
- package/dist/collection/components/range/test/legacy/basic/range.e2e.js +1 -6
- package/dist/collection/components/range/test/range-events.e2e.js +16 -17
- package/dist/collection/components/refresher/test/basic/refresher.e2e.js +1 -2
- package/dist/collection/components/refresher/test/scroll-target/refresher.e2e.js +3 -4
- package/dist/collection/components/refresher/test/test.utils.js +1 -1
- package/dist/collection/components/reorder-group/test/interactive/reorder-group.e2e.js +2 -4
- package/dist/collection/components/reorder-group/test/nested/reorder-group.e2e.js +2 -4
- package/dist/collection/components/reorder-group/test/scroll-target/reorder-group.e2e.js +2 -4
- package/dist/collection/components/title/test/basic/title.e2e.js +15 -0
- package/dist/collection/components/title/title.ios.css +0 -1
- package/dist/collection/components/toolbar/toolbar.ios.css +10 -0
- package/dist/collection/utils/test/playwright/drag-element.js +67 -8
- package/dist/docs.json +5 -5
- package/dist/esm/ion-app_8.entry.js +3 -3
- package/dist/esm-es5/ion-app_8.entry.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-164b025e.system.js +1 -1
- package/dist/ionic/{p-90bfa7eb.system.entry.js → p-32b7d30a.system.entry.js} +1 -1
- package/dist/ionic/{p-b94d3454.entry.js → p-e3a28648.entry.js} +1 -1
- package/dist/types/utils/test/playwright/drag-element.d.ts +8 -1
- package/hydrate/index.js +3 -3
- package/package.json +3 -3
package/components/ion-header.js
CHANGED
|
@@ -183,7 +183,7 @@ const handleHeaderFade = (scrollEl, baseEl, condenseHeader) => {
|
|
|
183
183
|
});
|
|
184
184
|
};
|
|
185
185
|
|
|
186
|
-
const headerIosCss = "ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-ios ion-toolbar:last-of-type{--border-width:0 0 0.55px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.header-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.header-translucent-ios ion-toolbar{--opacity:.8}.header-collapse-condense-inactive .header-background{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}}.header-ios.ion-no-border ion-toolbar:last-of-type{--border-width:0}.header-collapse-fade ion-toolbar{--opacity-scale:inherit}.header-collapse-condense{z-index:9}.header-collapse-condense ion-toolbar{position:-webkit-sticky;position:sticky;top:0}.header-collapse-condense ion-toolbar:first-of-type{padding-top:
|
|
186
|
+
const headerIosCss = "ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-ios ion-toolbar:last-of-type{--border-width:0 0 0.55px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.header-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.header-translucent-ios ion-toolbar{--opacity:.8}.header-collapse-condense-inactive .header-background{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}}.header-ios.ion-no-border ion-toolbar:last-of-type{--border-width:0}.header-collapse-fade ion-toolbar{--opacity-scale:inherit}.header-collapse-condense{z-index:9}.header-collapse-condense ion-toolbar{position:-webkit-sticky;position:sticky;top:0}.header-collapse-condense ion-toolbar:first-of-type{padding-top:1px;z-index:1}.header-collapse-condense ion-toolbar{--background:var(--ion-background-color, #fff);z-index:0}.header-collapse-condense ion-toolbar:last-of-type{--border-width:0px}.header-collapse-condense ion-toolbar ion-searchbar{height:48px;padding-top:0px;padding-bottom:13px}.header-collapse-main{--opacity-scale:1}.header-collapse-main ion-toolbar{--opacity-scale:inherit}.header-collapse-main ion-toolbar.in-toolbar ion-title,.header-collapse-main ion-toolbar.in-toolbar ion-buttons{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse{opacity:0;pointer-events:none}.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-buttons.buttons-collapse{visibility:hidden}";
|
|
187
187
|
|
|
188
188
|
const headerMdCss = "ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-md{-webkit-box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.header-collapse-condense{display:none}.header-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}";
|
|
189
189
|
|
package/components/ion-title.js
CHANGED
|
@@ -5,7 +5,7 @@ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/
|
|
|
5
5
|
import { c as createColorClasses } from './theme.js';
|
|
6
6
|
import { b as getIonMode } from './ionic-global.js';
|
|
7
7
|
|
|
8
|
-
const titleIosCss = ":host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{top:0;-webkit-padding-start:90px;padding-inline-start:90px;-webkit-padding-end:90px;padding-inline-end:90px;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);position:absolute;width:100%;height:100%;-webkit-transform:translateZ(0);transform:translateZ(0);font-size:17px;font-weight:600;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none}@supports (inset-inline-start: 0){:host{inset-inline-start:0}}@supports not (inset-inline-start: 0){:host{left:0}:host-context([dir=rtl]){left:unset;right:unset;right:0}@supports selector(:dir(rtl)){:host:dir(rtl){left:unset;right:unset;right:0}}}:host(.title-small){-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px;padding-top:6px;padding-bottom:16px;position:relative;font-size:13px;font-weight:normal}:host(.title-large){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-webkit-transform-origin:left center;transform-origin:left center;bottom:0;-ms-flex-align:end;align-items:flex-end;min-width:100%;
|
|
8
|
+
const titleIosCss = ":host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{top:0;-webkit-padding-start:90px;padding-inline-start:90px;-webkit-padding-end:90px;padding-inline-end:90px;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);position:absolute;width:100%;height:100%;-webkit-transform:translateZ(0);transform:translateZ(0);font-size:17px;font-weight:600;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none}@supports (inset-inline-start: 0){:host{inset-inline-start:0}}@supports not (inset-inline-start: 0){:host{left:0}:host-context([dir=rtl]){left:unset;right:unset;right:0}@supports selector(:dir(rtl)){:host:dir(rtl){left:unset;right:unset;right:0}}}:host(.title-small){-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px;padding-top:6px;padding-bottom:16px;position:relative;font-size:13px;font-weight:normal}:host(.title-large){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-webkit-transform-origin:left center;transform-origin:left center;bottom:0;-ms-flex-align:end;align-items:flex-end;min-width:100%;font-size:34px;font-weight:700;text-align:start}:host(.title-large.title-rtl){-webkit-transform-origin:right center;transform-origin:right center}:host(.title-large.ion-cloned-element){--color:var(--ion-text-color, #000)}:host(.title-large) .toolbar-title{-webkit-transform-origin:inherit;transform-origin:inherit}:host-context([dir=rtl]):host(.title-large) .toolbar-title,:host-context([dir=rtl]).title-large .toolbar-title{-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}@supports selector(:dir(rtl)){:host(.title-large) .toolbar-title:dir(rtl){-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}}";
|
|
9
9
|
|
|
10
10
|
const titleMdCss = ":host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px;padding-top:0;padding-bottom:0;font-size:20px;font-weight:500;letter-spacing:0.0125em}:host(.title-small){width:100%;height:100%;font-size:15px;font-weight:normal}";
|
|
11
11
|
|
|
@@ -5,7 +5,7 @@ import { proxyCustomElement, HTMLElement, forceUpdate, h, Host } from '@stencil/
|
|
|
5
5
|
import { c as createColorClasses, h as hostContext } from './theme.js';
|
|
6
6
|
import { b as getIonMode } from './ionic-global.js';
|
|
7
7
|
|
|
8
|
-
const toolbarIosCss = ":host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-padding-start:var(--ion-safe-area-left);padding-inline-start:var(--ion-safe-area-left);-webkit-padding-end:var(--ion-safe-area-right);padding-inline-end:var(--ion-safe-area-right);display:block;position:relative;width:100%;color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-color-step-50, #f7f7f7));--color:var(--ion-toolbar-color, var(--ion-text-color, #000));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.2))));--padding-top:3px;--padding-bottom:3px;--padding-start:4px;--padding-end:4px;--min-height:44px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:4;order:4;min-width:0}:host(.toolbar-segment) .toolbar-content{display:-ms-inline-flexbox;display:inline-flex}:host(.toolbar-searchbar) .toolbar-container{padding-top:0;padding-bottom:0}:host(.toolbar-searchbar) ::slotted(*){-ms-flex-item-align:start;align-self:start}:host(.toolbar-searchbar) ::slotted(ion-chip){margin-top:3px}:host(.toolbar-searchbar) ::slotted(ion-back-button){height:38px}::slotted(ion-buttons){min-height:38px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:3;order:3}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}:host(.toolbar-title-large) .toolbar-container{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}:host(.toolbar-title-large) .toolbar-content ion-title{-ms-flex:1;flex:1;-ms-flex-order:8;order:8;min-width:100%}";
|
|
8
|
+
const toolbarIosCss = ":host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-padding-start:var(--ion-safe-area-left);padding-inline-start:var(--ion-safe-area-left);-webkit-padding-end:var(--ion-safe-area-right);padding-inline-end:var(--ion-safe-area-right);display:block;position:relative;width:100%;color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-color-step-50, #f7f7f7));--color:var(--ion-toolbar-color, var(--ion-text-color, #000));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.2))));--padding-top:3px;--padding-bottom:3px;--padding-start:4px;--padding-end:4px;--min-height:44px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:4;order:4;min-width:0}:host(.toolbar-segment) .toolbar-content{display:-ms-inline-flexbox;display:inline-flex}:host(.toolbar-searchbar) .toolbar-container{padding-top:0;padding-bottom:0}:host(.toolbar-searchbar) ::slotted(*){-ms-flex-item-align:start;align-self:start}:host(.toolbar-searchbar) ::slotted(ion-chip){margin-top:3px}:host(.toolbar-searchbar) ::slotted(ion-back-button){height:38px}::slotted(ion-buttons){min-height:38px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:3;order:3}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}:host(.toolbar-title-large){padding-bottom:7px}:host(.toolbar-title-large) .toolbar-container{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}:host(.toolbar-title-large) .toolbar-content ion-title{-ms-flex:1;flex:1;-ms-flex-order:8;order:8;min-width:100%}";
|
|
9
9
|
|
|
10
10
|
const toolbarMdCss = ":host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-padding-start:var(--ion-safe-area-left);padding-inline-start:var(--ion-safe-area-left);-webkit-padding-end:var(--ion-safe-area-right);padding-inline-end:var(--ion-safe-area-right);display:block;position:relative;width:100%;color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-background-color, #fff));--color:var(--ion-toolbar-color, var(--ion-text-color, #424242));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, #c1c4cd)));--padding-top:0;--padding-bottom:0;--padding-start:0;--padding-end:0;--min-height:56px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:3;order:3;min-width:0;max-width:100%}::slotted(.buttons-first-slot){-webkit-margin-start:4px;margin-inline-start:4px}::slotted(.buttons-last-slot){-webkit-margin-end:4px;margin-inline-end:4px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:4;order:4}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}";
|
|
11
11
|
|
|
@@ -788,7 +788,7 @@ const handleHeaderFade = (scrollEl, baseEl, condenseHeader) => {
|
|
|
788
788
|
});
|
|
789
789
|
};
|
|
790
790
|
|
|
791
|
-
const headerIosCss = "ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-ios ion-toolbar:last-of-type{--border-width:0 0 0.55px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.header-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.header-translucent-ios ion-toolbar{--opacity:.8}.header-collapse-condense-inactive .header-background{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}}.header-ios.ion-no-border ion-toolbar:last-of-type{--border-width:0}.header-collapse-fade ion-toolbar{--opacity-scale:inherit}.header-collapse-condense{z-index:9}.header-collapse-condense ion-toolbar{position:-webkit-sticky;position:sticky;top:0}.header-collapse-condense ion-toolbar:first-of-type{padding-top:
|
|
791
|
+
const headerIosCss = "ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-ios ion-toolbar:last-of-type{--border-width:0 0 0.55px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.header-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.header-translucent-ios ion-toolbar{--opacity:.8}.header-collapse-condense-inactive .header-background{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}}.header-ios.ion-no-border ion-toolbar:last-of-type{--border-width:0}.header-collapse-fade ion-toolbar{--opacity-scale:inherit}.header-collapse-condense{z-index:9}.header-collapse-condense ion-toolbar{position:-webkit-sticky;position:sticky;top:0}.header-collapse-condense ion-toolbar:first-of-type{padding-top:1px;z-index:1}.header-collapse-condense ion-toolbar{--background:var(--ion-background-color, #fff);z-index:0}.header-collapse-condense ion-toolbar:last-of-type{--border-width:0px}.header-collapse-condense ion-toolbar ion-searchbar{height:48px;padding-top:0px;padding-bottom:13px}.header-collapse-main{--opacity-scale:1}.header-collapse-main ion-toolbar{--opacity-scale:inherit}.header-collapse-main ion-toolbar.in-toolbar ion-title,.header-collapse-main ion-toolbar.in-toolbar ion-buttons{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse{opacity:0;pointer-events:none}.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-buttons.buttons-collapse{visibility:hidden}";
|
|
792
792
|
|
|
793
793
|
const headerMdCss = "ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-md{-webkit-box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.header-collapse-condense{display:none}.header-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}";
|
|
794
794
|
|
|
@@ -1130,7 +1130,7 @@ const RouterOutlet = class {
|
|
|
1130
1130
|
};
|
|
1131
1131
|
RouterOutlet.style = routeOutletCss;
|
|
1132
1132
|
|
|
1133
|
-
const titleIosCss = ":host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{top:0;-webkit-padding-start:90px;padding-inline-start:90px;-webkit-padding-end:90px;padding-inline-end:90px;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);position:absolute;width:100%;height:100%;-webkit-transform:translateZ(0);transform:translateZ(0);font-size:17px;font-weight:600;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none}@supports (inset-inline-start: 0){:host{inset-inline-start:0}}@supports not (inset-inline-start: 0){:host{left:0}:host-context([dir=rtl]){left:unset;right:unset;right:0}@supports selector(:dir(rtl)){:host:dir(rtl){left:unset;right:unset;right:0}}}:host(.title-small){-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px;padding-top:6px;padding-bottom:16px;position:relative;font-size:13px;font-weight:normal}:host(.title-large){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-webkit-transform-origin:left center;transform-origin:left center;bottom:0;-ms-flex-align:end;align-items:flex-end;min-width:100%;
|
|
1133
|
+
const titleIosCss = ":host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{top:0;-webkit-padding-start:90px;padding-inline-start:90px;-webkit-padding-end:90px;padding-inline-end:90px;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);position:absolute;width:100%;height:100%;-webkit-transform:translateZ(0);transform:translateZ(0);font-size:17px;font-weight:600;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none}@supports (inset-inline-start: 0){:host{inset-inline-start:0}}@supports not (inset-inline-start: 0){:host{left:0}:host-context([dir=rtl]){left:unset;right:unset;right:0}@supports selector(:dir(rtl)){:host:dir(rtl){left:unset;right:unset;right:0}}}:host(.title-small){-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px;padding-top:6px;padding-bottom:16px;position:relative;font-size:13px;font-weight:normal}:host(.title-large){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-webkit-transform-origin:left center;transform-origin:left center;bottom:0;-ms-flex-align:end;align-items:flex-end;min-width:100%;font-size:34px;font-weight:700;text-align:start}:host(.title-large.title-rtl){-webkit-transform-origin:right center;transform-origin:right center}:host(.title-large.ion-cloned-element){--color:var(--ion-text-color, #000)}:host(.title-large) .toolbar-title{-webkit-transform-origin:inherit;transform-origin:inherit}:host-context([dir=rtl]):host(.title-large) .toolbar-title,:host-context([dir=rtl]).title-large .toolbar-title{-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}@supports selector(:dir(rtl)){:host(.title-large) .toolbar-title:dir(rtl){-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}}";
|
|
1134
1134
|
|
|
1135
1135
|
const titleMdCss = ":host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px;padding-top:0;padding-bottom:0;font-size:20px;font-weight:500;letter-spacing:0.0125em}:host(.title-small){width:100%;height:100%;font-size:15px;font-weight:normal}";
|
|
1136
1136
|
|
|
@@ -1175,7 +1175,7 @@ ToolbarTitle.style = {
|
|
|
1175
1175
|
md: titleMdCss
|
|
1176
1176
|
};
|
|
1177
1177
|
|
|
1178
|
-
const toolbarIosCss = ":host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-padding-start:var(--ion-safe-area-left);padding-inline-start:var(--ion-safe-area-left);-webkit-padding-end:var(--ion-safe-area-right);padding-inline-end:var(--ion-safe-area-right);display:block;position:relative;width:100%;color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-color-step-50, #f7f7f7));--color:var(--ion-toolbar-color, var(--ion-text-color, #000));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.2))));--padding-top:3px;--padding-bottom:3px;--padding-start:4px;--padding-end:4px;--min-height:44px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:4;order:4;min-width:0}:host(.toolbar-segment) .toolbar-content{display:-ms-inline-flexbox;display:inline-flex}:host(.toolbar-searchbar) .toolbar-container{padding-top:0;padding-bottom:0}:host(.toolbar-searchbar) ::slotted(*){-ms-flex-item-align:start;align-self:start}:host(.toolbar-searchbar) ::slotted(ion-chip){margin-top:3px}:host(.toolbar-searchbar) ::slotted(ion-back-button){height:38px}::slotted(ion-buttons){min-height:38px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:3;order:3}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}:host(.toolbar-title-large) .toolbar-container{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}:host(.toolbar-title-large) .toolbar-content ion-title{-ms-flex:1;flex:1;-ms-flex-order:8;order:8;min-width:100%}";
|
|
1178
|
+
const toolbarIosCss = ":host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-padding-start:var(--ion-safe-area-left);padding-inline-start:var(--ion-safe-area-left);-webkit-padding-end:var(--ion-safe-area-right);padding-inline-end:var(--ion-safe-area-right);display:block;position:relative;width:100%;color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-color-step-50, #f7f7f7));--color:var(--ion-toolbar-color, var(--ion-text-color, #000));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.2))));--padding-top:3px;--padding-bottom:3px;--padding-start:4px;--padding-end:4px;--min-height:44px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:4;order:4;min-width:0}:host(.toolbar-segment) .toolbar-content{display:-ms-inline-flexbox;display:inline-flex}:host(.toolbar-searchbar) .toolbar-container{padding-top:0;padding-bottom:0}:host(.toolbar-searchbar) ::slotted(*){-ms-flex-item-align:start;align-self:start}:host(.toolbar-searchbar) ::slotted(ion-chip){margin-top:3px}:host(.toolbar-searchbar) ::slotted(ion-back-button){height:38px}::slotted(ion-buttons){min-height:38px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:3;order:3}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}:host(.toolbar-title-large){padding-bottom:7px}:host(.toolbar-title-large) .toolbar-container{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}:host(.toolbar-title-large) .toolbar-content ion-title{-ms-flex:1;flex:1;-ms-flex-order:8;order:8;min-width:100%}";
|
|
1179
1179
|
|
|
1180
1180
|
const toolbarMdCss = ":host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-padding-start:var(--ion-safe-area-left);padding-inline-start:var(--ion-safe-area-left);-webkit-padding-end:var(--ion-safe-area-right);padding-inline-end:var(--ion-safe-area-right);display:block;position:relative;width:100%;color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-background-color, #fff));--color:var(--ion-toolbar-color, var(--ion-text-color, #424242));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, #c1c4cd)));--padding-top:0;--padding-bottom:0;--padding-start:0;--padding-end:0;--min-height:56px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:3;order:3;min-width:0;max-width:100%}::slotted(.buttons-first-slot){-webkit-margin-start:4px;margin-inline-start:4px}::slotted(.buttons-last-slot){-webkit-margin-end:4px;margin-inline-end:4px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:4;order:4}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}";
|
|
1181
1181
|
|
|
@@ -40,10 +40,10 @@
|
|
|
40
40
|
*
|
|
41
41
|
* @prop --ripple-color: Color of the item ripple effect
|
|
42
42
|
*
|
|
43
|
-
* @prop --highlight-height: The height of the highlight on the item
|
|
44
|
-
* @prop --highlight-color-focused: The color of the highlight on the item when focused
|
|
45
|
-
* @prop --highlight-color-valid: The color of the highlight on the item when valid
|
|
46
|
-
* @prop --highlight-color-invalid: The color of the highlight on the item when invalid
|
|
43
|
+
* @prop --highlight-height: The height of the highlight on the item. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
|
|
44
|
+
* @prop --highlight-color-focused: The color of the highlight on the item when focused. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
|
|
45
|
+
* @prop --highlight-color-valid: The color of the highlight on the item when valid. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
|
|
46
|
+
* @prop --highlight-color-invalid: The color of the highlight on the item when invalid. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
|
|
47
47
|
*/
|
|
48
48
|
--border-radius: 0px;
|
|
49
49
|
--border-width: 0px;
|
|
@@ -40,10 +40,10 @@
|
|
|
40
40
|
*
|
|
41
41
|
* @prop --ripple-color: Color of the item ripple effect
|
|
42
42
|
*
|
|
43
|
-
* @prop --highlight-height: The height of the highlight on the item
|
|
44
|
-
* @prop --highlight-color-focused: The color of the highlight on the item when focused
|
|
45
|
-
* @prop --highlight-color-valid: The color of the highlight on the item when valid
|
|
46
|
-
* @prop --highlight-color-invalid: The color of the highlight on the item when invalid
|
|
43
|
+
* @prop --highlight-height: The height of the highlight on the item. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
|
|
44
|
+
* @prop --highlight-color-focused: The color of the highlight on the item when focused. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
|
|
45
|
+
* @prop --highlight-color-valid: The color of the highlight on the item when valid. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
|
|
46
|
+
* @prop --highlight-color-invalid: The color of the highlight on the item when invalid. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
|
|
47
47
|
*/
|
|
48
48
|
--border-radius: 0px;
|
|
49
49
|
--border-width: 0px;
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
import { expect } from '@playwright/test';
|
|
5
5
|
import { configs, dragElementBy, test } from "../../../../utils/test/playwright/index";
|
|
6
6
|
import { testSlidingItem } from '../test.utils';
|
|
7
|
-
// TODO FW-3006
|
|
8
7
|
/**
|
|
9
8
|
* item-sliding doesn't have mode-specific styling
|
|
10
9
|
*/
|
|
@@ -17,15 +16,12 @@ configs({ modes: ['md'] }).forEach(({ title, screenshot, config }) => {
|
|
|
17
16
|
});
|
|
18
17
|
});
|
|
19
18
|
});
|
|
20
|
-
// TODO FW-3006
|
|
21
19
|
/**
|
|
22
20
|
* This behavior does not vary across modes/directions
|
|
23
21
|
*/
|
|
24
22
|
configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
25
23
|
test.describe(title('item-sliding: basic'), () => {
|
|
26
|
-
|
|
27
|
-
test.fixme('should open when swiped', async ({ page, skip }) => {
|
|
28
|
-
skip.browser((browserName) => browserName !== 'chromium', 'dragElementBy is flaky outside of Chrome browsers.');
|
|
24
|
+
test('should open when swiped', async ({ page }) => {
|
|
29
25
|
await page.goto(`/src/components/item-sliding/test/basic`, config);
|
|
30
26
|
const item = page.locator('#item2');
|
|
31
27
|
await dragElementBy(item, page, -150);
|
|
@@ -33,7 +29,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, screenshot, co
|
|
|
33
29
|
// item-sliding doesn't have an easy way to tell whether it's fully open so just screenshot it
|
|
34
30
|
await expect(item).toHaveScreenshot(screenshot(`item-sliding-gesture`));
|
|
35
31
|
});
|
|
36
|
-
test
|
|
32
|
+
test('should not scroll when the item-sliding is swiped', async ({ page, skip }) => {
|
|
37
33
|
skip.browser('webkit', 'mouse.wheel is not available in WebKit');
|
|
38
34
|
await page.goto(`/src/components/item-sliding/test/basic`, config);
|
|
39
35
|
const itemSlidingEl = page.locator('#item2');
|
|
@@ -55,7 +55,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
55
55
|
await page.click('#sheet-can-dismiss-promise-true');
|
|
56
56
|
await ionModalDidPresent.next();
|
|
57
57
|
const modalHeader = page.locator('#modal-header');
|
|
58
|
-
await dragElementBy(modalHeader, page, 0,
|
|
58
|
+
await dragElementBy(modalHeader, page, 0, 30);
|
|
59
59
|
const modal = page.locator('ion-modal');
|
|
60
60
|
expect(modal).not.toBe(null);
|
|
61
61
|
});
|
|
@@ -56,19 +56,19 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
56
56
|
});
|
|
57
57
|
test('it should not swipe to close when swiped on the content but the content is scrolled', async ({ page }) => {
|
|
58
58
|
const modal = await cardModalPage.openModalByTrigger('#card');
|
|
59
|
-
const content =
|
|
59
|
+
const content = page.locator('ion-modal ion-content');
|
|
60
60
|
await content.evaluate((el) => el.scrollToBottom(0));
|
|
61
61
|
await cardModalPage.swipeToCloseModal('ion-modal ion-content', false);
|
|
62
|
-
await content.
|
|
62
|
+
await content.waitFor();
|
|
63
63
|
await expect(modal).toBeVisible();
|
|
64
64
|
});
|
|
65
65
|
test('it should not swipe to close when swiped on the content but the content is scrolled even when content is replaced', async ({ page, }) => {
|
|
66
66
|
const modal = await cardModalPage.openModalByTrigger('#card');
|
|
67
67
|
await page.click('ion-button.replace');
|
|
68
|
-
const content =
|
|
68
|
+
const content = page.locator('ion-modal ion-content');
|
|
69
69
|
await content.evaluate((el) => el.scrollToBottom(0));
|
|
70
70
|
await cardModalPage.swipeToCloseModal('ion-modal ion-content', false);
|
|
71
|
-
await content.
|
|
71
|
+
await content.waitFor();
|
|
72
72
|
await expect(modal).toBeVisible();
|
|
73
73
|
});
|
|
74
74
|
test('content should be scrollable after gesture ends', async ({ page }) => {
|
|
@@ -10,8 +10,7 @@ import { CardModalPage } from '../fixtures';
|
|
|
10
10
|
configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
11
11
|
test.describe(title('card modal - nav'), () => {
|
|
12
12
|
let cardModalPage;
|
|
13
|
-
test.beforeEach(async ({ page
|
|
14
|
-
skip.browser((browserName) => browserName !== 'chromium', 'dragElementBy is flaky outside of Chrome browsers.');
|
|
13
|
+
test.beforeEach(async ({ page }) => {
|
|
15
14
|
cardModalPage = new CardModalPage(page);
|
|
16
15
|
await cardModalPage.navigate('/src/components/modal/test/card-nav?ionic:_testing=false', config);
|
|
17
16
|
});
|
|
@@ -24,7 +23,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
24
23
|
const pageOne = page.locator('page-one');
|
|
25
24
|
await expect(pageOne).toHaveClass(/ion-page-hidden/);
|
|
26
25
|
const content = page.locator('.page-two-content');
|
|
27
|
-
await dragElementBy(content, page,
|
|
26
|
+
await dragElementBy(content, page, 370, 0, 10);
|
|
28
27
|
await ionNavDidChange.next();
|
|
29
28
|
});
|
|
30
29
|
test('should swipe to close', async ({ page }) => {
|
|
@@ -33,7 +32,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
33
32
|
const ionNavDidChange = await nav.spyOnEvent('ionNavDidChange');
|
|
34
33
|
await page.click('#go-page-two');
|
|
35
34
|
await ionNavDidChange.next();
|
|
36
|
-
await cardModalPage.swipeToCloseModal('ion-modal ion-content.page-two-content');
|
|
35
|
+
await cardModalPage.swipeToCloseModal('ion-modal ion-content.page-two-content', true, 270);
|
|
37
36
|
});
|
|
38
37
|
});
|
|
39
38
|
});
|
|
@@ -14,7 +14,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
14
14
|
await ionModalDidPresent.next();
|
|
15
15
|
const modal = page.locator('ion-modal');
|
|
16
16
|
const content = (await page.$('ion-modal ion-content'));
|
|
17
|
-
await dragElementBy(content, page, 0,
|
|
17
|
+
await dragElementBy(content, page, 0, 300);
|
|
18
18
|
await content.waitForElementState('stable');
|
|
19
19
|
await expect(modal).toBeVisible();
|
|
20
20
|
});
|
|
@@ -25,7 +25,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
25
25
|
const modal = page.locator('ion-modal');
|
|
26
26
|
const content = (await page.$('ion-modal .ion-content-scroll-host'));
|
|
27
27
|
await content.evaluate((el) => (el.scrollTop = 500));
|
|
28
|
-
await dragElementBy(content, page, 0,
|
|
28
|
+
await dragElementBy(content, page, 0, 300);
|
|
29
29
|
await content.waitForElementState('stable');
|
|
30
30
|
await expect(modal).toBeVisible();
|
|
31
31
|
});
|
|
@@ -13,7 +13,7 @@ export class CardModalPage {
|
|
|
13
13
|
this.ionModalDidDismiss = await page.spyOnEvent('ionModalDidDismiss');
|
|
14
14
|
}
|
|
15
15
|
async openModalByTrigger(selector) {
|
|
16
|
-
await this.page.
|
|
16
|
+
await this.page.locator(selector).click();
|
|
17
17
|
await this.ionModalDidPresent.next();
|
|
18
18
|
return this.page.locator('ion-modal');
|
|
19
19
|
}
|
|
@@ -104,7 +104,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
104
104
|
test('should emit ionBreakpointDidChange when the sheet is swiped to breakpoint 0', async ({ page }) => {
|
|
105
105
|
const ionBreakpointDidChange = await page.spyOnEvent('ionBreakpointDidChange');
|
|
106
106
|
const header = page.locator('.modal-sheet ion-header');
|
|
107
|
-
await dragElementBy(header, page, 0,
|
|
107
|
+
await dragElementBy(header, page, 0, 125);
|
|
108
108
|
await ionBreakpointDidChange.next();
|
|
109
109
|
expect(ionBreakpointDidChange.events.length).toBe(1);
|
|
110
110
|
});
|
|
@@ -60,12 +60,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
60
60
|
const knobEl = page.locator('ion-range#stacked-range .range-knob-handle');
|
|
61
61
|
const scrollEl = page.locator('ion-content .inner-scroll');
|
|
62
62
|
expect(await scrollEl.evaluate((el) => el.scrollTop)).toEqual(0);
|
|
63
|
-
|
|
64
|
-
const centerX = box.x + box.width / 2;
|
|
65
|
-
const centerY = box.y + box.height / 2;
|
|
66
|
-
await page.mouse.move(centerX, centerY);
|
|
67
|
-
await page.mouse.down();
|
|
68
|
-
await page.mouse.move(centerX + 30, centerY);
|
|
63
|
+
await dragElementBy(knobEl, page, 30, 0, undefined, undefined, false);
|
|
69
64
|
/**
|
|
70
65
|
* Do not use scrollToBottom() or other scrolling methods
|
|
71
66
|
* on ion-content as those will update the scroll position.
|
|
@@ -12,12 +12,22 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
12
12
|
/**
|
|
13
13
|
* The mouse events are flaky on CI
|
|
14
14
|
*/
|
|
15
|
-
test.fixme('should emit start/end events', async ({ page }
|
|
16
|
-
|
|
15
|
+
test.fixme('should emit start/end events', async ({ page }) => {
|
|
16
|
+
/**
|
|
17
|
+
* Requires padding to prevent the knob from being clipped.
|
|
18
|
+
* If it's clipped, then the value might be one off.
|
|
19
|
+
* For example, if the knob is clipped on the right, then the value
|
|
20
|
+
* will be 99 instead of 100.
|
|
21
|
+
*/
|
|
22
|
+
await page.setContent(`
|
|
23
|
+
<div style="padding: 0 20px">
|
|
24
|
+
<ion-range value="20"></ion-range>
|
|
25
|
+
</div>
|
|
26
|
+
`, config);
|
|
17
27
|
const rangeStart = await page.spyOnEvent('ionKnobMoveStart');
|
|
18
28
|
const rangeEnd = await page.spyOnEvent('ionKnobMoveEnd');
|
|
19
29
|
const rangeEl = page.locator('ion-range');
|
|
20
|
-
await dragElementBy(rangeEl, page,
|
|
30
|
+
await dragElementBy(rangeEl, page, 300, 0);
|
|
21
31
|
await page.waitForChanges();
|
|
22
32
|
/**
|
|
23
33
|
* dragElementBy defaults to starting the drag from the middle of the el,
|
|
@@ -51,12 +61,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
51
61
|
const knobEl = page.locator('ion-range#stacked-range .range-knob-handle');
|
|
52
62
|
const scrollEl = page.locator('ion-content .inner-scroll');
|
|
53
63
|
expect(await scrollEl.evaluate((el) => el.scrollTop)).toEqual(0);
|
|
54
|
-
|
|
55
|
-
const centerX = box.x + box.width / 2;
|
|
56
|
-
const centerY = box.y + box.height / 2;
|
|
57
|
-
await page.mouse.move(centerX, centerY);
|
|
58
|
-
await page.mouse.down();
|
|
59
|
-
await page.mouse.move(centerX + 30, centerY);
|
|
64
|
+
await dragElementBy(knobEl, page, 30, 0, undefined, undefined, false);
|
|
60
65
|
/**
|
|
61
66
|
* Do not use scrollToBottom() or other scrolling methods
|
|
62
67
|
* on ion-content as those will update the scroll position.
|
|
@@ -90,11 +95,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
90
95
|
await page.setContent(`<ion-range aria-label="range"></ion-range>`, config);
|
|
91
96
|
const rangeHandle = page.locator('ion-range .range-knob-handle');
|
|
92
97
|
const ionChangeSpy = await page.spyOnEvent('ionChange');
|
|
93
|
-
|
|
94
|
-
await rangeHandle.hover();
|
|
95
|
-
await page.mouse.down();
|
|
96
|
-
await page.mouse.move(boundingBox.x + 100, boundingBox.y);
|
|
97
|
-
await page.mouse.up();
|
|
98
|
+
await dragElementBy(rangeHandle, page, 100, 0);
|
|
98
99
|
await ionChangeSpy.next();
|
|
99
100
|
expect(ionChangeSpy).toHaveReceivedEventTimes(1);
|
|
100
101
|
});
|
|
@@ -123,10 +124,8 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
123
124
|
await page.setContent(`<ion-range aria-label="range"></ion-range>`, config);
|
|
124
125
|
const rangeHandle = page.locator('ion-range .range-knob-handle');
|
|
125
126
|
const ionInputSpy = await page.spyOnEvent('ionInput');
|
|
126
|
-
const boundingBox = await rangeHandle.boundingBox();
|
|
127
127
|
await rangeHandle.hover();
|
|
128
|
-
await page
|
|
129
|
-
await page.mouse.move(boundingBox.x + 100, boundingBox.y);
|
|
128
|
+
await dragElementBy(rangeHandle, page, 100, 0, undefined, undefined, false);
|
|
130
129
|
await ionInputSpy.next();
|
|
131
130
|
expect(ionInputSpy).toHaveReceivedEvent();
|
|
132
131
|
});
|
|
@@ -4,12 +4,11 @@
|
|
|
4
4
|
import { expect } from '@playwright/test';
|
|
5
5
|
import { configs, test } from "../../../../utils/test/playwright/index";
|
|
6
6
|
import { pullToRefresh } from '../test.utils';
|
|
7
|
-
// TODO FW-2795: Enable this test when touch events/gestures are better supported in Playwright
|
|
8
7
|
/**
|
|
9
8
|
* This behavior does not vary across directions.
|
|
10
9
|
*/
|
|
11
10
|
configs({ directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
12
|
-
test.describe
|
|
11
|
+
test.describe(title('refresher: basic'), () => {
|
|
13
12
|
test.beforeEach(async ({ page }) => {
|
|
14
13
|
await page.goto('/src/components/refresher/test/basic', config);
|
|
15
14
|
});
|
|
@@ -4,12 +4,11 @@
|
|
|
4
4
|
import { expect } from '@playwright/test';
|
|
5
5
|
import { configs, test } from "../../../../utils/test/playwright/index";
|
|
6
6
|
import { pullToRefresh } from '../test.utils';
|
|
7
|
-
// TODO FW-2795: Enable this test when touch events/gestures are better supported in Playwright
|
|
8
7
|
/**
|
|
9
8
|
* This behavior does not vary across directions.
|
|
10
9
|
*/
|
|
11
10
|
configs({ directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
12
|
-
test.describe
|
|
11
|
+
test.describe(title('refresher: custom scroll target'), () => {
|
|
13
12
|
test.beforeEach(async ({ page }) => {
|
|
14
13
|
await page.goto('/src/components/refresher/test/scroll-target', config);
|
|
15
14
|
});
|
|
@@ -17,7 +16,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
|
17
16
|
test('should load more items when performing a pull-to-refresh', async ({ page }) => {
|
|
18
17
|
const items = page.locator('ion-item');
|
|
19
18
|
expect(await items.count()).toBe(30);
|
|
20
|
-
await pullToRefresh(page
|
|
19
|
+
await pullToRefresh(page);
|
|
21
20
|
expect(await items.count()).toBe(60);
|
|
22
21
|
});
|
|
23
22
|
});
|
|
@@ -31,7 +30,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
|
31
30
|
await page.waitForChanges();
|
|
32
31
|
const items = page.locator('ion-item');
|
|
33
32
|
expect(await items.count()).toBe(30);
|
|
34
|
-
await pullToRefresh(page
|
|
33
|
+
await pullToRefresh(page);
|
|
35
34
|
expect(await items.count()).toBe(60);
|
|
36
35
|
});
|
|
37
36
|
});
|
|
@@ -13,7 +13,7 @@ const pullToRefresh = async (page, selector = 'body') => {
|
|
|
13
13
|
const target = page.locator(selector);
|
|
14
14
|
await page.waitForSelector('ion-refresher.hydrated', { state: 'attached' });
|
|
15
15
|
const ev = await page.spyOnEvent('ionRefreshComplete');
|
|
16
|
-
await dragElementByYAxis(target, page,
|
|
16
|
+
await dragElementByYAxis(target, page, 320);
|
|
17
17
|
await ev.next();
|
|
18
18
|
};
|
|
19
19
|
export { pullToRefresh };
|
|
@@ -3,14 +3,12 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { expect } from '@playwright/test';
|
|
5
5
|
import { configs, test, dragElementBy } from "../../../../utils/test/playwright/index";
|
|
6
|
-
// TODO FW-3079
|
|
7
6
|
/**
|
|
8
7
|
* Reorder group does not have per-mode styles
|
|
9
8
|
*/
|
|
10
9
|
configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
11
|
-
test.describe
|
|
12
|
-
test.beforeEach(async ({ page
|
|
13
|
-
skip.browser((browserName) => browserName !== 'chromium', 'dragElementBy is flaky outside of Chrome browsers.');
|
|
10
|
+
test.describe(title('reorder group: interactive'), () => {
|
|
11
|
+
test.beforeEach(async ({ page }) => {
|
|
14
12
|
await page.goto(`/src/components/reorder-group/test/interactive`, config);
|
|
15
13
|
});
|
|
16
14
|
test('should drag and drop when ion-reorder wraps ion-item', async ({ page }) => {
|
|
@@ -3,14 +3,12 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { expect } from '@playwright/test';
|
|
5
5
|
import { configs, test, dragElementBy } from "../../../../utils/test/playwright/index";
|
|
6
|
-
// TODO FW-3079
|
|
7
6
|
/**
|
|
8
7
|
* Reorder group does not have per-mode styles
|
|
9
8
|
*/
|
|
10
9
|
configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
11
|
-
test.describe
|
|
12
|
-
test.beforeEach(async ({ page
|
|
13
|
-
skip.browser((browserName) => browserName !== 'chromium', 'dragElementBy is flaky outside of Chrome browsers.');
|
|
10
|
+
test.describe(title('reorder group: nested'), () => {
|
|
11
|
+
test.beforeEach(async ({ page }) => {
|
|
14
12
|
await page.goto(`/src/components/reorder-group/test/nested`, config);
|
|
15
13
|
});
|
|
16
14
|
test('should drag and drop when ion-reorder wraps ion-item', async ({ page }) => {
|
|
@@ -3,14 +3,12 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { expect } from '@playwright/test';
|
|
5
5
|
import { configs, test, dragElementBy } from "../../../../utils/test/playwright/index";
|
|
6
|
-
// TODO FW-3079
|
|
7
6
|
/**
|
|
8
7
|
* Reorder group does not have per-mode styles
|
|
9
8
|
*/
|
|
10
9
|
configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
11
|
-
test.describe
|
|
12
|
-
test.beforeEach(async ({ page
|
|
13
|
-
skip.browser((browserName) => browserName !== 'chromium', 'dragElementBy is flaky outside of Chrome browsers.');
|
|
10
|
+
test.describe(title('reorder group: scroll-target'), () => {
|
|
11
|
+
test.beforeEach(async ({ page }) => {
|
|
14
12
|
await page.goto(`/src/components/reorder-group/test/scroll-target`, config);
|
|
15
13
|
});
|
|
16
14
|
test('should drag and drop when ion-reorder wraps ion-item', async ({ page }) => {
|
|
@@ -13,3 +13,18 @@ configs().forEach(({ title, screenshot, config }) => {
|
|
|
13
13
|
});
|
|
14
14
|
});
|
|
15
15
|
});
|
|
16
|
+
configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
17
|
+
test.describe(title('title: special characters'), () => {
|
|
18
|
+
test('should not cut off characters', async ({ page }) => {
|
|
19
|
+
await page.setContent(`
|
|
20
|
+
<ion-header>
|
|
21
|
+
<ion-toolbar>
|
|
22
|
+
<ion-title size="large">ÔÔÔ</ion-title>
|
|
23
|
+
</ion-toolbar>
|
|
24
|
+
</ion-header>
|
|
25
|
+
`, config);
|
|
26
|
+
const title = page.locator('ion-title');
|
|
27
|
+
await expect(title).toHaveScreenshot(screenshot('title-characters'));
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
});
|
|
@@ -149,6 +149,16 @@
|
|
|
149
149
|
text-align: end;
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
+
/**
|
|
153
|
+
* Ensure there is enough spacing between the large
|
|
154
|
+
* title and any potential content in subsequent
|
|
155
|
+
* toolbars. We do not add padding to the title
|
|
156
|
+
* itself because it is absolutely positioned.
|
|
157
|
+
*/
|
|
158
|
+
:host(.toolbar-title-large) {
|
|
159
|
+
padding-bottom: 7px;
|
|
160
|
+
}
|
|
161
|
+
|
|
152
162
|
:host(.toolbar-title-large) .toolbar-container {
|
|
153
163
|
flex-wrap: wrap;
|
|
154
164
|
align-items: flex-start;
|