@ionic/core 7.6.2-dev.11704998705.1e1f9850 → 7.6.2-dev.11705355381.14b22962

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 (40) hide show
  1. package/components/ion-menu.js +21 -15
  2. package/components/ion-split-pane.js +26 -15
  3. package/css/themes/dark.always.css +3 -3
  4. package/css/themes/dark.system.css +3 -3
  5. package/css/themes/dark.system.css.map +1 -1
  6. package/dist/cjs/ion-menu_3.cjs.entry.js +21 -16
  7. package/dist/cjs/ion-split-pane.cjs.entry.js +24 -14
  8. package/dist/cjs/ionic.cjs.js +1 -1
  9. package/dist/cjs/loader.cjs.js +1 -1
  10. package/dist/collection/components/menu/menu.ios.css +64 -3
  11. package/dist/collection/components/menu/menu.js +19 -13
  12. package/dist/collection/components/menu/menu.md.css +64 -3
  13. package/dist/collection/components/split-pane/split-pane.ios.css +1 -53
  14. package/dist/collection/components/split-pane/split-pane.js +46 -12
  15. package/dist/collection/components/split-pane/split-pane.md.css +1 -53
  16. package/dist/collection/components/split-pane/test/wrapped-menu/split-pane.e2e.js +41 -0
  17. package/dist/docs.json +1 -1
  18. package/dist/esm/ion-menu_3.entry.js +21 -16
  19. package/dist/esm/ion-split-pane.entry.js +24 -14
  20. package/dist/esm/ionic.js +1 -1
  21. package/dist/esm/loader.js +1 -1
  22. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  23. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  24. package/dist/esm-es5/ionic.js +1 -1
  25. package/dist/esm-es5/loader.js +1 -1
  26. package/dist/ionic/ionic.esm.js +1 -1
  27. package/dist/ionic/p-19d9ceb8.system.js +1 -1
  28. package/dist/ionic/p-4eae8c91.entry.js +4 -0
  29. package/dist/ionic/p-56944895.entry.js +4 -0
  30. package/dist/ionic/p-b231b7cf.system.entry.js +4 -0
  31. package/dist/ionic/p-cb3ef9c1.system.entry.js +4 -0
  32. package/dist/types/components/menu/menu.d.ts +11 -1
  33. package/dist/types/components/split-pane/split-pane.d.ts +14 -2
  34. package/dist/types/components.d.ts +1 -0
  35. package/hydrate/index.js +42 -29
  36. package/package.json +1 -1
  37. package/dist/ionic/p-308b6cf2.system.entry.js +0 -4
  38. package/dist/ionic/p-38531958.system.entry.js +0 -4
  39. package/dist/ionic/p-950c05ad.entry.js +0 -4
  40. package/dist/ionic/p-aa8b021d.entry.js +0 -4
@@ -7,12 +7,13 @@ import { G as GESTURE_CONTROLLER } from './gesture-controller.js';
7
7
  import { o as isEndSide, i as inheritAriaAttributes, p as assert, m as clamp } from './helpers.js';
8
8
  import { m as menuController } from './index4.js';
9
9
  import { o as getPresentedOverlay } from './overlays.js';
10
+ import { h as hostContext } from './theme.js';
10
11
  import { c as config, b as getIonMode } from './ionic-global.js';
11
12
  import { d as defineCustomElement$2 } from './backdrop.js';
12
13
 
13
- const menuIosCss = ":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{-webkit-transform:translateX(-9999px);transform:translateX(-9999px);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:strict}:host(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}}@supports not (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{left:0;right:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{left:unset;right:unset;left:auto;right:0}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{left:unset;right:unset;left:auto;right:0}}}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}}@supports not (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{left:auto;right:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{left:unset;right:unset;left:0;right:auto}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{left:unset;right:unset;left:0;right:auto}}}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}ion-backdrop{display:none;opacity:0.01;z-index:-1}@media (max-width: 340px){.menu-inner{--width:264px}}:host(.menu-type-reveal){z-index:0}:host(.menu-type-reveal.show-menu) .menu-inner{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}:host(.menu-pane-visible){width:var(--width);min-width:var(--min-width);max-width:var(--max-width)}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}:host(.menu-pane-visible) ion-backdrop{display:hidden !important}:host(.menu-type-push){z-index:1000}:host(.menu-type-push) .show-backdrop{display:block}";
14
+ const menuIosCss = ":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{-webkit-transform:translateX(-9999px);transform:translateX(-9999px);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:strict}:host(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}}@supports not (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{left:0;right:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{left:unset;right:unset;left:auto;right:0}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{left:unset;right:unset;left:auto;right:0}}}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}}@supports not (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{left:auto;right:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{left:unset;right:unset;left:0;right:auto}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{left:unset;right:unset;left:0;right:auto}}}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}ion-backdrop{display:none;opacity:0.01;z-index:-1}@media (max-width: 340px){.menu-inner{--width:264px}}:host(.menu-type-reveal){z-index:0}:host(.menu-type-reveal.show-menu) .menu-inner{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}:host(.menu-pane-visible){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width, var(--width));min-width:var(--side-min-width, var(--min-width));max-width:var(--side-max-width, var(--max-width))}:host(.menu-pane-visible.split-pane-side){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none;box-shadow:none;z-index:0}:host(.menu-pane-visible.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}:host(.menu-pane-visible.split-pane-side){-ms-flex-order:-1;order:-1}:host(.menu-pane-visible.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}:host(.menu-pane-visible) ion-backdrop{display:hidden !important}:host(.menu-pane-visible.split-pane-side){-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-pane-visible.split-pane-side[side=end]){-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-type-push){z-index:1000}:host(.menu-type-push) .show-backdrop{display:block}";
14
15
 
