@ionic/react 8.2.8-dev.11724886491.1c0dd39d → 8.2.8-dev.11725452518.16aa47d3

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 (77) hide show
  1. package/css/core.css +1 -1
  2. package/css/core.css.map +1 -1
  3. package/css/display.css.map +1 -1
  4. package/css/flex-utils.css.map +1 -1
  5. package/css/float-elements.css.map +1 -1
  6. package/css/global.bundle.css +1 -1
  7. package/css/global.bundle.css.map +1 -1
  8. package/css/ionic/bundle.ionic.css +1 -0
  9. package/css/ionic/bundle.ionic.css.map +1 -0
  10. package/css/ionic/core.ionic.css +1 -0
  11. package/css/ionic/core.ionic.css.map +1 -0
  12. package/css/ionic/global.bundle.ionic.css +1 -0
  13. package/css/ionic/global.bundle.ionic.css.map +1 -0
  14. package/css/ionic/ionic-swiper.ionic.css +1 -0
  15. package/css/ionic/ionic-swiper.ionic.css.map +1 -0
  16. package/css/ionic/link.ionic.css +1 -0
  17. package/css/ionic/link.ionic.css.map +1 -0
  18. package/css/ionic/structure.ionic.css +1 -0
  19. package/css/ionic/structure.ionic.css.map +1 -0
  20. package/css/ionic/typography.ionic.css +1 -0
  21. package/css/ionic/typography.ionic.css.map +1 -0
  22. package/css/ionic/utils.bundle.ionic.css +1 -0
  23. package/css/ionic/utils.bundle.ionic.css.map +1 -0
  24. package/css/ionic-swiper.css +1 -1
  25. package/css/ionic-swiper.css.map +1 -1
  26. package/css/ionic.bundle.css +1 -1
  27. package/css/ionic.bundle.css.map +1 -1
  28. package/css/normalize.css.map +1 -1
  29. package/css/padding.css.map +1 -1
  30. package/css/palettes/dark.always.css.map +1 -1
  31. package/css/palettes/dark.class.css.map +1 -1
  32. package/css/palettes/dark.system.css.map +1 -1
  33. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  34. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  35. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  36. package/css/palettes/high-contrast.always.css.map +1 -1
  37. package/css/palettes/high-contrast.class.css.map +1 -1
  38. package/css/palettes/high-contrast.system.css.map +1 -1
  39. package/css/structure.css +1 -1
  40. package/css/structure.css.map +1 -1
  41. package/css/text-alignment.css.map +1 -1
  42. package/css/text-transformation.css.map +1 -1
  43. package/css/typography.css +1 -1
  44. package/css/typography.css.map +1 -1
  45. package/css/utils.bundle.css.map +1 -1
  46. package/dist/index.js +685 -278
  47. package/dist/index.js.map +1 -1
  48. package/dist/types/components/IonActionSheet.d.ts +0 -1
  49. package/dist/types/components/IonAlert.d.ts +0 -1
  50. package/dist/types/components/IonApp.d.ts +3 -3
  51. package/dist/types/components/IonLoading.d.ts +0 -1
  52. package/dist/types/components/IonModal.d.ts +0 -1
  53. package/dist/types/components/IonPickerLegacy.d.ts +0 -1
  54. package/dist/types/components/IonPopover.d.ts +0 -1
  55. package/dist/types/components/IonRouterOutlet.d.ts +3 -3
  56. package/dist/types/components/IonToast.d.ts +0 -1
  57. package/dist/types/components/components.d.ts +258 -0
  58. package/dist/types/components/createControllerComponent.d.ts +1 -1
  59. package/dist/types/components/createOverlayComponent.d.ts +1 -1
  60. package/dist/types/components/index.d.ts +1 -1
  61. package/dist/types/components/inner-proxies.d.ts +3 -5
  62. package/dist/types/components/navigation/IonBackButton.d.ts +2 -2
  63. package/dist/types/components/navigation/IonNav.d.ts +1 -1
  64. package/dist/types/components/navigation/IonTabBar.d.ts +6 -6
  65. package/dist/types/components/navigation/IonTabButton.d.ts +1 -1
  66. package/dist/types/components/navigation/IonTabs.d.ts +2 -2
  67. package/dist/types/components/react-component-lib/createComponent.d.ts +1 -1
  68. package/dist/types/components/react-component-lib/createOverlayComponent.d.ts +1 -1
  69. package/dist/types/components/react-component-lib/utils/attachProps.d.ts +2 -2
  70. package/dist/types/components/routing-proxies.d.ts +28 -29
  71. package/dist/types/contexts/IonLifeCycleContext.d.ts +1 -1
  72. package/dist/types/lifecycle/IonLifeCycleHOC.d.ts +1 -1
  73. package/dist/types/routing/ViewLifeCycleManager.d.ts +1 -1
  74. package/dist/types/routing/ViewStacks.d.ts +0 -2
  75. package/dist/types/utils/HTMLElementSSR.d.ts +1 -4
  76. package/package.json +8 -5
  77. package/dist/types/components/proxies.d.ts +0 -70
package/dist/index.js CHANGED
@@ -1,76 +1,75 @@
1
1
  import React, { useContext, useRef, useEffect, createElement, useState, useMemo, Fragment, useCallback } from 'react';
2
2
  import { isPlatform as isPlatform$1, getPlatforms as getPlatforms$1, componentOnReady, createAnimation, actionSheetController, alertController, toastController, modalController, popoverController, pickerController, loadingController, initialize } from '@ionic/core/components';
3
3
  export { IonicSafeString, IonicSlides, createAnimation, createGesture, getIonPageElement, getTimeGivenProgression, iosTransitionAnimation, mdTransitionAnimation, openURL } from '@ionic/core/components';
