@ionic/vue 8.8.6-dev.11777569278.1613db2e → 8.8.6-dev.11777572994.1147595d

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 (56) hide show
  1. package/css/core.css +1 -1
  2. package/css/core.css.map +1 -1
  3. package/css/display.css +1 -1
  4. package/css/display.css.map +1 -1
  5. package/css/flex-utils.css +1 -1
  6. package/css/flex-utils.css.map +1 -1
  7. package/css/float-elements.css.map +1 -1
  8. package/css/global.bundle.css.map +1 -1
  9. package/css/ionic-swiper.css +1 -1
  10. package/css/ionic-swiper.css.map +1 -1
  11. package/css/ionic.bundle.css +1 -1
  12. package/css/ionic.bundle.css.map +1 -1
  13. package/css/normalize.css.map +1 -1
  14. package/css/padding.css.map +1 -1
  15. package/css/palettes/dark.always.css.map +1 -1
  16. package/css/palettes/dark.class.css.map +1 -1
  17. package/css/palettes/dark.system.css.map +1 -1
  18. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  19. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  20. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  21. package/css/palettes/high-contrast.always.css.map +1 -1
  22. package/css/palettes/high-contrast.class.css.map +1 -1
  23. package/css/palettes/high-contrast.system.css.map +1 -1
  24. package/css/structure.css.map +1 -1
  25. package/css/text-alignment.css.map +1 -1
  26. package/css/text-transformation.css.map +1 -1
  27. package/css/typography.css.map +1 -1
  28. package/css/utils.bundle.css +1 -1
  29. package/css/utils.bundle.css.map +1 -1
  30. package/dist/index.js +213 -241
  31. package/dist/index.js.map +1 -1
  32. package/dist/types/components/IonRouterOutlet.d.ts +14 -2
  33. package/dist/types/components/Overlays.d.ts +0 -1
  34. package/dist/types/controllers.d.ts +1 -9
  35. package/dist/types/index.d.ts +2 -2
  36. package/dist/types/proxies.d.ts +0 -2
  37. package/dist/vetur/attributes.json +106 -1680
  38. package/dist/vetur/tags.json +45 -258
  39. package/dist/web-types.json +152 -1947
  40. package/package.json +3 -3
  41. package/css/ionic/bundle.ionic.css +0 -1
  42. package/css/ionic/bundle.ionic.css.map +0 -1
  43. package/css/ionic/core.ionic.css +0 -1
  44. package/css/ionic/core.ionic.css.map +0 -1
  45. package/css/ionic/global.bundle.ionic.css +0 -1
  46. package/css/ionic/global.bundle.ionic.css.map +0 -1
  47. package/css/ionic/ionic-swiper.ionic.css +0 -1
  48. package/css/ionic/ionic-swiper.ionic.css.map +0 -1
  49. package/css/ionic/link.ionic.css +0 -1
  50. package/css/ionic/link.ionic.css.map +0 -1
  51. package/css/ionic/structure.ionic.css +0 -1
  52. package/css/ionic/structure.ionic.css.map +0 -1
  53. package/css/ionic/typography.ionic.css +0 -1
  54. package/css/ionic/typography.ionic.css.map +0 -1
  55. package/css/ionic/utils.bundle.ionic.css +0 -1
  56. package/css/ionic/utils.bundle.ionic.css.map +0 -1
package/dist/index.js CHANGED
@@ -19,83 +19,80 @@ import { defineCustomElement as defineCustomElement$g } from '@ionic/core/compon
19
19
  import { defineCustomElement as defineCustomElement$h } from '@ionic/core/components/ion-content.js';
20
20
  import { defineCustomElement as defineCustomElement$i } from '@ionic/core/components/ion-datetime.js';
21
21
  import { defineCustomElement as defineCustomElement$j } from '@ionic/core/components/ion-datetime-button.js';
