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

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