4
- import { __rest } from 'tslib';
5
- import ReactDOM, { createPortal } from 'react-dom';
6
- import { defineCustomElement as defineCustomElement$1 } from '@ionic/core/components/ion-accordion.js';
7
- import { defineCustomElement as defineCustomElement$2 } from '@ionic/core/components/ion-accordion-group.js';
8
- import { defineCustomElement as defineCustomElement$3 } from '@ionic/core/components/ion-avatar.js';
9
- import { defineCustomElement as defineCustomElement$4 } from '@ionic/core/components/ion-backdrop.js';
10
- import { defineCustomElement as defineCustomElement$5 } from '@ionic/core/components/ion-badge.js';
11
- import { defineCustomElement as defineCustomElement$6 } from '@ionic/core/components/ion-breadcrumbs.js';
12
- import { defineCustomElement as defineCustomElement$7 } from '@ionic/core/components/ion-buttons.js';
13
- import { defineCustomElement as defineCustomElement$8 } from '@ionic/core/components/ion-card-content.js';
14
- import { defineCustomElement as defineCustomElement$9 } from '@ionic/core/components/ion-card-header.js';
15
- import { defineCustomElement as defineCustomElement$a } from '@ionic/core/components/ion-card-subtitle.js';
16
- import { defineCustomElement as defineCustomElement$b } from '@ionic/core/components/ion-card-title.js';
17
- import { defineCustomElement as defineCustomElement$c } from '@ionic/core/components/ion-checkbox.js';
18
- import { defineCustomElement as defineCustomElement$d } from '@ionic/core/components/ion-chip.js';
19
- import { defineCustomElement as defineCustomElement$e } from '@ionic/core/components/ion-col.js';
20
- import { defineCustomElement as defineCustomElement$f } from '@ionic/core/components/ion-content.js';
21
- import { defineCustomElement as defineCustomElement$g } from '@ionic/core/components/ion-datetime.js';
22
- import { defineCustomElement as defineCustomElement$h } from '@ionic/core/components/ion-datetime-button.js';
23
- import { defineCustomElement as defineCustomElement$i } from '@ionic/core/components/ion-fab.js';
24
- import { defineCustomElement as defineCustomElement$j } from '@ionic/core/components/ion-fab-list.js';
25
- import { defineCustomElement as defineCustomElement$k } from '@ionic/core/components/ion-footer.js';
26
- import { defineCustomElement as defineCustomElement$l } from '@ionic/core/components/ion-grid.js';
27
- import { defineCustomElement as defineCustomElement$m } from '@ionic/core/components/ion-header.js';
28
- import { defineCustomElement as defineCustomElement$n } from '@ionic/core/components/ion-img.js';
29
- import { defineCustomElement as defineCustomElement$o } from '@ionic/core/components/ion-infinite-scroll.js';
30
- import { defineCustomElement as defineCustomElement$p } from '@ionic/core/components/ion-infinite-scroll-content.js';
31
- import { defineCustomElement as defineCustomElement$q } from '@ionic/core/components/ion-input.js';
32
- import { defineCustomElement as defineCustomElement$r } from '@ionic/core/components/ion-input-password-toggle.js';
33
- import { defineCustomElement as defineCustomElement$s } from '@ionic/core/components/ion-item-divider.js';
34
- import { defineCustomElement as defineCustomElement$t } from '@ionic/core/components/ion-item-group.js';
35
- import { defineCustomElement as defineCustomElement$u } from '@ionic/core/components/ion-item-options.js';
36
- import { defineCustomElement as defineCustomElement$v } from '@ionic/core/components/ion-item-sliding.js';
37
- import { defineCustomElement as defineCustomElement$w } from '@ionic/core/components/ion-label.js';
38
- import { defineCustomElement as defineCustomElement$x } from '@ionic/core/components/ion-list.js';
39
- import { defineCustomElement as defineCustomElement$y } from '@ionic/core/components/ion-list-header.js';
40
- import { defineCustomElement as defineCustomElement$z } from '@ionic/core/components/ion-menu.js';
41
- import { defineCustomElement as defineCustomElement$A } from '@ionic/core/components/ion-menu-button.js';
42
- import { defineCustomElement as defineCustomElement$B } from '@ionic/core/components/ion-menu-toggle.js';
43
- import { defineCustomElement as defineCustomElement$1i } from '@ionic/core/components/ion-nav.js';
44
- import { defineCustomElement as defineCustomElement$C } from '@ionic/core/components/ion-nav-link.js';
45
- import { defineCustomElement as defineCustomElement$D } from '@ionic/core/components/ion-note.js';
46
- import { defineCustomElement as defineCustomElement$E } from '@ionic/core/components/ion-picker.js';
47
- import { defineCustomElement as defineCustomElement$F } from '@ionic/core/components/ion-picker-column.js';
48
- import { defineCustomElement as defineCustomElement$G } from '@ionic/core/components/ion-picker-column-option.js';
49
- import { defineCustomElement as defineCustomElement$H } from '@ionic/core/components/ion-progress-bar.js';
50
- import { defineCustomElement as defineCustomElement$I } from '@ionic/core/components/ion-radio.js';
51
- import { defineCustomElement as defineCustomElement$J } from '@ionic/core/components/ion-radio-group.js';
52
- import { defineCustomElement as defineCustomElement$K } from '@ionic/core/components/ion-range.js';
53
- import { defineCustomElement as defineCustomElement$L } from '@ionic/core/components/ion-refresher.js';
54
- import { defineCustomElement as defineCustomElement$M } from '@ionic/core/components/ion-refresher-content.js';
55
- import { defineCustomElement as defineCustomElement$N } from '@ionic/core/components/ion-reorder.js';
56
- import { defineCustomElement as defineCustomElement$O } from '@ionic/core/components/ion-reorder-group.js';
57
- import { defineCustomElement as defineCustomElement$P } from '@ionic/core/components/ion-ripple-effect.js';
58
- import { defineCustomElement as defineCustomElement$Q } from '@ionic/core/components/ion-row.js';
59
- import { defineCustomElement as defineCustomElement$R } from '@ionic/core/components/ion-searchbar.js';
60
- import { defineCustomElement as defineCustomElement$S } from '@ionic/core/components/ion-segment.js';
61
- import { defineCustomElement as defineCustomElement$T } from '@ionic/core/components/ion-segment-button.js';
62
- import { defineCustomElement as defineCustomElement$U } from '@ionic/core/components/ion-select.js';
63
- import { defineCustomElement as defineCustomElement$V } from '@ionic/core/components/ion-select-option.js';
64
- import { defineCustomElement as defineCustomElement$W } from '@ionic/core/components/ion-skeleton-text.js';
65
- import { defineCustomElement as defineCustomElement$X } from '@ionic/core/components/ion-spinner.js';
66
- import { defineCustomElement as defineCustomElement$Y } from '@ionic/core/components/ion-split-pane.js';
67
- import { defineCustomElement as defineCustomElement$Z } from '@ionic/core/components/ion-tab.js';
68
- import { defineCustomElement as defineCustomElement$_ } from '@ionic/core/components/ion-text.js';
69
- import { defineCustomElement as defineCustomElement$$ } from '@ionic/core/components/ion-textarea.js';
70
- import { defineCustomElement as defineCustomElement$10 } from '@ionic/core/components/ion-thumbnail.js';
71
- import { defineCustomElement as defineCustomElement$11 } from '@ionic/core/components/ion-title.js';
72
- import { defineCustomElement as defineCustomElement$12 } from '@ionic/core/components/ion-toggle.js';
73
- import { defineCustomElement as defineCustomElement$13 } from '@ionic/core/components/ion-toolbar.js';
4
+ import { IonAccordionGroup as IonAccordionGroup$1, defineCustomElement as defineCustomElement$2 } from '@ionic/core/components/ion-accordion-group.js';
5
+ import { IonAccordion as IonAccordion$1, defineCustomElement as defineCustomElement$1 } from '@ionic/core/components/ion-accordion.js';
6
+ import { IonAvatar as IonAvatar$1, defineCustomElement as defineCustomElement$3 } from '@ionic/core/components/ion-avatar.js';
7
+ import { IonBackdrop as IonBackdrop$1, defineCustomElement as defineCustomElement$4 } from '@ionic/core/components/ion-backdrop.js';
8
+ import { IonBadge as IonBadge$1, defineCustomElement as defineCustomElement$5 } from '@ionic/core/components/ion-badge.js';
9
+ import { IonBreadcrumbs as IonBreadcrumbs$1, defineCustomElement as defineCustomElement$6 } from '@ionic/core/components/ion-breadcrumbs.js';
10
+ import { IonButtons as IonButtons$1, defineCustomElement as defineCustomElement$7 } from '@ionic/core/components/ion-buttons.js';
11
+ import { IonCardContent as IonCardContent$1, defineCustomElement as defineCustomElement$8 } from '@ionic/core/components/ion-card-content.js';
12
+ import { IonCardHeader as IonCardHeader$1, defineCustomElement as defineCustomElement$9 } from '@ionic/core/components/ion-card-header.js';
13
+ import { IonCardSubtitle as IonCardSubtitle$1, defineCustomElement as defineCustomElement$a } from '@ionic/core/components/ion-card-subtitle.js';
14
+ import { IonCardTitle as IonCardTitle$1, defineCustomElement as defineCustomElement$b } from '@ionic/core/components/ion-card-title.js';
15
+ import { IonCheckbox as IonCheckbox$1, defineCustomElement as defineCustomElement$c } from '@ionic/core/components/ion-checkbox.js';
16
+ import { IonChip as IonChip$1, defineCustomElement as defineCustomElement$d } from '@ionic/core/components/ion-chip.js';
17
+ import { IonCol as IonCol$1, defineCustomElement as defineCustomElement$e } from '@ionic/core/components/ion-col.js';
18
+ import { IonContent as IonContent$1, defineCustomElement as defineCustomElement$f } from '@ionic/core/components/ion-content.js';
19
+ import { IonDatetimeButton as IonDatetimeButton$1, defineCustomElement as defineCustomElement$h } from '@ionic/core/components/ion-datetime-button.js';
20
+ import { IonDatetime as IonDatetime$1, defineCustomElement as defineCustomElement$g } from '@ionic/core/components/ion-datetime.js';
21
+ import { IonFabList as IonFabList$1, defineCustomElement as defineCustomElement$j } from '@ionic/core/components/ion-fab-list.js';
22
+ import { IonFab as IonFab$1, defineCustomElement as defineCustomElement$i } from '@ionic/core/components/ion-fab.js';
23
+ import { IonFooter as IonFooter$1, defineCustomElement as defineCustomElement$k } from '@ionic/core/components/ion-footer.js';
24
+ import { IonGrid as IonGrid$1, defineCustomElement as defineCustomElement$l } from '@ionic/core/components/ion-grid.js';
25
+ import { IonHeader as IonHeader$1, defineCustomElement as defineCustomElement$m } from '@ionic/core/components/ion-header.js';
26
+ import { IonImg as IonImg$1, defineCustomElement as defineCustomElement$n } from '@ionic/core/components/ion-img.js';
27
+ import { IonInfiniteScrollContent as IonInfiniteScrollContent$1, defineCustomElement as defineCustomElement$p } from '@ionic/core/components/ion-infinite-scroll-content.js';
28
+ import { IonInfiniteScroll as IonInfiniteScroll$1, defineCustomElement as defineCustomElement$o } from '@ionic/core/components/ion-infinite-scroll.js';
29
+ import { IonInputPasswordToggle as IonInputPasswordToggle$1, defineCustomElement as defineCustomElement$r } from '@ionic/core/components/ion-input-password-toggle.js';
30
+ import { IonInput as IonInput$1, defineCustomElement as defineCustomElement$q } from '@ionic/core/components/ion-input.js';
31
+ import { IonItemDivider as IonItemDivider$1, defineCustomElement as defineCustomElement$s } from '@ionic/core/components/ion-item-divider.js';
32
+ import { IonItemGroup as IonItemGroup$1, defineCustomElement as defineCustomElement$t } from '@ionic/core/components/ion-item-group.js';
33
+ import { IonItemOptions as IonItemOptions$1, defineCustomElement as defineCustomElement$u } from '@ionic/core/components/ion-item-options.js';
34
+ import { IonItemSliding as IonItemSliding$1, defineCustomElement as defineCustomElement$v } from '@ionic/core/components/ion-item-sliding.js';
35
+ import { IonLabel as IonLabel$1, defineCustomElement as defineCustomElement$w } from '@ionic/core/components/ion-label.js';
36
+ import { IonListHeader as IonListHeader$1, defineCustomElement as defineCustomElement$y } from '@ionic/core/components/ion-list-header.js';
37
+ import { IonList as IonList$1, defineCustomElement as defineCustomElement$x } from '@ionic/core/components/ion-list.js';
38
+ import { IonMenuButton as IonMenuButton$1, defineCustomElement as defineCustomElement$A } from '@ionic/core/components/ion-menu-button.js';
39
+ import { IonMenuToggle as IonMenuToggle$1, defineCustomElement as defineCustomElement$B } from '@ionic/core/components/ion-menu-toggle.js';
40
+ import { IonMenu as IonMenu$1, defineCustomElement as defineCustomElement$z } from '@ionic/core/components/ion-menu.js';
41
+ import { IonNavLink as IonNavLink$1, defineCustomElement as defineCustomElement$C } from '@ionic/core/components/ion-nav-link.js';
42
+ import { defineCustomElement as defineCustomElement$1h } from '@ionic/core/components/ion-nav.js';
43
+ import { IonNote as IonNote$1, defineCustomElement as defineCustomElement$D } from '@ionic/core/components/ion-note.js';
44
+ import { IonPickerColumnOption as IonPickerColumnOption$1, defineCustomElement as defineCustomElement$G } from '@ionic/core/components/ion-picker-column-option.js';
45
+ import { IonPickerColumn as IonPickerColumn$1, defineCustomElement as defineCustomElement$F } from '@ionic/core/components/ion-picker-column.js';
46
+ import { IonPicker as IonPicker$1, defineCustomElement as defineCustomElement$E } from '@ionic/core/components/ion-picker.js';
47
+ import { IonProgressBar as IonProgressBar$1, defineCustomElement as defineCustomElement$H } from '@ionic/core/components/ion-progress-bar.js';
48
+ import { IonRadioGroup as IonRadioGroup$1, defineCustomElement as defineCustomElement$J } from '@ionic/core/components/ion-radio-group.js';
49
+ import { IonRadio as IonRadio$1, defineCustomElement as defineCustomElement$I } from '@ionic/core/components/ion-radio.js';
50
+ import { IonRange as IonRange$1, defineCustomElement as defineCustomElement$K } from '@ionic/core/components/ion-range.js';
51
+ import { IonRefresherContent as IonRefresherContent$1, defineCustomElement as defineCustomElement$M } from '@ionic/core/components/ion-refresher-content.js';
52
+ import { IonRefresher as IonRefresher$1, defineCustomElement as defineCustomElement$L } from '@ionic/core/components/ion-refresher.js';
53
+ import { IonReorderGroup as IonReorderGroup$1, defineCustomElement as defineCustomElement$O } from '@ionic/core/components/ion-reorder-group.js';
54
+ import { IonReorder as IonReorder$1, defineCustomElement as defineCustomElement$N } from '@ionic/core/components/ion-reorder.js';
55
+ import { IonRippleEffect as IonRippleEffect$1, defineCustomElement as defineCustomElement$P } from '@ionic/core/components/ion-ripple-effect.js';
56
+ import { IonRow as IonRow$1, defineCustomElement as defineCustomElement$Q } from '@ionic/core/components/ion-row.js';
57
+ import { IonSearchbar as IonSearchbar$1, defineCustomElement as defineCustomElement$R } from '@ionic/core/components/ion-searchbar.js';
58
+ import { IonSegmentButton as IonSegmentButton$1, defineCustomElement as defineCustomElement$T } from '@ionic/core/components/ion-segment-button.js';
59
+ import { IonSegment as IonSegment$1, defineCustomElement as defineCustomElement$S } from '@ionic/core/components/ion-segment.js';
60
+ import { IonSelectOption as IonSelectOption$1, defineCustomElement as defineCustomElement$V } from '@ionic/core/components/ion-select-option.js';
61
+ import { IonSelect as IonSelect$1, defineCustomElement as defineCustomElement$U } from '@ionic/core/components/ion-select.js';
62
+ import { IonSkeletonText as IonSkeletonText$1, defineCustomElement as defineCustomElement$W } from '@ionic/core/components/ion-skeleton-text.js';
63
+ import { IonSpinner as IonSpinner$1, defineCustomElement as defineCustomElement$X } from '@ionic/core/components/ion-spinner.js';
64
+ import { IonSplitPane as IonSplitPane$1, defineCustomElement as defineCustomElement$Y } from '@ionic/core/components/ion-split-pane.js';
65
+ import { IonTab as IonTab$1, defineCustomElement as defineCustomElement$Z } from '@ionic/core/components/ion-tab.js';
66
+ import { IonText as IonText$1, defineCustomElement as defineCustomElement$_ } from '@ionic/core/components/ion-text.js';
67
+ import { IonTextarea as IonTextarea$1, defineCustomElement as defineCustomElement$$ } from '@ionic/core/components/ion-textarea.js';
68
+ import { IonThumbnail as IonThumbnail$1, defineCustomElement as defineCustomElement$10 } from '@ionic/core/components/ion-thumbnail.js';
69
+ import { IonTitle as IonTitle$1, defineCustomElement as defineCustomElement$11 } from '@ionic/core/components/ion-title.js';
70
+ import { IonToggle as IonToggle$1, defineCustomElement as defineCustomElement$12 } from '@ionic/core/components/ion-toggle.js';
71
+ import { IonToolbar as IonToolbar$1, defineCustomElement as defineCustomElement$13 } from '@ionic/core/components/ion-toolbar.js';
72
+ import { createComponent } from '@stencil/react-output-target/runtime';
74
73
  import { IonBreadcrumb as IonBreadcrumb$1 } from '@ionic/core/components/ion-breadcrumb.js';
