@ionic/vue 8.8.10 → 8.8.11-dev.11781186446.19d9a1cc

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -77,7 +77,7 @@ import { defineCustomElement as defineCustomElement$19 } from '@ionic/core/compo
77
77
  import { defineCustomElement as defineCustomElement$1a } from '@ionic/core/components/ion-title.js';
78
78
  import { defineCustomElement as defineCustomElement$1b } from '@ionic/core/components/ion-toggle.js';
79
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, pickerController as pickerController$1, toastController as toastController$1 } from '@ionic/core/components';
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';
81
81
  export { IonicSafeString, IonicSlides, createAnimation, createGesture, getIonPageElement, getPlatforms, getTimeGivenProgression, iosTransitionAnimation, isPlatform, mdTransitionAnimation, menuController, openURL } from '@ionic/core/components';
82
82
  import { defineCustomElement as defineCustomElement$1d } from '@ionic/core/components/ion-back-button.js';
83
83
  import { defineCustomElement as defineCustomElement$1e } from '@ionic/core/components/ion-router-outlet.js';
@@ -91,9 +91,8 @@ import { defineCustomElement as defineCustomElement$1l } from '@ionic/core/compo
91
91
  import { defineCustomElement as defineCustomElement$1m } from '@ionic/core/components/ion-alert.js';
92
92
  import { defineCustomElement as defineCustomElement$1n } from '@ionic/core/components/ion-loading.js';
93
93
  import { defineCustomElement as defineCustomElement$1o } from '@ionic/core/components/ion-modal.js';
94
- import { defineCustomElement as defineCustomElement$1p } from '@ionic/core/components/ion-picker-legacy.js';
95
- import { defineCustomElement as defineCustomElement$1q } from '@ionic/core/components/ion-popover.js';
96
- import { defineCustomElement as defineCustomElement$1r } from '@ionic/core/components/ion-toast.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';
97
96
 
98
97
  const UPDATE_VALUE_EVENT = 'update:modelValue';
99
98
  const MODEL_VALUE = 'modelValue';
@@ -115,8 +114,19 @@ const DEFAULT_EMPTY_PROP$1 = { default: EMPTY_PROP$1 };
115
114
  const getComponentClasses = (classes) => {
116
115
  return classes?.split(' ') || [];
117
116
  };
118
- const getElementClasses = (ref, componentClasses, defaultClasses = []) => {
119
- 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
+ });
120
130
  };
121
131
  /**
122
132
  * Create a callback to define a Vue component wrapper around a Web Component.
@@ -132,8 +142,9 @@ const getElementClasses = (ref, componentClasses, defaultClasses = []) => {
132
142
  * to customElements.define. Only set if `includeImportCustomElements: true` in your config.
133
143
  * @prop modelProp - The prop that v-model binds to (i.e. value)
134
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.
135
146
  */