15
- const menuMdCss = ":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{-webkit-transform:translateX(-9999px);transform:translateX(-9999px);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:strict}:host(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}}@supports not (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{left:0;right:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{left:unset;right:unset;left:auto;right:0}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{left:unset;right:unset;left:auto;right:0}}}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}}@supports not (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{left:auto;right:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{left:unset;right:unset;left:0;right:auto}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{left:unset;right:unset;left:0;right:auto}}}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}ion-backdrop{display:none;opacity:0.01;z-index:-1}@media (max-width: 340px){.menu-inner{--width:264px}}:host(.menu-type-reveal){z-index:0}:host(.menu-type-reveal.show-menu) .menu-inner{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}:host(.menu-pane-visible){width:var(--width);min-width:var(--min-width);max-width:var(--max-width)}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}:host(.menu-pane-visible) ion-backdrop{display:hidden !important}:host(.menu-type-overlay) .menu-inner{-webkit-box-shadow:4px 0px 16px rgba(0, 0, 0, 0.18);box-shadow:4px 0px 16px rgba(0, 0, 0, 0.18)}";
16
+ const menuMdCss = ":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{-webkit-transform:translateX(-9999px);transform:translateX(-9999px);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:strict}:host(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}}@supports not (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{left:0;right:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{left:unset;right:unset;left:auto;right:0}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{left:unset;right:unset;left:auto;right:0}}}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}}@supports not (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{left:auto;right:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{left:unset;right:unset;left:0;right:auto}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{left:unset;right:unset;left:0;right:auto}}}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}ion-backdrop{display:none;opacity:0.01;z-index:-1}@media (max-width: 340px){.menu-inner{--width:264px}}:host(.menu-type-reveal){z-index:0}:host(.menu-type-reveal.show-menu) .menu-inner{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}:host(.menu-pane-visible){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width, var(--width));min-width:var(--side-min-width, var(--min-width));max-width:var(--side-max-width, var(--max-width))}:host(.menu-pane-visible.split-pane-side){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none;box-shadow:none;z-index:0}:host(.menu-pane-visible.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}:host(.menu-pane-visible.split-pane-side){-ms-flex-order:-1;order:-1}:host(.menu-pane-visible.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}:host(.menu-pane-visible) ion-backdrop{display:hidden !important}:host(.menu-pane-visible.split-pane-side){-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-pane-visible.split-pane-side[side=end]){-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-type-overlay) .menu-inner{-webkit-box-shadow:4px 0px 16px rgba(0, 0, 0, 0.18);box-shadow:4px 0px 16px rgba(0, 0, 0, 0.18)}";
16
17
 
17
18
  const iosEasing = 'cubic-bezier(0.32,0.72,0,1)';
18
19
  const mdEasing = 'cubic-bezier(0.0,0.0,0.2,1)';
@@ -147,6 +148,19 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
147
148
  }
148
149
  async componentDidLoad() {
149
150
  this.didLoad = true;
151
+ /**
152
+ * A menu inside of a split pane is assumed
153
+ * to be a side pane.
154
+ *
155
+ * When the menu is loaded it needs to
156
+ * see if it should be considered visible inside
157
+ * of the split pane. If the split pane is
158
+ * hidden then the menu should be too.
159
+ */
160
+ const splitPane = this.el.closest('ion-split-pane');
161
+ if (splitPane !== null) {
162
+ this.isPaneVisible = await splitPane.isVisible();
163
+ }
150
164
  this.menuChanged();
151
165
  this.updateState();
152
166
  }
@@ -182,20 +196,11 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
182
196
  this.contentEl = undefined;
183
197
  }
184
198
  onSplitPaneChanged(ev) {
185
- const { target } = ev;
186
199
  const closestSplitPane = this.el.closest('ion-split-pane');
187
- /**
188
- * Menu listens on the body for "ionSplitPaneVisible".
189
- * However, this means the callback will run any time
190
- * a SplitPane changes visibility. As a result, we only want
191
- * Menu's visibility state to update if its parent SplitPane
192
- * changes visibility.
193
- */
194
- if (target !== closestSplitPane) {
195
- return;
200
+ if (closestSplitPane !== null && closestSplitPane === ev.target) {
201
+ this.isPaneVisible = ev.detail.visible;
202
+ this.updateState();
196
203
  }
197
- this.isPaneVisible = ev.detail.isPane(this.el);
198
- this.updateState();
199
204
  }
200
205
  onBackdropClick(ev) {
201
206
  // TODO(FW-2832): type (CustomEvent triggers errors which should be sorted)
@@ -602,7 +607,7 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
602
607
  }
603
608
  }