75
74
  import { IonButton as IonButton$1 } from '@ionic/core/components/ion-button.js';
76
75
  import { IonCard as IonCard$1 } from '@ionic/core/components/ion-card.js';
@@ -78,6 +77,7 @@ import { IonFabButton as IonFabButton$1 } from '@ionic/core/components/ion-fab-b
78
77
  import { IonItemOption as IonItemOption$1 } from '@ionic/core/components/ion-item-option.js';
79
78
  import { IonItem as IonItem$1 } from '@ionic/core/components/ion-item.js';
80
79
  import { IonRouterLink as IonRouterLink$1 } from '@ionic/core/components/ion-router-link.js';
80
+ import { __rest } from 'tslib';
81
81
  import { defineCustomElement as defineCustomElement$14 } from '@ionic/core/components/ion-alert.js';
82
82
  import { defineCustomElement as defineCustomElement$15 } from '@ionic/core/components/ion-loading.js';
83
83
  import { defineCustomElement as defineCustomElement$16 } from '@ionic/core/components/ion-toast.js';
@@ -85,12 +85,12 @@ import { defineCustomElement as defineCustomElement$17 } from '@ionic/core/compo
85
85
  import { defineCustomElement as defineCustomElement$18 } from '@ionic/core/components/ion-action-sheet.js';
86
86
  import { defineCustomElement as defineCustomElement$19 } from '@ionic/core/components/ion-modal.js';
87
87
  import { defineCustomElement as defineCustomElement$1a } from '@ionic/core/components/ion-popover.js';
88
- import { defineCustomElement as defineCustomElement$1h } from '@ionic/core/components/ion-app.js';
89
- import { defineCustomElement as defineCustomElement$1g } from '@ionic/core/components/ion-back-button.js';
88
+ import ReactDOM, { createPortal } from 'react-dom';
89
+ import { defineCustomElement as defineCustomElement$1g } from '@ionic/core/components/ion-app.js';
90
+ import { defineCustomElement as defineCustomElement$1f } from '@ionic/core/components/ion-back-button.js';
90
91
  import { defineCustomElement as defineCustomElement$1c } from '@ionic/core/components/ion-router-outlet.js';
91
92
  import { defineCustomElement as defineCustomElement$1b } from '@ionic/core/components/ion-tab-bar.js';
92
93
  import { defineCustomElement as defineCustomElement$1e } from '@ionic/core/components/ion-tab-button.js';
93
- import { defineCustomElement as defineCustomElement$1f } from '@ionic/core/components/ion-tabs.js';
94
94
  import { defineCustomElement as defineCustomElement$1d } from 'ionicons/components/ion-icon.js';
95
95
 