136
- const defineContainer = (name, defineCustomElement, componentProps = [], emitProps = [], modelProp, modelUpdateEvent) => {
147
+ const defineContainer = (name, defineCustomElement, componentProps = [], emitProps = [], modelProp, modelUpdateEvent, modelUpdateEventAttribute, transformTagFn) => {
137
148
  /**
138
149
  * Create a Vue component wrapper around a Web Component.
139
150
  * Note: The `props` here are not all properties on a component.
@@ -178,7 +189,7 @@ const defineContainer = (name, defineCustomElement, componentProps = [], emitPro
178
189
  */
179
190
  const vModelDirective = {
180
191
  created: (el) => {
181
- 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];
182
193
  eventsNames.forEach((eventName) => {
183
194
  el.addEventListener(eventName, (e) => {
184
195
  /**
@@ -189,7 +200,11 @@ const defineContainer = (name, defineCustomElement, componentProps = [], emitPro
189
200
  * when ionChange bubbles up from Component B.
190
201
  */
191
202
  if (e.target.tagName === el.tagName && modelProp) {
192
- 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);
193
208
  emit(UPDATE_VALUE_EVENT, modelPropValue);
194
209
  }
195
210
  });
@@ -243,7 +258,7 @@ const defineContainer = (name, defineCustomElement, componentProps = [], emitPro
243
258
  };
244
259
  const propsToAdd = {
245
260
  ref: containerRef,
246
- class: getElementClasses(containerRef, classes),
261
+ class: syncElementClasses(containerRef, classes),
247
262
  onClick: handleClick,
248
263
  };
249
264
  /**
@@ -291,7 +306,8 @@ const defineContainer = (name, defineCustomElement, componentProps = [], emitPro
291
306
  * vModelDirective is only needed on components that support v-model.
292
307
  * As a result, we conditionally call withDirectives with v-model components.
293
308
  */
294
- 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());
295
311
  return modelProp === undefined ? node : withDirectives(node, [[vModelDirective]]);
296
312
  };
297
313
  }, {
@@ -323,7 +339,7 @@ const IonAccordionGroup = /*@__PURE__*/ defineContainer('ion-accordion-group', d
323
339
  ], [
324
340
  'ionChange',
325
341
  'ionValueChange'
326
- ], 'value', 'ion-change');
342
+ ], 'value', 'ionChange', undefined);
327
343
  const IonAvatar = /*@__PURE__*/ defineContainer('ion-avatar', defineCustomElement$2);
