@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.
Files changed (37) hide show
  1. package/components/ion-header.js +1 -1
  2. package/components/ion-title.js +1 -1
  3. package/components/ion-toolbar.js +1 -1
  4. package/dist/cjs/ion-app_8.cjs.entry.js +3 -3
  5. package/dist/collection/components/header/header.ios.css +1 -1
  6. package/dist/collection/components/item/item.ios.css +4 -4
  7. package/dist/collection/components/item/item.md.css +4 -4
  8. package/dist/collection/components/item-sliding/test/basic/item-sliding.e2e.js +2 -6
  9. package/dist/collection/components/modal/test/can-dismiss/modal-sheet.e2e.js +1 -1
  10. package/dist/collection/components/modal/test/card/modal-tablet.e2e.js +4 -4
  11. package/dist/collection/components/modal/test/card-nav/modal.e2e.js +3 -4
  12. package/dist/collection/components/modal/test/card-refresher/modal.e2e.js +1 -1
  13. package/dist/collection/components/modal/test/card-scroll-target/modal.e2e.js +1 -1
  14. package/dist/collection/components/modal/test/fixtures.js +1 -1
  15. package/dist/collection/components/modal/test/sheet/modal.e2e.js +1 -1
  16. package/dist/collection/components/range/test/legacy/basic/range.e2e.js +1 -6
  17. package/dist/collection/components/range/test/range-events.e2e.js +16 -17
  18. package/dist/collection/components/refresher/test/basic/refresher.e2e.js +1 -2
  19. package/dist/collection/components/refresher/test/scroll-target/refresher.e2e.js +3 -4
  20. package/dist/collection/components/refresher/test/test.utils.js +1 -1
  21. package/dist/collection/components/reorder-group/test/interactive/reorder-group.e2e.js +2 -4
  22. package/dist/collection/components/reorder-group/test/nested/reorder-group.e2e.js +2 -4
  23. package/dist/collection/components/reorder-group/test/scroll-target/reorder-group.e2e.js +2 -4
  24. package/dist/collection/components/title/test/basic/title.e2e.js +15 -0
  25. package/dist/collection/components/title/title.ios.css +0 -1
  26. package/dist/collection/components/toolbar/toolbar.ios.css +10 -0
  27. package/dist/collection/utils/test/playwright/drag-element.js +67 -8
  28. package/dist/docs.json +5 -5
  29. package/dist/esm/ion-app_8.entry.js +3 -3
  30. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  31. package/dist/ionic/ionic.esm.js +1 -1
  32. package/dist/ionic/p-164b025e.system.js +1 -1
  33. package/dist/ionic/{p-90bfa7eb.system.entry.js → p-32b7d30a.system.entry.js} +1 -1
  34. package/dist/ionic/{p-b94d3454.entry.js → p-e3a28648.entry.js} +1 -1
  35. package/dist/types/utils/test/playwright/drag-element.d.ts +8 -1
  36. package/hydrate/index.js +3 -3
  37. package/package.json +3 -3
@@ -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:7px;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}";
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
 
@@ -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%;padding-bottom:6px;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)}}";
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:7px;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}";
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%;padding-bottom:6px;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)}}";
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
 
@@ -52,7 +52,7 @@ ion-header ion-toolbar:first-of-type {
52
52
  }
53
53
 
54
54
  .header-collapse-condense ion-toolbar:first-of-type {
55
- padding-top: 7px;
55
+ padding-top: 1px;
56
56
  z-index: 1;
57
57
  }
58
58
 
@@ -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
- // mouse gesture is flaky on CI, skip for now
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.skip('should not scroll when the item-sliding is swiped', async ({ page, skip }) => {
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, -500);
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 = (await page.$('ion-modal ion-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.waitForElementState('stable');
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 = (await page.$('ion-modal ion-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.waitForElementState('stable');
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, skip }) => {
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, 1000, 0, 10);
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, 500);
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, 500);
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.click(selector);
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, 150);
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
- const box = (await knobEl.boundingBox());
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 }, testInfo) => {
16
- await page.setContent(`<ion-range value="20"></ion-range>`, config);
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, testInfo.project.metadata.rtl ? -300 : 300, 0);
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
- const box = (await knobEl.boundingBox());
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
- const boundingBox = await rangeHandle.boundingBox();
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.mouse.down();
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.skip(title('refresher: basic'), () => {
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.skip(title('refresher: custom scroll target'), () => {
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, '#inner-scroll');
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, '#inner-scroll');
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, 400);
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.skip(title('reorder group: interactive'), () => {
12
- test.beforeEach(async ({ page, skip }) => {
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.skip(title('reorder group: nested'), () => {
12
- test.beforeEach(async ({ page, skip }) => {
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.skip(title('reorder group: scroll-target'), () => {
12
- test.beforeEach(async ({ page, skip }) => {
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
+ });
@@ -91,7 +91,6 @@
91
91
  bottom: 0;
92
92
  align-items: flex-end;
93
93
  min-width: 100%;
94
- padding-bottom: 6px;
95
94
  font-size: 34px;
96
95
  font-weight: 700;
97
96
  text-align: start;
@@ -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;