96
96
  const IonLifeCycleContext = /*@__PURE__*/ React.createContext({
@@ -410,6 +410,543 @@ const NavContext = /*@__PURE__*/ React.createContext({
410
410
  },
411
411
  });
412
412
 
413
+ /**
414
+ * This file was automatically generated by the Stencil React Output Target.
415
+ * Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.
416
+ */
417
+ const IonAccordion = /*@__PURE__*/ createComponent({
418
+ tagName: 'ion-accordion',
419
+ elementClass: IonAccordion$1,
420
+ react: React,
421
+ events: {},
422
+ defineCustomElement: defineCustomElement$1
423
+ });
424
+ const IonAccordionGroup = /*@__PURE__*/ createComponent({
425
+ tagName: 'ion-accordion-group',
426
+ elementClass: IonAccordionGroup$1,
427
+ react: React,
428
+ events: { onIonChange: 'ionChange' },
429
+ defineCustomElement: defineCustomElement$2
430
+ });
431
+ const IonAvatar = /*@__PURE__*/ createComponent({
432
+ tagName: 'ion-avatar',
433
+ elementClass: IonAvatar$1,
434
+ react: React,
435
+ events: {},
436
+ defineCustomElement: defineCustomElement$3
437
+ });
438
+ const IonBackdrop = /*@__PURE__*/ createComponent({
439
+ tagName: 'ion-backdrop',
440
+ elementClass: IonBackdrop$1,
441
+ react: React,
442
+ events: { onIonBackdropTap: 'ionBackdropTap' },
443
+ defineCustomElement: defineCustomElement$4
444
+ });
445
+ const IonBadge = /*@__PURE__*/ createComponent({
446
+ tagName: 'ion-badge',
447
+ elementClass: IonBadge$1,
448
+ react: React,
449
+ events: {},
450
+ defineCustomElement: defineCustomElement$5
451
+ });
452
+ const IonBreadcrumbs = /*@__PURE__*/ createComponent({
453
+ tagName: 'ion-breadcrumbs',
454
+ elementClass: IonBreadcrumbs$1,
455
+ react: React,
456
+ events: { onIonCollapsedClick: 'ionCollapsedClick' },
457
+ defineCustomElement: defineCustomElement$6
458
+ });
459
+ const IonButtons = /*@__PURE__*/ createComponent({
460
+ tagName: 'ion-buttons',
461
+ elementClass: IonButtons$1,
462
+ react: React,
463
+ events: {},
464
+ defineCustomElement: defineCustomElement$7
465
+ });
466
+ const IonCardContent = /*@__PURE__*/ createComponent({
467
+ tagName: 'ion-card-content',
468
+ elementClass: IonCardContent$1,
469
+ react: React,
470
+ events: {},
471
+ defineCustomElement: defineCustomElement$8
472
+ });
473
+ const IonCardHeader = /*@__PURE__*/ createComponent({
474
+ tagName: 'ion-card-header',
475
+ elementClass: IonCardHeader$1,
476
+ react: React,
477
+ events: {},
478
+ defineCustomElement: defineCustomElement$9
479
+ });
480
+ const IonCardSubtitle = /*@__PURE__*/ createComponent({
481
+ tagName: 'ion-card-subtitle',
482
+ elementClass: IonCardSubtitle$1,
483
+ react: React,
484
+ events: {},
485
+ defineCustomElement: defineCustomElement$a
486
+ });
487
+ const IonCardTitle = /*@__PURE__*/ createComponent({
488
+ tagName: 'ion-card-title',
489
+ elementClass: IonCardTitle$1,
490
+ react: React,
491
+ events: {},
492
+ defineCustomElement: defineCustomElement$b
493
+ });
494
+ const IonCheckbox = /*@__PURE__*/ createComponent({
495
+ tagName: 'ion-checkbox',
496
+ elementClass: IonCheckbox$1,
497
+ react: React,
498
+ events: {
499
+ onIonChange: 'ionChange',
500
+ onIonFocus: 'ionFocus',
501
+ onIonBlur: 'ionBlur'
502
+ },
503
+ defineCustomElement: defineCustomElement$c
504
+ });
505
+ const IonChip = /*@__PURE__*/ createComponent({
506
+ tagName: 'ion-chip',
507
+ elementClass: IonChip$1,
508
+ react: React,
509
+ events: {},
510
+ defineCustomElement: defineCustomElement$d
511
+ });
512
+ const IonCol = /*@__PURE__*/ createComponent({
513
+ tagName: 'ion-col',
514
+ elementClass: IonCol$1,
515
+ react: React,
516
+ events: {},
517
+ defineCustomElement: defineCustomElement$e
518
+ });
519
+ const IonContent = /*@__PURE__*/ createComponent({
520
+ tagName: 'ion-content',
521
+ elementClass: IonContent$1,
522
+ react: React,
523
+ events: {
524
+ onIonScrollStart: 'ionScrollStart',
525
+ onIonScroll: 'ionScroll',
526
+ onIonScrollEnd: 'ionScrollEnd'
527
+ },
528
+ defineCustomElement: defineCustomElement$f
529
+ });
530
+ const IonDatetime = /*@__PURE__*/ createComponent({
531
+ tagName: 'ion-datetime',
532
+ elementClass: IonDatetime$1,
533
+ react: React,
534
+ events: {
535
+ onIonCancel: 'ionCancel',
536
+ onIonChange: 'ionChange',
537
+ onIonFocus: 'ionFocus',
538
+ onIonBlur: 'ionBlur'
539
+ },
540
+ defineCustomElement: defineCustomElement$g
541
+ });
542
+ const IonDatetimeButton = /*@__PURE__*/ createComponent({
543
+ tagName: 'ion-datetime-button',
544
+ elementClass: IonDatetimeButton$1,
545
+ react: React,
546
+ events: {},
547
+ defineCustomElement: defineCustomElement$h
548
+ });
549
+ const IonFab = /*@__PURE__*/ createComponent({
550
+ tagName: 'ion-fab',
551
+ elementClass: IonFab$1,
552
+ react: React,
553
+ events: {},
554
+ defineCustomElement: defineCustomElement$i
555
+ });
556
+ const IonFabList = /*@__PURE__*/ createComponent({
557
+ tagName: 'ion-fab-list',
558
+ elementClass: IonFabList$1,
559
+ react: React,
560
+ events: {},
561
+ defineCustomElement: defineCustomElement$j
562
+ });
563
+ const IonFooter = /*@__PURE__*/ createComponent({
564
+ tagName: 'ion-footer',
565
+ elementClass: IonFooter$1,
566
+ react: React,
567
+ events: {},
568
+ defineCustomElement: defineCustomElement$k
569
+ });
570
+ const IonGrid = /*@__PURE__*/ createComponent({
571
+ tagName: 'ion-grid',
572
+ elementClass: IonGrid$1,
573
+ react: React,
574
+ events: {},
575
+ defineCustomElement: defineCustomElement$l
576
+ });
577
+ const IonHeader = /*@__PURE__*/ createComponent({
578
+ tagName: 'ion-header',
579
+ elementClass: IonHeader$1,
580
+ react: React,
581
+ events: {},
582
+ defineCustomElement: defineCustomElement$m
583
+ });
584
+ const IonImg = /*@__PURE__*/ createComponent({
585
+ tagName: 'ion-img',
586
+ elementClass: IonImg$1,
587
+ react: React,
588
+ events: {
589
+ onIonImgWillLoad: 'ionImgWillLoad',
590
+ onIonImgDidLoad: 'ionImgDidLoad',
591
+ onIonError: 'ionError'
592
+ },
593
+ defineCustomElement: defineCustomElement$n
594
+ });
595
+ const IonInfiniteScroll = /*@__PURE__*/ createComponent({
596
+ tagName: 'ion-infinite-scroll',
597
+ elementClass: IonInfiniteScroll$1,
598
+ react: React,
599
+ events: { onIonInfinite: 'ionInfinite' },
600
+ defineCustomElement: defineCustomElement$o
601
+ });
602
+ const IonInfiniteScrollContent = /*@__PURE__*/ createComponent({
603
+ tagName: 'ion-infinite-scroll-content',
604
+ elementClass: IonInfiniteScrollContent$1,
605
+ react: React,
606
+ events: {},
607
+ defineCustomElement: defineCustomElement$p
608
+ });
609
+ const IonInput = /*@__PURE__*/ createComponent({
610
+ tagName: 'ion-input',
611
+ elementClass: IonInput$1,
612
+ react: React,
613
+ events: {
614
+ onIonInput: 'ionInput',
615
+ onIonChange: 'ionChange',
616
+ onIonBlur: 'ionBlur',
617
+ onIonFocus: 'ionFocus'
618
+ },
619
+ defineCustomElement: defineCustomElement$q
620
+ });
621
+ const IonInputPasswordToggle = /*@__PURE__*/ createComponent({
622
+ tagName: 'ion-input-password-toggle',
623
+ elementClass: IonInputPasswordToggle$1,
624
+ react: React,
625
+ events: {},
626
+ defineCustomElement: defineCustomElement$r
627
+ });
628
+ const IonItemDivider = /*@__PURE__*/ createComponent({
629
+ tagName: 'ion-item-divider',
630
+ elementClass: IonItemDivider$1,
631
+ react: React,
632
+ events: {},
633
+ defineCustomElement: defineCustomElement$s
634
+ });
635
+ const IonItemGroup = /*@__PURE__*/ createComponent({
636
+ tagName: 'ion-item-group',
637
+ elementClass: IonItemGroup$1,
638
+ react: React,
639
+ events: {},
640
+ defineCustomElement: defineCustomElement$t
641
+ });
642
+ const IonItemOptions = /*@__PURE__*/ createComponent({
643
+ tagName: 'ion-item-options',
644
+ elementClass: IonItemOptions$1,
645
+ react: React,
646
+ events: { onIonSwipe: 'ionSwipe' },
647
+ defineCustomElement: defineCustomElement$u
648
+ });
649
+ const IonItemSliding = /*@__PURE__*/ createComponent({
650
+ tagName: 'ion-item-sliding',
651
+ elementClass: IonItemSliding$1,
652
+ react: React,
653
+ events: { onIonDrag: 'ionDrag' },
654
+ defineCustomElement: defineCustomElement$v
655
+ });
656
+ const IonLabel = /*@__PURE__*/ createComponent({
657
+ tagName: 'ion-label',
658
+ elementClass: IonLabel$1,
659
+ react: React,
660
+ events: {},
661
+ defineCustomElement: defineCustomElement$w
662
+ });
663
+ const IonList = /*@__PURE__*/ createComponent({
664
+ tagName: 'ion-list',
665
+ elementClass: IonList$1,
666
+ react: React,
667
+ events: {},
668
+ defineCustomElement: defineCustomElement$x
669
+ });
670
+ const IonListHeader = /*@__PURE__*/ createComponent({
671
+ tagName: 'ion-list-header',
672
+ elementClass: IonListHeader$1,
673
+ react: React,
674
+ events: {},
675
+ defineCustomElement: defineCustomElement$y
676
+ });
677
+ const IonMenu = /*@__PURE__*/ createComponent({
678
+ tagName: 'ion-menu',
679
+ elementClass: IonMenu$1,
680
+ react: React,
681
+ events: {
682
+ onIonWillOpen: 'ionWillOpen',
683
+ onIonWillClose: 'ionWillClose',
684
+ onIonDidOpen: 'ionDidOpen',
685
+ onIonDidClose: 'ionDidClose'
686
+ },
687
+ defineCustomElement: defineCustomElement$z
688
+ });
689
+ const IonMenuButton = /*@__PURE__*/ createComponent({
690
+ tagName: 'ion-menu-button',
691
+ elementClass: IonMenuButton$1,
692
+ react: React,
693
+ events: {},
694
+ defineCustomElement: defineCustomElement$A
695
+ });
696
+ const IonMenuToggle = /*@__PURE__*/ createComponent({
697
+ tagName: 'ion-menu-toggle',
698
+ elementClass: IonMenuToggle$1,
699
+ react: React,
700
+ events: {},
701
+ defineCustomElement: defineCustomElement$B
702
+ });
703
+ const IonNavLink = /*@__PURE__*/ createComponent({
704
+ tagName: 'ion-nav-link',
705
+ elementClass: IonNavLink$1,
706
+ react: React,
707
+ events: {},
708
+ defineCustomElement: defineCustomElement$C
709
+ });
710
+ const IonNote = /*@__PURE__*/ createComponent({
711
+ tagName: 'ion-note',
712
+ elementClass: IonNote$1,
713
+ react: React,
714
+ events: {},
715
+ defineCustomElement: defineCustomElement$D
716
+ });
717
+ const IonPicker = /*@__PURE__*/ createComponent({
718
+ tagName: 'ion-picker',
719
+ elementClass: IonPicker$1,
720
+ react: React,
721
+ events: {},
722
+ defineCustomElement: defineCustomElement$E
723
+ });
724
+ const IonPickerColumn = /*@__PURE__*/ createComponent({
725
+ tagName: 'ion-picker-column',
726
+ elementClass: IonPickerColumn$1,
727
+ react: React,
728
+ events: { onIonChange: 'ionChange' },
729
+ defineCustomElement: defineCustomElement$F
730
+ });
731
+ const IonPickerColumnOption = /*@__PURE__*/ createComponent({
732
+ tagName: 'ion-picker-column-option',
733
+ elementClass: IonPickerColumnOption$1,
734
+ react: React,
735
+ events: {},
736
+ defineCustomElement: defineCustomElement$G
737
+ });
738
+ const IonProgressBar = /*@__PURE__*/ createComponent({
739
+ tagName: 'ion-progress-bar',
740
+ elementClass: IonProgressBar$1,
741
+ react: React,
742
+ events: {},
743
+ defineCustomElement: defineCustomElement$H
744
+ });
745
+ const IonRadio = /*@__PURE__*/ createComponent({
746
+ tagName: 'ion-radio',
747
+ elementClass: IonRadio$1,
748
+ react: React,
749
+ events: {
750
+ onIonFocus: 'ionFocus',
751
+ onIonBlur: 'ionBlur'
752
+ },
753
+ defineCustomElement: defineCustomElement$I
754
+ });
755
+ const IonRadioGroup = /*@__PURE__*/ createComponent({
756
+ tagName: 'ion-radio-group',
757
+ elementClass: IonRadioGroup$1,
758
+ react: React,
759
+ events: { onIonChange: 'ionChange' },
760
+ defineCustomElement: defineCustomElement$J
761
+ });
762
+ const IonRange = /*@__PURE__*/ createComponent({
763
+ tagName: 'ion-range',
764
+ elementClass: IonRange$1,
765
+ react: React,
766
+ events: {
767
+ onIonChange: 'ionChange',
768
+ onIonInput: 'ionInput',
769
+ onIonFocus: 'ionFocus',
770
+ onIonBlur: 'ionBlur',
771
+ onIonKnobMoveStart: 'ionKnobMoveStart',
772
+ onIonKnobMoveEnd: 'ionKnobMoveEnd'
773
+ },
774
+ defineCustomElement: defineCustomElement$K
775
+ });
776
+ const IonRefresher = /*@__PURE__*/ createComponent({
777
+ tagName: 'ion-refresher',
778
+ elementClass: IonRefresher$1,
779
+ react: React,
780
+ events: {
781
+ onIonRefresh: 'ionRefresh',
782
+ onIonPull: 'ionPull',
783
+ onIonStart: 'ionStart'
784
+ },
785
+ defineCustomElement: defineCustomElement$L
786
+ });
787
+ const IonRefresherContent = /*@__PURE__*/ createComponent({
788
+ tagName: 'ion-refresher-content',
789
+ elementClass: IonRefresherContent$1,
790
+ react: React,
791
+ events: {},
792
+ defineCustomElement: defineCustomElement$M
793
+ });
794
+ const IonReorder = /*@__PURE__*/ createComponent({
795
+ tagName: 'ion-reorder',
796
+ elementClass: IonReorder$1,
797
+ react: React,
798
+ events: {},
799
+ defineCustomElement: defineCustomElement$N
800
+ });
801
+ const IonReorderGroup = /*@__PURE__*/ createComponent({
802
+ tagName: 'ion-reorder-group',
803
+ elementClass: IonReorderGroup$1,
804
+ react: React,
805
+ events: { onIonItemReorder: 'ionItemReorder' },
806
+ defineCustomElement: defineCustomElement$O
807
+ });
808
+ const IonRippleEffect = /*@__PURE__*/ createComponent({
809
+ tagName: 'ion-ripple-effect',
810
+ elementClass: IonRippleEffect$1,
811
+ react: React,
812
+ events: {},
813
+ defineCustomElement: defineCustomElement$P
814
+ });
815
+ const IonRow = /*@__PURE__*/ createComponent({
816
+ tagName: 'ion-row',
817
+ elementClass: IonRow$1,
818
+ react: React,
819
+ events: {},
820
+ defineCustomElement: defineCustomElement$Q
821
+ });
822
+ const IonSearchbar = /*@__PURE__*/ createComponent({
823
+ tagName: 'ion-searchbar',
824
+ elementClass: IonSearchbar$1,
825
+ react: React,
826
+ events: {
827
+ onIonInput: 'ionInput',
828
+ onIonChange: 'ionChange',
829
+ onIonCancel: 'ionCancel',
830
+ onIonClear: 'ionClear',
831
+ onIonBlur: 'ionBlur',
832
+ onIonFocus: 'ionFocus'
833
+ },
834
+ defineCustomElement: defineCustomElement$R
835
+ });
836
+ const IonSegment = /*@__PURE__*/ createComponent({
837
+ tagName: 'ion-segment',
838
+ elementClass: IonSegment$1,
839
+ react: React,
840
+ events: { onIonChange: 'ionChange' },
841
+ defineCustomElement: defineCustomElement$S
842
+ });
843
+ const IonSegmentButton = /*@__PURE__*/ createComponent({
844
+ tagName: 'ion-segment-button',
845
+ elementClass: IonSegmentButton$1,
846
+ react: React,
847
+ events: {},
848
+ defineCustomElement: defineCustomElement$T
849
+ });
850
+ const IonSelect = /*@__PURE__*/ createComponent({
851
+ tagName: 'ion-select',
852
+ elementClass: IonSelect$1,
853
+ react: React,
854
+ events: {
855
+ onIonChange: 'ionChange',
856
+ onIonCancel: 'ionCancel',
857
+ onIonDismiss: 'ionDismiss',
858
+ onIonFocus: 'ionFocus',
859
+ onIonBlur: 'ionBlur'
860
+ },
861
+ defineCustomElement: defineCustomElement$U
862
+ });
863
+ const IonSelectOption = /*@__PURE__*/ createComponent({
864
+ tagName: 'ion-select-option',
865
+ elementClass: IonSelectOption$1,
866
+ react: React,
867
+ events: {},
868
+ defineCustomElement: defineCustomElement$V
869
+ });
870
+ const IonSkeletonText = /*@__PURE__*/ createComponent({
871
+ tagName: 'ion-skeleton-text',
872
+ elementClass: IonSkeletonText$1,
873
+ react: React,
874
+ events: {},
875
+ defineCustomElement: defineCustomElement$W
876
+ });
877
+ const IonSpinner = /*@__PURE__*/ createComponent({
878
+ tagName: 'ion-spinner',
879
+ elementClass: IonSpinner$1,
880
+ react: React,
881
+ events: {},
882
+ defineCustomElement: defineCustomElement$X
883
+ });
884
+ const IonSplitPane = /*@__PURE__*/ createComponent({
885
+ tagName: 'ion-split-pane',
886
+ elementClass: IonSplitPane$1,
887
+ react: React,
888
+ events: { onIonSplitPaneVisible: 'ionSplitPaneVisible' },
889
+ defineCustomElement: defineCustomElement$Y
890
+ });
891
+ const IonTab = /*@__PURE__*/ createComponent({
892
+ tagName: 'ion-tab',
893
+ elementClass: IonTab$1,
894
+ react: React,
895
+ events: {},
896
+ defineCustomElement: defineCustomElement$Z
897
+ });
898
+ const IonText = /*@__PURE__*/ createComponent({
899
+ tagName: 'ion-text',
900
+ elementClass: IonText$1,
901
+ react: React,
902
+ events: {},
903
+ defineCustomElement: defineCustomElement$_
904
+ });
905
+ const IonTextarea = /*@__PURE__*/ createComponent({
906
+ tagName: 'ion-textarea',
907
+ elementClass: IonTextarea$1,
908
+ react: React,
909
+ events: {
910
+ onIonChange: 'ionChange',
911
+ onIonInput: 'ionInput',
912
+ onIonBlur: 'ionBlur',
913
+ onIonFocus: 'ionFocus'
914
+ },
915
+ defineCustomElement: defineCustomElement$$
916
+ });
917
+ const IonThumbnail = /*@__PURE__*/ createComponent({
918
+ tagName: 'ion-thumbnail',
919
+ elementClass: IonThumbnail$1,
920
+ react: React,
921
+ events: {},
922
+ defineCustomElement: defineCustomElement$10
923
+ });
924
+ const IonTitle = /*@__PURE__*/ createComponent({
925
+ tagName: 'ion-title',
926
+ elementClass: IonTitle$1,
927
+ react: React,
928
+ events: {},
929
+ defineCustomElement: defineCustomElement$11
930
+ });
931
+ const IonToggle = /*@__PURE__*/ createComponent({
932
+ tagName: 'ion-toggle',
933
+ elementClass: IonToggle$1,
934
+ react: React,
935
+ events: {
936
+ onIonChange: 'ionChange',
937
+ onIonFocus: 'ionFocus',
938
+ onIonBlur: 'ionBlur'
939
+ },
940
+ defineCustomElement: defineCustomElement$12
941
+ });
942
+ const IonToolbar = /*@__PURE__*/ createComponent({
943
+ tagName: 'ion-toolbar',
944
+ elementClass: IonToolbar$1,
945
+ react: React,
946
+ events: {},
947
+ defineCustomElement: defineCustomElement$13
948
+ });
949
+
413
950
  const dashToPascalCase = (str) => str
414
951
  .toLowerCase()
415
952
  .split('-')
@@ -553,139 +1090,6 @@ const defineCustomElement = (tagName, customElement) => {
553
1090
  }
554
1091
  };