328
344
  const IonBackdrop = /*@__PURE__*/ defineContainer('ion-backdrop', defineCustomElement$3, [
329
345
  'visible',
@@ -436,7 +452,7 @@ const IonCheckbox = /*@__PURE__*/ defineContainer('ion-checkbox', defineCustomEl
436
452
  'ionChange',
437
453
  'ionFocus',
438
454
  'ionBlur'
439
- ], 'checked', 'ion-change');
455
+ ], 'checked', 'ionChange', undefined);
440
456
  const IonChip = /*@__PURE__*/ defineContainer('ion-chip', defineCustomElement$f, [
441
457
  'color',
442
458
  'outline',
@@ -531,7 +547,7 @@ const IonDatetime = /*@__PURE__*/ defineContainer('ion-datetime', defineCustomEl
531
547
  'ionBlur',
532
548
  'ionStyle',
533
549
  'ionRender'
534
- ], 'value', 'ion-change');
550
+ ], 'value', 'ionChange', undefined);
535
551
  const IonDatetimeButton = /*@__PURE__*/ defineContainer('ion-datetime-button', defineCustomElement$j, [
536
552
  'color',
537
553
  'disabled',
@@ -646,7 +662,7 @@ const IonInput = /*@__PURE__*/ defineContainer('ion-input', defineCustomElement$
646
662
  'ionChange',
647
663
  'ionBlur',
648
664
  'ionFocus'
649
- ], 'value', 'ion-input');
665
+ ], 'value', 'ionInput', undefined);
650
666
  const IonInputOtp = /*@__PURE__*/ defineContainer('ion-input-otp', defineCustomElement$u, [
651
667
  'autocapitalize',
652
668
  'color',
@@ -672,7 +688,7 @@ const IonInputOtp = /*@__PURE__*/ defineContainer('ion-input-otp', defineCustomE
672
688
  'ionComplete',
673
689
  'ionBlur',
674
690
  'ionFocus'
675
- ], 'value', 'ion-input');
691
+ ], 'value', 'ionInput', undefined);
676
692
  const IonInputPasswordToggle = /*@__PURE__*/ defineContainer('ion-input-password-toggle', defineCustomElement$v, [
677
693
  'color',
678
694
  'showIcon',
@@ -817,7 +833,7 @@ const IonRadio = /*@__PURE__*/ defineContainer('ion-radio', defineCustomElement$
817
833
  ], [
818
834
  'ionFocus',
819
835
  'ionBlur'
820
- ], 'value', 'ion-change');
836
+ ], 'value', 'ionChange', undefined);
821
837
  const IonRadioGroup = /*@__PURE__*/ defineContainer('ion-radio-group', defineCustomElement$P, [
822
838
  'allowEmptySelection',
823
839
  'compareWith',
@@ -830,7 +846,7 @@ const IonRadioGroup = /*@__PURE__*/ defineContainer('ion-radio-group', defineCus
830
846
  ], [
831
847
  'ionChange',
832
848
  'ionValueChange'
833
- ], 'value', 'ion-change');
849
+ ], 'value', 'ionChange', undefined);
834
850
  const IonRange = /*@__PURE__*/ defineContainer('ion-range', defineCustomElement$Q, [
835
851
  'color',
836
852
  'debounce',
@@ -861,7 +877,7 @@ const IonRange = /*@__PURE__*/ defineContainer('ion-range', defineCustomElement$
861
877
  'ionBlur',
862
878
  'ionKnobMoveStart',
863
879
  'ionKnobMoveEnd'
864
- ], 'value', 'ion-input');
880
+ ], 'value', 'ionInput', undefined);
865
881
  const IonRefresher = /*@__PURE__*/ defineContainer('ion-refresher', defineCustomElement$R, [
866
882
  'pullMin',
867
883
  'pullMax',
@@ -942,7 +958,7 @@ const IonSearchbar = /*@__PURE__*/ defineContainer('ion-searchbar', defineCustom
942
958
  'ionBlur',
943
959
  'ionFocus',
944
960
  'ionStyle'
945
- ], 'value', 'ion-input');
961
+ ], 'value', 'ionInput', undefined);
946
962
  const IonSegment = /*@__PURE__*/ defineContainer('ion-segment', defineCustomElement$Y, [
947
963
  'color',
948
964
  'disabled',
@@ -957,14 +973,14 @@ const IonSegment = /*@__PURE__*/ defineContainer('ion-segment', defineCustomElem
957
973
  'ionChange',
958
974
  'ionSelect',
959
975
  'ionStyle'
960
- ], 'value', 'ion-change');
976
+ ], 'value', 'ionChange', undefined);
961
977
  const IonSegmentButton = /*@__PURE__*/ defineContainer('ion-segment-button', defineCustomElement$Z, [
962
978
  'contentId',
963
979
  'disabled',
964
980
  'layout',
965
981
  'type',
966
982
  'value'
967
- ], [], 'value', 'ion-change');
983
+ ], [], 'value', 'ionChange', undefined);
968
984
  const IonSegmentContent = /*@__PURE__*/ defineContainer('ion-segment-content', defineCustomElement$_);
969
985
  const IonSegmentView = /*@__PURE__*/ defineContainer('ion-segment-view', defineCustomElement$$, [
970
986
  'disabled',
@@ -1009,7 +1025,7 @@ const IonSelect = /*@__PURE__*/ defineContainer('ion-select', defineCustomElemen
1009
1025
  'ionFocus',
1010
1026
  'ionBlur',
1011
1027
  'ionStyle'
1012
- ], 'value', 'ion-change');
1028
+ ], 'value', 'ionChange', undefined);
1013
1029
  const IonSelectModal = /*@__PURE__*/ defineContainer('ion-select-modal', defineCustomElement$11, [
1014
1030
  'header',
1015
1031
  'cancelText',
@@ -1087,7 +1103,7 @@ const IonTextarea = /*@__PURE__*/ defineContainer('ion-textarea', defineCustomEl
1087
1103
  'ionInput',
1088
1104
  'ionBlur',
1089
1105
  'ionFocus'
1090
- ], 'value', 'ion-input');
1106
+ ], 'value', 'ionInput', undefined);
1091
1107
  const IonThumbnail = /*@__PURE__*/ defineContainer('ion-thumbnail', defineCustomElement$19);