22
- import { defineCustomElement as defineCustomElement$k } from '@ionic/core/components/ion-divider.js';
23
- import { defineCustomElement as defineCustomElement$l } from '@ionic/core/components/ion-fab.js';
24
- import { defineCustomElement as defineCustomElement$m } from '@ionic/core/components/ion-fab-button.js';
25
- import { defineCustomElement as defineCustomElement$n } from '@ionic/core/components/ion-fab-list.js';
26
- import { defineCustomElement as defineCustomElement$o } from '@ionic/core/components/ion-footer.js';
27
- import { defineCustomElement as defineCustomElement$p } from '@ionic/core/components/ion-gallery.js';
28
- import { defineCustomElement as defineCustomElement$q } from '@ionic/core/components/ion-grid.js';
29
- import { defineCustomElement as defineCustomElement$r } from '@ionic/core/components/ion-header.js';
30
- import { defineCustomElement as defineCustomElement$s } from '@ionic/core/components/ion-img.js';
31
- import { defineCustomElement as defineCustomElement$t } from '@ionic/core/components/ion-infinite-scroll.js';
32
- import { defineCustomElement as defineCustomElement$u } from '@ionic/core/components/ion-infinite-scroll-content.js';
33
- import { defineCustomElement as defineCustomElement$v } from '@ionic/core/components/ion-input.js';
34
- import { defineCustomElement as defineCustomElement$w } from '@ionic/core/components/ion-input-otp.js';
35
- import { defineCustomElement as defineCustomElement$x } from '@ionic/core/components/ion-input-password-toggle.js';
36
- import { defineCustomElement as defineCustomElement$y } from '@ionic/core/components/ion-item.js';
37
- import { defineCustomElement as defineCustomElement$z } from '@ionic/core/components/ion-item-divider.js';
38
- import { defineCustomElement as defineCustomElement$A } from '@ionic/core/components/ion-item-group.js';
39
- import { defineCustomElement as defineCustomElement$B } from '@ionic/core/components/ion-item-option.js';
40
- import { defineCustomElement as defineCustomElement$C } from '@ionic/core/components/ion-item-options.js';
41
- import { defineCustomElement as defineCustomElement$D } from '@ionic/core/components/ion-item-sliding.js';
42
- import { defineCustomElement as defineCustomElement$E } from '@ionic/core/components/ion-label.js';
43
- import { defineCustomElement as defineCustomElement$F } from '@ionic/core/components/ion-list.js';
44
- import { defineCustomElement as defineCustomElement$G } from '@ionic/core/components/ion-list-header.js';
45
- import { defineCustomElement as defineCustomElement$H } from '@ionic/core/components/ion-menu.js';
46
- import { defineCustomElement as defineCustomElement$I } from '@ionic/core/components/ion-menu-button.js';
47
- import { defineCustomElement as defineCustomElement$J } from '@ionic/core/components/ion-menu-toggle.js';
48
- import { defineCustomElement as defineCustomElement$1l } from '@ionic/core/components/ion-nav.js';
49
- import { defineCustomElement as defineCustomElement$K } from '@ionic/core/components/ion-nav-link.js';
50
- import { defineCustomElement as defineCustomElement$L } from '@ionic/core/components/ion-note.js';
51
- import { defineCustomElement as defineCustomElement$M } from '@ionic/core/components/ion-picker.js';
52
- import { defineCustomElement as defineCustomElement$N } from '@ionic/core/components/ion-picker-column.js';
53
- import { defineCustomElement as defineCustomElement$O } from '@ionic/core/components/ion-picker-column-option.js';
54
- import { defineCustomElement as defineCustomElement$P } from '@ionic/core/components/ion-progress-bar.js';
55
- import { defineCustomElement as defineCustomElement$Q } from '@ionic/core/components/ion-radio.js';
56
- import { defineCustomElement as defineCustomElement$R } from '@ionic/core/components/ion-radio-group.js';
57
- import { defineCustomElement as defineCustomElement$S } from '@ionic/core/components/ion-range.js';
58
- import { defineCustomElement as defineCustomElement$T } from '@ionic/core/components/ion-refresher.js';
59
- import { defineCustomElement as defineCustomElement$U } from '@ionic/core/components/ion-refresher-content.js';
60
- import { defineCustomElement as defineCustomElement$V } from '@ionic/core/components/ion-reorder.js';
61
- import { defineCustomElement as defineCustomElement$W } from '@ionic/core/components/ion-reorder-group.js';
62
- import { defineCustomElement as defineCustomElement$X } from '@ionic/core/components/ion-ripple-effect.js';
63
- import { defineCustomElement as defineCustomElement$Y } from '@ionic/core/components/ion-row.js';
64
- import { defineCustomElement as defineCustomElement$Z } from '@ionic/core/components/ion-searchbar.js';
65
- import { defineCustomElement as defineCustomElement$_ } from '@ionic/core/components/ion-segment.js';
66
- import { defineCustomElement as defineCustomElement$$ } from '@ionic/core/components/ion-segment-button.js';
67
- import { defineCustomElement as defineCustomElement$10 } from '@ionic/core/components/ion-segment-content.js';
68
- import { defineCustomElement as defineCustomElement$11 } from '@ionic/core/components/ion-segment-view.js';
69
- import { defineCustomElement as defineCustomElement$12 } from '@ionic/core/components/ion-select.js';
70
- import { defineCustomElement as defineCustomElement$13 } from '@ionic/core/components/ion-select-modal.js';
71
- import { defineCustomElement as defineCustomElement$14 } from '@ionic/core/components/ion-select-option.js';
72
- import { defineCustomElement as defineCustomElement$15 } from '@ionic/core/components/ion-skeleton-text.js';
73
- import { defineCustomElement as defineCustomElement$16 } from '@ionic/core/components/ion-spinner.js';
74
- import { defineCustomElement as defineCustomElement$17 } from '@ionic/core/components/ion-split-pane.js';
75
- import { defineCustomElement as defineCustomElement$18 } from '@ionic/core/components/ion-tab.js';
76
- import { defineCustomElement as defineCustomElement$19 } from '@ionic/core/components/ion-text.js';
77
- import { defineCustomElement as defineCustomElement$1a } from '@ionic/core/components/ion-textarea.js';
78
- import { defineCustomElement as defineCustomElement$1b } from '@ionic/core/components/ion-thumbnail.js';
79
- import { defineCustomElement as defineCustomElement$1c } from '@ionic/core/components/ion-title.js';
80
- import { defineCustomElement as defineCustomElement$1d } from '@ionic/core/components/ion-toggle.js';
81
- import { defineCustomElement as defineCustomElement$1e } from '@ionic/core/components/ion-toolbar.js';
82
- import { LIFECYCLE_WILL_ENTER, LIFECYCLE_DID_ENTER, LIFECYCLE_WILL_LEAVE, LIFECYCLE_DID_LEAVE, initialize, modalController as modalController$1, popoverController as popoverController$1, alertController as alertController$1, actionSheetController as actionSheetController$1, loadingController as loadingController$1, pickerController as pickerController$1, toastController as toastController$1 } from '@ionic/core/components';
22
+ import { defineCustomElement as defineCustomElement$k } from '@ionic/core/components/ion-fab.js';
23
+ import { defineCustomElement as defineCustomElement$l } from '@ionic/core/components/ion-fab-button.js';
24
+ import { defineCustomElement as defineCustomElement$m } from '@ionic/core/components/ion-fab-list.js';
25
+ import { defineCustomElement as defineCustomElement$n } from '@ionic/core/components/ion-footer.js';
26
+ import { defineCustomElement as defineCustomElement$o } from '@ionic/core/components/ion-grid.js';
27
+ import { defineCustomElement as defineCustomElement$p } from '@ionic/core/components/ion-header.js';
28
+ import { defineCustomElement as defineCustomElement$q } from '@ionic/core/components/ion-img.js';
29
+ import { defineCustomElement as defineCustomElement$r } from '@ionic/core/components/ion-infinite-scroll.js';
30
+ import { defineCustomElement as defineCustomElement$s } from '@ionic/core/components/ion-infinite-scroll-content.js';
31
+ import { defineCustomElement as defineCustomElement$t } from '@ionic/core/components/ion-input.js';
32
+ import { defineCustomElement as defineCustomElement$u } from '@ionic/core/components/ion-input-otp.js';
33
+ import { defineCustomElement as defineCustomElement$v } from '@ionic/core/components/ion-input-password-toggle.js';
34
+ import { defineCustomElement as defineCustomElement$w } from '@ionic/core/components/ion-item.js';
35
+ import { defineCustomElement as defineCustomElement$x } from '@ionic/core/components/ion-item-divider.js';
36
+ import { defineCustomElement as defineCustomElement$y } from '@ionic/core/components/ion-item-group.js';
37
+ import { defineCustomElement as defineCustomElement$z } from '@ionic/core/components/ion-item-option.js';
38
+ import { defineCustomElement as defineCustomElement$A } from '@ionic/core/components/ion-item-options.js';
39
+ import { defineCustomElement as defineCustomElement$B } from '@ionic/core/components/ion-item-sliding.js';
40
+ import { defineCustomElement as defineCustomElement$C } from '@ionic/core/components/ion-label.js';
41
+ import { defineCustomElement as defineCustomElement$D } from '@ionic/core/components/ion-list.js';
42
+ import { defineCustomElement as defineCustomElement$E } from '@ionic/core/components/ion-list-header.js';
43
+ import { defineCustomElement as defineCustomElement$F } from '@ionic/core/components/ion-menu.js';
44
+ import { defineCustomElement as defineCustomElement$G } from '@ionic/core/components/ion-menu-button.js';
45
+ import { defineCustomElement as defineCustomElement$H } from '@ionic/core/components/ion-menu-toggle.js';
46
+ import { defineCustomElement as defineCustomElement$1j } from '@ionic/core/components/ion-nav.js';
47
+ import { defineCustomElement as defineCustomElement$I } from '@ionic/core/components/ion-nav-link.js';
48
+ import { defineCustomElement as defineCustomElement$J } from '@ionic/core/components/ion-note.js';
49
+ import { defineCustomElement as defineCustomElement$K } from '@ionic/core/components/ion-picker.js';
50
+ import { defineCustomElement as defineCustomElement$L } from '@ionic/core/components/ion-picker-column.js';
51
+ import { defineCustomElement as defineCustomElement$M } from '@ionic/core/components/ion-picker-column-option.js';
52
+ import { defineCustomElement as defineCustomElement$N } from '@ionic/core/components/ion-progress-bar.js';
53
+ import { defineCustomElement as defineCustomElement$O } from '@ionic/core/components/ion-radio.js';
54
+ import { defineCustomElement as defineCustomElement$P } from '@ionic/core/components/ion-radio-group.js';
55
+ import { defineCustomElement as defineCustomElement$Q } from '@ionic/core/components/ion-range.js';
56
+ import { defineCustomElement as defineCustomElement$R } from '@ionic/core/components/ion-refresher.js';
57
+ import { defineCustomElement as defineCustomElement$S } from '@ionic/core/components/ion-refresher-content.js';
58
+ import { defineCustomElement as defineCustomElement$T } from '@ionic/core/components/ion-reorder.js';
59
+ import { defineCustomElement as defineCustomElement$U } from '@ionic/core/components/ion-reorder-group.js';
60
+ import { defineCustomElement as defineCustomElement$V } from '@ionic/core/components/ion-ripple-effect.js';
61
+ import { defineCustomElement as defineCustomElement$W } from '@ionic/core/components/ion-row.js';
62
+ import { defineCustomElement as defineCustomElement$X } from '@ionic/core/components/ion-searchbar.js';
63
+ import { defineCustomElement as defineCustomElement$Y } from '@ionic/core/components/ion-segment.js';
64
+ import { defineCustomElement as defineCustomElement$Z } from '@ionic/core/components/ion-segment-button.js';
65
+ import { defineCustomElement as defineCustomElement$_ } from '@ionic/core/components/ion-segment-content.js';
66
+ import { defineCustomElement as defineCustomElement$$ } from '@ionic/core/components/ion-segment-view.js';
67
+ import { defineCustomElement as defineCustomElement$10 } from '@ionic/core/components/ion-select.js';
68
+ import { defineCustomElement as defineCustomElement$11 } from '@ionic/core/components/ion-select-modal.js';
69
+ import { defineCustomElement as defineCustomElement$12 } from '@ionic/core/components/ion-select-option.js';
70
+ import { defineCustomElement as defineCustomElement$13 } from '@ionic/core/components/ion-skeleton-text.js';
71
+ import { defineCustomElement as defineCustomElement$14 } from '@ionic/core/components/ion-spinner.js';
72
+ import { defineCustomElement as defineCustomElement$15 } from '@ionic/core/components/ion-split-pane.js';
73
+ import { defineCustomElement as defineCustomElement$16 } from '@ionic/core/components/ion-tab.js';
74
+ import { defineCustomElement as defineCustomElement$17 } from '@ionic/core/components/ion-text.js';
75
+ import { defineCustomElement as defineCustomElement$18 } from '@ionic/core/components/ion-textarea.js';
76
+ import { defineCustomElement as defineCustomElement$19 } from '@ionic/core/components/ion-thumbnail.js';
77
+ import { defineCustomElement as defineCustomElement$1a } from '@ionic/core/components/ion-title.js';
78
+ import { defineCustomElement as defineCustomElement$1b } from '@ionic/core/components/ion-toggle.js';
79
+ import { defineCustomElement as defineCustomElement$1c } from '@ionic/core/components/ion-toolbar.js';
80
+ import { LIFECYCLE_WILL_ENTER, LIFECYCLE_DID_ENTER, LIFECYCLE_WILL_LEAVE, LIFECYCLE_DID_LEAVE, initialize, modalController as modalController$1, popoverController as popoverController$1, alertController as alertController$1, actionSheetController as actionSheetController$1, loadingController as loadingController$1, toastController as toastController$1 } from '@ionic/core/components';
83
81
  export { IonicSafeString, IonicSlides, createAnimation, createGesture, getIonPageElement, getPlatforms, getTimeGivenProgression, iosTransitionAnimation, isPlatform, mdTransitionAnimation, menuController, openURL } from '@ionic/core/components';
84
- import { defineCustomElement as defineCustomElement$1f } from '@ionic/core/components/ion-back-button.js';
85
- import { defineCustomElement as defineCustomElement$1g } from '@ionic/core/components/ion-router-outlet.js';
82
+ import { defineCustomElement as defineCustomElement$1d } from '@ionic/core/components/ion-back-button.js';
83
+ import { defineCustomElement as defineCustomElement$1e } from '@ionic/core/components/ion-router-outlet.js';
86
84
  import { routeLocationKey, useRoute, matchedRouteKey } from 'vue-router';