555
1092
 
556
- const createReactComponent = (tagName, ReactComponentContext, manipulatePropsFunction, defineCustomElement) => {
557
- if (defineCustomElement !== undefined) {
558
- defineCustomElement();
559
- }
560
- const displayName = dashToPascalCase(tagName);
561
- const ReactComponent = class extends React.Component {
562
- constructor(props) {
563
- super(props);
564
- this.setComponentElRef = (element) => {
565
- this.componentEl = element;
566
- };
567
- }
568
- componentDidMount() {
569
- this.componentDidUpdate(this.props);
570
- }
571
- componentDidUpdate(prevProps) {
572
- attachProps(this.componentEl, this.props, prevProps);
573
- }
574
- render() {
575
- const _a = this.props, { children, forwardedRef, style, className, ref } = _a, cProps = __rest(_a, ["children", "forwardedRef", "style", "className", "ref"]);
576
- let propsToPass = Object.keys(cProps).reduce((acc, name) => {
577
- const value = cProps[name];
578
- if (name.indexOf('on') === 0 && name[2] === name[2].toUpperCase()) {
579
- const eventName = name.substring(2).toLowerCase();
580
- if (typeof document !== 'undefined' && isCoveredByReact(eventName)) {
581
- acc[name] = value;
582
- }
583
- }
584
- else {
585
- // we should only render strings, booleans, and numbers as attrs in html.
586
- // objects, functions, arrays etc get synced via properties on mount.
587
- const type = typeof value;
588
- if (type === 'string' || type === 'boolean' || type === 'number') {
589
- acc[camelToDashCase(name)] = value;
590
- }
591
- }
592
- return acc;
593
- }, {});
594
- if (manipulatePropsFunction) {
595
- propsToPass = manipulatePropsFunction(this.props, propsToPass);
596
- }
597
- const newProps = Object.assign(Object.assign({}, propsToPass), { ref: mergeRefs(forwardedRef, this.setComponentElRef), style });
598
- /**
599
- * We use createElement here instead of
600
- * React.createElement to work around a
601
- * bug in Vite (https://github.com/vitejs/vite/issues/6104).
602
- * React.createElement causes all elements to be rendered
603
- * as <tagname> instead of the actual Web Component.
604
- */
605
- return createElement(tagName, newProps, children);
606
- }
607
- static get displayName() {
608
- return displayName;
609
- }
610
- };
611
- // If context was passed to createReactComponent then conditionally add it to the Component Class
612
- if (ReactComponentContext) {
613
- ReactComponent.contextType = ReactComponentContext;
614
- }
615
- return createForwardRef$1(ReactComponent, displayName);
616
- };
617
-
618
- /* eslint-disable */
619
- /* tslint:disable */
620
- /* auto-generated react proxies */
621
- const IonAccordion = /*@__PURE__*/ createReactComponent('ion-accordion', undefined, undefined, defineCustomElement$1);
622
- const IonAccordionGroup = /*@__PURE__*/ createReactComponent('ion-accordion-group', undefined, undefined, defineCustomElement$2);
623
- const IonAvatar = /*@__PURE__*/ createReactComponent('ion-avatar', undefined, undefined, defineCustomElement$3);
624
- const IonBackdrop = /*@__PURE__*/ createReactComponent('ion-backdrop', undefined, undefined, defineCustomElement$4);
625
- const IonBadge = /*@__PURE__*/ createReactComponent('ion-badge', undefined, undefined, defineCustomElement$5);
626
- const IonBreadcrumbs = /*@__PURE__*/ createReactComponent('ion-breadcrumbs', undefined, undefined, defineCustomElement$6);
627
- const IonButtons = /*@__PURE__*/ createReactComponent('ion-buttons', undefined, undefined, defineCustomElement$7);
628
- const IonCardContent = /*@__PURE__*/ createReactComponent('ion-card-content', undefined, undefined, defineCustomElement$8);
629
- const IonCardHeader = /*@__PURE__*/ createReactComponent('ion-card-header', undefined, undefined, defineCustomElement$9);
630
- const IonCardSubtitle = /*@__PURE__*/ createReactComponent('ion-card-subtitle', undefined, undefined, defineCustomElement$a);
631
- const IonCardTitle = /*@__PURE__*/ createReactComponent('ion-card-title', undefined, undefined, defineCustomElement$b);
632
- const IonCheckbox = /*@__PURE__*/ createReactComponent('ion-checkbox', undefined, undefined, defineCustomElement$c);
633
- const IonChip = /*@__PURE__*/ createReactComponent('ion-chip', undefined, undefined, defineCustomElement$d);
634
- const IonCol = /*@__PURE__*/ createReactComponent('ion-col', undefined, undefined, defineCustomElement$e);
635
- const IonContent = /*@__PURE__*/ createReactComponent('ion-content', undefined, undefined, defineCustomElement$f);
636
- const IonDatetime = /*@__PURE__*/ createReactComponent('ion-datetime', undefined, undefined, defineCustomElement$g);
637
- const IonDatetimeButton = /*@__PURE__*/ createReactComponent('ion-datetime-button', undefined, undefined, defineCustomElement$h);
638
- const IonFab = /*@__PURE__*/ createReactComponent('ion-fab', undefined, undefined, defineCustomElement$i);
639
- const IonFabList = /*@__PURE__*/ createReactComponent('ion-fab-list', undefined, undefined, defineCustomElement$j);
640
- const IonFooter = /*@__PURE__*/ createReactComponent('ion-footer', undefined, undefined, defineCustomElement$k);
641
- const IonGrid = /*@__PURE__*/ createReactComponent('ion-grid', undefined, undefined, defineCustomElement$l);
642
- const IonHeader = /*@__PURE__*/ createReactComponent('ion-header', undefined, undefined, defineCustomElement$m);
643
- const IonImg = /*@__PURE__*/ createReactComponent('ion-img', undefined, undefined, defineCustomElement$n);
644
- const IonInfiniteScroll = /*@__PURE__*/ createReactComponent('ion-infinite-scroll', undefined, undefined, defineCustomElement$o);
645
- const IonInfiniteScrollContent = /*@__PURE__*/ createReactComponent('ion-infinite-scroll-content', undefined, undefined, defineCustomElement$p);
646
- const IonInput = /*@__PURE__*/ createReactComponent('ion-input', undefined, undefined, defineCustomElement$q);
647
- const IonInputPasswordToggle = /*@__PURE__*/ createReactComponent('ion-input-password-toggle', undefined, undefined, defineCustomElement$r);
648
- const IonItemDivider = /*@__PURE__*/ createReactComponent('ion-item-divider', undefined, undefined, defineCustomElement$s);
649
- const IonItemGroup = /*@__PURE__*/ createReactComponent('ion-item-group', undefined, undefined, defineCustomElement$t);
650
- const IonItemOptions = /*@__PURE__*/ createReactComponent('ion-item-options', undefined, undefined, defineCustomElement$u);
651
- const IonItemSliding = /*@__PURE__*/ createReactComponent('ion-item-sliding', undefined, undefined, defineCustomElement$v);
652
- const IonLabel = /*@__PURE__*/ createReactComponent('ion-label', undefined, undefined, defineCustomElement$w);
653
- const IonList = /*@__PURE__*/ createReactComponent('ion-list', undefined, undefined, defineCustomElement$x);
654
- const IonListHeader = /*@__PURE__*/ createReactComponent('ion-list-header', undefined, undefined, defineCustomElement$y);
655
- const IonMenu = /*@__PURE__*/ createReactComponent('ion-menu', undefined, undefined, defineCustomElement$z);
656
- const IonMenuButton = /*@__PURE__*/ createReactComponent('ion-menu-button', undefined, undefined, defineCustomElement$A);
657
- const IonMenuToggle = /*@__PURE__*/ createReactComponent('ion-menu-toggle', undefined, undefined, defineCustomElement$B);
658
- const IonNavLink = /*@__PURE__*/ createReactComponent('ion-nav-link', undefined, undefined, defineCustomElement$C);
659
- const IonNote = /*@__PURE__*/ createReactComponent('ion-note', undefined, undefined, defineCustomElement$D);
660
- const IonPicker = /*@__PURE__*/ createReactComponent('ion-picker', undefined, undefined, defineCustomElement$E);
661
- const IonPickerColumn = /*@__PURE__*/ createReactComponent('ion-picker-column', undefined, undefined, defineCustomElement$F);
662
- const IonPickerColumnOption = /*@__PURE__*/ createReactComponent('ion-picker-column-option', undefined, undefined, defineCustomElement$G);
663
- const IonProgressBar = /*@__PURE__*/ createReactComponent('ion-progress-bar', undefined, undefined, defineCustomElement$H);
664
- const IonRadio = /*@__PURE__*/ createReactComponent('ion-radio', undefined, undefined, defineCustomElement$I);
665
- const IonRadioGroup = /*@__PURE__*/ createReactComponent('ion-radio-group', undefined, undefined, defineCustomElement$J);
666
- const IonRange = /*@__PURE__*/ createReactComponent('ion-range', undefined, undefined, defineCustomElement$K);
667
- const IonRefresher = /*@__PURE__*/ createReactComponent('ion-refresher', undefined, undefined, defineCustomElement$L);
668
- const IonRefresherContent = /*@__PURE__*/ createReactComponent('ion-refresher-content', undefined, undefined, defineCustomElement$M);
669
- const IonReorder = /*@__PURE__*/ createReactComponent('ion-reorder', undefined, undefined, defineCustomElement$N);
670
- const IonReorderGroup = /*@__PURE__*/ createReactComponent('ion-reorder-group', undefined, undefined, defineCustomElement$O);
671
- const IonRippleEffect = /*@__PURE__*/ createReactComponent('ion-ripple-effect', undefined, undefined, defineCustomElement$P);
672
- const IonRow = /*@__PURE__*/ createReactComponent('ion-row', undefined, undefined, defineCustomElement$Q);
673
- const IonSearchbar = /*@__PURE__*/ createReactComponent('ion-searchbar', undefined, undefined, defineCustomElement$R);
674
- const IonSegment = /*@__PURE__*/ createReactComponent('ion-segment', undefined, undefined, defineCustomElement$S);
675
- const IonSegmentButton = /*@__PURE__*/ createReactComponent('ion-segment-button', undefined, undefined, defineCustomElement$T);
676
- const IonSelect = /*@__PURE__*/ createReactComponent('ion-select', undefined, undefined, defineCustomElement$U);
677
- const IonSelectOption = /*@__PURE__*/ createReactComponent('ion-select-option', undefined, undefined, defineCustomElement$V);
678
- const IonSkeletonText = /*@__PURE__*/ createReactComponent('ion-skeleton-text', undefined, undefined, defineCustomElement$W);
679
- const IonSpinner = /*@__PURE__*/ createReactComponent('ion-spinner', undefined, undefined, defineCustomElement$X);
680
- const IonSplitPane = /*@__PURE__*/ createReactComponent('ion-split-pane', undefined, undefined, defineCustomElement$Y);
681
- const IonTab = /*@__PURE__*/ createReactComponent('ion-tab', undefined, undefined, defineCustomElement$Z);
682
- const IonText = /*@__PURE__*/ createReactComponent('ion-text', undefined, undefined, defineCustomElement$_);
683
- const IonTextarea = /*@__PURE__*/ createReactComponent('ion-textarea', undefined, undefined, defineCustomElement$$);
684
- const IonThumbnail = /*@__PURE__*/ createReactComponent('ion-thumbnail', undefined, undefined, defineCustomElement$10);
685
- const IonTitle = /*@__PURE__*/ createReactComponent('ion-title', undefined, undefined, defineCustomElement$11);
686
- const IonToggle = /*@__PURE__*/ createReactComponent('ion-toggle', undefined, undefined, defineCustomElement$12);
687
- const IonToolbar = /*@__PURE__*/ createReactComponent('ion-toolbar', undefined, undefined, defineCustomElement$13);
688
-
689
1093
  const createForwardRef = (ReactComponent, // TODO(FW-2959): type
690
1094
  displayName) => {
691
1095
  const forwardRef = (props, ref) => {
@@ -1073,12 +1477,73 @@ const IonOverlayManager = ({ onAddOverlay, onRemoveOverlay }) => {
1073
1477
  })));