1092
1108
  const IonTitle = /*@__PURE__*/ defineContainer('ion-title', defineCustomElement$1a, [
1093
1109
  'color',
@@ -1116,7 +1132,7 @@ const IonToggle = /*@__PURE__*/ defineContainer('ion-toggle', defineCustomElemen
1116
1132
  'ionChange',
1117
1133
  'ionFocus',
1118
1134
  'ionBlur'
1119
- ], 'checked', 'ion-change');
1135
+ ], 'checked', 'ionChange', undefined);
1120
1136
  const IonToolbar = /*@__PURE__*/ defineContainer('ion-toolbar', defineCustomElement$1c, [
1121
1137
  'color'
1122
1138
  ]);
@@ -1284,7 +1300,7 @@ const IonBackButton = /*@__PURE__*/ defineComponent((_, { attrs, slots }) => {
1284
1300
  defineCustomElement$1d();
1285
1301
  // TODO(FW-2969): type
1286
1302
  const ionRouter = inject("navManager");
1287
- const onClick = () => {
1303
+ const onClick = (ev) => {
1288
1304
  /**
1289
1305
  * When using ion-back-button outside of
1290
1306
  * a routing context, ionRouter is undefined.
@@ -1292,6 +1308,17 @@ const IonBackButton = /*@__PURE__*/ defineComponent((_, { attrs, slots }) => {
1292
1308
  if (ionRouter === undefined) {
1293
1309
  return;
1294
1310
  }
1311
+ /**
1312
+ * If ion-back-button is being used inside
1313
+ * of ion-nav (e.g. in a modal) then we should
1314
+ * not interact with the router. The core
1315
+ * ion-back-button component will handle the
1316
+ * nav.pop() in that case.
1317
+ */
1318
+ const target = ev.target;
1319
+ if (target && target.closest("ion-nav") !== null) {
1320
+ return;
1321
+ }
1295
1322
  const defaultHref = attrs["default-href"] || attrs["defaultHref"];
1296
1323
  const routerAnimation = attrs["router-animation"] || attrs["routerAnimation"];
1297
1324
  ionRouter.handleNavigateBack(defaultHref, routerAnimation);
@@ -1327,6 +1354,12 @@ const isViewVisible = (enteringEl) => {
1327
1354
  const viewDepthKey = Symbol(0);
1328
1355
  const IonRouterOutlet = /*@__PURE__*/ defineComponent({
1329
1356
  name: "IonRouterOutlet",
1357
+ props: {
1358
+ swipeGesture: {
1359
+ type: Boolean,
1360
+ default: undefined,
1361
+ },
1362
+ },
1330
1363
  setup() {
1331
1364
  defineCustomElement$1e();
1332
1365
  const injectedRoute = inject(routeLocationKey);
@@ -1404,11 +1437,6 @@ const IonRouterOutlet = /*@__PURE__*/ defineComponent({
1404
1437
  */
1405
1438
  { deep: true });
1406
1439
  const canStart = () => {
1407
- const config = getConfig();
1408
- const swipeEnabled = config &&
1409
- config.get("swipeBackEnabled", ionRouterOutlet.value.mode === "ios");
1410
- if (!swipeEnabled)
1411
- return false;
1412
1440
  const stack = viewStacks.getViewStack(id);
1413
1441
  if (!stack || stack.length <= 1)
1414
1442
  return false;
@@ -1699,7 +1727,15 @@ See https://ionicframework.com/docs/vue/navigation#ionpage for more information.
1699
1727
  },
1700
1728
  render() {
1701
1729
  const { components, registerIonPage, injectedRoute } = this;
1702
- return h("ion-router-outlet", { ref: "ionRouterOutlet" }, components &&
1730
+ /**
1731
+ * Forward props selectively to avoid setting undefined values
1732
+ * that would override the web component's config-based defaults.
1733
+ */
1734
+ const routerOutletProps = { ref: "ionRouterOutlet" };
1735
+ if (this.$props.swipeGesture !== undefined) {
1736
+ routerOutletProps.swipeGesture = this.$props.swipeGesture;
1737
+ }
1738
+ return h("ion-router-outlet", routerOutletProps, components &&
1703
1739
  components.map((c) => {
1704
1740
  var _a, _b;
1705
1741
  let props = {
@@ -1813,7 +1849,7 @@ const IonTabButton = /*@__PURE__*/ defineComponent({
1813
1849
  if (ionRouter !== null) {
1814
1850
  if (prevActiveTab === tab) {
1815
1851
  if (originalHref !== currentHref) {
1816
- ionRouter.resetTab(tab);
1852
+ ionRouter.resetTab(tab, originalHref);
1817
1853
  }
1818
1854
  }
1819
1855
  else {
@@ -2103,31 +2139,36 @@ const IonTabBar = defineComponent({
2103
2139
  };
2104
2140
  }
2105
2141
  });
2106
- if (activeTab && prevActiveTab) {
2107
- const prevHref = this.$data.tabState.tabs[prevActiveTab].currentHref;
2142
+ if (activeTab && (currentRoute === null || currentRoute === void 0 ? void 0 : currentRoute.pathname)) {
2143
+ const prevHref = prevActiveTab
2144
+ ? this.$data.tabState.tabs[prevActiveTab].currentHref
2145
+ : undefined;
2108
2146
  /**
2109
2147
  * If the tabs change or the url changes,
2110
2148
  * update the currentHref for the active tab.
2111
- * Ex: url changes from /tabs/tab1 --> /tabs/tab1/child
2149
+ * Ex: url changes from /tabs/tab1 to /tabs/tab1/child.
2112
2150
  * If we went to tab2 then back to tab1, we should
2113
2151
  * land on /tabs/tab1/child instead of /tabs/tab1.
2152
+ *
2153
+ * Also runs on initial setup so a deep-loaded tab child
2154
+ * records its real pathname instead of `originalHref`.
2114
2155
  */
2115
- if (activeTab !== prevActiveTab ||
2116
- prevHref !== (currentRoute === null || currentRoute === void 0 ? void 0 : currentRoute.pathname)) {
2156
+ if (activeTab !== prevActiveTab || prevHref !== currentRoute.pathname) {
2117
2157
  /**
2118
2158
  * By default the search is `undefined` in Ionic Vue,
2119
2159
  * but Vue Router can set the search to the empty string.
2120
2160
  * We check for truthy here because empty string is falsy
2121
2161
  * and currentRoute.search cannot ever be a boolean.
2122
2162
  */
2123
- const search = (currentRoute === null || currentRoute === void 0 ? void 0 : currentRoute.search) ? `?${currentRoute.search}` : "";
2124
- tabs[activeTab] = Object.assign(Object.assign({}, tabs[activeTab]), { currentHref: (currentRoute === null || currentRoute === void 0 ? void 0 : currentRoute.pathname) + search });
2163
+ const search = currentRoute.search ? `?${currentRoute.search}` : "";
2164
+ tabs[activeTab] = Object.assign(Object.assign({}, tabs[activeTab]), { currentHref: currentRoute.pathname + search });
2125
2165
  }
2126
2166
  /**
2127
2167
  * If navigating back and the tabs change,
2128
2168
  * set the previous tab back to its original href.
2129
2169
  */
2130
- if ((currentRoute === null || currentRoute === void 0 ? void 0 : currentRoute.routerAction) === "pop" &&
2170
+ if (prevActiveTab &&
2171
+ currentRoute.routerAction === "pop" &&
2131
2172
  activeTab !== prevActiveTab) {
2132
2173
  tabs[prevActiveTab] = Object.assign(Object.assign({}, tabs[prevActiveTab]), { currentHref: tabs[prevActiveTab].originalHref });
2133
2174
  }
@@ -2548,9 +2589,8 @@ const IonActionSheet = /*@__PURE__*/ defineOverlayContainer('ion-action-sheet',
2548
2589
  const IonAlert = /*@__PURE__*/ defineOverlayContainer('ion-alert', defineCustomElement$1m, ['animated', 'backdropDismiss', 'buttons', 'cssClass', 'enterAnimation', 'header', 'htmlAttributes', 'inputs', 'isOpen', 'keyboardClose', 'leaveAnimation', 'message', 'mode', 'subHeader', 'translucent', 'trigger']);
2549
2590
  const IonLoading = /*@__PURE__*/ defineOverlayContainer('ion-loading', defineCustomElement$1n, ['animated', 'backdropDismiss', 'cssClass', 'duration', 'enterAnimation', 'htmlAttributes', 'isOpen', 'keyboardClose', 'leaveAnimation', 'message', 'mode', 'showBackdrop', 'spinner', 'translucent', 'trigger']);
2550
2591
  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);
2551
- const IonPickerLegacy = /*@__PURE__*/ defineOverlayContainer('ion-picker-legacy', defineCustomElement$1p, ['animated', 'backdropDismiss', 'buttons', 'columns', 'cssClass', 'duration', 'enterAnimation', 'htmlAttributes', 'isOpen', 'keyboardClose', 'leaveAnimation', 'mode', 'showBackdrop', 'trigger']);
2552
- const IonPopover = /*@__PURE__*/ defineOverlayContainer('ion-popover', defineCustomElement$1q, ['alignment', 'animated', 'arrow', 'backdropDismiss', 'component', 'componentProps', 'dismissOnSelect', 'enterAnimation', 'event', 'focusTrap', 'htmlAttributes', 'isOpen', 'keepContentsMounted', 'keyboardClose', 'leaveAnimation', 'mode', 'reference', 'showBackdrop', 'side', 'size', 'translucent', 'trigger', 'triggerAction']);
2553
- const IonToast = /*@__PURE__*/ defineOverlayContainer('ion-toast', defineCustomElement$1r, ['animated', 'buttons', 'color', 'cssClass', 'duration', 'enterAnimation', 'header', 'htmlAttributes', 'icon', 'isOpen', 'keyboardClose', 'layout', 'leaveAnimation', 'message', 'mode', 'position', 'positionAnchor', 'swipeGesture', 'translucent', 'trigger']);
2592
+ 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']);
2593
+ 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']);
2554
2594
 
2555
2595
  // TODO(FW-2969): types
2556
2596
  /**
@@ -2568,15 +2608,11 @@ const createController = (defineCustomElement, oldController, useDelegate = fals
2568
2608
  return oldController;
2569
2609
  };
2570
2610
  const modalController = /*@__PURE__*/ createController(defineCustomElement$1o, modalController$1, true);
2571
- const popoverController = /*@__PURE__*/ createController(defineCustomElement$1q, popoverController$1, true);
2611
+ const popoverController = /*@__PURE__*/ createController(defineCustomElement$1p, popoverController$1, true);
2572
2612
  const alertController = /*@__PURE__*/ createController(defineCustomElement$1m, alertController$1);
2573
2613
  const actionSheetController = /*@__PURE__*/ createController(defineCustomElement$1l, actionSheetController$1);
2574
2614
  const loadingController = /*@__PURE__*/ createController(defineCustomElement$1n, loadingController$1);
2575
- /**
2576
- * @deprecated Use the inline ion-picker component instead.
2577
- */
2578
- const pickerController = /*@__PURE__*/ createController(defineCustomElement$1p, pickerController$1);
2579
- const toastController = /*@__PURE__*/ createController(defineCustomElement$1r, toastController$1);
2615
+ const toastController = /*@__PURE__*/ createController(defineCustomElement$1q, toastController$1);
2580
2616
 
2581
- 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, 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 };
2617
+ 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 };
2582
2618
  //# sourceMappingURL=index.js.map