87
- import { defineCustomElement as defineCustomElement$1h } from '@ionic/core/components/ion-tab-button.js';
88
- import { defineCustomElement as defineCustomElement$1i } from '@ionic/core/components/ion-tabs.js';
89
- import { defineCustomElement as defineCustomElement$1j } from '@ionic/core/components/ion-tab-bar.js';
90
- import { defineCustomElement as defineCustomElement$1k } from '@ionic/core/components/ion-app.js';
91
- import { defineCustomElement as defineCustomElement$1m } from 'ionicons/components/ion-icon.js';
92
- import { defineCustomElement as defineCustomElement$1n } from '@ionic/core/components/ion-action-sheet.js';
93
- import { defineCustomElement as defineCustomElement$1o } from '@ionic/core/components/ion-alert.js';
94
- import { defineCustomElement as defineCustomElement$1p } from '@ionic/core/components/ion-loading.js';
95
- import { defineCustomElement as defineCustomElement$1q } from '@ionic/core/components/ion-modal.js';
96
- import { defineCustomElement as defineCustomElement$1r } from '@ionic/core/components/ion-picker-legacy.js';
97
- import { defineCustomElement as defineCustomElement$1s } from '@ionic/core/components/ion-popover.js';
98
- import { defineCustomElement as defineCustomElement$1t } from '@ionic/core/components/ion-toast.js';
85
+ import { defineCustomElement as defineCustomElement$1f } from '@ionic/core/components/ion-tab-button.js';
86
+ import { defineCustomElement as defineCustomElement$1g } from '@ionic/core/components/ion-tabs.js';
87
+ import { defineCustomElement as defineCustomElement$1h } from '@ionic/core/components/ion-tab-bar.js';
88
+ import { defineCustomElement as defineCustomElement$1i } from '@ionic/core/components/ion-app.js';
89
+ import { defineCustomElement as defineCustomElement$1k } from 'ionicons/components/ion-icon.js';
90
+ import { defineCustomElement as defineCustomElement$1l } from '@ionic/core/components/ion-action-sheet.js';
91
+ import { defineCustomElement as defineCustomElement$1m } from '@ionic/core/components/ion-alert.js';
92
+ import { defineCustomElement as defineCustomElement$1n } from '@ionic/core/components/ion-loading.js';
93
+ import { defineCustomElement as defineCustomElement$1o } from '@ionic/core/components/ion-modal.js';
94
+ import { defineCustomElement as defineCustomElement$1p } from '@ionic/core/components/ion-popover.js';
95
+ import { defineCustomElement as defineCustomElement$1q } from '@ionic/core/components/ion-toast.js';
99
96
 
100
97
  const UPDATE_VALUE_EVENT = 'update:modelValue';
101
98
  const MODEL_VALUE = 'modelValue';
@@ -117,8 +114,19 @@ const DEFAULT_EMPTY_PROP$1 = { default: EMPTY_PROP$1 };
117
114
  const getComponentClasses = (classes) => {
118
115
  return classes?.split(' ') || [];
119
116
  };