1074
1478
  };
1075
1479
 
1480
+ const createReactComponent = (tagName, ReactComponentContext, manipulatePropsFunction, defineCustomElement) => {
1481
+ if (defineCustomElement !== undefined) {
1482
+ defineCustomElement();
1483
+ }
1484
+ const displayName = dashToPascalCase(tagName);
1485
+ const ReactComponent = class extends React.Component {
1486
+ constructor(props) {
1487
+ super(props);
1488
+ this.setComponentElRef = (element) => {
1489
+ this.componentEl = element;
1490
+ };
1491
+ }
1492
+ componentDidMount() {
1493
+ this.componentDidUpdate(this.props);
1494
+ }
1495
+ componentDidUpdate(prevProps) {
1496
+ attachProps(this.componentEl, this.props, prevProps);
1497
+ }
1498
+ render() {
1499
+ const _a = this.props, { children, forwardedRef, style, className, ref } = _a, cProps = __rest(_a, ["children", "forwardedRef", "style", "className", "ref"]);
1500
+ let propsToPass = Object.keys(cProps).reduce((acc, name) => {
1501
+ const value = cProps[name];
1502
+ if (name.indexOf('on') === 0 && name[2] === name[2].toUpperCase()) {
1503
+ const eventName = name.substring(2).toLowerCase();
1504
+ if (typeof document !== 'undefined' && isCoveredByReact(eventName)) {
1505
+ acc[name] = value;
1506
+ }
1507
+ }
1508
+ else {
1509
+ // we should only render strings, booleans, and numbers as attrs in html.
1510
+ // objects, functions, arrays etc get synced via properties on mount.
1511
+ const type = typeof value;
1512
+ if (type === 'string' || type === 'boolean' || type === 'number') {
1513
+ acc[camelToDashCase(name)] = value;
1514
+ }
1515
+ }
1516
+ return acc;
1517
+ }, {});
1518
+ if (manipulatePropsFunction) {
1519
+ propsToPass = manipulatePropsFunction(this.props, propsToPass);
1520
+ }
1521
+ const newProps = Object.assign(Object.assign({}, propsToPass), { ref: mergeRefs(forwardedRef, this.setComponentElRef), style });
1522
+ /**
1523
+ * We use createElement here instead of
1524
+ * React.createElement to work around a
1525
+ * bug in Vite (https://github.com/vitejs/vite/issues/6104).
1526
+ * React.createElement causes all elements to be rendered
1527
+ * as <tagname> instead of the actual Web Component.
1528
+ */
1529
+ return createElement(tagName, newProps, children);
1530
+ }
1531
+ static get displayName() {
1532
+ return displayName;
1533
+ }
1534
+ };
1535
+ // If context was passed to createReactComponent then conditionally add it to the Component Class
1536
+ if (ReactComponentContext) {
1537
+ ReactComponent.contextType = ReactComponentContext;
1538
+ }
1539
+ return createForwardRef$1(ReactComponent, displayName);
1540
+ };
1541
+
1076
1542
  const IonTabButtonInner = /*@__PURE__*/ createReactComponent('ion-tab-button', undefined, undefined, defineCustomElement$1e);
