@ionic/core 8.7.11-dev.11763677588.1682e25d → 8.7.11-dev.11764064220.1dd0c849

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.
@@ -4,7 +4,7 @@
4
4
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
5
5
  import { d as inheritAttributes } from './helpers.js';
6
6
  import { c as config } from './index4.js';
7
- import { b as getIonTheme } from './ionic-global.js';
7
+ import { b as getIonTheme, c as getIonMode } from './ionic-global.js';
8
8
  import { d as defineCustomElement$2 } from './ripple-effect.js';
9
9
 
10
10
  const tabButtonIonicCss = ":host{--ripple-color:var(--color-selected);--background-focused-opacity:1;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;height:100%;outline:none;background:var(--background);color:var(--color)}.button-native{display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:inherit;flex-direction:inherit;-ms-flex-align:inherit;align-items:inherit;-ms-flex-pack:inherit;justify-content:inherit;width:100%;height:100%;border:0;outline:none;background:transparent;text-decoration:none;cursor:pointer;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-user-drag:none}.button-inner{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:inherit;flex-flow:inherit;-ms-flex-align:inherit;align-items:inherit;-ms-flex-pack:inherit;justify-content:inherit;width:100%;height:100%;z-index:1}:host(.ion-focused) .button-native{color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}@media (any-hover: hover){a:hover{color:var(--color-selected)}}:host(.tab-selected){color:var(--color-selected)}:host(.tab-hidden){display:none !important}::slotted(ion-label),::slotted(ion-icon){display:block;-ms-flex-item-align:center;align-self:center;max-width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}::slotted(ion-label){-ms-flex-order:0;order:0}::slotted(ion-icon){-ms-flex-order:-1;order:-1;height:1em}:host(.tab-has-label-only) ::slotted(ion-label){white-space:normal}::slotted(ion-badge){-webkit-box-sizing:border-box;box-sizing:border-box;position:absolute;z-index:1}:host(.tab-layout-icon-start){-ms-flex-direction:row;flex-direction:row}:host(.tab-layout-icon-end){-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.tab-layout-icon-bottom){-ms-flex-direction:column-reverse;flex-direction:column-reverse}:host(.tab-layout-icon-hide) ::slotted(ion-icon){display:none}:host(.tab-layout-label-hide) ::slotted(ion-label){display:none}ion-ripple-effect{color:var(--ripple-color)}:host{--focus-ring-color:var(--token-border-focus-default, var(--token-primitives-blue-400, #b5c0f7));--focus-ring-width:var(--token-border-radius-025, var(--token-scale-050, 2px));font-size:var(--token-font-size-300, 12px);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-1, 1%);line-height:var(--token-font-line-height-500, var(--token-scale-500, 20px));text-decoration:none;text-transform:none;position:relative;-ms-flex-line-pack:center;align-content:center;min-width:var(--token-scale-1200, 48px);min-height:var(--token-scale-1200, 48px);max-height:var(--token-scale-1800, 72px)}.button-native{border-radius:inherit;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-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);color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;white-space:inherit;overflow:visible}.button-native::after{right:0;left:0;top:0;bottom:0;position:absolute;content:\"\";opacity:0}:host(.tab-disabled)::after{right:0;left:0;top:0;bottom:0;position:absolute;background-color:var(--token-state-disabled, rgba(255, 255, 255, 0.6));content:\"\";pointer-events:none;z-index:1}.button-native{min-width:var(--token-scale-1200, 48px);overflow:visible}.button-native::after{border-radius:inherit}:host(.ion-focused) .button-native::after{outline:var(--focus-ring-width) solid var(--focus-ring-color)}:host(.ion-activated) .button-native::after{background:var(--background-activated);opacity:var(--background-activated-opacity)}::slotted(ion-icon){width:var(--token-scale-600, 24px);height:var(--token-scale-600, 24px)}:host(.tab-button-shape-soft){border-radius:var(--token-border-radius-200, var(--token-scale-200, 8px))}:host(.tab-button-shape-round){border-radius:var(--token-border-radius-400, var(--token-scale-400, 16px))}:host(.tab-button-shape-rectangular){border-radius:var(--token-border-radius-0, var(--token-scale-0, 0px))}:host ::slotted(ion-badge){inset-inline-start:calc(50% + var(--token-scale-300, 12px))}:host ::slotted(ion-badge.badge-vertical-top){top:-2px}:host ::slotted(ion-badge.badge-vertical-top:empty){top:calc(var(--token-scale-100, 4px) * -1)}:host ::slotted(ion-badge.badge-vertical-bottom){top:calc(50% - var(--token-scale-200, 8px))}:host ::slotted(ion-badge.badge-vertical-bottom:empty){top:calc(50% - var(--token-scale-100, 4px))}:host ::slotted(ion-badge[vertical]:not(:empty)){-webkit-padding-start:var(--token-scale-100, 4px);padding-inline-start:var(--token-scale-100, 4px);-webkit-padding-end:var(--token-scale-100, 4px);padding-inline-end:var(--token-scale-100, 4px);padding-top:var(--token-scale-100, 4px);padding-bottom:var(--token-scale-100, 4px);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}:host(.tab-layout-icon-bottom) ::slotted(ion-badge.badge-vertical-top){top:calc(50% - var(--token-scale-100, 4px))}:host(.tab-layout-icon-bottom) ::slotted(ion-badge.badge-vertical-bottom){top:calc(50% + var(--token-scale-100, 4px))}:host(.tab-layout-icon-bottom) ::slotted(ion-badge.badge-vertical-bottom:empty){top:calc(50% + 14px)}";