120
- const getElementClasses = (ref, componentClasses, defaultClasses = []) => {
121
- return [...Array.from(ref.value?.classList || []), ...defaultClasses].filter((c, i, self) => !componentClasses.has(c) && self.indexOf(c) === i);
117
+ const syncElementClasses = (ref, componentClasses, defaultClasses = []) => {
118
+ if (ref?.value) {
119
+ const element = ref.value;
120
+ // makes sure vue classes are on the actual element
121
+ componentClasses.forEach((c) => {
122
+ if (!!c && !element.classList.contains(c)) {
123
+ element.classList.add(c);
124
+ }
125
+ });
126
+ }
127
+ return [...Array.from(ref.value?.classList || []), ...defaultClasses].filter((c, i, self) => {
128
+ return !componentClasses.has(c) && self.indexOf(c) === i;
129
+ });
122
130
  };
123
131
  /**
124
132
  * Create a callback to define a Vue component wrapper around a Web Component.
@@ -134,8 +142,9 @@ const getElementClasses = (ref, componentClasses, defaultClasses = []) => {
134
142
  * to customElements.define. Only set if `includeImportCustomElements: true` in your config.
135
143
  * @prop modelProp - The prop that v-model binds to (i.e. value)
136
144
  * @prop modelUpdateEvent - The event that is fired from your Web Component when the value changes (i.e. ionChange)
145
+ * @prop modelUpdateEventAttribute - Property to read value from when the value changes.
137
146
  */
138
- const defineContainer = (name, defineCustomElement, componentProps = [], emitProps = [], modelProp, modelUpdateEvent) => {
147
+ const defineContainer = (name, defineCustomElement, componentProps = [], emitProps = [], modelProp, modelUpdateEvent, modelUpdateEventAttribute, transformTagFn) => {
139
148
  /**
140
149
  * Create a Vue component wrapper around a Web Component.
141
150
  * Note: The `props` here are not all properties on a component.
@@ -180,7 +189,7 @@ const defineContainer = (name, defineCustomElement, componentProps = [], emitPro
180
189
  */
181
190
  const vModelDirective = {
182
191
  created: (el) => {
183
- const eventsNames = (Array.isArray(modelUpdateEvent) ? modelUpdateEvent : [modelUpdateEvent]).map((ev) => ev.replace(/-([a-z])/g, (g) => g[1].toUpperCase()));
192
+ const eventsNames = Array.isArray(modelUpdateEvent) ? modelUpdateEvent : [modelUpdateEvent];
184
193
  eventsNames.forEach((eventName) => {
185
194
  el.addEventListener(eventName, (e) => {
186
195
  /**
@@ -191,7 +200,11 @@ const defineContainer = (name, defineCustomElement, componentProps = [], emitPro
191
200
  * when ionChange bubbles up from Component B.
192
201
  */
193
202
  if (e.target.tagName === el.tagName && modelProp) {
194
- modelPropValue = (e?.target)[modelProp];
203
+ const resolvePath = (object, path) => {
204
+ return path.split('.').reduce((value, key) => (value !== undefined ? value[key] : undefined), object);
205
+ };
206
+ const path = (modelUpdateEventAttribute ?? `target.${modelProp}`);
207
+ const modelPropValue = resolvePath(e, path);
195
208
  emit(UPDATE_VALUE_EVENT, modelPropValue);
196
209
  }
197
210
  });
@@ -245,7 +258,7 @@ const defineContainer = (name, defineCustomElement, componentProps = [], emitPro
245
258
  };
246
259
  const propsToAdd = {
247
260
  ref: containerRef,
248
- class: getElementClasses(containerRef, classes),
261
+ class: syncElementClasses(containerRef, classes),
249
262
  onClick: handleClick,
250
263
  };
251
264
  /**
@@ -293,7 +306,8 @@ const defineContainer = (name, defineCustomElement, componentProps = [], emitPro
293
306
  * vModelDirective is only needed on components that support v-model.
294
307
  * As a result, we conditionally call withDirectives with v-model components.
295
308
  */
296
- const node = h(name, propsToAdd, slots.default && slots.default());
309
+ const tagName = transformTagFn ? transformTagFn(name) : name;
310
+ const node = h(tagName, propsToAdd, slots.default && slots.default());
297
311
  return modelProp === undefined ? node : withDirectives(node, [[vModelDirective]]);
298
312
  };
299
313
  }, {
@@ -320,18 +334,13 @@ const IonAccordionGroup = /*@__PURE__*/ defineContainer('ion-accordion-group', d
320
334
  'disabled',
321
335
  'readonly',
322
336
  'expand',
323
- 'shape',
324
337
  'ionChange',
325
338
  'ionValueChange'
326
339
  ], [
327
340
  'ionChange',
328
341
  'ionValueChange'
329
- ], 'value', 'ion-change');
330
- const IonAvatar = /*@__PURE__*/ defineContainer('ion-avatar', defineCustomElement$2, [
331
- 'size',
332
- 'shape',
333
- 'disabled'
334
- ]);
342
+ ], 'value', 'ionChange', undefined);
343
+ const IonAvatar = /*@__PURE__*/ defineContainer('ion-avatar', defineCustomElement$2);
335
344
  const IonBackdrop = /*@__PURE__*/ defineContainer('ion-backdrop', defineCustomElement$3, [
336
345
  'visible',
337
346
  'tappable',
@@ -341,11 +350,7 @@ const IonBackdrop = /*@__PURE__*/ defineContainer('ion-backdrop', defineCustomEl
341
350
  'ionBackdropTap'
342
351
  ]);
343
352
  const IonBadge = /*@__PURE__*/ defineContainer('ion-badge', defineCustomElement$4, [
344
- 'color',
345
- 'hue',
346
- 'shape',
347
- 'size',
348
- 'vertical'
353
+ 'color'
349
354
  ]);
350
355
  const IonBreadcrumb = /*@__PURE__*/ defineContainer('ion-breadcrumb', defineCustomElement$5, [
351
356
  'collapsed',
@@ -414,7 +419,6 @@ const IonCard = /*@__PURE__*/ defineContainer('ion-card', defineCustomElement$9,
414
419
  'rel',
415
420
  'routerDirection',
416
421
  'routerAnimation',
417
- 'shape',
418
422
  'target'
419
423
  ]);
420
424
  const IonCardContent = /*@__PURE__*/ defineContainer('ion-card-content', defineCustomElement$a);
@@ -441,8 +445,6 @@ const IonCheckbox = /*@__PURE__*/ defineContainer('ion-checkbox', defineCustomEl
441
445
  'justify',
442
446
  'alignment',
443
447
  'required',
444
- 'shape',
445
- 'size',
446
448
  'ionChange',
447
449
  'ionFocus',
448
450
  'ionBlur'
@@ -450,14 +452,11 @@ const IonCheckbox = /*@__PURE__*/ defineContainer('ion-checkbox', defineCustomEl
450
452
  'ionChange',
451
453
  'ionFocus',
452
454
  'ionBlur'
453
- ], 'checked', 'ion-change');
455
+ ], 'checked', 'ionChange', undefined);
454
456
  const IonChip = /*@__PURE__*/ defineContainer('ion-chip', defineCustomElement$f, [
455
457
  'color',
456
458
  'outline',
457
- 'disabled',
458
- 'hue',
459
- 'shape',
460
- 'size'
459
+ 'disabled'
461
460
  ]);
462
461
  const IonCol = /*@__PURE__*/ defineContainer('ion-col', defineCustomElement$g, [
463
462
  'offset',
@@ -466,12 +465,6 @@ const IonCol = /*@__PURE__*/ defineContainer('ion-col', defineCustomElement$g, [
466
465
  'offsetMd',
467
466
  'offsetLg',
468
467
  'offsetXl',
469
- 'order',
470
- 'orderXs',
471
- 'orderSm',
472
- 'orderMd',
473
- 'orderLg',
474
- 'orderXl',
475
468
  'pull',
476
469
  'pullXs',
477
470
  'pullSm',
@@ -554,23 +547,19 @@ const IonDatetime = /*@__PURE__*/ defineContainer('ion-datetime', defineCustomEl
554
547
  'ionBlur',
555
548
  'ionStyle',
556
549
  'ionRender'
557
- ], 'value', 'ion-change');
550
+ ], 'value', 'ionChange', undefined);
558
551
  const IonDatetimeButton = /*@__PURE__*/ defineContainer('ion-datetime-button', defineCustomElement$j, [
559
552
  'color',
560
553
  'disabled',
561
554
  'datetime'
562
555
  ]);
563
- const IonDivider = /*@__PURE__*/ defineContainer('ion-divider', defineCustomElement$k, [
564
- 'spacing',
565
- 'inset'
566
- ]);
567
- const IonFab = /*@__PURE__*/ defineContainer('ion-fab', defineCustomElement$l, [
556
+ const IonFab = /*@__PURE__*/ defineContainer('ion-fab', defineCustomElement$k, [
568
557
  'horizontal',
569
558
  'vertical',
570
559
  'edge',
571
560
  'activated'
572
561
  ]);
573
- const IonFabButton = /*@__PURE__*/ defineContainer('ion-fab-button', defineCustomElement$m, [
562
+ const IonFabButton = /*@__PURE__*/ defineContainer('ion-fab-button', defineCustomElement$l, [
574
563
  'color',
575
564
  'activated',
576
565
  'disabled',
@@ -591,28 +580,22 @@ const IonFabButton = /*@__PURE__*/ defineContainer('ion-fab-button', defineCusto
591
580
  'ionFocus',
592
581
  'ionBlur'
593
582
  ]);
594
- const IonFabList = /*@__PURE__*/ defineContainer('ion-fab-list', defineCustomElement$n, [
583
+ const IonFabList = /*@__PURE__*/ defineContainer('ion-fab-list', defineCustomElement$m, [
595
584
  'activated',
596
585
  'side'
597
586
  ]);
598
- const IonFooter = /*@__PURE__*/ defineContainer('ion-footer', defineCustomElement$o, [
587
+ const IonFooter = /*@__PURE__*/ defineContainer('ion-footer', defineCustomElement$n, [
599
588
  'collapse',
600
589
  'translucent'
601
590
  ]);
602
- const IonGallery = /*@__PURE__*/ defineContainer('ion-gallery', defineCustomElement$p, [
603
- 'layout',
604
- 'order',
605
- 'columns'
606
- ]);
607
- const IonGrid = /*@__PURE__*/ defineContainer('ion-grid', defineCustomElement$q, [
591
+ const IonGrid = /*@__PURE__*/ defineContainer('ion-grid', defineCustomElement$o, [
608
592
  'fixed'
609
593
  ]);
610
- const IonHeader = /*@__PURE__*/ defineContainer('ion-header', defineCustomElement$r, [
594
+ const IonHeader = /*@__PURE__*/ defineContainer('ion-header', defineCustomElement$p, [
611
595
  'collapse',
612
- 'divider',
613
596
  'translucent'
614
597
  ]);
615
- const IonImg = /*@__PURE__*/ defineContainer('ion-img', defineCustomElement$s, [
598
+ const IonImg = /*@__PURE__*/ defineContainer('ion-img', defineCustomElement$q, [
616
599
  'alt',
617
600
  'src',
618
601
  'ionImgWillLoad',
@@ -623,20 +606,19 @@ const IonImg = /*@__PURE__*/ defineContainer('ion-img', defineCustomElement$s, [
623
606
  'ionImgDidLoad',
624
607
  'ionError'
625
608
  ]);
626
- const IonInfiniteScroll = /*@__PURE__*/ defineContainer('ion-infinite-scroll', defineCustomElement$t, [
609
+ const IonInfiniteScroll = /*@__PURE__*/ defineContainer('ion-infinite-scroll', defineCustomElement$r, [
627
610
  'threshold',
628
611
  'disabled',
629
612
  'position',
630
- 'preserveRerenderScrollPosition',
631
613
  'ionInfinite'
632
614
  ], [
633
615
  'ionInfinite'
634
616
  ]);
635
- const IonInfiniteScrollContent = /*@__PURE__*/ defineContainer('ion-infinite-scroll-content', defineCustomElement$u, [
617
+ const IonInfiniteScrollContent = /*@__PURE__*/ defineContainer('ion-infinite-scroll-content', defineCustomElement$s, [
636
618
  'loadingSpinner',
637
619
  'loadingText'
638
620
  ]);
639
- const IonInput = /*@__PURE__*/ defineContainer('ion-input', defineCustomElement$v, [
621
+ const IonInput = /*@__PURE__*/ defineContainer('ion-input', defineCustomElement$t, [
640
622
  'color',
641
623
  'autocapitalize',
642
624
  'autocomplete',
@@ -669,7 +651,6 @@ const IonInput = /*@__PURE__*/ defineContainer('ion-input', defineCustomElement$
669
651
  'shape',
670
652
  'spellcheck',
671
653
  'step',
672
- 'size',
673
654
  'type',
674
655
  'value',
675
656
  'ionInput',
@@ -681,8 +662,8 @@ const IonInput = /*@__PURE__*/ defineContainer('ion-input', defineCustomElement$
681
662
  'ionChange',
682
663
  'ionBlur',
683
664
  'ionFocus'
684
- ], 'value', 'ion-input');
685
- const IonInputOtp = /*@__PURE__*/ defineContainer('ion-input-otp', defineCustomElement$w, [
665
+ ], 'value', 'ionInput', undefined);
666
+ const IonInputOtp = /*@__PURE__*/ defineContainer('ion-input-otp', defineCustomElement$u, [
686
667
  'autocapitalize',
687
668
  'color',
688
669
  'disabled',
@@ -707,14 +688,14 @@ const IonInputOtp = /*@__PURE__*/ defineContainer('ion-input-otp', defineCustomE
707
688
  'ionComplete',
708
689
  'ionBlur',
709
690
  'ionFocus'
710
- ], 'value', 'ion-input');
711
- const IonInputPasswordToggle = /*@__PURE__*/ defineContainer('ion-input-password-toggle', defineCustomElement$x, [
691
+ ], 'value', 'ionInput', undefined);
692
+ const IonInputPasswordToggle = /*@__PURE__*/ defineContainer('ion-input-password-toggle', defineCustomElement$v, [
712
693
  'color',
713
694
  'showIcon',
714
695
  'hideIcon',
715
696
  'type'
716
697
  ]);
717
- const IonItem = /*@__PURE__*/ defineContainer('ion-item', defineCustomElement$y, [
698
+ const IonItem = /*@__PURE__*/ defineContainer('ion-item', defineCustomElement$w, [
718
699
  'color',
719
700
  'button',
720
701
  'detail',
@@ -729,36 +710,34 @@ const IonItem = /*@__PURE__*/ defineContainer('ion-item', defineCustomElement$y,
729
710
  'target',
730
711
  'type'
731
712
  ]);
732
- const IonItemDivider = /*@__PURE__*/ defineContainer('ion-item-divider', defineCustomElement$z, [
713
+ const IonItemDivider = /*@__PURE__*/ defineContainer('ion-item-divider', defineCustomElement$x, [
733
714
  'color',
734
715
  'sticky'
735
716
  ]);
736
- const IonItemGroup = /*@__PURE__*/ defineContainer('ion-item-group', defineCustomElement$A);
737
- const IonItemOption = /*@__PURE__*/ defineContainer('ion-item-option', defineCustomElement$B, [
717
+ const IonItemGroup = /*@__PURE__*/ defineContainer('ion-item-group', defineCustomElement$y);
718
+ const IonItemOption = /*@__PURE__*/ defineContainer('ion-item-option', defineCustomElement$z, [
738
719
  'color',
739
720
  'disabled',
740
721
  'download',
741
722
  'expandable',
742
723
  'href',
743
- 'hue',
744
724
  'rel',
745
725
  'target',
746
- 'type',
747
- 'shape'
726
+ 'type'
748
727
  ]);
749
- const IonItemOptions = /*@__PURE__*/ defineContainer('ion-item-options', defineCustomElement$C, [
728
+ const IonItemOptions = /*@__PURE__*/ defineContainer('ion-item-options', defineCustomElement$A, [
750
729
  'side',
751
730
  'ionSwipe'
752
731
  ], [
753
732
  'ionSwipe'
754
733
  ]);
755
- const IonItemSliding = /*@__PURE__*/ defineContainer('ion-item-sliding', defineCustomElement$D, [
734
+ const IonItemSliding = /*@__PURE__*/ defineContainer('ion-item-sliding', defineCustomElement$B, [
756
735
  'disabled',
757
736
  'ionDrag'
758
737
  ], [
759
738
  'ionDrag'
760
739
  ]);
761
- const IonLabel = /*@__PURE__*/ defineContainer('ion-label', defineCustomElement$E, [
740
+ const IonLabel = /*@__PURE__*/ defineContainer('ion-label', defineCustomElement$C, [
762
741
  'color',
763
742
  'position',
764
743
  'ionColor',
@@ -767,16 +746,15 @@ const IonLabel = /*@__PURE__*/ defineContainer('ion-label', defineCustomElement$
767
746
  'ionColor',
768
747
  'ionStyle'
769
748
  ]);
770
- const IonList = /*@__PURE__*/ defineContainer('ion-list', defineCustomElement$F, [
749
+ const IonList = /*@__PURE__*/ defineContainer('ion-list', defineCustomElement$D, [
771
750
  'lines',
772
- 'inset',
773
- 'shape'
751
+ 'inset'
774
752
  ]);
775
- const IonListHeader = /*@__PURE__*/ defineContainer('ion-list-header', defineCustomElement$G, [
753
+ const IonListHeader = /*@__PURE__*/ defineContainer('ion-list-header', defineCustomElement$E, [
776
754
  'color',
777
755
  'lines'
778
756
  ]);
779
- const IonMenu = /*@__PURE__*/ defineContainer('ion-menu', defineCustomElement$H, [
757
+ const IonMenu = /*@__PURE__*/ defineContainer('ion-menu', defineCustomElement$F, [
780
758
  'contentId',
781
759
  'menuId',
782
760
  'type',
@@ -796,32 +774,32 @@ const IonMenu = /*@__PURE__*/ defineContainer('ion-menu', defineCustomElement$H,
796
774
  'ionDidClose',
797
775
  'ionMenuChange'
798
776
  ]);
799
- const IonMenuButton = /*@__PURE__*/ defineContainer('ion-menu-button', defineCustomElement$I, [
777
+ const IonMenuButton = /*@__PURE__*/ defineContainer('ion-menu-button', defineCustomElement$G, [
800
778
  'color',
801
779
  'disabled',
802
780
  'menu',
803
781
  'autoHide',
804
782
  'type'
805
783
  ]);
806
- const IonMenuToggle = /*@__PURE__*/ defineContainer('ion-menu-toggle', defineCustomElement$J, [
784
+ const IonMenuToggle = /*@__PURE__*/ defineContainer('ion-menu-toggle', defineCustomElement$H, [
807
785
  'menu',
808
786
  'autoHide'
809
787
  ]);
810
- const IonNavLink = /*@__PURE__*/ defineContainer('ion-nav-link', defineCustomElement$K, [
788
+ const IonNavLink = /*@__PURE__*/ defineContainer('ion-nav-link', defineCustomElement$I, [
811
789
  'component',
812
790
  'componentProps',
813
791
  'routerDirection',
814
792
  'routerAnimation'
815
793
  ]);
816
- const IonNote = /*@__PURE__*/ defineContainer('ion-note', defineCustomElement$L, [
794
+ const IonNote = /*@__PURE__*/ defineContainer('ion-note', defineCustomElement$J, [
817
795
  'color'
818
796
  ]);
819
- const IonPicker = /*@__PURE__*/ defineContainer('ion-picker', defineCustomElement$M, [
797
+ const IonPicker = /*@__PURE__*/ defineContainer('ion-picker', defineCustomElement$K, [
820
798
  'ionInputModeChange'
821
799
  ], [
822
800
  'ionInputModeChange'
823
801
  ]);
824
- const IonPickerColumn = /*@__PURE__*/ defineContainer('ion-picker-column', defineCustomElement$N, [
802
+ const IonPickerColumn = /*@__PURE__*/ defineContainer('ion-picker-column', defineCustomElement$L, [
825
803
  'disabled',
826
804
  'value',
827
805
  'color',
@@ -830,20 +808,19 @@ const IonPickerColumn = /*@__PURE__*/ defineContainer('ion-picker-column', defin
830
808
  ], [
831
809
  'ionChange'
832
810
  ]);
833
- const IonPickerColumnOption = /*@__PURE__*/ defineContainer('ion-picker-column-option', defineCustomElement$O, [
811
+ const IonPickerColumnOption = /*@__PURE__*/ defineContainer('ion-picker-column-option', defineCustomElement$M, [
834
812
  'disabled',
835
813
  'value',
836
814
  'color'
837
815
  ]);
838
- const IonProgressBar = /*@__PURE__*/ defineContainer('ion-progress-bar', defineCustomElement$P, [
816
+ const IonProgressBar = /*@__PURE__*/ defineContainer('ion-progress-bar', defineCustomElement$N, [
839
817
  'type',
840
818
  'reversed',
841
819
  'value',
842
820
  'buffer',
843
- 'color',
844
- 'shape'
821
+ 'color'
845
822
  ]);
846
- const IonRadio = /*@__PURE__*/ defineContainer('ion-radio', defineCustomElement$Q, [
823
+ const IonRadio = /*@__PURE__*/ defineContainer('ion-radio', defineCustomElement$O, [
847
824
  'color',
848
825
  'name',
849
826
  'disabled',
@@ -856,8 +833,8 @@ const IonRadio = /*@__PURE__*/ defineContainer('ion-radio', defineCustomElement$
856
833
  ], [
857
834
  'ionFocus',
858
835
  'ionBlur'
859
- ], 'value', 'ion-change');
860
- const IonRadioGroup = /*@__PURE__*/ defineContainer('ion-radio-group', defineCustomElement$R, [
836
+ ], 'value', 'ionChange', undefined);
837
+ const IonRadioGroup = /*@__PURE__*/ defineContainer('ion-radio-group', defineCustomElement$P, [
861
838
  'allowEmptySelection',
862
839
  'compareWith',
863
840
  'name',
@@ -869,8 +846,8 @@ const IonRadioGroup = /*@__PURE__*/ defineContainer('ion-radio-group', defineCus
869
846
  ], [
870
847
  'ionChange',
871
848
  'ionValueChange'
872
- ], 'value', 'ion-change');
873
- const IonRange = /*@__PURE__*/ defineContainer('ion-range', defineCustomElement$S, [
849
+ ], 'value', 'ionChange', undefined);
850
+ const IonRange = /*@__PURE__*/ defineContainer('ion-range', defineCustomElement$Q, [
874
851
  'color',
875
852
  'debounce',
876
853
  'name',
@@ -900,8 +877,8 @@ const IonRange = /*@__PURE__*/ defineContainer('ion-range', defineCustomElement$
900
877
  'ionBlur',
901
878
  'ionKnobMoveStart',
902
879
  'ionKnobMoveEnd'
903
- ], 'value', 'ion-input');
904
- const IonRefresher = /*@__PURE__*/ defineContainer('ion-refresher', defineCustomElement$T, [
880
+ ], 'value', 'ionInput', undefined);
881
+ const IonRefresher = /*@__PURE__*/ defineContainer('ion-refresher', defineCustomElement$R, [
905
882
  'pullMin',
906
883
  'pullMax',
907
884
  'closeDuration',
@@ -920,14 +897,14 @@ const IonRefresher = /*@__PURE__*/ defineContainer('ion-refresher', defineCustom
920
897
  'ionPullStart',
921
898
  'ionPullEnd'
922
899
  ]);
923
- const IonRefresherContent = /*@__PURE__*/ defineContainer('ion-refresher-content', defineCustomElement$U, [
900
+ const IonRefresherContent = /*@__PURE__*/ defineContainer('ion-refresher-content', defineCustomElement$S, [
924
901
  'pullingIcon',
925
902
  'pullingText',
926
903
  'refreshingSpinner',
927
904
  'refreshingText'
928
905
  ]);
929
- const IonReorder = /*@__PURE__*/ defineContainer('ion-reorder', defineCustomElement$V);
930
- const IonReorderGroup = /*@__PURE__*/ defineContainer('ion-reorder-group', defineCustomElement$W, [
906
+ const IonReorder = /*@__PURE__*/ defineContainer('ion-reorder', defineCustomElement$T);
907
+ const IonReorderGroup = /*@__PURE__*/ defineContainer('ion-reorder-group', defineCustomElement$U, [
931
908
  'disabled',
932
909
  'ionItemReorder',
933
910
  'ionReorderStart',
@@ -939,11 +916,11 @@ const IonReorderGroup = /*@__PURE__*/ defineContainer('ion-reorder-group', defin
939
916
  'ionReorderMove',
940
917
  'ionReorderEnd'
941
918
  ]);
942
- const IonRippleEffect = /*@__PURE__*/ defineContainer('ion-ripple-effect', defineCustomElement$X, [
919
+ const IonRippleEffect = /*@__PURE__*/ defineContainer('ion-ripple-effect', defineCustomElement$V, [
943
920
  'type'
944
921
  ]);
945
- const IonRow = /*@__PURE__*/ defineContainer('ion-row', defineCustomElement$Y);
946
- const IonSearchbar = /*@__PURE__*/ defineContainer('ion-searchbar', defineCustomElement$Z, [
922
+ const IonRow = /*@__PURE__*/ defineContainer('ion-row', defineCustomElement$W);
923
+ const IonSearchbar = /*@__PURE__*/ defineContainer('ion-searchbar', defineCustomElement$X, [
947
924
  'color',
948
925
  'animated',
949
926
  'autocapitalize',
@@ -966,8 +943,6 @@ const IonSearchbar = /*@__PURE__*/ defineContainer('ion-searchbar', defineCustom
966
943
  'spellcheck',
967
944
  'type',
968
945
  'value',
969
- 'shape',
970
- 'size',
971
946
  'ionInput',
972
947
  'ionChange',
973
948
  'ionCancel',
@@ -983,8 +958,8 @@ const IonSearchbar = /*@__PURE__*/ defineContainer('ion-searchbar', defineCustom
983
958
  'ionBlur',
984
959
  'ionFocus',
985
960
  'ionStyle'
986
- ], 'value', 'ion-input');
987
- const IonSegment = /*@__PURE__*/ defineContainer('ion-segment', defineCustomElement$_, [
961
+ ], 'value', 'ionInput', undefined);
962
+ const IonSegment = /*@__PURE__*/ defineContainer('ion-segment', defineCustomElement$Y, [
988
963
  'color',
989
964
  'disabled',
990
965
  'scrollable',
@@ -998,25 +973,24 @@ const IonSegment = /*@__PURE__*/ defineContainer('ion-segment', defineCustomElem
998
973
  'ionChange',
999
974
  'ionSelect',
1000
975
  'ionStyle'
1001
- ], 'value', 'ion-change');
1002
- const IonSegmentButton = /*@__PURE__*/ defineContainer('ion-segment-button', defineCustomElement$$, [
976
+ ], 'value', 'ionChange', undefined);
977
+ const IonSegmentButton = /*@__PURE__*/ defineContainer('ion-segment-button', defineCustomElement$Z, [
1003
978
  'contentId',
1004
979
  'disabled',
1005
980
  'layout',
1006
981
  'type',
1007
982
  'value'
1008
- ], [], 'value', 'ion-change');
1009
- const IonSegmentContent = /*@__PURE__*/ defineContainer('ion-segment-content', defineCustomElement$10);
1010
- const IonSegmentView = /*@__PURE__*/ defineContainer('ion-segment-view', defineCustomElement$11, [
983
+ ], [], 'value', 'ionChange', undefined);
984
+ const IonSegmentContent = /*@__PURE__*/ defineContainer('ion-segment-content', defineCustomElement$_);
985
+ const IonSegmentView = /*@__PURE__*/ defineContainer('ion-segment-view', defineCustomElement$$, [
1011
986
  'disabled',
1012
987
  'swipeGesture',
1013
988
  'ionSegmentViewScroll'
1014
989
  ], [
1015
990
  'ionSegmentViewScroll'
1016
991
  ]);
1017
- const IonSelect = /*@__PURE__*/ defineContainer('ion-select', defineCustomElement$12, [
992
+ const IonSelect = /*@__PURE__*/ defineContainer('ion-select', defineCustomElement$10, [
1018
993
  'cancelText',
1019
- 'cancelIcon',
1020
994
  'color',
1021
995
  'compareWith',
1022
996
  'disabled',
@@ -1035,10 +1009,9 @@ const IonSelect = /*@__PURE__*/ defineContainer('ion-select', defineCustomElemen
1035
1009
  'selectedText',
1036
1010
  'toggleIcon',
1037
1011
  'expandedIcon',
1038
- 'required',
1039
1012
  'shape',
1040
- 'size',
1041
1013
  'value',
1014
+ 'required',
1042
1015
  'ionChange',
1043
1016
  'ionCancel',
1044
1017
  'ionDismiss',
@@ -1052,33 +1025,30 @@ const IonSelect = /*@__PURE__*/ defineContainer('ion-select', defineCustomElemen
1052
1025
  'ionFocus',
1053
1026
  'ionBlur',
1054
1027
  'ionStyle'
1055
- ], 'value', 'ion-change');
1056
- const IonSelectModal = /*@__PURE__*/ defineContainer('ion-select-modal', defineCustomElement$13, [
1028
+ ], 'value', 'ionChange', undefined);
1029
+ const IonSelectModal = /*@__PURE__*/ defineContainer('ion-select-modal', defineCustomElement$11, [
1057
1030
  'header',
1058
1031
  'cancelText',
1059
- 'cancelIcon',
1060
1032
  'multiple',
1061
1033
  'options'
1062
1034
  ]);
1063
- const IonSelectOption = /*@__PURE__*/ defineContainer('ion-select-option', defineCustomElement$14, [
1035
+ const IonSelectOption = /*@__PURE__*/ defineContainer('ion-select-option', defineCustomElement$12, [
1064
1036
  'disabled',
1065
- 'value',
1066
- 'description'
1037
+ 'value'
1067
1038
  ]);
1068
- const IonSkeletonText = /*@__PURE__*/ defineContainer('ion-skeleton-text', defineCustomElement$15, [
1039
+ const IonSkeletonText = /*@__PURE__*/ defineContainer('ion-skeleton-text', defineCustomElement$13, [
1069
1040
  'animated',
1070
1041
  'ionStyle'
1071
1042
  ], [
1072
1043
  'ionStyle'
1073
1044
  ]);
1074
- const IonSpinner = /*@__PURE__*/ defineContainer('ion-spinner', defineCustomElement$16, [
1045
+ const IonSpinner = /*@__PURE__*/ defineContainer('ion-spinner', defineCustomElement$14, [
1075
1046
  'color',
1076
1047
  'duration',
1077
1048
  'name',
1078
- 'paused',
1079
- 'size'
1049
+ 'paused'
1080
1050
  ]);
1081
- const IonSplitPane = /*@__PURE__*/ defineContainer('ion-split-pane', defineCustomElement$17, [
1051
+ const IonSplitPane = /*@__PURE__*/ defineContainer('ion-split-pane', defineCustomElement$15, [
1082
1052
  'contentId',
1083
1053
  'disabled',
1084
1054
  'when',
@@ -1086,16 +1056,16 @@ const IonSplitPane = /*@__PURE__*/ defineContainer('ion-split-pane', defineCusto
1086
1056
  ], [
1087
1057
  'ionSplitPaneVisible'
1088
1058
  ]);
1089
- const IonTab = /*@__PURE__*/ defineContainer('ion-tab', defineCustomElement$18, [
1059
+ const IonTab = /*@__PURE__*/ defineContainer('ion-tab', defineCustomElement$16, [
1090
1060
  'active',
1091
1061
  'delegate',
1092
1062
  'tab',
1093
1063
  'component'
1094
1064
  ]);
1095
- const IonText = /*@__PURE__*/ defineContainer('ion-text', defineCustomElement$19, [
1065
+ const IonText = /*@__PURE__*/ defineContainer('ion-text', defineCustomElement$17, [
1096
1066
  'color'
1097
1067
  ]);
1098
- const IonTextarea = /*@__PURE__*/ defineContainer('ion-textarea', defineCustomElement$1a, [
1068
+ const IonTextarea = /*@__PURE__*/ defineContainer('ion-textarea', defineCustomElement$18, [
1099
1069
  'color',
1100
1070
  'autocapitalize',
1101
1071
  'autofocus',
@@ -1124,7 +1094,6 @@ const IonTextarea = /*@__PURE__*/ defineContainer('ion-textarea', defineCustomEl
1124
1094
  'label',
1125
1095
  'labelPlacement',
1126
1096
  'shape',
1127
- 'size',
1128
1097
  'ionChange',
1129
1098
  'ionInput',
1130
1099
  'ionBlur',
@@ -1134,16 +1103,16 @@ const IonTextarea = /*@__PURE__*/ defineContainer('ion-textarea', defineCustomEl
1134
1103
  'ionInput',
1135
1104
  'ionBlur',
1136
1105
  'ionFocus'
1137
- ], 'value', 'ion-input');
1138
- const IonThumbnail = /*@__PURE__*/ defineContainer('ion-thumbnail', defineCustomElement$1b);
1139
- const IonTitle = /*@__PURE__*/ defineContainer('ion-title', defineCustomElement$1c, [
1106
+ ], 'value', 'ionInput', undefined);
1107
+ const IonThumbnail = /*@__PURE__*/ defineContainer('ion-thumbnail', defineCustomElement$19);
1108
+ const IonTitle = /*@__PURE__*/ defineContainer('ion-title', defineCustomElement$1a, [
1140
1109
  'color',
1141
1110
  'size',
1142
1111
  'ionStyle'
1143
1112
  ], [
1144
1113
  'ionStyle'
1145
1114
  ]);
1146
- const IonToggle = /*@__PURE__*/ defineContainer('ion-toggle', defineCustomElement$1d, [
1115
+ const IonToggle = /*@__PURE__*/ defineContainer('ion-toggle', defineCustomElement$1b, [
1147
1116
  'color',
1148
1117
  'name',
1149
1118
  'checked',
@@ -1163,10 +1132,9 @@ const IonToggle = /*@__PURE__*/ defineContainer('ion-toggle', defineCustomElemen
1163
1132
  'ionChange',
1164
1133
  'ionFocus',
1165
1134
  'ionBlur'
1166
- ], 'checked', 'ion-change');
1167
- const IonToolbar = /*@__PURE__*/ defineContainer('ion-toolbar', defineCustomElement$1e, [
1168
- 'color',
1169
- 'titlePlacement'
1135
+ ], 'checked', 'ionChange', undefined);
1136
+ const IonToolbar = /*@__PURE__*/ defineContainer('ion-toolbar', defineCustomElement$1c, [
1137
+ 'color'
1170
1138
  ]);
1171
1139
 
1172
1140
  const useBackButton = (priority, handler) => {
@@ -1329,7 +1297,7 @@ const IonicVue = {
1329
1297
  };
1330
1298
 
1331
1299
  const IonBackButton = /*@__PURE__*/ defineComponent((_, { attrs, slots }) => {
1332
- defineCustomElement$1f();
1300
+ defineCustomElement$1d();
1333
1301
  // TODO(FW-2969): type
1334
1302
  const ionRouter = inject("navManager");
1335
1303
  const onClick = () => {
@@ -1375,8 +1343,14 @@ const isViewVisible = (enteringEl) => {
1375
1343
  const viewDepthKey = Symbol(0);
1376
1344
  const IonRouterOutlet = /*@__PURE__*/ defineComponent({
1377
1345
  name: "IonRouterOutlet",
1346
+ props: {
1347
+ swipeGesture: {
1348
+ type: Boolean,
1349
+ default: undefined,
1350
+ },
1351
+ },
1378
1352
  setup() {
1379
- defineCustomElement$1g();
1353
+ defineCustomElement$1e();
1380
1354
  const injectedRoute = inject(routeLocationKey);
1381
1355
  const route = useRoute();
1382
1356
  const depth = inject(viewDepthKey, 0);
@@ -1452,11 +1426,6 @@ const IonRouterOutlet = /*@__PURE__*/ defineComponent({
1452
1426
  */
1453
1427
  { deep: true });
1454
1428
  const canStart = () => {
1455
- const config = getConfig();
1456
- const swipeEnabled = config &&
1457
- config.get("swipeBackEnabled", ionRouterOutlet.value.mode === "ios");
1458
- if (!swipeEnabled)
1459
- return false;
1460
1429
  const stack = viewStacks.getViewStack(id);
1461
1430
  if (!stack || stack.length <= 1)
1462
1431
  return false;
@@ -1747,7 +1716,15 @@ See https://ionicframework.com/docs/vue/navigation#ionpage for more information.
1747
1716
  },
1748
1717
  render() {
1749
1718
  const { components, registerIonPage, injectedRoute } = this;
1750
- return h("ion-router-outlet", { ref: "ionRouterOutlet" }, components &&
1719
+ /**
1720
+ * Forward props selectively to avoid setting undefined values
1721
+ * that would override the web component's config-based defaults.
1722
+ */
1723
+ const routerOutletProps = { ref: "ionRouterOutlet" };
1724
+ if (this.$props.swipeGesture !== undefined) {
1725
+ routerOutletProps.swipeGesture = this.$props.swipeGesture;
1726
+ }
1727
+ return h("ion-router-outlet", routerOutletProps, components &&
1751
1728
  components.map((c) => {
1752
1729
  var _a, _b;
1753
1730
  let props = {
@@ -1816,7 +1793,7 @@ const IonTabButton = /*@__PURE__*/ defineComponent({
1816
1793
  },
1817
1794
  },
1818
1795
  setup(props, { slots }) {
1819
- defineCustomElement$1h();
1796
+ defineCustomElement$1f();
1820
1797
  // TODO(FW-2969): type
1821
1798
  const ionRouter = inject("navManager", null);
1822
1799
  const onClick = (ev) => {
@@ -1945,7 +1922,7 @@ const IonTabs = /*@__PURE__*/ defineComponent({
1945
1922
  * `selectedTab` from core, which may occur if the custom
1946
1923
  * element is defined too early in the component's lifecycle.
1947
1924
  */
1948
- defineCustomElement$1i();
1925
+ defineCustomElement$1g();
1949
1926
  },
1950
1927
  render() {
1951
1928
  const { slots, props } = this;
@@ -2223,7 +2200,7 @@ const IonTabBar = defineComponent({
2223
2200
  ionRouter === null || ionRouter === void 0 ? void 0 : ionRouter.registerHistoryChangeListener(() => this.checkActiveTab(ionRouter));
2224
2201
  },
2225
2202
  setup(_, { slots }) {
2226
- defineCustomElement$1j();
2203
+ defineCustomElement$1h();
2227
2204
  return () => {
2228
2205
  return h("ion-tab-bar", { ref: "ionTabBar" }, slots.default && slots.default());
2229
2206
  };
@@ -2232,7 +2209,7 @@ const IonTabBar = defineComponent({
2232
2209
 
2233
2210
  const userComponents = shallowRef([]);
2234
2211
  const IonApp = /*@__PURE__*/ defineComponent((_, { attrs, slots }) => {
2235
- defineCustomElement$1k();
2212
+ defineCustomElement$1i();
2236
2213
  return () => {
2237
2214
  return h("ion-app", Object.assign({ name: "IonApp" }, attrs), [slots.default && slots.default(), ...userComponents.value]);
2238
2215
  };
@@ -2285,7 +2262,7 @@ const VueDelegate = (addFn = addTeleportedUserComponent, removeFn = removeTelepo
2285
2262
  };
2286
2263
 
2287
2264
  const IonNav = /*@__PURE__*/ defineComponent((props) => {
2288
- defineCustomElement$1l();
2265
+ defineCustomElement$1j();
2289
2266
  const views = shallowRef([]);
2290
2267
  /**
2291
2268
  * Allows us to create the component
@@ -2332,7 +2309,7 @@ const IonNav = /*@__PURE__*/ defineComponent((props) => {
2332
2309
  });
2333
2310
 
2334
2311
  const IonIcon = /*@__PURE__*/ defineComponent((props, { slots }) => {
2335
- defineCustomElement$1m();
2312
+ defineCustomElement$1k();
2336
2313
  return () => {
2337
2314
  var _a, _b;
2338
2315
  const { icon, ios, md, mode } = props;
@@ -2584,13 +2561,12 @@ const defineOverlayContainer = (name, defineCustomElement, componentProps = [],
2584
2561
  * This is an autogenerated file created by 'scripts/copy-overlays.js'.
2585
2562
  * Changes made to this file will be overwritten on build.
2586
2563
  */
2587
- const IonActionSheet = /*@__PURE__*/ defineOverlayContainer('ion-action-sheet', defineCustomElement$1n, ['animated', 'backdropDismiss', 'buttons', 'cssClass', 'enterAnimation', 'header', 'htmlAttributes', 'isOpen', 'keyboardClose', 'leaveAnimation', 'mode', 'subHeader', 'theme', 'translucent', 'trigger']);
2588
- const IonAlert = /*@__PURE__*/ defineOverlayContainer('ion-alert', defineCustomElement$1o, ['animated', 'backdropDismiss', 'buttons', 'cssClass', 'enterAnimation', 'header', 'htmlAttributes', 'inputs', 'isOpen', 'keyboardClose', 'leaveAnimation', 'message', 'mode', 'subHeader', 'theme', 'translucent', 'trigger']);
2589
- const IonLoading = /*@__PURE__*/ defineOverlayContainer('ion-loading', defineCustomElement$1p, ['animated', 'backdropDismiss', 'cssClass', 'duration', 'enterAnimation', 'htmlAttributes', 'isOpen', 'keyboardClose', 'leaveAnimation', 'message', 'mode', 'showBackdrop', 'spinner', 'theme', 'translucent', 'trigger']);
2590
- const IonModal = /*@__PURE__*/ defineOverlayContainer('ion-modal', defineCustomElement$1q, ['animated', 'backdropBreakpoint', 'backdropDismiss', 'breakpoints', 'canDismiss', 'enterAnimation', 'expandToScroll', 'focusTrap', 'handle', 'handleBehavior', 'htmlAttributes', 'initialBreakpoint', 'isOpen', 'keepContentsMounted', 'keyboardClose', 'leaveAnimation', 'mode', 'presentingElement', 'shape', 'showBackdrop', 'theme', 'trigger'], true);
2591
- const IonPickerLegacy = /*@__PURE__*/ defineOverlayContainer('ion-picker-legacy', defineCustomElement$1r, ['animated', 'backdropDismiss', 'buttons', 'columns', 'cssClass', 'duration', 'enterAnimation', 'htmlAttributes', 'isOpen', 'keyboardClose', 'leaveAnimation', 'mode', 'showBackdrop', 'theme', 'trigger']);
2592
- const IonPopover = /*@__PURE__*/ defineOverlayContainer('ion-popover', defineCustomElement$1s, ['alignment', 'animated', 'arrow', 'backdropDismiss', 'component', 'componentProps', 'dismissOnSelect', 'enterAnimation', 'event', 'focusTrap', 'htmlAttributes', 'isOpen', 'keepContentsMounted', 'keyboardClose', 'leaveAnimation', 'mode', 'reference', 'showBackdrop', 'side', 'size', 'theme', 'translucent', 'trigger', 'triggerAction']);
2593
- const IonToast = /*@__PURE__*/ defineOverlayContainer('ion-toast', defineCustomElement$1t, ['animated', 'buttons', 'color', 'cssClass', 'duration', 'enterAnimation', 'header', 'htmlAttributes', 'hue', 'icon', 'isOpen', 'keyboardClose', 'layout', 'leaveAnimation', 'message', 'mode', 'position', 'positionAnchor', 'shape', 'swipeGesture', 'theme', 'translucent', 'trigger']);
2564
+ const IonActionSheet = /*@__PURE__*/ defineOverlayContainer('ion-action-sheet', defineCustomElement$1l, ['animated', 'backdropDismiss', 'buttons', 'cssClass', 'enterAnimation', 'header', 'htmlAttributes', 'isOpen', 'keyboardClose', 'leaveAnimation', 'mode', 'subHeader', 'translucent', 'trigger']);
2565
+ const IonAlert = /*@__PURE__*/ defineOverlayContainer('ion-alert', defineCustomElement$1m, ['animated', 'backdropDismiss', 'buttons', 'cssClass', 'enterAnimation', 'header', 'htmlAttributes', 'inputs', 'isOpen', 'keyboardClose', 'leaveAnimation', 'message', 'mode', 'subHeader', 'translucent', 'trigger']);
2566
+ const IonLoading = /*@__PURE__*/ defineOverlayContainer('ion-loading', defineCustomElement$1n, ['animated', 'backdropDismiss', 'cssClass', 'duration', 'enterAnimation', 'htmlAttributes', 'isOpen', 'keyboardClose', 'leaveAnimation', 'message', 'mode', 'showBackdrop', 'spinner', 'translucent', 'trigger']);
2567
+ const IonModal = /*@__PURE__*/ defineOverlayContainer('ion-modal', defineCustomElement$1o, ['animated', 'backdropBreakpoint', 'backdropDismiss', 'breakpoints', 'canDismiss', 'enterAnimation', 'expandToScroll', 'focusTrap', 'handle', 'handleBehavior', 'htmlAttributes', 'initialBreakpoint', 'isOpen', 'keepContentsMounted', 'keyboardClose', 'leaveAnimation', 'mode', 'presentingElement', 'showBackdrop', 'trigger'], true);
2568
+ const IonPopover = /*@__PURE__*/ defineOverlayContainer('ion-popover', defineCustomElement$1p, ['alignment', 'animated', 'arrow', 'backdropDismiss', 'component', 'componentProps', 'dismissOnSelect', 'enterAnimation', 'event', 'focusTrap', 'htmlAttributes', 'isOpen', 'keepContentsMounted', 'keyboardClose', 'leaveAnimation', 'mode', 'reference', 'showBackdrop', 'side', 'size', 'translucent', 'trigger', 'triggerAction']);
2569
+ const IonToast = /*@__PURE__*/ defineOverlayContainer('ion-toast', defineCustomElement$1q, ['animated', 'buttons', 'color', 'cssClass', 'duration', 'enterAnimation', 'header', 'htmlAttributes', 'icon', 'isOpen', 'keyboardClose', 'layout', 'leaveAnimation', 'message', 'mode', 'position', 'positionAnchor', 'swipeGesture', 'translucent', 'trigger']);
2594
2570
 
2595
2571
  // TODO(FW-2969): types
2596
2572
  /**
@@ -2607,16 +2583,12 @@ const createController = (defineCustomElement, oldController, useDelegate = fals
2607
2583
  };
2608
2584
  return oldController;
2609
2585
  };
2610
- const modalController = /*@__PURE__*/ createController(defineCustomElement$1q, modalController$1, true);
2611
- const popoverController = /*@__PURE__*/ createController(defineCustomElement$1s, popoverController$1, true);
2612
- const alertController = /*@__PURE__*/ createController(defineCustomElement$1o, alertController$1);
2613
- const actionSheetController = /*@__PURE__*/ createController(defineCustomElement$1n, actionSheetController$1);
2614
- const loadingController = /*@__PURE__*/ createController(defineCustomElement$1p, loadingController$1);
2615
- /**
2616
- * @deprecated Use the inline ion-picker component instead.
2617
- */
2618
- const pickerController = /*@__PURE__*/ createController(defineCustomElement$1r, pickerController$1);
2619
- const toastController = /*@__PURE__*/ createController(defineCustomElement$1t, toastController$1);
2586
+ const modalController = /*@__PURE__*/ createController(defineCustomElement$1o, modalController$1, true);
2587
+ const popoverController = /*@__PURE__*/ createController(defineCustomElement$1p, popoverController$1, true);
2588
+ const alertController = /*@__PURE__*/ createController(defineCustomElement$1m, alertController$1);
2589
+ const actionSheetController = /*@__PURE__*/ createController(defineCustomElement$1l, actionSheetController$1);
2590
+ const loadingController = /*@__PURE__*/ createController(defineCustomElement$1n, loadingController$1);
2591
+ const toastController = /*@__PURE__*/ createController(defineCustomElement$1q, toastController$1);
2620
2592
 
2621
- export { IonAccordion, IonAccordionGroup, IonActionSheet, IonAlert, IonApp, IonAvatar, IonBackButton, IonBackdrop, IonBadge, IonBreadcrumb, IonBreadcrumbs, IonButton, IonButtons, IonCard, IonCardContent, IonCardHeader, IonCardSubtitle, IonCardTitle, IonCheckbox, IonChip, IonCol, IonContent, IonDatetime, IonDatetimeButton, IonDivider, IonFab, IonFabButton, IonFabList, IonFooter, IonGallery, IonGrid, IonHeader, IonIcon, IonImg, IonInfiniteScroll, IonInfiniteScrollContent, IonInput, IonInputOtp, IonInputPasswordToggle, IonItem, IonItemDivider, IonItemGroup, IonItemOption, IonItemOptions, IonItemSliding, IonLabel, IonList, IonListHeader, IonLoading, IonMenu, IonMenuButton, IonMenuToggle, IonModal, IonNav, IonNavLink, IonNote, IonPage, IonPicker, IonPickerColumn, IonPickerColumnOption, IonPickerLegacy, IonPopover, IonProgressBar, IonRadio, IonRadioGroup, IonRange, IonRefresher, IonRefresherContent, IonReorder, IonReorderGroup, IonRippleEffect, IonRouterOutlet, IonRow, IonSearchbar, IonSegment, IonSegmentButton, IonSegmentContent, IonSegmentView, IonSelect, IonSelectModal, IonSelectOption, IonSkeletonText, IonSpinner, IonSplitPane, IonTab, IonTabBar, IonTabButton, IonTabs, IonText, IonTextarea, IonThumbnail, IonTitle, IonToast, IonToggle, IonToolbar, IonicVue, actionSheetController, alertController, loadingController, modalController, onIonViewDidEnter, onIonViewDidLeave, onIonViewWillEnter, onIonViewWillLeave, pickerController, popoverController, toastController, useBackButton, useIonRouter, useKeyboard };
2593
+ export { IonAccordion, IonAccordionGroup, IonActionSheet, IonAlert, IonApp, IonAvatar, IonBackButton, IonBackdrop, IonBadge, IonBreadcrumb, IonBreadcrumbs, IonButton, IonButtons, IonCard, IonCardContent, IonCardHeader, IonCardSubtitle, IonCardTitle, IonCheckbox, IonChip, IonCol, IonContent, IonDatetime, IonDatetimeButton, IonFab, IonFabButton, IonFabList, IonFooter, IonGrid, IonHeader, IonIcon, IonImg, IonInfiniteScroll, IonInfiniteScrollContent, IonInput, IonInputOtp, IonInputPasswordToggle, IonItem, IonItemDivider, IonItemGroup, IonItemOption, IonItemOptions, IonItemSliding, IonLabel, IonList, IonListHeader, IonLoading, IonMenu, IonMenuButton, IonMenuToggle, IonModal, IonNav, IonNavLink, IonNote, IonPage, IonPicker, IonPickerColumn, IonPickerColumnOption, IonPopover, IonProgressBar, IonRadio, IonRadioGroup, IonRange, IonRefresher, IonRefresherContent, IonReorder, IonReorderGroup, IonRippleEffect, IonRouterOutlet, IonRow, IonSearchbar, IonSegment, IonSegmentButton, IonSegmentContent, IonSegmentView, IonSelect, IonSelectModal, IonSelectOption, IonSkeletonText, IonSpinner, IonSplitPane, IonTab, IonTabBar, IonTabButton, IonTabs, IonText, IonTextarea, IonThumbnail, IonTitle, IonToast, IonToggle, IonToolbar, IonicVue, actionSheetController, alertController, loadingController, modalController, onIonViewDidEnter, onIonViewDidLeave, onIonViewWillEnter, onIonViewWillLeave, popoverController, toastController, useBackButton, useIonRouter, useKeyboard };
2622
2594
  //# sourceMappingURL=index.js.map