1077
1543
  const IonTabBarInner = /*@__PURE__*/ createReactComponent('ion-tab-bar', undefined, undefined, defineCustomElement$1b);
1078
- const IonTabsInner = /*@__PURE__*/ createReactComponent('ion-tabs', undefined, undefined, defineCustomElement$1f);
1079
- const IonBackButtonInner = /*@__PURE__*/ createReactComponent('ion-back-button', undefined, undefined, defineCustomElement$1g);
1544
+ const IonBackButtonInner = /*@__PURE__*/ createReactComponent('ion-back-button', undefined, undefined, defineCustomElement$1f);
1080
1545
  const IonRouterOutletInner = /*@__PURE__*/ createReactComponent('ion-router-outlet', undefined, undefined, defineCustomElement$1c);
1081
- const IonAppInner = /*@__PURE__*/ createReactComponent('ion-app', undefined, undefined, defineCustomElement$1h);
1546
+ const IonAppInner = /*@__PURE__*/ createReactComponent('ion-app', undefined, undefined, defineCustomElement$1g);
1082
1547
  // ionicons
1083
1548
  const IonIconInner = /*@__PURE__*/ createReactComponent('ion-icon', undefined, undefined, defineCustomElement$1d);
1084
1549
 
@@ -1241,7 +1706,7 @@ const ReactDelegate = (addView, removeView) => {
1241
1706
  };