604
609
  render() {
605
- const { type, disabled, isPaneVisible, inheritedAttributes, side } = this;
610
+ const { type, disabled, el, isPaneVisible, inheritedAttributes, side } = this;
606
611
  const mode = getIonMode(this);
607
612
  return (h(Host, { role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
608
613
  [mode]: true,
@@ -610,6 +615,7 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
610
615
  'menu-enabled': !disabled,
611
616
  [`menu-side-${side}`]: true,
612
617
  'menu-pane-visible': isPaneVisible,
618
+ 'split-pane-side': hostContext('ion-split-pane', el),
613
619
  } }, h("div", { class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, h("slot", null)), h("ion-backdrop", { ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
614
620
  }
615
621
  get el() { return this; }
@@ -4,9 +4,9 @@
4
4
  import { proxyCustomElement, HTMLElement, createEvent, Build, h, Host } from '@stencil/core/internal/client';
5
5
  import { b as getIonMode } from './ionic-global.js';
6
6
 
7
- const splitPaneIosCss = ":host{--side-width:100%;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;contain:strict}::slotted(ion-menu.menu-pane-visible){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width);min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.split-pane-visible) ::slotted(.split-pane-side),:host(.split-pane-visible) ::slotted(.split-pane-main){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none;box-shadow:none;z-index:0}:host(.split-pane-visible) ::slotted(.split-pane-main){-ms-flex:1;flex:1}:host(.split-pane-visible) ::slotted(.split-pane-side:not(ion-menu)),:host(.split-pane-visible) ::slotted(ion-menu.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}::slotted(.split-pane-side:not(ion-menu)){display:none}:host(.split-pane-visible) ::slotted(.split-pane-side){-ms-flex-order:-1;order:-1}:host(.split-pane-visible) ::slotted(.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host{--border:0.55px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));--side-min-width:270px;--side-max-width:28%}:host(.split-pane-visible) ::slotted(.split-pane-side){-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.split-pane-visible) ::slotted(.split-pane-side[side=end]){-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}";
7
+ const splitPaneIosCss = ":host{--side-width:100%;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;contain:strict}:host(.split-pane-visible) ::slotted(.split-pane-main){left:0;right:0;top:0;bottom:0;position:relative;-ms-flex:1;flex:1;-webkit-box-shadow:none;box-shadow:none;z-index:0}::slotted(.split-pane-side:not(ion-menu)){display:none}:host{--border:0.55px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));--side-min-width:270px;--side-max-width:28%}";
8
8
 
9
- const splitPaneMdCss = ":host{--side-width:100%;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;contain:strict}::slotted(ion-menu.menu-pane-visible){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width);min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.split-pane-visible) ::slotted(.split-pane-side),:host(.split-pane-visible) ::slotted(.split-pane-main){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none;box-shadow:none;z-index:0}:host(.split-pane-visible) ::slotted(.split-pane-main){-ms-flex:1;flex:1}:host(.split-pane-visible) ::slotted(.split-pane-side:not(ion-menu)),:host(.split-pane-visible) ::slotted(ion-menu.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}::slotted(.split-pane-side:not(ion-menu)){display:none}:host(.split-pane-visible) ::slotted(.split-pane-side){-ms-flex-order:-1;order:-1}:host(.split-pane-visible) ::slotted(.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host{--border:1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));--side-min-width:270px;--side-max-width:28%}:host(.split-pane-visible) ::slotted(.split-pane-side){-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.split-pane-visible) ::slotted(.split-pane-side[side=end]){-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}";
9
+ const splitPaneMdCss = ":host{--side-width:100%;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;contain:strict}:host(.split-pane-visible) ::slotted(.split-pane-main){left:0;right:0;top:0;bottom:0;position:relative;-ms-flex:1;flex:1;-webkit-box-shadow:none;box-shadow:none;z-index:0}::slotted(.split-pane-side:not(ion-menu)){display:none}:host{--border:1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));--side-min-width:270px;--side-max-width:28%}";
10
10
 
11
11
  // TODO(FW-2832): types
12
12
  const SPLIT_PANE_MAIN = 'split-pane-main';
@@ -31,8 +31,13 @@ const SplitPane = /*@__PURE__*/ proxyCustomElement(class SplitPane extends HTMLE
31
31
  this.when = QUERY['lg'];
32
32
  }
33
33
  visibleChanged(visible) {
34
- const detail = { visible, isPane: this.isPane.bind(this) };
35
- this.ionSplitPaneVisible.emit(detail);
34
+ this.ionSplitPaneVisible.emit({ visible });
35
+ }
36
+ /**
37
+ * @internal
38
+ */
39
+ async isVisible() {
40
+ return Promise.resolve(this.visible);
36
41
  }
37
42
  async connectedCallback() {
38
43
  // TODO: connectedCallback is fired in CE build
@@ -40,7 +45,7 @@ const SplitPane = /*@__PURE__*/ proxyCustomElement(class SplitPane extends HTMLE
40
45
  if (typeof customElements !== 'undefined' && customElements != null) {
41
46
  await customElements.whenDefined('ion-split-pane');
42
47
  }
43
- this.styleChildren();
48
+ this.styleMainElement();
44
49
  this.updateState();
45
50
  }
46
51
  disconnectedCallback() {
@@ -86,13 +91,16 @@ const SplitPane = /*@__PURE__*/ proxyCustomElement(class SplitPane extends HTMLE
86
91
  this.visible = mediaList.matches;
87
92
  }
88
93
  }
89
- isPane(element) {
90
- if (!this.visible) {
91
- return false;
92
- }
93
- return element.parentElement === this.el && element.classList.contains(SPLIT_PANE_SIDE);
94
- }
95
- styleChildren() {
94
+ /**
95
+ * Attempt to find the main content
96
+ * element inside of the split pane.
97
+ * If found, set it as the main node.
98
+ *
99
+ * We assume that the main node
100
+ * is available in the DOM on split
101
+ * pane load.
102
+ */
103
+ styleMainElement() {
96
104
  if (!Build.isBrowser) {
97
105
  return;
98
106
  }
@@ -108,9 +116,11 @@ const SplitPane = /*@__PURE__*/ proxyCustomElement(class SplitPane extends HTMLE
108
116
  console.warn('split pane cannot have more than one main node');
109
117
  return;
110
118
  }
111
- foundMain = true;
119
+ else {
120
+ setPaneClass(child, isMain);
121
+ foundMain = true;
122
+ }
112
123
  }
113
- setPaneClass(child, isMain);
114
124
  }
115
125
  if (!foundMain) {
116
126
  console.warn('split pane does not have a specified main node');
@@ -139,7 +149,8 @@ const SplitPane = /*@__PURE__*/ proxyCustomElement(class SplitPane extends HTMLE
139
149
  "contentId": [513, "content-id"],
140
150
  "disabled": [4],
141
151
  "when": [8],
142
- "visible": [32]
152
+ "visible": [32],
153
+ "isVisible": [64]
143
154
  }, undefined, {
144
155
  "visible": ["visibleChanged"],
145
156
  "disabled": ["updateState"],
@@ -55,7 +55,7 @@
55
55
  --ion-color-light-tint: #444444;
56
56
  }
57
57
 
58
- .ios body {
58
+ :root.ios {
59
59
  --ion-background-color: #000000;
60
60
  --ion-background-color-rgb: 0, 0, 0;
61
61
  --ion-text-color: #ffffff;
@@ -82,13 +82,13 @@
82
82
  --ion-item-background: #000000;
83
83
  --ion-card-background: #1c1c1d;
84
84
  }
85
- .ios body ion-modal {
85
+ :root.ios ion-modal {
86
86
  --ion-background-color: var(--ion-color-step-100);
87
87
  --ion-toolbar-background: var(--ion-color-step-150);
88
88
  --ion-toolbar-border-color: var(--ion-color-step-250);
89
89
  }
90
90
 
91
- .md body {
91
+ :root.md {
92
92
  --ion-background-color: #121212;
93
93
  --ion-background-color-rgb: 18, 18, 18;
94
94
  --ion-text-color: #ffffff;
@@ -56,7 +56,7 @@
56
56
  --ion-color-light-tint: #444444;
57
57
  }
58
58
 
59
- .ios body {
59
+ :root.ios {
60
60
  --ion-background-color: #000000;
61
61
  --ion-background-color-rgb: 0, 0, 0;
62
62
  --ion-text-color: #ffffff;
@@ -83,13 +83,13 @@
83
83
  --ion-item-background: #000000;
84
84
  --ion-card-background: #1c1c1d;
85
85
  }
86
- .ios body ion-modal {
86
+ :root.ios ion-modal {
87
87
  --ion-background-color: var(--ion-color-step-100);
88
88
  --ion-toolbar-background: var(--ion-color-step-150);
89
89
  --ion-toolbar-border-color: var(--ion-color-step-250);
90
90
  }
91
91
 
92
- .md body {
92
+ :root.md {
93
93
  --ion-background-color: #121212;
94
94
  --ion-background-color-rgb: 18, 18, 18;
95
95
  --ion-text-color: #ffffff;
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../src/css/themes/dark.system.scss","../../src/css/themes/dark.scss"],"names":[],"mappings":"AAEA;ECDE;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;;EAKF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;;EAKF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA","file":"dark.system.css","sourcesContent":["@import \"./dark\";\n\n@media (prefers-color-scheme: dark) {\n :root {\n @include dark-base-theme();\n }\n\n .ios body {\n @include dark-ios-theme();\n }\n\n .md body {\n @include dark-md-theme();\n }\n}\n","@mixin dark-base-theme() {\n & {\n --ion-color-primary: #4d8dff;\n --ion-color-primary-rgb: 77, 141, 255;\n --ion-color-primary-contrast: #000000;\n --ion-color-primary-contrast-rgb: 0, 0, 0;\n --ion-color-primary-shade: #447ce0;\n --ion-color-primary-tint: #5f98ff;\n --ion-color-secondary: #62bdff;\n --ion-color-secondary-rgb: 98, 189, 255;\n --ion-color-secondary-contrast: #000000;\n --ion-color-secondary-contrast-rgb: 0, 0, 0;\n --ion-color-secondary-shade: #56a6e0;\n --ion-color-secondary-tint: #72c4ff;\n --ion-color-tertiary: #8482fb;\n --ion-color-tertiary-rgb: 132, 130, 251;\n --ion-color-tertiary-contrast: #000000;\n --ion-color-tertiary-contrast-rgb: 0, 0, 0;\n --ion-color-tertiary-shade: #7472dd;\n --ion-color-tertiary-tint: #908ffb;\n --ion-color-success: #2dd55b;\n --ion-color-success-rgb: 45, 213, 91;\n --ion-color-success-contrast: #000000;\n --ion-color-success-contrast-rgb: 0, 0, 0;\n --ion-color-success-shade: #28bb50;\n --ion-color-success-tint: #42d96b;\n --ion-color-warning: #ffce31;\n --ion-color-warning-rgb: 255, 206, 49;\n --ion-color-warning-contrast: #000000;\n --ion-color-warning-contrast-rgb: 0, 0, 0;\n --ion-color-warning-shade: #e0b52b;\n --ion-color-warning-tint: #ffd346;\n --ion-color-danger: #f56570;\n --ion-color-danger-rgb: 245, 101, 112;\n --ion-color-danger-contrast: #000000;\n --ion-color-danger-contrast-rgb: 0, 0, 0;\n --ion-color-danger-shade: #d85963;\n --ion-color-danger-tint: #f6747e;\n --ion-color-dark: #f3f3f3;\n --ion-color-dark-rgb: 243, 243, 243;\n --ion-color-dark-contrast: #000000;\n --ion-color-dark-contrast-rgb: 0, 0, 0;\n --ion-color-dark-shade: #d6d6d6;\n --ion-color-dark-tint: #f4f4f4;\n --ion-color-medium: #959595;\n --ion-color-medium-rgb: 149, 149, 149;\n --ion-color-medium-contrast: #000000;\n --ion-color-medium-contrast-rgb: 0, 0, 0;\n --ion-color-medium-shade: #838383;\n --ion-color-medium-tint: #a0a0a0;\n --ion-color-light: #2f2f2f;\n --ion-color-light-rgb: 47, 47, 47;\n --ion-color-light-contrast: #ffffff;\n --ion-color-light-contrast-rgb: 255, 255, 255;\n --ion-color-light-shade: #292929;\n --ion-color-light-tint: #444444;\n }\n}\n\n@mixin dark-ios-theme() {\n & {\n --ion-background-color: #000000;\n --ion-background-color-rgb: 0, 0, 0;\n --ion-text-color: #ffffff;\n --ion-text-color-rgb: 255, 255, 255;\n --ion-color-step-50: #0d0d0d;\n --ion-color-step-100: #1a1a1a;\n --ion-color-step-150: #262626;\n --ion-color-step-200: #333333;\n --ion-color-step-250: #404040;\n --ion-color-step-300: #4d4d4d;\n --ion-color-step-350: #595959;\n --ion-color-step-400: #666666;\n --ion-color-step-450: #737373;\n --ion-color-step-500: #808080;\n --ion-color-step-550: #8c8c8c;\n --ion-color-step-600: #999999;\n --ion-color-step-650: #a6a6a6;\n --ion-color-step-700: #b3b3b3;\n --ion-color-step-750: #bfbfbf;\n --ion-color-step-800: #cccccc;\n --ion-color-step-850: #d9d9d9;\n --ion-color-step-900: #e6e6e6;\n --ion-color-step-950: #f2f2f2;\n --ion-item-background: #000000;\n --ion-card-background: #1c1c1d;\n }\n\n & ion-modal {\n --ion-background-color: var(--ion-color-step-100);\n --ion-toolbar-background: var(--ion-color-step-150);\n --ion-toolbar-border-color: var(--ion-color-step-250);\n }\n}\n\n@mixin dark-md-theme() {\n & {\n --ion-background-color: #121212;\n --ion-background-color-rgb: 18, 18, 18;\n --ion-text-color: #ffffff;\n --ion-text-color-rgb: 255, 255, 255;\n --ion-border-color: #222222;\n --ion-color-step-50: #1e1e1e;\n --ion-color-step-100: #2a2a2a;\n --ion-color-step-150: #363636;\n --ion-color-step-200: #414141;\n --ion-color-step-250: #4d4d4d;\n --ion-color-step-300: #595959;\n --ion-color-step-350: #656565;\n --ion-color-step-400: #717171;\n --ion-color-step-450: #7d7d7d;\n --ion-color-step-500: #898989;\n --ion-color-step-550: #949494;\n --ion-color-step-600: #a0a0a0;\n --ion-color-step-650: #acacac;\n --ion-color-step-700: #b8b8b8;\n --ion-color-step-750: #c4c4c4;\n --ion-color-step-800: #d0d0d0;\n --ion-color-step-850: #dbdbdb;\n --ion-color-step-900: #e7e7e7;\n --ion-color-step-950: #f3f3f3;\n --ion-item-background: #1e1e1e;\n --ion-toolbar-background: #1f1f1f;\n --ion-tab-bar-background: #1f1f1f;\n --ion-card-background: #1e1e1e;\n }\n}\n"]}
1
+ {"version":3,"sourceRoot":"","sources":["../../src/css/themes/dark.system.scss","../../src/css/themes/dark.scss"],"names":[],"mappings":"AAEA;ECDE;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;;EAKF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;;EAKF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA","file":"dark.system.css","sourcesContent":["@import \"./dark\";\n\n@media (prefers-color-scheme: dark) {\n :root {\n @include dark-base-theme();\n }\n\n :root.ios {\n @include dark-ios-theme();\n }\n\n :root.md {\n @include dark-md-theme();\n }\n}\n","@mixin dark-base-theme() {\n & {\n --ion-color-primary: #4d8dff;\n --ion-color-primary-rgb: 77, 141, 255;\n --ion-color-primary-contrast: #000000;\n --ion-color-primary-contrast-rgb: 0, 0, 0;\n --ion-color-primary-shade: #447ce0;\n --ion-color-primary-tint: #5f98ff;\n --ion-color-secondary: #62bdff;\n --ion-color-secondary-rgb: 98, 189, 255;\n --ion-color-secondary-contrast: #000000;\n --ion-color-secondary-contrast-rgb: 0, 0, 0;\n --ion-color-secondary-shade: #56a6e0;\n --ion-color-secondary-tint: #72c4ff;\n --ion-color-tertiary: #8482fb;\n --ion-color-tertiary-rgb: 132, 130, 251;\n --ion-color-tertiary-contrast: #000000;\n --ion-color-tertiary-contrast-rgb: 0, 0, 0;\n --ion-color-tertiary-shade: #7472dd;\n --ion-color-tertiary-tint: #908ffb;\n --ion-color-success: #2dd55b;\n --ion-color-success-rgb: 45, 213, 91;\n --ion-color-success-contrast: #000000;\n --ion-color-success-contrast-rgb: 0, 0, 0;\n --ion-color-success-shade: #28bb50;\n --ion-color-success-tint: #42d96b;\n --ion-color-warning: #ffce31;\n --ion-color-warning-rgb: 255, 206, 49;\n --ion-color-warning-contrast: #000000;\n --ion-color-warning-contrast-rgb: 0, 0, 0;\n --ion-color-warning-shade: #e0b52b;\n --ion-color-warning-tint: #ffd346;\n --ion-color-danger: #f56570;\n --ion-color-danger-rgb: 245, 101, 112;\n --ion-color-danger-contrast: #000000;\n --ion-color-danger-contrast-rgb: 0, 0, 0;\n --ion-color-danger-shade: #d85963;\n --ion-color-danger-tint: #f6747e;\n --ion-color-dark: #f3f3f3;\n --ion-color-dark-rgb: 243, 243, 243;\n --ion-color-dark-contrast: #000000;\n --ion-color-dark-contrast-rgb: 0, 0, 0;\n --ion-color-dark-shade: #d6d6d6;\n --ion-color-dark-tint: #f4f4f4;\n --ion-color-medium: #959595;\n --ion-color-medium-rgb: 149, 149, 149;\n --ion-color-medium-contrast: #000000;\n --ion-color-medium-contrast-rgb: 0, 0, 0;\n --ion-color-medium-shade: #838383;\n --ion-color-medium-tint: #a0a0a0;\n --ion-color-light: #2f2f2f;\n --ion-color-light-rgb: 47, 47, 47;\n --ion-color-light-contrast: #ffffff;\n --ion-color-light-contrast-rgb: 255, 255, 255;\n --ion-color-light-shade: #292929;\n --ion-color-light-tint: #444444;\n }\n}\n\n@mixin dark-ios-theme() {\n & {\n --ion-background-color: #000000;\n --ion-background-color-rgb: 0, 0, 0;\n --ion-text-color: #ffffff;\n --ion-text-color-rgb: 255, 255, 255;\n --ion-color-step-50: #0d0d0d;\n --ion-color-step-100: #1a1a1a;\n --ion-color-step-150: #262626;\n --ion-color-step-200: #333333;\n --ion-color-step-250: #404040;\n --ion-color-step-300: #4d4d4d;\n --ion-color-step-350: #595959;\n --ion-color-step-400: #666666;\n --ion-color-step-450: #737373;\n --ion-color-step-500: #808080;\n --ion-color-step-550: #8c8c8c;\n --ion-color-step-600: #999999;\n --ion-color-step-650: #a6a6a6;\n --ion-color-step-700: #b3b3b3;\n --ion-color-step-750: #bfbfbf;\n --ion-color-step-800: #cccccc;\n --ion-color-step-850: #d9d9d9;\n --ion-color-step-900: #e6e6e6;\n --ion-color-step-950: #f2f2f2;\n --ion-item-background: #000000;\n --ion-card-background: #1c1c1d;\n }\n\n & ion-modal {\n --ion-background-color: var(--ion-color-step-100);\n --ion-toolbar-background: var(--ion-color-step-150);\n --ion-toolbar-border-color: var(--ion-color-step-250);\n }\n}\n\n@mixin dark-md-theme() {\n & {\n --ion-background-color: #121212;\n --ion-background-color-rgb: 18, 18, 18;\n --ion-text-color: #ffffff;\n --ion-text-color-rgb: 255, 255, 255;\n --ion-border-color: #222222;\n --ion-color-step-50: #1e1e1e;\n --ion-color-step-100: #2a2a2a;\n --ion-color-step-150: #363636;\n --ion-color-step-200: #414141;\n --ion-color-step-250: #4d4d4d;\n --ion-color-step-300: #595959;\n --ion-color-step-350: #656565;\n --ion-color-step-400: #717171;\n --ion-color-step-450: #7d7d7d;\n --ion-color-step-500: #898989;\n --ion-color-step-550: #949494;\n --ion-color-step-600: #a0a0a0;\n --ion-color-step-650: #acacac;\n --ion-color-step-700: #b8b8b8;\n --ion-color-step-750: #c4c4c4;\n --ion-color-step-800: #d0d0d0;\n --ion-color-step-850: #dbdbdb;\n --ion-color-step-900: #e7e7e7;\n --ion-color-step-950: #f3f3f3;\n --ion-item-background: #1e1e1e;\n --ion-toolbar-background: #1f1f1f;\n --ion-tab-bar-background: #1f1f1f;\n --ion-card-background: #1e1e1e;\n }\n}\n"]}
@@ -11,8 +11,8 @@ const gestureController = require('./gesture-controller-9436f482.js');
11
11
  const helpers = require('./helpers-76bb7efb.js');
12
12
  const index$1 = require('./index-3b012034.js');
13
13
  const overlays = require('./overlays-7773cbe1.js');
14
- const ionicGlobal = require('./ionic-global-a4edbf03.js');
15
14
  const theme = require('./theme-d1c573d2.js');
15
+ const ionicGlobal = require('./ionic-global-a4edbf03.js');
16
16
  const index$2 = require('./index-09471526.js');
17
17
  require('./index-c8d52405.js');
18
18
  require('./hardware-back-button-76833cac.js');
@@ -20,9 +20,9 @@ require('./index-5915f9b3.js');
20
20
  require('./animation-9b401d39.js');
21
21
  require('./framework-delegate-1c29b14a.js');
22
22
 
23
- const menuIosCss = ":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{-webkit-transform:translateX(-9999px);transform:translateX(-9999px);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:strict}:host(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}}@supports not (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{left:0;right:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{left:unset;right:unset;left:auto;right:0}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{left:unset;right:unset;left:auto;right:0}}}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}}@supports not (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{left:auto;right:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{left:unset;right:unset;left:0;right:auto}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{left:unset;right:unset;left:0;right:auto}}}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}ion-backdrop{display:none;opacity:0.01;z-index:-1}@media (max-width: 340px){.menu-inner{--width:264px}}:host(.menu-type-reveal){z-index:0}:host(.menu-type-reveal.show-menu) .menu-inner{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}:host(.menu-pane-visible){width:var(--width);min-width:var(--min-width);max-width:var(--max-width)}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}:host(.menu-pane-visible) ion-backdrop{display:hidden !important}:host(.menu-type-push){z-index:1000}:host(.menu-type-push) .show-backdrop{display:block}";
23
+ const menuIosCss = ":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{-webkit-transform:translateX(-9999px);transform:translateX(-9999px);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:strict}:host(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}}@supports not (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{left:0;right:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{left:unset;right:unset;left:auto;right:0}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{left:unset;right:unset;left:auto;right:0}}}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}}@supports not (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{left:auto;right:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{left:unset;right:unset;left:0;right:auto}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{left:unset;right:unset;left:0;right:auto}}}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}ion-backdrop{display:none;opacity:0.01;z-index:-1}@media (max-width: 340px){.menu-inner{--width:264px}}:host(.menu-type-reveal){z-index:0}:host(.menu-type-reveal.show-menu) .menu-inner{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}:host(.menu-pane-visible){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width, var(--width));min-width:var(--side-min-width, var(--min-width));max-width:var(--side-max-width, var(--max-width))}:host(.menu-pane-visible.split-pane-side){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none;box-shadow:none;z-index:0}:host(.menu-pane-visible.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}:host(.menu-pane-visible.split-pane-side){-ms-flex-order:-1;order:-1}:host(.menu-pane-visible.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}:host(.menu-pane-visible) ion-backdrop{display:hidden !important}:host(.menu-pane-visible.split-pane-side){-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-pane-visible.split-pane-side[side=end]){-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-type-push){z-index:1000}:host(.menu-type-push) .show-backdrop{display:block}";
24
24
 
25
- const menuMdCss = ":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{-webkit-transform:translateX(-9999px);transform:translateX(-9999px);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:strict}:host(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}}@supports not (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{left:0;right:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{left:unset;right:unset;left:auto;right:0}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{left:unset;right:unset;left:auto;right:0}}}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}}@supports not (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{left:auto;right:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{left:unset;right:unset;left:0;right:auto}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{left:unset;right:unset;left:0;right:auto}}}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}ion-backdrop{display:none;opacity:0.01;z-index:-1}@media (max-width: 340px){.menu-inner{--width:264px}}:host(.menu-type-reveal){z-index:0}:host(.menu-type-reveal.show-menu) .menu-inner{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}:host(.menu-pane-visible){width:var(--width);min-width:var(--min-width);max-width:var(--max-width)}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}:host(.menu-pane-visible) ion-backdrop{display:hidden !important}:host(.menu-type-overlay) .menu-inner{-webkit-box-shadow:4px 0px 16px rgba(0, 0, 0, 0.18);box-shadow:4px 0px 16px rgba(0, 0, 0, 0.18)}";
25
+ const menuMdCss = ":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{-webkit-transform:translateX(-9999px);transform:translateX(-9999px);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:strict}:host(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}}@supports not (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{left:0;right:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{left:unset;right:unset;left:auto;right:0}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{left:unset;right:unset;left:auto;right:0}}}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}}@supports not (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{left:auto;right:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{left:unset;right:unset;left:0;right:auto}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{left:unset;right:unset;left:0;right:auto}}}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}ion-backdrop{display:none;opacity:0.01;z-index:-1}@media (max-width: 340px){.menu-inner{--width:264px}}:host(.menu-type-reveal){z-index:0}:host(.menu-type-reveal.show-menu) .menu-inner{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}:host(.menu-pane-visible){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width, var(--width));min-width:var(--side-min-width, var(--min-width));max-width:var(--side-max-width, var(--max-width))}:host(.menu-pane-visible.split-pane-side){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none;box-shadow:none;z-index:0}:host(.menu-pane-visible.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}:host(.menu-pane-visible.split-pane-side){-ms-flex-order:-1;order:-1}:host(.menu-pane-visible.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}:host(.menu-pane-visible) ion-backdrop{display:hidden !important}:host(.menu-pane-visible.split-pane-side){-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-pane-visible.split-pane-side[side=end]){-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-type-overlay) .menu-inner{-webkit-box-shadow:4px 0px 16px rgba(0, 0, 0, 0.18);box-shadow:4px 0px 16px rgba(0, 0, 0, 0.18)}";
26
26
 
27
27
  const iosEasing = 'cubic-bezier(0.32,0.72,0,1)';
28
28
  const mdEasing = 'cubic-bezier(0.0,0.0,0.2,1)';
@@ -152,6 +152,19 @@ const Menu = class {
152
152
  }
153
153
  async componentDidLoad() {
154
154
  this.didLoad = true;
155
+ /**
156
+ * A menu inside of a split pane is assumed
157
+ * to be a side pane.
158
+ *
159
+ * When the menu is loaded it needs to
160
+ * see if it should be considered visible inside
161
+ * of the split pane. If the split pane is
162
+ * hidden then the menu should be too.
163
+ */
164
+ const splitPane = this.el.closest('ion-split-pane');
165
+ if (splitPane !== null) {
166
+ this.isPaneVisible = await splitPane.isVisible();
167
+ }
155
168
  this.menuChanged();
156
169
  this.updateState();
157
170
  }
@@ -187,20 +200,11 @@ const Menu = class {
187
200
  this.contentEl = undefined;
188
201
  }
189
202
  onSplitPaneChanged(ev) {
190
- const { target } = ev;
191
203
  const closestSplitPane = this.el.closest('ion-split-pane');
192
- /**
193
- * Menu listens on the body for "ionSplitPaneVisible".
194
- * However, this means the callback will run any time
195
- * a SplitPane changes visibility. As a result, we only want
196
- * Menu's visibility state to update if its parent SplitPane
197
- * changes visibility.
198
- */
199
- if (target !== closestSplitPane) {
200
- return;
204
+ if (closestSplitPane !== null && closestSplitPane === ev.target) {
205
+ this.isPaneVisible = ev.detail.visible;
206
+ this.updateState();
201
207
  }
202
- this.isPaneVisible = ev.detail.isPane(this.el);
203
- this.updateState();
204
208
  }
205
209
  onBackdropClick(ev) {
206
210
  // TODO(FW-2832): type (CustomEvent triggers errors which should be sorted)
@@ -607,7 +611,7 @@ const Menu = class {
607
611
  }
608
612
  }
609
613
  render() {
610
- const { type, disabled, isPaneVisible, inheritedAttributes, side } = this;
614
+ const { type, disabled, el, isPaneVisible, inheritedAttributes, side } = this;
611
615
  const mode = ionicGlobal.getIonMode(this);
612
616
  return (index.h(index.Host, { role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
613
617
  [mode]: true,
@@ -615,6 +619,7 @@ const Menu = class {
615
619
  'menu-enabled': !disabled,
616
620
  [`menu-side-${side}`]: true,
617
621
  'menu-pane-visible': isPaneVisible,
622
+ 'split-pane-side': theme.hostContext('ion-split-pane', el),
618
623
  } }, index.h("div", { class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, index.h("slot", null)), index.h("ion-backdrop", { ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
619
624
  }
620
625
  get el() { return index.getElement(this); }
@@ -8,9 +8,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
8
8
  const index = require('./index-50dcfe2f.js');
9
9
  const ionicGlobal = require('./ionic-global-a4edbf03.js');
10
10
 
11
- const splitPaneIosCss = ":host{--side-width:100%;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;contain:strict}::slotted(ion-menu.menu-pane-visible){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width);min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.split-pane-visible) ::slotted(.split-pane-side),:host(.split-pane-visible) ::slotted(.split-pane-main){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none;box-shadow:none;z-index:0}:host(.split-pane-visible) ::slotted(.split-pane-main){-ms-flex:1;flex:1}:host(.split-pane-visible) ::slotted(.split-pane-side:not(ion-menu)),:host(.split-pane-visible) ::slotted(ion-menu.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}::slotted(.split-pane-side:not(ion-menu)){display:none}:host(.split-pane-visible) ::slotted(.split-pane-side){-ms-flex-order:-1;order:-1}:host(.split-pane-visible) ::slotted(.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host{--border:0.55px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));--side-min-width:270px;--side-max-width:28%}:host(.split-pane-visible) ::slotted(.split-pane-side){-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.split-pane-visible) ::slotted(.split-pane-side[side=end]){-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}";
11
+ const splitPaneIosCss = ":host{--side-width:100%;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;contain:strict}:host(.split-pane-visible) ::slotted(.split-pane-main){left:0;right:0;top:0;bottom:0;position:relative;-ms-flex:1;flex:1;-webkit-box-shadow:none;box-shadow:none;z-index:0}::slotted(.split-pane-side:not(ion-menu)){display:none}:host{--border:0.55px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));--side-min-width:270px;--side-max-width:28%}";
12
12
 
13
- const splitPaneMdCss = ":host{--side-width:100%;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;contain:strict}::slotted(ion-menu.menu-pane-visible){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width);min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.split-pane-visible) ::slotted(.split-pane-side),:host(.split-pane-visible) ::slotted(.split-pane-main){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none;box-shadow:none;z-index:0}:host(.split-pane-visible) ::slotted(.split-pane-main){-ms-flex:1;flex:1}:host(.split-pane-visible) ::slotted(.split-pane-side:not(ion-menu)),:host(.split-pane-visible) ::slotted(ion-menu.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}::slotted(.split-pane-side:not(ion-menu)){display:none}:host(.split-pane-visible) ::slotted(.split-pane-side){-ms-flex-order:-1;order:-1}:host(.split-pane-visible) ::slotted(.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host{--border:1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));--side-min-width:270px;--side-max-width:28%}:host(.split-pane-visible) ::slotted(.split-pane-side){-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.split-pane-visible) ::slotted(.split-pane-side[side=end]){-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}";
13
+ const splitPaneMdCss = ":host{--side-width:100%;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;contain:strict}:host(.split-pane-visible) ::slotted(.split-pane-main){left:0;right:0;top:0;bottom:0;position:relative;-ms-flex:1;flex:1;-webkit-box-shadow:none;box-shadow:none;z-index:0}::slotted(.split-pane-side:not(ion-menu)){display:none}:host{--border:1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));--side-min-width:270px;--side-max-width:28%}";
14
14
 
15
15
  // TODO(FW-2832): types
16
16
  const SPLIT_PANE_MAIN = 'split-pane-main';
@@ -33,8 +33,13 @@ const SplitPane = class {
33
33
  this.when = QUERY['lg'];
34
34
  }
35
35
  visibleChanged(visible) {
36
- const detail = { visible, isPane: this.isPane.bind(this) };
37
- this.ionSplitPaneVisible.emit(detail);
36
+ this.ionSplitPaneVisible.emit({ visible });
37
+ }
38
+ /**
39
+ * @internal
40
+ */
41
+ async isVisible() {
42
+ return Promise.resolve(this.visible);
38
43
  }
39
44
  async connectedCallback() {
40
45
  // TODO: connectedCallback is fired in CE build
@@ -42,7 +47,7 @@ const SplitPane = class {
42
47
  if (typeof customElements !== 'undefined' && customElements != null) {
43
48
  await customElements.whenDefined('ion-split-pane');
44
49
  }
45
- this.styleChildren();
50
+ this.styleMainElement();
46
51
  this.updateState();
47
52
  }
48
53
  disconnectedCallback() {
@@ -85,13 +90,16 @@ const SplitPane = class {
85
90
  this.visible = mediaList.matches;
86
91
  }
87
92
  }
88
- isPane(element) {
89
- if (!this.visible) {
90
- return false;
91
- }
92
- return element.parentElement === this.el && element.classList.contains(SPLIT_PANE_SIDE);
93
- }
94
- styleChildren() {
93
+ /**
94
+ * Attempt to find the main content
95
+ * element inside of the split pane.
96
+ * If found, set it as the main node.
97
+ *
98
+ * We assume that the main node
99
+ * is available in the DOM on split
100
+ * pane load.
101
+ */
102
+ styleMainElement() {
95
103
  const contentId = this.contentId;
96
104
  const children = this.el.children;
97
105
  const nu = this.el.childElementCount;
@@ -104,9 +112,11 @@ const SplitPane = class {
104
112
  console.warn('split pane cannot have more than one main node');
105
113
  return;
106
114
  }
107
- foundMain = true;
115
+ else {
116
+ setPaneClass(child, isMain);
117
+ foundMain = true;
118
+ }
108
119
  }
109
- setPaneClass(child, isMain);
110
120
  }
111
121
  if (!foundMain) {
112
122
  console.warn('split pane does not have a specified main node');