@@ -82,17 +82,26 @@ const TabButton = /*@__PURE__*/ proxyCustomElement(class TabButton extends HTMLE
82
82
  get hasIcon() {
83
83
  return !!this.el.querySelector('ion-icon');
84
84
  }
85
+ canActivate() {
86
+ const theme = getIonTheme(this);
87
+ const mode = getIonMode(this);
88
+ if (theme !== 'ionic') {
89
+ return true;
90
+ }
91
+ return mode === 'md';
92
+ }
85
93
  render() {
86
94
  const { disabled, hasIcon, hasLabel, href, rel, target, layout, selected, tab, inheritedAttributes } = this;
87
95
  const theme = getIonTheme(this);
88
96
  const shape = this.getShape();
97
+ const canActivate = this.canActivate();
89
98
  const attrs = {
90
99
  download: this.download,
91
100
  href,
92
101
  rel,
93
102
  target,
94
103
  };
95
- return (h(Host, { key: '848ea6fa1aff3e7ac9add43a6acb50759653c13b', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
104
+ return (h(Host, { key: '5a32785eaf0570cdc3444d52ce8bba8174c3e0b9', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
96
105
  [theme]: true,
97
106
  'tab-selected': selected,
98
107
  'tab-disabled': disabled,
@@ -101,11 +110,11 @@ const TabButton = /*@__PURE__*/ proxyCustomElement(class TabButton extends HTMLE
101
110
  'tab-has-label-only': hasLabel && !hasIcon,
102
111
  'tab-has-icon-only': hasIcon && !hasLabel,
103
112
  [`tab-layout-${layout}`]: true,
104
- 'ion-activatable': true,
113
+ 'ion-activatable': canActivate,
105
114
  'ion-selectable': true,
106
115
  [`tab-button-shape-${shape}`]: shape !== undefined,
107
116
  'ion-focusable': true,
108
- } }, h("a", Object.assign({ key: 'f6081f8ef0220a2b5e232f6b51da8538d68a3e80' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), h("span", { key: 'ed8af45092210cfd868adb4eb57dfc6e13a873a0', class: "button-inner" }, h("slot", { key: '253fcce3a920b9d2cae5af2a14872b1e127c7d62' })), theme === 'md' && h("ion-ripple-effect", { key: '5161991db4e08d16da5d0838fe2aee145afd91ad', type: "unbounded" }))));
117
+ } }, h("a", Object.assign({ key: '1441f409b4a60823a57f27b90f6840b557b7d65a' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), h("span", { key: '1566ca0af66b6e51068aca221a89133d2af061ed', class: "button-inner" }, h("slot", { key: '757878091cfe3768107eb0a53b8d1c895ce43399' })), theme === 'md' && h("ion-ripple-effect", { key: '28dde3e7127bdc9d5e1477b47458a5a4ab71328e', type: "unbounded" }))));
109
118
  }
110
119
  get el() { return this; }
111
120
  static get style() { return {
@@ -7,7 +7,7 @@ import { d as inheritAttributes, r as raf } from './helpers.js';
7
7
  import { h as hostContext, c as createColorClasses, o as openURL } from './theme.js';
8
8
  import { f as chevronForward } from './index6.js';
9
9
  import { c as config } from './index4.js';
10
- import { b as getIonTheme } from './ionic-global.js';
10
+ import { b as getIonTheme, c as getIonMode } from './ionic-global.js';
11
11
  import { d as defineCustomElement$2 } from './icon.js';
12
12
  import { d as defineCustomElement$1 } from './ripple-effect.js';
13
13
 
@@ -149,7 +149,13 @@ const Item = /*@__PURE__*/ proxyCustomElement(class Item extends HTMLElement {
149
149
  return this.href !== undefined || this.button;
150
150
  }
151
151
  canActivate() {
152
- return this.isClickable() || this.hasCover();
152
+ const theme = getIonTheme(this);
153
+ const mode = getIonMode(this);
154
+ const shouldActivate = this.isClickable() || this.hasCover();
155
+ if (theme !== 'ionic') {
156
+ return shouldActivate;
157
+ }
158
+ return mode === 'md' && shouldActivate;
153
159
  }
154
160
  isFocusable() {
155
161
  const focusableChild = this.el.querySelector('.ion-focusable');
@@ -260,7 +266,7 @@ const Item = /*@__PURE__*/ proxyCustomElement(class Item extends HTMLElement {
260
266
  * However, other form controls such as checkboxes and radios do.
261
267
  */
262
268
  const firstInteractiveNeedsPointerCursor = firstInteractive !== undefined && !['ION-INPUT', 'ION-TEXTAREA'].includes(firstInteractive.tagName);
263
- return (h(Host, { key: '8d9ebb0abbf431db0584ce12d5ae9b1044b90e55', "aria-disabled": ariaDisabled, class: Object.assign(Object.assign(Object.assign({}, childStyles), labelColorStyles), createColorClasses(this.color, {
269
+ return (h(Host, { key: '9bb45fbe33fab3adb57da6c5fe3ab4b4f85b2fdb', "aria-disabled": ariaDisabled, class: Object.assign(Object.assign(Object.assign({}, childStyles), labelColorStyles), createColorClasses(this.color, {
264
270
  item: true,
265
271
  [theme]: true,
266
272
  'item-lines-default': lines === undefined,
@@ -273,7 +279,7 @@ const Item = /*@__PURE__*/ proxyCustomElement(class Item extends HTMLElement {
273
279
  'ion-activatable': canActivate,
274
280
  'ion-focusable': this.focusable,
275
281
  'item-rtl': document.dir === 'rtl',
276
- })), role: inList ? 'listitem' : null }, h(TagType, Object.assign({ key: 'eb4e11d09f180aa9ff79f9a3f6fe56d8b1706640' }, attrs, inheritedAriaAttributes, { class: "item-native", part: "native", disabled: disabled }, clickFn), h("slot", { key: 'a29ad22da5c8925b81abbe2abd91817d3bd412e7', name: "start", onSlotchange: this.updateInteractivityOnSlotChange }), h("div", { key: '1d501a275bd58831ce09eb5e1615bad58e351190', class: "item-inner" }, h("div", { key: '3e3b4bf4859704b228cbd867c47caea5bdb92e96', class: "input-wrapper" }, h("slot", { key: '663305e080b0fd69e3bd2a56d49762dcc6a388f7', onSlotchange: this.updateInteractivityOnSlotChange })), h("slot", { key: '1e21ac996c488cc7839b3849ad34ef4371836d2d', name: "end", onSlotchange: this.updateInteractivityOnSlotChange }), showDetail && (h("ion-icon", { key: 'b718235562f563d742927004c0a53a4925d7ea5e', icon: itemDetailIcon, lazy: false, class: "item-detail-icon", part: "detail-icon", "aria-hidden": "true", "flip-rtl": shouldFlipIcon }))), canActivate && theme === 'md' && h("ion-ripple-effect", { key: '221ea4d68352d8f3184d3d0381b78180a0000793' }))));
282
+ })), role: inList ? 'listitem' : null }, h(TagType, Object.assign({ key: '0118a0b7bc4b78b210ae03981c03a7ede170333b' }, attrs, inheritedAriaAttributes, { class: "item-native", part: "native", disabled: disabled }, clickFn), h("slot", { key: '0b4891b9334172929cd5a3f361b33f0f9e830c9e', name: "start", onSlotchange: this.updateInteractivityOnSlotChange }), h("div", { key: '16128a1269cf59dedce8a5c66a4f9062e2ce23a2', class: "item-inner" }, h("div", { key: '53ae7202232d7145b4d81fdc8c1fff0a13e92e8b', class: "input-wrapper" }, h("slot", { key: '6726b19a45bea9c76b3429b97091c3467f34ee7b', onSlotchange: this.updateInteractivityOnSlotChange })), h("slot", { key: '07825d01d5e1ed427bc58c4367f05b14dc670f22', name: "end", onSlotchange: this.updateInteractivityOnSlotChange }), showDetail && (h("ion-icon", { key: '7d044035b257dbcecbc0c150e512a6570a48c871', icon: itemDetailIcon, lazy: false, class: "item-detail-icon", part: "detail-icon", "aria-hidden": "true", "flip-rtl": shouldFlipIcon }))), canActivate && theme === 'md' && h("ion-ripple-effect", { key: 'f7578981817b9244b9445c562e0f3d1148e2b455' }))));
277
283
  }
278
284
  get el() { return this; }
279
285
  static get watchers() { return {
@@ -145,7 +145,13 @@ const Item = class {
145
145
  return this.href !== undefined || this.button;
146
146
  }
147
147
  canActivate() {
148
- return this.isClickable() || this.hasCover();
148
+ const theme = ionicGlobal.getIonTheme(this);
149
+ const mode = ionicGlobal.getIonMode(this);
150
+ const shouldActivate = this.isClickable() || this.hasCover();
151
+ if (theme !== 'ionic') {
152
+ return shouldActivate;
153
+ }
154
+ return mode === 'md' && shouldActivate;
149
155
  }
150
156
  isFocusable() {
151
157
  const focusableChild = this.el.querySelector('.ion-focusable');
@@ -256,7 +262,7 @@ const Item = class {
256
262
  * However, other form controls such as checkboxes and radios do.
257
263
  */
258
264
  const firstInteractiveNeedsPointerCursor = firstInteractive !== undefined && !['ION-INPUT', 'ION-TEXTAREA'].includes(firstInteractive.tagName);
259
- return (index.h(index.Host, { key: '8d9ebb0abbf431db0584ce12d5ae9b1044b90e55', "aria-disabled": ariaDisabled, class: Object.assign(Object.assign(Object.assign({}, childStyles), labelColorStyles), theme.createColorClasses(this.color, {
265
+ return (index.h(index.Host, { key: '9bb45fbe33fab3adb57da6c5fe3ab4b4f85b2fdb', "aria-disabled": ariaDisabled, class: Object.assign(Object.assign(Object.assign({}, childStyles), labelColorStyles), theme.createColorClasses(this.color, {
260
266
  item: true,
261
267
  [theme$1]: true,
262
268
  'item-lines-default': lines === undefined,
@@ -269,7 +275,7 @@ const Item = class {
269
275
  'ion-activatable': canActivate,
270
276
  'ion-focusable': this.focusable,
271
277
  'item-rtl': document.dir === 'rtl',
272
- })), role: inList ? 'listitem' : null }, index.h(TagType, Object.assign({ key: 'eb4e11d09f180aa9ff79f9a3f6fe56d8b1706640' }, attrs, inheritedAriaAttributes, { class: "item-native", part: "native", disabled: disabled }, clickFn), index.h("slot", { key: 'a29ad22da5c8925b81abbe2abd91817d3bd412e7', name: "start", onSlotchange: this.updateInteractivityOnSlotChange }), index.h("div", { key: '1d501a275bd58831ce09eb5e1615bad58e351190', class: "item-inner" }, index.h("div", { key: '3e3b4bf4859704b228cbd867c47caea5bdb92e96', class: "input-wrapper" }, index.h("slot", { key: '663305e080b0fd69e3bd2a56d49762dcc6a388f7', onSlotchange: this.updateInteractivityOnSlotChange })), index.h("slot", { key: '1e21ac996c488cc7839b3849ad34ef4371836d2d', name: "end", onSlotchange: this.updateInteractivityOnSlotChange }), showDetail && (index.h("ion-icon", { key: 'b718235562f563d742927004c0a53a4925d7ea5e', icon: itemDetailIcon, lazy: false, class: "item-detail-icon", part: "detail-icon", "aria-hidden": "true", "flip-rtl": shouldFlipIcon }))), canActivate && theme$1 === 'md' && index.h("ion-ripple-effect", { key: '221ea4d68352d8f3184d3d0381b78180a0000793' }))));
278
+ })), role: inList ? 'listitem' : null }, index.h(TagType, Object.assign({ key: '0118a0b7bc4b78b210ae03981c03a7ede170333b' }, attrs, inheritedAriaAttributes, { class: "item-native", part: "native", disabled: disabled }, clickFn), index.h("slot", { key: '0b4891b9334172929cd5a3f361b33f0f9e830c9e', name: "start", onSlotchange: this.updateInteractivityOnSlotChange }), index.h("div", { key: '16128a1269cf59dedce8a5c66a4f9062e2ce23a2', class: "item-inner" }, index.h("div", { key: '53ae7202232d7145b4d81fdc8c1fff0a13e92e8b', class: "input-wrapper" }, index.h("slot", { key: '6726b19a45bea9c76b3429b97091c3467f34ee7b', onSlotchange: this.updateInteractivityOnSlotChange })), index.h("slot", { key: '07825d01d5e1ed427bc58c4367f05b14dc670f22', name: "end", onSlotchange: this.updateInteractivityOnSlotChange }), showDetail && (index.h("ion-icon", { key: '7d044035b257dbcecbc0c150e512a6570a48c871', icon: itemDetailIcon, lazy: false, class: "item-detail-icon", part: "detail-icon", "aria-hidden": "true", "flip-rtl": shouldFlipIcon }))), canActivate && theme$1 === 'md' && index.h("ion-ripple-effect", { key: 'f7578981817b9244b9445c562e0f3d1148e2b455' }))));
273
279
  }
274
280
  get el() { return index.getElement(this); }
275
281
  static get watchers() { return {
@@ -193,17 +193,26 @@ const TabButton = class {
193
193
  get hasIcon() {
194
194
  return !!this.el.querySelector('ion-icon');
195
195
  }
196
+ canActivate() {
197
+ const theme = ionicGlobal.getIonTheme(this);
198
+ const mode = ionicGlobal.getIonMode(this);
199
+ if (theme !== 'ionic') {
200
+ return true;
201
+ }
202
+ return mode === 'md';
203
+ }
196
204
  render() {
197
205
  const { disabled, hasIcon, hasLabel, href, rel, target, layout, selected, tab, inheritedAttributes } = this;
198
206
  const theme = ionicGlobal.getIonTheme(this);
199
207
  const shape = this.getShape();
208
+ const canActivate = this.canActivate();
200
209
  const attrs = {
201
210
  download: this.download,
202
211
  href,
203
212
  rel,
204
213
  target,
205
214
  };
206
- return (index.h(index.Host, { key: '848ea6fa1aff3e7ac9add43a6acb50759653c13b', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
215
+ return (index.h(index.Host, { key: '5a32785eaf0570cdc3444d52ce8bba8174c3e0b9', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
207
216
  [theme]: true,
208
217
  'tab-selected': selected,
209
218
  'tab-disabled': disabled,
@@ -212,11 +221,11 @@ const TabButton = class {
212
221
  'tab-has-label-only': hasLabel && !hasIcon,
213
222
  'tab-has-icon-only': hasIcon && !hasLabel,
214
223
  [`tab-layout-${layout}`]: true,
215
- 'ion-activatable': true,
224
+ 'ion-activatable': canActivate,
216
225
  'ion-selectable': true,
217
226
  [`tab-button-shape-${shape}`]: shape !== undefined,
218
227
  'ion-focusable': true,
219
- } }, index.h("a", Object.assign({ key: 'f6081f8ef0220a2b5e232f6b51da8538d68a3e80' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), index.h("span", { key: 'ed8af45092210cfd868adb4eb57dfc6e13a873a0', class: "button-inner" }, index.h("slot", { key: '253fcce3a920b9d2cae5af2a14872b1e127c7d62' })), theme === 'md' && index.h("ion-ripple-effect", { key: '5161991db4e08d16da5d0838fe2aee145afd91ad', type: "unbounded" }))));
228
+ } }, index.h("a", Object.assign({ key: '1441f409b4a60823a57f27b90f6840b557b7d65a' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), index.h("span", { key: '1566ca0af66b6e51068aca221a89133d2af061ed', class: "button-inner" }, index.h("slot", { key: '757878091cfe3768107eb0a53b8d1c895ce43399' })), theme === 'md' && index.h("ion-ripple-effect", { key: '28dde3e7127bdc9d5e1477b47458a5a4ab71328e', type: "unbounded" }))));
220
229
  }
221
230
  get el() { return index.getElement(this); }
222
231
  };
@@ -7,7 +7,7 @@ import { inheritAttributes, raf } from "../../utils/helpers";
7
7
  import { createColorClasses, hostContext, openURL } from "../../utils/theme";
8
8
  import { chevronForward } from "ionicons/icons";
9
9
  import { config } from "../../global/config";
10
- import { getIonTheme } from "../../global/ionic-global";
10
+ import { getIonMode, getIonTheme } from "../../global/ionic-global";
11
11
  /**
12
12
  * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
13
13
  * @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
@@ -146,7 +146,13 @@ export class Item {
146
146
  return this.href !== undefined || this.button;
147
147
  }
148
148
  canActivate() {
149
- return this.isClickable() || this.hasCover();
149
+ const theme = getIonTheme(this);
150
+ const mode = getIonMode(this);
151
+ const shouldActivate = this.isClickable() || this.hasCover();
152
+ if (theme !== 'ionic') {
153
+ return shouldActivate;
154
+ }
155
+ return mode === 'md' && shouldActivate;
150
156
  }
151
157
  isFocusable() {
152
158
  const focusableChild = this.el.querySelector('.ion-focusable');
@@ -257,7 +263,7 @@ export class Item {
257
263
  * However, other form controls such as checkboxes and radios do.
258
264
  */
259
265
  const firstInteractiveNeedsPointerCursor = firstInteractive !== undefined && !['ION-INPUT', 'ION-TEXTAREA'].includes(firstInteractive.tagName);
260
- return (h(Host, { key: '8d9ebb0abbf431db0584ce12d5ae9b1044b90e55', "aria-disabled": ariaDisabled, class: Object.assign(Object.assign(Object.assign({}, childStyles), labelColorStyles), createColorClasses(this.color, {
266
+ return (h(Host, { key: '9bb45fbe33fab3adb57da6c5fe3ab4b4f85b2fdb', "aria-disabled": ariaDisabled, class: Object.assign(Object.assign(Object.assign({}, childStyles), labelColorStyles), createColorClasses(this.color, {
261
267
  item: true,
262
268
  [theme]: true,
263
269
  'item-lines-default': lines === undefined,
@@ -270,7 +276,7 @@ export class Item {
270
276
  'ion-activatable': canActivate,
271
277
  'ion-focusable': this.focusable,
272
278
  'item-rtl': document.dir === 'rtl',
273
- })), role: inList ? 'listitem' : null }, h(TagType, Object.assign({ key: 'eb4e11d09f180aa9ff79f9a3f6fe56d8b1706640' }, attrs, inheritedAriaAttributes, { class: "item-native", part: "native", disabled: disabled }, clickFn), h("slot", { key: 'a29ad22da5c8925b81abbe2abd91817d3bd412e7', name: "start", onSlotchange: this.updateInteractivityOnSlotChange }), h("div", { key: '1d501a275bd58831ce09eb5e1615bad58e351190', class: "item-inner" }, h("div", { key: '3e3b4bf4859704b228cbd867c47caea5bdb92e96', class: "input-wrapper" }, h("slot", { key: '663305e080b0fd69e3bd2a56d49762dcc6a388f7', onSlotchange: this.updateInteractivityOnSlotChange })), h("slot", { key: '1e21ac996c488cc7839b3849ad34ef4371836d2d', name: "end", onSlotchange: this.updateInteractivityOnSlotChange }), showDetail && (h("ion-icon", { key: 'b718235562f563d742927004c0a53a4925d7ea5e', icon: itemDetailIcon, lazy: false, class: "item-detail-icon", part: "detail-icon", "aria-hidden": "true", "flip-rtl": shouldFlipIcon }))), canActivate && theme === 'md' && h("ion-ripple-effect", { key: '221ea4d68352d8f3184d3d0381b78180a0000793' }))));
279
+ })), role: inList ? 'listitem' : null }, h(TagType, Object.assign({ key: '0118a0b7bc4b78b210ae03981c03a7ede170333b' }, attrs, inheritedAriaAttributes, { class: "item-native", part: "native", disabled: disabled }, clickFn), h("slot", { key: '0b4891b9334172929cd5a3f361b33f0f9e830c9e', name: "start", onSlotchange: this.updateInteractivityOnSlotChange }), h("div", { key: '16128a1269cf59dedce8a5c66a4f9062e2ce23a2', class: "item-inner" }, h("div", { key: '53ae7202232d7145b4d81fdc8c1fff0a13e92e8b', class: "input-wrapper" }, h("slot", { key: '6726b19a45bea9c76b3429b97091c3467f34ee7b', onSlotchange: this.updateInteractivityOnSlotChange })), h("slot", { key: '07825d01d5e1ed427bc58c4367f05b14dc670f22', name: "end", onSlotchange: this.updateInteractivityOnSlotChange }), showDetail && (h("ion-icon", { key: '7d044035b257dbcecbc0c150e512a6570a48c871', icon: itemDetailIcon, lazy: false, class: "item-detail-icon", part: "detail-icon", "aria-hidden": "true", "flip-rtl": shouldFlipIcon }))), canActivate && theme === 'md' && h("ion-ripple-effect", { key: 'f7578981817b9244b9445c562e0f3d1148e2b455' }))));
274
280
  }
275
281
  static get is() { return "ion-item"; }
276
282
  static get encapsulation() { return "shadow"; }
@@ -4,7 +4,7 @@
4
4
  import { Host, h } from "@stencil/core";
5
5
  import { inheritAttributes } from "../../utils/helpers";
6
6
  import { config } from "../../global/config";
7
- import { getIonTheme } from "../../global/ionic-global";
7
+ import { getIonMode, getIonTheme } from "../../global/ionic-global";
8
8
  /**
9
9
  * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
10
10
  * @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
@@ -74,17 +74,26 @@ export class TabButton {
74
74
  get hasIcon() {
75
75
  return !!this.el.querySelector('ion-icon');
76
76
  }
77
+ canActivate() {
78
+ const theme = getIonTheme(this);
79
+ const mode = getIonMode(this);
80
+ if (theme !== 'ionic') {
81
+ return true;
82
+ }
83
+ return mode === 'md';
84
+ }
77
85
  render() {
78
86
  const { disabled, hasIcon, hasLabel, href, rel, target, layout, selected, tab, inheritedAttributes } = this;
79
87
  const theme = getIonTheme(this);
80
88
  const shape = this.getShape();
89
+ const canActivate = this.canActivate();
81
90
  const attrs = {
82
91
  download: this.download,
83
92
  href,
84
93
  rel,
85
94
  target,
86
95
  };
87
- return (h(Host, { key: '848ea6fa1aff3e7ac9add43a6acb50759653c13b', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
96
+ return (h(Host, { key: '5a32785eaf0570cdc3444d52ce8bba8174c3e0b9', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
88
97
  [theme]: true,
89
98
  'tab-selected': selected,
90
99
  'tab-disabled': disabled,
@@ -93,11 +102,11 @@ export class TabButton {
93
102
  'tab-has-label-only': hasLabel && !hasIcon,
94
103
  'tab-has-icon-only': hasIcon && !hasLabel,
95
104
  [`tab-layout-${layout}`]: true,
96
- 'ion-activatable': true,
105
+ 'ion-activatable': canActivate,
97
106
  'ion-selectable': true,
98
107
  [`tab-button-shape-${shape}`]: shape !== undefined,
99
108
  'ion-focusable': true,
100
- } }, h("a", Object.assign({ key: 'f6081f8ef0220a2b5e232f6b51da8538d68a3e80' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), h("span", { key: 'ed8af45092210cfd868adb4eb57dfc6e13a873a0', class: "button-inner" }, h("slot", { key: '253fcce3a920b9d2cae5af2a14872b1e127c7d62' })), theme === 'md' && h("ion-ripple-effect", { key: '5161991db4e08d16da5d0838fe2aee145afd91ad', type: "unbounded" }))));
109
+ } }, h("a", Object.assign({ key: '1441f409b4a60823a57f27b90f6840b557b7d65a' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), h("span", { key: '1566ca0af66b6e51068aca221a89133d2af061ed', class: "button-inner" }, h("slot", { key: '757878091cfe3768107eb0a53b8d1c895ce43399' })), theme === 'md' && h("ion-ripple-effect", { key: '28dde3e7127bdc9d5e1477b47458a5a4ab71328e', type: "unbounded" }))));
101
110
  }
102
111
  static get is() { return "ion-tab-button"; }
103
112
  static get encapsulation() { return "shadow"; }
package/dist/docs.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2025-11-20T22:28:43",
2
+ "timestamp": "2025-11-25T09:52:36",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.38.0",
@@ -6,7 +6,7 @@ import { c as caretRightSvg } from './caret-right-BYSs-jZz.js';
6
6
  import { b as inheritAttributes, r as raf } from './helpers-Bsml3FcE.js';
7
7
  import { h as hostContext, c as createColorClasses, o as openURL } from './theme-DiVJyqlX.js';
8
8
  import { o as chevronForward } from './index-COG0_eom.js';
9
- import { c as getIonTheme } from './ionic-global-2R0iPB51.js';
9
+ import { c as getIonTheme, b as getIonMode } from './ionic-global-2R0iPB51.js';
10
10
  import './focus-visible-vXpMhGrs.js';
11
11
 
12
12
  const itemIonicCss = ":host{--border-radius:0px;--border-width:0px;--border-style:solid;--padding-top:0px;--padding-bottom:0px;--padding-end:0px;--padding-start:0px;--inner-border-width:0px;--inner-padding-top:0px;--inner-padding-bottom:0px;--inner-padding-start:0px;--inner-padding-end:0px;--inner-box-shadow:none;--detail-icon-color:initial;--detail-icon-font-size:1.25em;--detail-icon-opacity:0.25;--color-activated:var(--color);--color-focused:var(--color);--color-hover:var(--color);--ripple-color:currentColor;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;outline:none;color:var(--color);text-align:initial;text-decoration:none;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.ion-activated) .item-native{color:var(--color-activated)}:host(.ion-activated) .item-native::after{background:var(--background-activated);opacity:var(--background-activated-opacity)}:host(.ion-focused) .item-native{color:var(--color-focused)}:host(.ion-focused) .item-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}@media (any-hover: hover){:host(.ion-activatable:not(.ion-focused):hover) .item-native{color:var(--color-hover)}:host(.ion-activatable:not(.ion-focused):hover) .item-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}}:host(.item-control-needs-pointer-cursor){cursor:pointer}:host(.item-interactive-disabled:not(.item-multiple-inputs)){cursor:default;pointer-events:none}:host(.item-disabled){cursor:default;opacity:0.3;pointer-events:none}.item-native{border-radius:var(--border-radius);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;white-space:inherit;padding-right:var(--padding-end);padding-left:calc(var(--padding-start) + var(--ion-safe-area-left, 0px));display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:inherit;align-items:inherit;-ms-flex-pack:inherit;justify-content:inherit;width:100%;min-height:var(--min-height);-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:var(--background);line-height:inherit;overflow:inherit;z-index:1;-webkit-box-sizing:border-box;box-sizing:border-box}:host-context([dir=rtl]) .item-native{padding-right:calc(var(--padding-start) + var(--ion-safe-area-right, 0px));padding-left:var(--padding-end)}[dir=rtl] .item-native{padding-right:calc(var(--padding-start) + var(--ion-safe-area-right, 0px));padding-left:var(--padding-end)}@supports selector(:dir(rtl)){.item-native:dir(rtl){padding-right:calc(var(--padding-start) + var(--ion-safe-area-right, 0px));padding-left:var(--padding-end)}}.item-native::-moz-focus-inner{border:0}.item-native::after{right:0;left:0;top:0;bottom:0;position:absolute;content:\"\";opacity:0;-webkit-transition:var(--transition);transition:var(--transition);z-index:-1}button,a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none}.item-inner{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-top:var(--inner-padding-top);padding-bottom:var(--inner-padding-bottom);padding-right:calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));padding-left:var(--inner-padding-start);display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-direction:inherit;flex-direction:inherit;-ms-flex-align:inherit;align-items:inherit;-ms-flex-item-align:stretch;align-self:stretch;min-height:inherit;border-width:var(--inner-border-width);border-style:var(--border-style);border-color:var(--border-color);-webkit-box-shadow:var(--inner-box-shadow);box-shadow:var(--inner-box-shadow);overflow:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}:host-context([dir=rtl]) .item-inner{padding-right:var(--inner-padding-start);padding-left:calc(var(--ion-safe-area-left, 0px) + var(--inner-padding-end))}[dir=rtl] .item-inner{padding-right:var(--inner-padding-start);padding-left:calc(var(--ion-safe-area-left, 0px) + var(--inner-padding-end))}@supports selector(:dir(rtl)){.item-inner:dir(rtl){padding-right:var(--inner-padding-start);padding-left:calc(var(--ion-safe-area-left, 0px) + var(--inner-padding-end))}}.item-detail-icon{-webkit-margin-start:calc(var(--inner-padding-end) / 2);margin-inline-start:calc(var(--inner-padding-end) / 2);-webkit-margin-end:-6px;margin-inline-end:-6px;color:var(--detail-icon-color);font-size:var(--detail-icon-font-size);opacity:var(--detail-icon-opacity)}::slotted(ion-icon){font-size:1.6em}::slotted(ion-button){--margin-top:0;--margin-bottom:0;--margin-start:0;--margin-end:0;z-index:1}::slotted(ion-label:not([slot=end])){-ms-flex:1;flex:1;width:-webkit-min-content;width:-moz-min-content;width:min-content;max-width:100%}:host(.item-input){-ms-flex-align:center;align-items:center}.input-wrapper{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:inherit;flex-direction:inherit;-ms-flex-align:inherit;align-items:inherit;-ms-flex-item-align:stretch;align-self:stretch;text-overflow:ellipsis;overflow:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.item-label-stacked),:host(.item-label-floating){-ms-flex-align:start;align-items:start}:host(.item-label-stacked) .input-wrapper,:host(.item-label-floating) .input-wrapper{-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column}:host(.item-multiple-inputs) ::slotted(ion-checkbox),:host(.item-multiple-inputs) ::slotted(ion-datetime),:host(.item-multiple-inputs) ::slotted(ion-radio){position:relative}:host(.item-textarea){-ms-flex-align:stretch;align-items:stretch}::slotted(ion-reorder[slot]){margin-top:0;margin-bottom:0}ion-ripple-effect{color:var(--ripple-color)}:host{--background:var(--token-bg-surface-default, var(--token-primitives-base-white, #ffffff));--background-activated:var(--token-bg-select-default, var(--token-semantics-primary-100, var(--token-primitives-blue-100, #e9ecfc)));--border-color:var(--token-primitives-neutral-300, #e0e0e0);--border-style:var(--token-border-style-solid, solid);--border-width:0 0 var(--token-border-size-025, var(--token-scale-025, 1px)) 0;--color:var(--token-text-default, var(--token-primitives-neutral-1200, #242424));--detail-icon-font-size:var(--token-scale-600, 24px);--detail-icon-opacity:1;--min-height:var(--token-scale-1800, 72px);--padding-top:var(--token-space-200, var(--token-scale-200, 8px));--padding-end:var(--token-space-400, var(--token-scale-400, 16px));--padding-bottom:var(--token-space-200, var(--token-scale-200, 8px));--padding-start:var(--token-space-400, var(--token-scale-400, 16px));font-size:var(--token-font-size-400, 16px);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-600, var(--token-scale-600, 24px));text-decoration:none;text-transform:none}.item-inner{min-height:initial}.item-detail-icon{-webkit-margin-end:0;margin-inline-end:0}slot[name=start]::slotted(*){-webkit-margin-end:var(--token-space-400, var(--token-scale-400, 16px));margin-inline-end:var(--token-space-400, var(--token-scale-400, 16px))}slot[name=end]::slotted(*){-webkit-margin-start:var(--token-space-400, var(--token-scale-400, 16px));margin-inline-start:var(--token-space-400, var(--token-scale-400, 16px))}::slotted(ion-icon:not(.item-detail-icon)){color:var(--token-primitives-neutral-1000, #3b3b3b);font-size:var(--token-scale-1000, 40px)}:host(.item-disabled) .item-native::after{right:0;left:0;top:0;bottom:0;position:absolute;background-color:var(--token-state-disabled, rgba(255, 255, 255, 0.6));content:\"\";pointer-events:none}:host(.ion-activated) .item-native{background:var(--background-activated)}:host(.ion-focused) .item-native::after{border-radius:inherit;right:0;left:0;top:0;bottom:0;position:absolute;border-width:var(--token-border-size-050, var(--token-scale-050, 2px));border-style:var(--token-border-style-solid, solid);border-color:var(--token-border-focus-default, var(--token-primitives-blue-400, #b5c0f7));content:\"\"}:host(.item-lines-full){--border-width:var(--token-border-size-0, var(--token-scale-0, 0px)) var(--token-border-size-0, var(--token-scale-0, 0px)) var(--token-border-size-025, var(--token-scale-025, 1px)) var(--token-border-size-0, var(--token-scale-0, 0px))}:host(.item-lines-inset){--inner-border-width:var(--token-border-size-0, var(--token-scale-0, 0px)) var(--token-border-size-0, var(--token-scale-0, 0px)) var(--token-border-size-025, var(--token-scale-025, 1px)) var(--token-border-size-0, var(--token-scale-0, 0px))}:host(.item-lines-inset),:host(.item-lines-none){--border-width:var(--token-border-size-0, var(--token-scale-0, 0px))}:host(.item-lines-full),:host(.item-lines-none){--inner-border-width:var(--token-border-size-0, var(--token-scale-0, 0px))}:host(.in-select-modal){--background-focused:var(--token-bg-neutral-subtlest-press, var(--token-primitives-neutral-200, #eae9e9));--background-focused-opacity:0}:host(.in-select-modal.ion-focused) .item-native{--border-radius:var(--token-border-radius-400, var(--token-scale-400, 16px))}";
@@ -143,7 +143,13 @@ const Item = class {
143
143
  return this.href !== undefined || this.button;
144
144
  }
145
145
  canActivate() {
146
- return this.isClickable() || this.hasCover();
146
+ const theme = getIonTheme(this);
147
+ const mode = getIonMode(this);
148
+ const shouldActivate = this.isClickable() || this.hasCover();
149
+ if (theme !== 'ionic') {
150
+ return shouldActivate;
151
+ }
152
+ return mode === 'md' && shouldActivate;
147
153
  }
148
154
  isFocusable() {
149
155
  const focusableChild = this.el.querySelector('.ion-focusable');
@@ -254,7 +260,7 @@ const Item = class {
254
260
  * However, other form controls such as checkboxes and radios do.
255
261
  */
256
262
  const firstInteractiveNeedsPointerCursor = firstInteractive !== undefined && !['ION-INPUT', 'ION-TEXTAREA'].includes(firstInteractive.tagName);
257
- return (h(Host, { key: '8d9ebb0abbf431db0584ce12d5ae9b1044b90e55', "aria-disabled": ariaDisabled, class: Object.assign(Object.assign(Object.assign({}, childStyles), labelColorStyles), createColorClasses(this.color, {
263
+ return (h(Host, { key: '9bb45fbe33fab3adb57da6c5fe3ab4b4f85b2fdb', "aria-disabled": ariaDisabled, class: Object.assign(Object.assign(Object.assign({}, childStyles), labelColorStyles), createColorClasses(this.color, {
258
264
  item: true,
259
265
  [theme]: true,
260
266
  'item-lines-default': lines === undefined,
@@ -267,7 +273,7 @@ const Item = class {
267
273
  'ion-activatable': canActivate,
268
274
  'ion-focusable': this.focusable,
269
275
  'item-rtl': document.dir === 'rtl',
270
- })), role: inList ? 'listitem' : null }, h(TagType, Object.assign({ key: 'eb4e11d09f180aa9ff79f9a3f6fe56d8b1706640' }, attrs, inheritedAriaAttributes, { class: "item-native", part: "native", disabled: disabled }, clickFn), h("slot", { key: 'a29ad22da5c8925b81abbe2abd91817d3bd412e7', name: "start", onSlotchange: this.updateInteractivityOnSlotChange }), h("div", { key: '1d501a275bd58831ce09eb5e1615bad58e351190', class: "item-inner" }, h("div", { key: '3e3b4bf4859704b228cbd867c47caea5bdb92e96', class: "input-wrapper" }, h("slot", { key: '663305e080b0fd69e3bd2a56d49762dcc6a388f7', onSlotchange: this.updateInteractivityOnSlotChange })), h("slot", { key: '1e21ac996c488cc7839b3849ad34ef4371836d2d', name: "end", onSlotchange: this.updateInteractivityOnSlotChange }), showDetail && (h("ion-icon", { key: 'b718235562f563d742927004c0a53a4925d7ea5e', icon: itemDetailIcon, lazy: false, class: "item-detail-icon", part: "detail-icon", "aria-hidden": "true", "flip-rtl": shouldFlipIcon }))), canActivate && theme === 'md' && h("ion-ripple-effect", { key: '221ea4d68352d8f3184d3d0381b78180a0000793' }))));
276
+ })), role: inList ? 'listitem' : null }, h(TagType, Object.assign({ key: '0118a0b7bc4b78b210ae03981c03a7ede170333b' }, attrs, inheritedAriaAttributes, { class: "item-native", part: "native", disabled: disabled }, clickFn), h("slot", { key: '0b4891b9334172929cd5a3f361b33f0f9e830c9e', name: "start", onSlotchange: this.updateInteractivityOnSlotChange }), h("div", { key: '16128a1269cf59dedce8a5c66a4f9062e2ce23a2', class: "item-inner" }, h("div", { key: '53ae7202232d7145b4d81fdc8c1fff0a13e92e8b', class: "input-wrapper" }, h("slot", { key: '6726b19a45bea9c76b3429b97091c3467f34ee7b', onSlotchange: this.updateInteractivityOnSlotChange })), h("slot", { key: '07825d01d5e1ed427bc58c4367f05b14dc670f22', name: "end", onSlotchange: this.updateInteractivityOnSlotChange }), showDetail && (h("ion-icon", { key: '7d044035b257dbcecbc0c150e512a6570a48c871', icon: itemDetailIcon, lazy: false, class: "item-detail-icon", part: "detail-icon", "aria-hidden": "true", "flip-rtl": shouldFlipIcon }))), canActivate && theme === 'md' && h("ion-ripple-effect", { key: 'f7578981817b9244b9445c562e0f3d1148e2b455' }))));
271
277
  }
272
278
  get el() { return getElement(this); }
273
279
  static get watchers() { return {
@@ -4,7 +4,7 @@
4
4
  import { r as registerInstance, c as createEvent, h, d as Host, g as getElement, e as config } from './index-C8IsBmNU.js';
5
5
  import { c as createKeyboardController } from './keyboard-controller-Bc4alOiF.js';
6
6
  import { c as createColorClasses } from './theme-DiVJyqlX.js';
7
- import { c as getIonTheme } from './ionic-global-2R0iPB51.js';
7
+ import { c as getIonTheme, b as getIonMode } from './ionic-global-2R0iPB51.js';
8
8
  import { b as inheritAttributes } from './helpers-Bsml3FcE.js';
9
9
  import './keyboard-WCK1pWfR.js';
10
10
  import './capacitor-CiBLEyrT.js';
@@ -191,17 +191,26 @@ const TabButton = class {
191
191
  get hasIcon() {
192
192
  return !!this.el.querySelector('ion-icon');
193
193
  }
194
+ canActivate() {
195
+ const theme = getIonTheme(this);
196
+ const mode = getIonMode(this);
197
+ if (theme !== 'ionic') {
198
+ return true;
199
+ }
200
+ return mode === 'md';
201
+ }
194
202
  render() {
195
203
  const { disabled, hasIcon, hasLabel, href, rel, target, layout, selected, tab, inheritedAttributes } = this;
196
204
  const theme = getIonTheme(this);
197
205
  const shape = this.getShape();
206
+ const canActivate = this.canActivate();
198
207
  const attrs = {
199
208
  download: this.download,
200
209
  href,
201
210
  rel,
202
211
  target,
203
212
  };
204
- return (h(Host, { key: '848ea6fa1aff3e7ac9add43a6acb50759653c13b', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
213
+ return (h(Host, { key: '5a32785eaf0570cdc3444d52ce8bba8174c3e0b9', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
205
214
  [theme]: true,
206
215
  'tab-selected': selected,
207
216
  'tab-disabled': disabled,
@@ -210,11 +219,11 @@ const TabButton = class {
210
219
  'tab-has-label-only': hasLabel && !hasIcon,
211
220
  'tab-has-icon-only': hasIcon && !hasLabel,
212
221
  [`tab-layout-${layout}`]: true,
213
- 'ion-activatable': true,
222
+ 'ion-activatable': canActivate,
214
223
  'ion-selectable': true,
215
224
  [`tab-button-shape-${shape}`]: shape !== undefined,
216
225
  'ion-focusable': true,
217
- } }, h("a", Object.assign({ key: 'f6081f8ef0220a2b5e232f6b51da8538d68a3e80' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), h("span", { key: 'ed8af45092210cfd868adb4eb57dfc6e13a873a0', class: "button-inner" }, h("slot", { key: '253fcce3a920b9d2cae5af2a14872b1e127c7d62' })), theme === 'md' && h("ion-ripple-effect", { key: '5161991db4e08d16da5d0838fe2aee145afd91ad', type: "unbounded" }))));
226
+ } }, h("a", Object.assign({ key: '1441f409b4a60823a57f27b90f6840b557b7d65a' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), h("span", { key: '1566ca0af66b6e51068aca221a89133d2af061ed', class: "button-inner" }, h("slot", { key: '757878091cfe3768107eb0a53b8d1c895ce43399' })), theme === 'md' && h("ion-ripple-effect", { key: '28dde3e7127bdc9d5e1477b47458a5a4ab71328e', type: "unbounded" }))));
218
227
  }
219
228
  get el() { return getElement(this); }
220
229
  };