1242
1707
  };
1243
1708
 
1244
- const IonNavInner = createReactComponent('ion-nav', undefined, undefined, defineCustomElement$1i);
1709
+ const IonNavInner = createReactComponent('ion-nav', undefined, undefined, defineCustomElement$1h);
1245
1710
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
1246
1711
  const IonNavInternal = (_a) => {
1247
1712
  var { children, forwardedRef } = _a, restOfProps = __rest(_a, ["children", "forwardedRef"]);
@@ -1496,15 +1961,9 @@ class IonTabBarUnwrapped extends React.PureComponent {
1496
1961
  };
1497
1962
  }
1498
1963
  onTabButtonClick(e, onClickFn) {
1499
- var _a;
1500
1964
  const tappedTab = this.state.tabs[e.detail.tab];
1501
1965
  const originalHref = tappedTab.originalHref;
1502
- /**
1503
- * If the router outlet is not defined, then the tabs is being used
1504
- * as a basic tab navigation without the router. In this case, we
1505
- * don't want to update the href else the URL will change.
1506
- */
1507
- const currentHref = ((_a = this.props.routerOutletRef) === null || _a === void 0 ? void 0 : _a.current) ? e.detail.href : '';
1966
+ const currentHref = e.detail.href;
1508
1967
  const { activeTab: prevActiveTab } = this.state;
1509
1968
  if (onClickFn) {
1510
1969
  /**
@@ -1618,36 +2077,23 @@ const IonTabs = /*@__PURE__*/ (() => class extends React.Component {
1618
2077
  render() {
1619
2078
  let outlet;
1620
2079
  let tabBar;
1621
- // Check if IonTabs has any IonTab children
1622
- let hasTab = false;
1623
2080
  const _a = this.props, { className, onIonTabsDidChange, onIonTabsWillChange } = _a, props = __rest(_a, ["className", "onIonTabsDidChange", "onIonTabsWillChange"]);
1624
2081
  const children = typeof this.props.children === 'function'
1625
2082
  ? this.props.children(this.ionTabContextState)
1626
2083
  : this.props.children;
1627
- const outletProps = {
1628
- ref: this.routerOutletRef,
1629
- };
1630
2084
  React.Children.forEach(children, (child) => {
1631
2085
  // eslint-disable-next-line no-prototype-builtins
1632
2086
  if (child == null || typeof child !== 'object' || !child.hasOwnProperty('type')) {
1633
2087
  return;
1634
2088
  }
1635
2089
  if (child.type === IonRouterOutlet || child.type.isRouterOutlet) {
1636
- outlet = React.cloneElement(child, outletProps);
2090
+ outlet = React.cloneElement(child);
1637
2091
  }
1638
2092
  else if (child.type === Fragment && child.props.children[0].type === IonRouterOutlet) {
1639
- outlet = React.cloneElement(child.props.children[0], outletProps);
1640
- }
1641
- else if (child.type === IonTab) {
1642
- /**
1643
- * This indicates that IonTabs will be using a basic tab-based navigation
1644
- * without the history stack or URL updates associated with the router.
1645
- */
1646
- hasTab = true;
2093
+ outlet = child.props.children[0];
1647
2094
  }
1648
2095
  let childProps = {
1649
2096
  ref: this.tabBarRef,
1650
- routerOutletRef: this.routerOutletRef,
1651
2097
  };
1652
2098
  /**
1653
2099
  * Only pass these props
@@ -1670,56 +2116,17 @@ const IonTabs = /*@__PURE__*/ (() => class extends React.Component {
1670
2116
  tabBar = React.cloneElement(child.props.children[1], childProps);
1671
2117
  }
1672
2118
  });
1673
- if (!outlet && !hasTab) {
1674
- throw new Error('IonTabs must contain an IonRouterOutlet or an IonTab');
1675
- }
1676
- if (outlet && hasTab) {
1677
- throw new Error('IonTabs cannot contain an IonRouterOutlet and an IonTab at the same time');
2119
+ if (!outlet) {
2120
+ throw new Error('IonTabs must contain an IonRouterOutlet');
1678
2121
  }
1679
2122
  if (!tabBar) {
1680
2123
  throw new Error('IonTabs needs a IonTabBar');
1681
2124
  }
1682
- if (hasTab) {
1683
- return React.createElement(IonTabsInner, Object.assign({}, this.props));
1684
- }
1685
- /**
1686
- * TODO(ROU-11051)
1687
- *
1688
- * There is no error handling for the case where there
1689
- * is no associated Route for the given IonTabButton.
1690
- *
1691
- * More investigation is needed to determine how to
1692
- * handle this to prevent any overwriting of the
1693
- * IonTabButton's onClick handler and how the routing
1694
- * is handled.
1695
- */
1696
2125
  return (React.createElement(IonTabsContext.Provider, { value: this.ionTabContextState }, this.context.hasIonicRouter() ? (React.createElement(PageManager, Object.assign({ className: className ? `${className}` : '', routeInfo: this.context.routeInfo }, props),
1697
- React.createElement(IonTabsInner, Object.assign({}, this.props), React.Children.map(children, (child) => {
1698
- if (React.isValidElement(child)) {
1699
- const isTabBar = child.type === IonTabBar ||
1700
- child.type.isTabBar ||
1701
- (child.type === Fragment &&
1702
- (child.props.children[1].type === IonTabBar || child.props.children[1].type.isTabBar));
1703
- const isRouterOutlet = child.type === IonRouterOutlet ||
1704
- child.type.isRouterOutlet ||
1705
- (child.type === Fragment && child.props.children[0].type === IonRouterOutlet);
1706
- if (isTabBar) {
1707
- /**
1708
- * The modified tabBar needs to be returned to include
1709
- * the context and the overridden methods.
1710
- */
1711
- return tabBar;
1712
- }
1713
- if (isRouterOutlet) {
1714
- /**
1715
- * The modified outlet needs to be returned to include
1716
- * the ref.
1717
- */
1718
- return outlet;
1719
- }
1720
- }
1721
- return child;
1722
- })))) : (React.createElement("div", Object.assign({ className: className ? `${className}` : 'ion-tabs' }, props, { style: hostStyles }),
2126
+ React.createElement("ion-tabs", { className: "ion-tabs", style: hostStyles },
2127
+ tabBar.props.slot === 'top' ? tabBar : null,
2128
+ React.createElement("div", { style: tabsInner, className: "tabs-inner" }, outlet),
2129
+ tabBar.props.slot === 'bottom' ? tabBar : null))) : (React.createElement("div", Object.assign({ className: className ? `${className}` : 'ion-tabs' }, props, { style: hostStyles }),
1723
2130
  tabBar.props.slot === 'top' ? tabBar : null,
1724
2131
  React.createElement("div", { style: tabsInner, className: "tabs-inner" }, outlet),
1725
2132
  tabBar.props.slot === 'bottom' ? tabBar : null))));
@@ -1823,7 +2230,7 @@ class IonRedirect extends React.PureComponent {
1823
2230
  }
1824
2231
 
1825
2232
  const IonRouterContext = React.createContext({
1826
- routeInfo: undefined,
2233
+ routeInfo: undefined, // TODO(FW-2959): type
1827
2234
  push: () => {
1828
2235
  throw new Error('An Ionic Router is required for IonRouterContext');
1829
2236
  },