@ionic/core 8.8.6-dev.11777572994.1147595d → 8.8.6-nightly.20260501

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 (280) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-action-sheet.js +1 -1
  3. package/components/ion-alert.js +1 -1
  4. package/components/ion-back-button.js +1 -1
  5. package/components/ion-button.js +1 -1
  6. package/components/ion-card.js +1 -1
  7. package/components/ion-chip.js +1 -1
  8. package/components/ion-datetime-button.js +1 -1
  9. package/components/ion-datetime.js +1 -1
  10. package/components/ion-fab-button.js +1 -1
  11. package/components/ion-infinite-scroll-content.js +1 -1
  12. package/components/ion-input-password-toggle.js +1 -1
  13. package/components/ion-item-option.js +1 -1
  14. package/components/ion-item.js +1 -1
  15. package/components/ion-loading.js +1 -1
  16. package/components/ion-menu-button.js +1 -1
  17. package/components/ion-menu.js +1 -1
  18. package/components/ion-modal.js +1 -1
  19. package/components/ion-picker-legacy-column.d.ts +11 -0
  20. package/components/ion-picker-legacy-column.js +4 -0
  21. package/components/ion-picker-legacy.d.ts +11 -0
  22. package/components/ion-picker-legacy.js +4 -0
  23. package/components/ion-popover.js +1 -1
  24. package/components/ion-progress-bar.js +1 -1
  25. package/components/ion-radio.js +1 -1
  26. package/components/ion-range.js +1 -1
  27. package/components/ion-refresher-content.js +1 -1
  28. package/components/ion-refresher.js +1 -1
  29. package/components/ion-reorder-group.js +1 -1
  30. package/components/ion-reorder.js +1 -1
  31. package/components/ion-ripple-effect.js +1 -1
  32. package/components/ion-router-link.js +1 -1
  33. package/components/ion-router-outlet.js +1 -1
  34. package/components/ion-row.js +1 -1
  35. package/components/ion-searchbar.js +1 -1
  36. package/components/ion-segment-button.js +1 -1
  37. package/components/ion-segment-content.js +1 -1
  38. package/components/ion-segment-view.js +1 -1
  39. package/components/ion-segment.js +1 -1
  40. package/components/ion-select-modal.js +1 -1
  41. package/components/ion-select-option.js +1 -1
  42. package/components/ion-select-popover.js +1 -1
  43. package/components/ion-select.js +1 -1
  44. package/components/ion-skeleton-text.js +1 -1
  45. package/components/ion-spinner.js +1 -1
  46. package/components/ion-split-pane.js +1 -1
  47. package/components/ion-tab-bar.js +1 -1
  48. package/components/ion-tab-button.js +1 -1
  49. package/components/ion-tab.js +1 -1
  50. package/components/ion-tabs.js +1 -1
  51. package/components/ion-text.js +1 -1
  52. package/components/ion-textarea.js +1 -1
  53. package/components/ion-thumbnail.js +1 -1
  54. package/components/ion-title.js +1 -1
  55. package/components/ion-toast.js +1 -1
  56. package/components/ion-toggle.js +1 -1
  57. package/components/ion-toolbar.js +1 -1
  58. package/components/p-1KVKSLu5.js +4 -0
  59. package/components/{p-DbISMmiI.js → p-BSB38Tek.js} +1 -1
  60. package/components/{p-CDXBV7oG.js → p-BTeL5HCK.js} +1 -1
  61. package/components/p-BegtE7nr.js +4 -0
  62. package/components/{p-Ct3FLpwo.js → p-BlNv564p.js} +1 -1
  63. package/components/p-CH0NYjKq.js +4 -0
  64. package/components/{p-DL2W2mt3.js → p-CgfaEEem.js} +1 -1
  65. package/components/p-Cq8cQ0NL.js +4 -0
  66. package/components/{p-nPoOPlPt.js → p-Cyxa_4PV.js} +1 -1
  67. package/components/{p-OOMJP0jy.js → p-D-cP12ZN.js} +1 -1
  68. package/components/p-DHsZWn1l.js +4 -0
  69. package/components/{p-BeL7B3Bb.js → p-DJMZehmW.js} +1 -1
  70. package/components/p-DUqnmRFi.js +4 -0
  71. package/components/{p-DrIm1s9R.js → p-fpbh6w3f.js} +1 -1
  72. package/components/{p-DxXmSp9Y.js → p-kvaDs24J.js} +1 -1
  73. package/dist/cjs/index.cjs.js +2 -1
  74. package/dist/cjs/ion-action-sheet.cjs.entry.js +4 -8
  75. package/dist/cjs/ion-alert.cjs.entry.js +3 -7
  76. package/dist/cjs/ion-app_8.cjs.entry.js +9 -23
  77. package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
  78. package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
  79. package/dist/cjs/{ion-datetime.cjs.entry.js → ion-datetime_3.cjs.entry.js} +639 -1
  80. package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
  81. package/dist/cjs/ion-loading.cjs.entry.js +3 -7
  82. package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
  83. package/dist/cjs/ion-modal.cjs.entry.js +5 -9
  84. package/dist/cjs/ion-popover.cjs.entry.js +3 -7
  85. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  86. package/dist/cjs/ion-radio_2.cjs.entry.js +3 -3
  87. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  88. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  89. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  90. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  91. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  92. package/dist/cjs/ion-searchbar.cjs.entry.js +4 -4
  93. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  94. package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
  95. package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
  96. package/dist/cjs/ion-select-modal.cjs.entry.js +2 -2
  97. package/dist/cjs/ion-select_3.cjs.entry.js +5 -5
  98. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  99. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  100. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  101. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  102. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  103. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  104. package/dist/cjs/ion-toast.cjs.entry.js +3 -3
  105. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  106. package/dist/cjs/ionic.cjs.js +1 -1
  107. package/dist/cjs/loader.cjs.js +1 -1
  108. package/dist/cjs/{overlays-DIfHxkst.js → overlays-C2jiBSNQ.js} +7 -26
  109. package/dist/collection/collection-manifest.json +9 -5
  110. package/dist/collection/components/action-sheet/action-sheet.js +4 -8
  111. package/dist/collection/components/alert/alert.js +3 -7
  112. package/dist/collection/components/loading/loading.js +3 -7
  113. package/dist/collection/components/modal/modal.js +5 -9
  114. package/dist/collection/components/picker-legacy/animations/ios.enter.js +27 -0
  115. package/dist/collection/components/picker-legacy/animations/ios.leave.js +23 -0
  116. package/dist/collection/components/picker-legacy/picker-interface.js +1 -0
  117. package/dist/collection/components/picker-legacy/picker.ios.css +300 -0
  118. package/dist/collection/components/picker-legacy/picker.js +890 -0
  119. package/dist/collection/components/picker-legacy/picker.md.css +287 -0
  120. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +231 -0
  121. package/dist/collection/components/picker-legacy-column/picker-column.js +422 -0
  122. package/dist/collection/components/picker-legacy-column/picker-column.md.css +222 -0
  123. package/dist/collection/components/picker-legacy-column/test/test.utils.js +43 -0
  124. package/dist/collection/components/popover/popover.js +3 -7
  125. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  126. package/dist/collection/components/radio/radio.js +4 -4
  127. package/dist/collection/components/range/range.js +3 -3
  128. package/dist/collection/components/refresher/refresher.js +1 -1
  129. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  130. package/dist/collection/components/reorder/reorder.js +1 -1
  131. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  132. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  133. package/dist/collection/components/router-link/router-link.js +2 -2
  134. package/dist/collection/components/router-outlet/router-outlet.js +5 -38
  135. package/dist/collection/components/row/row.js +1 -1
  136. package/dist/collection/components/searchbar/searchbar.js +4 -4
  137. package/dist/collection/components/segment/segment.js +2 -2
  138. package/dist/collection/components/segment-button/segment-button.js +2 -2
  139. package/dist/collection/components/segment-content/segment-content.js +1 -1
  140. package/dist/collection/components/segment-view/segment-view.js +2 -2
  141. package/dist/collection/components/select/select.js +2 -2
  142. package/dist/collection/components/select-modal/select-modal.js +1 -1
  143. package/dist/collection/components/select-option/select-option.js +1 -1
  144. package/dist/collection/components/select-popover/select-popover.js +1 -1
  145. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  146. package/dist/collection/components/spinner/spinner.js +1 -1
  147. package/dist/collection/components/split-pane/split-pane.js +2 -2
  148. package/dist/collection/components/tab/tab.js +2 -2
  149. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  150. package/dist/collection/components/tab-button/tab-button.js +2 -2
  151. package/dist/collection/components/tabs/tabs.js +1 -1
  152. package/dist/collection/components/text/text.js +2 -2
  153. package/dist/collection/components/textarea/textarea.js +2 -2
  154. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  155. package/dist/collection/components/title/title.js +2 -2
  156. package/dist/collection/components/toast/toast.js +2 -2
  157. package/dist/collection/components/toggle/toggle.js +3 -3
  158. package/dist/collection/components/toolbar/toolbar.js +2 -2
  159. package/dist/collection/index.js +1 -1
  160. package/dist/collection/utils/overlays.js +6 -25
  161. package/dist/docs.json +941 -28
  162. package/dist/esm/{index-AlrZKoWR.js → index-DV3sJJW8.js} +1 -1
  163. package/dist/esm/index.js +1 -1
  164. package/dist/esm/ion-accordion_2.entry.js +1 -1
  165. package/dist/esm/ion-action-sheet.entry.js +4 -8
  166. package/dist/esm/ion-alert.entry.js +3 -7
  167. package/dist/esm/ion-app_8.entry.js +9 -23
  168. package/dist/esm/ion-avatar_3.entry.js +1 -1
  169. package/dist/esm/ion-back-button.entry.js +1 -1
  170. package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
  171. package/dist/esm/ion-col_3.entry.js +1 -1
  172. package/dist/esm/{ion-datetime.entry.js → ion-datetime_3.entry.js} +641 -5
  173. package/dist/esm/ion-fab_3.entry.js +1 -1
  174. package/dist/esm/ion-input-password-toggle.entry.js +1 -1
  175. package/dist/esm/ion-input.entry.js +1 -1
  176. package/dist/esm/ion-item_8.entry.js +3 -3
  177. package/dist/esm/ion-loading.entry.js +3 -7
  178. package/dist/esm/ion-menu_3.entry.js +2 -2
  179. package/dist/esm/ion-modal.entry.js +5 -9
  180. package/dist/esm/ion-popover.entry.js +3 -7
  181. package/dist/esm/ion-progress-bar.entry.js +1 -1
  182. package/dist/esm/ion-radio_2.entry.js +3 -3
  183. package/dist/esm/ion-range.entry.js +3 -3
  184. package/dist/esm/ion-refresher_2.entry.js +3 -3
  185. package/dist/esm/ion-reorder_2.entry.js +3 -3
  186. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  187. package/dist/esm/ion-route_4.entry.js +2 -2
  188. package/dist/esm/ion-searchbar.entry.js +5 -5
  189. package/dist/esm/ion-segment-content.entry.js +1 -1
  190. package/dist/esm/ion-segment-view.entry.js +2 -2
  191. package/dist/esm/ion-segment_2.entry.js +4 -4
  192. package/dist/esm/ion-select-modal.entry.js +2 -2
  193. package/dist/esm/ion-select_3.entry.js +6 -6
  194. package/dist/esm/ion-spinner.entry.js +1 -1
  195. package/dist/esm/ion-split-pane.entry.js +2 -2
  196. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  197. package/dist/esm/ion-tab_2.entry.js +3 -3
  198. package/dist/esm/ion-text.entry.js +2 -2
  199. package/dist/esm/ion-textarea.entry.js +2 -2
  200. package/dist/esm/ion-toast.entry.js +3 -3
  201. package/dist/esm/ion-toggle.entry.js +4 -4
  202. package/dist/esm/ionic.js +1 -1
  203. package/dist/esm/loader.js +1 -1
  204. package/dist/esm/{overlays-BDGzTP3L.js → overlays-F8GHPo-e.js} +7 -26
  205. package/dist/html.html-data.json +59 -4
  206. package/dist/ionic/index.esm.js +1 -1
  207. package/dist/ionic/ionic.esm.js +1 -1
  208. package/dist/ionic/{p-f17d05e3.entry.js → p-031b76f7.entry.js} +1 -1
  209. package/dist/ionic/{p-ede28b71.entry.js → p-07506134.entry.js} +1 -1
  210. package/dist/ionic/{p-e9dd191b.entry.js → p-084c25b2.entry.js} +1 -1
  211. package/dist/ionic/{p-fed27c64.entry.js → p-0d8b5c38.entry.js} +1 -1
  212. package/dist/ionic/p-16813ce7.entry.js +4 -0
  213. package/dist/ionic/p-1b02923f.entry.js +4 -0
  214. package/dist/ionic/{p-898f9d11.entry.js → p-1b169fb6.entry.js} +1 -1
  215. package/dist/ionic/p-23fac490.entry.js +4 -0
  216. package/dist/ionic/{p-7fe42b71.entry.js → p-28a9e720.entry.js} +1 -1
  217. package/dist/ionic/{p-3b58996c.entry.js → p-294f4bb5.entry.js} +1 -1
  218. package/dist/ionic/{p-f7762013.entry.js → p-2a68388b.entry.js} +1 -1
  219. package/dist/ionic/p-2f5a8140.entry.js +4 -0
  220. package/dist/ionic/{p-34b3a309.entry.js → p-2fd110aa.entry.js} +1 -1
  221. package/dist/ionic/{p-4ed63122.entry.js → p-301c43f8.entry.js} +1 -1
  222. package/dist/ionic/p-4c67ce4c.entry.js +4 -0
  223. package/dist/ionic/p-51c11c47.entry.js +4 -0
  224. package/dist/ionic/p-53f750a5.entry.js +4 -0
  225. package/dist/ionic/p-6b701daa.entry.js +4 -0
  226. package/dist/ionic/{p-19adf785.entry.js → p-7620be24.entry.js} +1 -1
  227. package/dist/ionic/{p-18b5d5ff.entry.js → p-771b27a5.entry.js} +1 -1
  228. package/dist/ionic/p-7ca71c83.entry.js +4 -0
  229. package/dist/ionic/{p-66494f9b.entry.js → p-80cac7a2.entry.js} +1 -1
  230. package/dist/ionic/{p-506038d3.entry.js → p-8fda6a62.entry.js} +1 -1
  231. package/dist/ionic/{p-7f269aff.entry.js → p-9cbc6f1f.entry.js} +1 -1
  232. package/dist/ionic/{p-b6f16f18.entry.js → p-9cdbabbb.entry.js} +1 -1
  233. package/dist/ionic/p-DTPR1Wpn.js +4 -0
  234. package/dist/ionic/{p-AlrZKoWR.js → p-DV3sJJW8.js} +1 -1
  235. package/dist/ionic/{p-dc198c3a.entry.js → p-a84f2d21.entry.js} +1 -1
  236. package/dist/ionic/{p-b8f4a31c.entry.js → p-aa812c4b.entry.js} +1 -1
  237. package/dist/ionic/{p-30f5ad9e.entry.js → p-b325a113.entry.js} +1 -1
  238. package/dist/ionic/p-b5ea8cdd.entry.js +4 -0
  239. package/dist/ionic/{p-1d2163ad.entry.js → p-bcaa827e.entry.js} +1 -1
  240. package/dist/ionic/{p-6e99ae8d.entry.js → p-c3cce9d8.entry.js} +1 -1
  241. package/dist/ionic/{p-b553828c.entry.js → p-d4e8b473.entry.js} +1 -1
  242. package/dist/ionic/p-e0287f41.entry.js +4 -0
  243. package/dist/ionic/{p-6da572e7.entry.js → p-e863ffe8.entry.js} +1 -1
  244. package/dist/ionic/p-f2deaceb.entry.js +4 -0
  245. package/dist/ionic/{p-460fbe5b.entry.js → p-f69a5f71.entry.js} +1 -1
  246. package/dist/ionic/{p-4ea520a4.entry.js → p-f8186550.entry.js} +1 -1
  247. package/dist/ionic/{p-8a3a936b.entry.js → p-fdbc90d4.entry.js} +1 -1
  248. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +5 -0
  249. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +5 -0
  250. package/dist/types/components/picker-legacy/picker-interface.d.ts +52 -0
  251. package/dist/types/components/picker-legacy/picker.d.ts +158 -0
  252. package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
  253. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +9 -0
  254. package/dist/types/components/router-outlet/router-outlet.d.ts +0 -7
  255. package/dist/types/components.d.ts +272 -9
  256. package/dist/types/index.d.ts +1 -1
  257. package/dist/types/interface.d.ts +1 -0
  258. package/dist/types/utils/config.d.ts +8 -0
  259. package/dist/types/utils/overlays.d.ts +9 -11
  260. package/hydrate/index.js +788 -164
  261. package/hydrate/index.mjs +788 -164
  262. package/package.json +3 -3
  263. package/components/p-BHlzkIpO.js +0 -4
  264. package/components/p-Bg7NsGS9.js +0 -4
  265. package/components/p-CWpbvhwY.js +0 -4
  266. package/components/p-DBHdZu4y.js +0 -4
  267. package/components/p-DPdqO7R6.js +0 -4
  268. package/dist/ionic/p-2089f9cb.entry.js +0 -4
  269. package/dist/ionic/p-4c8d8c55.entry.js +0 -4
  270. package/dist/ionic/p-4f3a8ccf.entry.js +0 -4
  271. package/dist/ionic/p-528d4c1d.entry.js +0 -4
  272. package/dist/ionic/p-5430ae94.entry.js +0 -4
  273. package/dist/ionic/p-5c2cc090.entry.js +0 -4
  274. package/dist/ionic/p-6406d5a9.entry.js +0 -4
  275. package/dist/ionic/p-7f9db51b.entry.js +0 -4
  276. package/dist/ionic/p-Csx_Ej2k.js +0 -4
  277. package/dist/ionic/p-a39db980.entry.js +0 -4
  278. package/dist/ionic/p-b5e3e1f7.entry.js +0 -4
  279. package/dist/ionic/p-cce0cd26.entry.js +0 -4
  280. package/dist/ionic/p-d92ba088.entry.js +0 -4
package/hydrate/index.js CHANGED
@@ -7792,7 +7792,7 @@ const focusElementInOverlay = (hostToFocus, overlay) => {
7792
7792
  * Should NOT include: Toast
7793
7793
  */
7794
7794
  const trapKeyboardFocus = (ev, doc) => {
7795
- const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover');
7795
+ const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover');
7796
7796
  const target = ev.target;
7797
7797
  /**
7798
7798
  * If no active overlay, ignore this event.
@@ -8026,7 +8026,7 @@ const dismissOverlay = (doc, data, role, overlayTag, id) => {
8026
8026
  */
8027
8027
  const getOverlays = (doc, selector) => {
8028
8028
  if (selector === undefined) {
8029
- selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover,ion-toast';
8029
+ selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover,ion-toast';
8030
8030
  }
8031
8031
  return Array.from(doc.querySelectorAll(selector)).filter((c) => c.overlayIndex > 0);
8032
8032
  };
@@ -8088,29 +8088,6 @@ const setRootAriaHidden = (hidden = false) => {
8088
8088
  viewContainer.removeAttribute('aria-hidden');
8089
8089
  }
8090
8090
  };
8091
- /**
8092
- * Cleans up root `aria-hidden` and `backdrop-no-scroll` when
8093
- * an overlay is removed from the DOM without going through
8094
- * the `dismiss()` flow (e.g., when a framework unmounts the
8095
- * overlay during a route change).
8096
- *
8097
- * Should be called from an overlay's `disconnectedCallback`
8098
- * when the overlay was still presented at the time of removal.
8099
- */
8100
- const cleanupRootFocusTrapAccessibility = () => {
8101
- if (typeof document === 'undefined') {
8102
- return;
8103
- }
8104
- const remainingOverlays = getPresentedOverlays(document);
8105
- const hasRemainingLocking = remainingOverlays.some((o) => {
8106
- const el = o;
8107
- return el.tagName !== 'ION-TOAST' && el.focusTrap !== false && isBackdropAlwaysBlocking(el);
8108
- });
8109
- if (!hasRemainingLocking) {
8110
- setRootAriaHidden(false);
8111
- document.body.classList.remove(BACKDROP_NO_SCROLL);
8112
- }
8113
- };
8114
8091
  const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts) => {
8115
8092
  var _a, _b;
8116
8093
  if (overlay.presented) {
@@ -9367,7 +9344,7 @@ const createAnimation = (animationId) => {
9367
9344
  /**
9368
9345
  * iOS Action Sheet Enter Animation
9369
9346
  */
9370
- const iosEnterAnimation$5 = (baseEl) => {
9347
+ const iosEnterAnimation$6 = (baseEl) => {
9371
9348
  const baseAnimation = createAnimation();
9372
9349
  const backdropAnimation = createAnimation();
9373
9350
  const wrapperAnimation = createAnimation();
@@ -9391,7 +9368,7 @@ const iosEnterAnimation$5 = (baseEl) => {
9391
9368
  /**
9392
9369
  * iOS Action Sheet Leave Animation
9393
9370
  */
9394
- const iosLeaveAnimation$5 = (baseEl) => {
9371
+ const iosLeaveAnimation$6 = (baseEl) => {
9395
9372
  const baseAnimation = createAnimation();
9396
9373
  const backdropAnimation = createAnimation();
9397
9374
  const wrapperAnimation = createAnimation();
@@ -9547,7 +9524,7 @@ class ActionSheet {
9547
9524
  async present() {
9548
9525
  const unlock = await this.lockController.lock();
9549
9526
  await this.delegateController.attachViewToDom();
9550
- await present(this, 'actionSheetEnter', iosEnterAnimation$5, mdEnterAnimation$5);
9527
+ await present(this, 'actionSheetEnter', iosEnterAnimation$6, mdEnterAnimation$5);
9551
9528
  unlock();
9552
9529
  }
9553
9530
  /**
@@ -9564,7 +9541,7 @@ class ActionSheet {
9564
9541
  */
9565
9542
  async dismiss(data, role) {
9566
9543
  const unlock = await this.lockController.lock();
9567
- const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$5, mdLeaveAnimation$5);
9544
+ const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$6, mdLeaveAnimation$5);
9568
9545
  if (dismissed) {
9569
9546
  this.delegateController.removeViewFromDom();
9570
9547
  }
@@ -9733,10 +9710,6 @@ class ActionSheet {
9733
9710
  this.gesture = undefined;
9734
9711
  }
9735
9712
  this.triggerController.removeClickListener();
9736
- // Clean up aria-hidden if removed without dismiss() being called
9737
- if (this.presented) {
9738
- cleanupRootFocusTrapAccessibility();
9739
- }
9740
9713
  }
9741
9714
  componentWillLoad() {
9742
9715
  var _a;
@@ -9825,7 +9798,7 @@ class ActionSheet {
9825
9798
  if (isRadio) {
9826
9799
  htmlAttrs['aria-checked'] = isActiveRadio ? 'true' : 'false';
9827
9800
  }
9828
- return (hAsync("button", Object.assign({}, htmlAttrs, { role: isRadio ? 'radio' : undefined, type: "button", id: buttonId, class: Object.assign(Object.assign({}, buttonClass$2(b)), { 'action-sheet-selected': isActiveRadio }), onClick: () => {
9801
+ return (hAsync("button", Object.assign({}, htmlAttrs, { role: isRadio ? 'radio' : undefined, type: "button", id: buttonId, class: Object.assign(Object.assign({}, buttonClass$3(b)), { 'action-sheet-selected': isActiveRadio }), onClick: () => {
9829
9802
  if (isRadio) {
9830
9803
  this.selectRadioButton(b);
9831
9804
  }
@@ -9840,12 +9813,12 @@ class ActionSheet {
9840
9813
  const cancelButton = allButtons.find((b) => b.role === 'cancel');
9841
9814
  const buttons = allButtons.filter((b) => b.role !== 'cancel');
9842
9815
  const headerID = `action-sheet-${overlayIndex}-header`;
9843
- return (hAsync(Host, Object.assign({ key: 'fc8e6c837c7e16d78348a3109f5dc992f111784a', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
9816
+ return (hAsync(Host, Object.assign({ key: '173fcff5b1da7c33c267de4667591c946b8c8d03', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
9844
9817
  zIndex: `${20000 + this.overlayIndex}`,
9845
- }, class: Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: 'e558804050a8ba80dcca73308bbcb4b31687ba70', tappable: this.backdropDismiss }), hAsync("div", { key: '6697622f6a62a460eac489afc5cd504eda002140', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '4c05e7a9a20953faaa8ea0eab739b9b400895137', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: '43bbc9b7217570cfc62789b4987e61a6e51a1c5f', class: "action-sheet-container" }, hAsync("div", { key: '5f9b36b5396043997d7b74e29ad3738b2af8821e', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (hAsync("div", { key: '3306e90dace90046d226b1eb95b06af11eebba5e', id: headerID, class: {
9818
+ }, class: Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: '521ede659f747864f6c974e09016436eceb7158c', tappable: this.backdropDismiss }), hAsync("div", { key: '7a7946fc434bc444f16a70638f5e948c69d33fcd', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'bcff39a580489dbafa255842e57aa8602c6d0f18', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: '84bba13ce14261f0f0daa3f9c77648c9e7f36e0e', class: "action-sheet-container" }, hAsync("div", { key: 'd9c8ac404fd6719a7adf8cb36549f67616f9a0c4', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (hAsync("div", { key: '180433a8ad03ef5c54728a1a8f34715b6921d658', id: headerID, class: {
9846
9819
  'action-sheet-title': true,
9847
9820
  'action-sheet-has-sub-title': this.subHeader !== undefined,
9848
- } }, header, this.subHeader && hAsync("div", { key: 'ee8e87e627e8eb6afdb1f4c3f0ef34c29a2b69c6', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (hAsync("div", { key: 'cb568ea8502afd8d913c0d0107db4fc98b5e50c6', class: "action-sheet-group action-sheet-group-cancel" }, hAsync("button", Object.assign({ key: 'd11ca6898fa308f494f2183ffc45bbcf971c14cb' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass$2(cancelButton), onClick: () => this.buttonClick(cancelButton) }), hAsync("span", { key: 'b18e80930fdd0515d3647846729d392971c7c511', class: "action-sheet-button-inner" }, cancelButton.icon && (hAsync("ion-icon", { key: '4e0a3fdcedaa480329080a8597df29746c14fd06', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && hAsync("ion-ripple-effect", { key: 'fd2be8895b57b74bc83ee54a5d738472ad5fdb00' })))))), hAsync("div", { key: 'b08dba5d658f9a5a64d76dc7eb8aba720c9333c3', tabindex: "0", "aria-hidden": "true" })));
9821
+ } }, header, this.subHeader && hAsync("div", { key: '7138e79e61b1a8f42bc5a9175c57fa2f15d7ec5a', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (hAsync("div", { key: 'b617c722f5b8028d73ed34b69310f312c65f34a7', class: "action-sheet-group action-sheet-group-cancel" }, hAsync("button", Object.assign({ key: 'd0dd876fc48815df3710413c201c0b445a8e16c0' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass$3(cancelButton), onClick: () => this.buttonClick(cancelButton) }), hAsync("span", { key: 'e7b960157cc6fc5fe92a12090b2be55e8ae072e4', class: "action-sheet-button-inner" }, cancelButton.icon && (hAsync("ion-icon", { key: '05498ffc60cab911dbff0ecbc6168dea59ada9a5', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && hAsync("ion-ripple-effect", { key: '3d401346cea301be4ca03671f7370f6f4b0b6bde' })))))), hAsync("div", { key: '971f3c5fcc07f36c28eb469a47ec0290c692e139', tabindex: "0", "aria-hidden": "true" })));
9849
9822
  }
9850
9823
  get el() { return getElement(this); }
9851
9824
  static get watchers() { return {
@@ -9894,7 +9867,7 @@ class ActionSheet {
9894
9867
  "$attrsToReflect$": []
9895
9868
  }; }
9896
9869
  }
9897
- const buttonClass$2 = (button) => {
9870
+ const buttonClass$3 = (button) => {
9898
9871
  return Object.assign({ 'action-sheet-button': true, 'ion-activatable': !button.disabled, 'ion-focusable': !button.disabled, [`action-sheet-${button.role}`]: button.role !== undefined }, getClassMap(button.cssClass));
9899
9872
  };
9900
9873
 
@@ -10065,7 +10038,7 @@ class IonicSafeString {
10065
10038
  /**
10066
10039
  * iOS Alert Enter Animation
10067
10040
  */
10068
- const iosEnterAnimation$4 = (baseEl) => {
10041
+ const iosEnterAnimation$5 = (baseEl) => {
10069
10042
  const baseAnimation = createAnimation();
10070
10043
  const backdropAnimation = createAnimation();
10071
10044
  const wrapperAnimation = createAnimation();
@@ -10090,7 +10063,7 @@ const iosEnterAnimation$4 = (baseEl) => {
10090
10063
  /**
10091
10064
  * iOS Alert Leave Animation
10092
10065
  */
10093
- const iosLeaveAnimation$4 = (baseEl) => {
10066
+ const iosLeaveAnimation$5 = (baseEl) => {
10094
10067
  const baseAnimation = createAnimation();
10095
10068
  const backdropAnimation = createAnimation();
10096
10069
  const wrapperAnimation = createAnimation();
@@ -10351,10 +10324,6 @@ class Alert {
10351
10324
  this.gesture.destroy();
10352
10325
  this.gesture = undefined;
10353
10326
  }
10354
- // Clean up aria-hidden if removed without dismiss() being called
10355
- if (this.presented) {
10356
- cleanupRootFocusTrapAccessibility();
10357
- }
10358
10327
  }
10359
10328
  componentDidLoad() {
10360
10329
  /**
@@ -10391,7 +10360,7 @@ class Alert {
10391
10360
  async present() {
10392
10361
  const unlock = await this.lockController.lock();
10393
10362
  await this.delegateController.attachViewToDom();
10394
- await present(this, 'alertEnter', iosEnterAnimation$4, mdEnterAnimation$4).then(() => {
10363
+ await present(this, 'alertEnter', iosEnterAnimation$5, mdEnterAnimation$4).then(() => {
10395
10364
  var _a, _b;
10396
10365
  /**
10397
10366
  * Check if alert has only one button and no inputs.
@@ -10422,7 +10391,7 @@ class Alert {
10422
10391
  */
10423
10392
  async dismiss(data, role) {
10424
10393
  const unlock = await this.lockController.lock();
10425
- const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$4, mdLeaveAnimation$4);
10394
+ const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$5, mdLeaveAnimation$4);
10426
10395
  if (dismissed) {
10427
10396
  this.delegateController.removeViewFromDom();
10428
10397
  }
@@ -10563,7 +10532,7 @@ class Alert {
10563
10532
  'alert-button-group': true,
10564
10533
  'alert-button-group-vertical': buttons.length > 2,
10565
10534
  };
10566
- return (hAsync("div", { class: alertButtonGroupClass }, buttons.map((button) => (hAsync("button", Object.assign({}, button.htmlAttributes, { type: "button", id: button.id, class: buttonClass$1(button), tabIndex: 0, onClick: () => this.buttonClick(button) }), hAsync("span", { class: "alert-button-inner" }, button.text), mode === 'md' && hAsync("ion-ripple-effect", null))))));
10535
+ return (hAsync("div", { class: alertButtonGroupClass }, buttons.map((button) => (hAsync("button", Object.assign({}, button.htmlAttributes, { type: "button", id: button.id, class: buttonClass$2(button), tabIndex: 0, onClick: () => this.buttonClick(button) }), hAsync("span", { class: "alert-button-inner" }, button.text), mode === 'md' && hAsync("ion-ripple-effect", null))))));
10567
10536
  }
10568
10537
  renderAlertMessage(msgId) {
10569
10538
  const { customHTMLEnabled, message } = this;
@@ -10586,9 +10555,9 @@ class Alert {
10586
10555
  * If neither are defined, do not set aria-labelledby.
10587
10556
  */
10588
10557
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
10589
- return (hAsync(Host, { key: '51ccec282f165dbaa02d7ee0c6413b870abae1d5', tabindex: "-1", style: {
10558
+ return (hAsync(Host, { key: '6025440b9cd369d4fac89e7e4296c84a10a0b8e0', tabindex: "-1", style: {
10590
10559
  zIndex: `${20000 + overlayIndex}`,
10591
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: '555fb7a0048d1ada0182925ca460956e65f43322', tappable: this.backdropDismiss }), hAsync("div", { key: 'bce7b1466f5d3c2615a7478ec8903f9567c9b101', tabindex: "0", "aria-hidden": "true" }), hAsync("div", Object.assign({ key: '8b0e8793070fee6cb3a69f0fc9b828b07672d0f9', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), hAsync("div", { key: 'f9c99afdd4389421e9eaabaa7e2f9c17e2cb88f4', class: "alert-head" }, header && (hAsync("h2", { key: '7aa37fe49189d714e7d4bc786d9895ab8191f25c', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '1c32cbb4d615672b669bfacff35079791a0ab50a', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: 'fc7285499cee4cef323085e501d974d423102e94', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: 'b69334b5643b2592053bc408a9ab3b623e2d2b9d', tabindex: "0", "aria-hidden": "true" })));
10560
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: '3cd5ca8b99cb95b11dd22ab41a820d841142896f', tappable: this.backdropDismiss }), hAsync("div", { key: '4cc62ae6e21424057d22aeef1e8fc77011e77cd5', tabindex: "0", "aria-hidden": "true" }), hAsync("div", Object.assign({ key: '364057a69f25aa88904df17bdcf7e5bf714e7830', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), hAsync("div", { key: '78694e3c0db2d408df3899fb1a90859bcc8d14cc', class: "alert-head" }, header && (hAsync("h2", { key: 'ec88ff3e4e1ea871b5975133fdcf4cac38b05e0f', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '9b09bc8bb68af255ef8b7d22587acc946148e544', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: '99abe815f75d2df7f1b77c0df9f3436724fea76f', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: 'a43d0c22c0e46b1ef911f92ffeb253d7911b85f7', tabindex: "0", "aria-hidden": "true" })));
10592
10561
  }
10593
10562
  get el() { return getElement(this); }
10594
10563
  static get watchers() { return {
@@ -10645,7 +10614,7 @@ const inputClass = (input) => {
10645
10614
  var _a, _b, _c;
10646
10615
  return Object.assign(Object.assign({ 'alert-input': true, 'alert-input-disabled': ((_b = (_a = input.attributes) === null || _a === void 0 ? void 0 : _a.disabled) !== null && _b !== void 0 ? _b : input.disabled) || false }, getClassMap(input.cssClass)), getClassMap(input.attributes ? (_c = input.attributes.class) === null || _c === void 0 ? void 0 : _c.toString() : ''));
10647
10616
  };
10648
- const buttonClass$1 = (button) => {
10617
+ const buttonClass$2 = (button) => {
10649
10618
  return Object.assign({ 'alert-button': true, 'ion-focusable': true, 'ion-activatable': true, [`alert-button-role-${button.role}`]: button.role !== undefined }, getClassMap(button.cssClass));
10650
10619
  };
10651
10620
 
@@ -21475,7 +21444,7 @@ class ListHeader {
21475
21444
  /**
21476
21445
  * iOS Loading Enter Animation
21477
21446
  */
21478
- const iosEnterAnimation$3 = (baseEl) => {
21447
+ const iosEnterAnimation$4 = (baseEl) => {
21479
21448
  const baseAnimation = createAnimation();
21480
21449
  const backdropAnimation = createAnimation();
21481
21450
  const wrapperAnimation = createAnimation();
@@ -21500,7 +21469,7 @@ const iosEnterAnimation$3 = (baseEl) => {
21500
21469
  /**
21501
21470
  * iOS Loading Leave Animation
21502
21471
  */
21503
- const iosLeaveAnimation$3 = (baseEl) => {
21472
+ const iosLeaveAnimation$4 = (baseEl) => {
21504
21473
  const baseAnimation = createAnimation();
21505
21474
  const backdropAnimation = createAnimation();
21506
21475
  const wrapperAnimation = createAnimation();
@@ -21673,10 +21642,6 @@ class Loading {
21673
21642
  }
21674
21643
  disconnectedCallback() {
21675
21644
  this.triggerController.removeClickListener();
21676
- // Clean up aria-hidden if removed without dismiss() being called
21677
- if (this.presented) {
21678
- cleanupRootFocusTrapAccessibility();
21679
- }
21680
21645
  }
21681
21646
  /**
21682
21647
  * Present the loading overlay after it has been created.
@@ -21684,7 +21649,7 @@ class Loading {
21684
21649
  async present() {
21685
21650
  const unlock = await this.lockController.lock();
21686
21651
  await this.delegateController.attachViewToDom();
21687
- await present(this, 'loadingEnter', iosEnterAnimation$3, mdEnterAnimation$3);
21652
+ await present(this, 'loadingEnter', iosEnterAnimation$4, mdEnterAnimation$3);
21688
21653
  if (this.duration > 0) {
21689
21654
  this.durationTimeout = setTimeout(() => this.dismiss(), this.duration + 10);
21690
21655
  }
@@ -21707,7 +21672,7 @@ class Loading {
21707
21672
  if (this.durationTimeout) {
21708
21673
  clearTimeout(this.durationTimeout);
21709
21674
  }
21710
- const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$3, mdLeaveAnimation$3);
21675
+ const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$4, mdLeaveAnimation$3);
21711
21676
  if (dismissed) {
21712
21677
  this.delegateController.removeViewFromDom();
21713
21678
  }
@@ -21742,9 +21707,9 @@ class Loading {
21742
21707
  * Otherwise, don't set aria-labelledby.
21743
21708
  */
21744
21709
  const ariaLabelledBy = message !== undefined ? msgId : null;
21745
- return (hAsync(Host, Object.assign({ key: 'ab48bfcee8f7e3e33847a2f262fdc08b9ea804ca', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
21710
+ return (hAsync(Host, Object.assign({ key: 'f86ddbc600cb5c396b7de38fb5f49625388c3c3f', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
21746
21711
  zIndex: `${40000 + this.overlayIndex}`,
21747
- }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: '41baccc7fb6474389a3a3431c208e829ef738b75', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '7b7290974abbe8db8739b19835aca9f8b5c271c2', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'e32466abfcc92aaad47ea03b1dcb49f66abe4b63', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: 'c5e6e6f9e3f39dba0225d08d7dd2c1b96a1d83c7', class: "loading-spinner" }, hAsync("ion-spinner", { key: 'f428038959d879404ea898011363aac0b807ad11', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: '490e531367b86c319fa4260722dcff4dd631fa88', tabindex: "0", "aria-hidden": "true" })));
21712
+ }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: 'b53727aaddc37ef3c685fcc150c6d5193290a847', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '4c61bede8e0a4e47daa6f1f9d0f364ef6aec0bc3', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '84e51ceb07118f1eaeb757df28801c255496931b', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: 'fc97f1912e0fc558b7c309a5bc084415f5f620b2', class: "loading-spinner" }, hAsync("ion-spinner", { key: '6e186d856cd3f10f22c3e317ef00f31b4216459c', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: 'dcbe9d9a619daa1c08174e73827bdabeb59dde92', tabindex: "0", "aria-hidden": "true" })));
21748
21713
  }
21749
21714
  get el() { return getElement(this); }
21750
21715
  static get watchers() { return {
@@ -24018,7 +23983,7 @@ const createEnterAnimation$1 = () => {
24018
23983
  /**
24019
23984
  * iOS Modal Enter Animation for the Card presentation style
24020
23985
  */
24021
- const iosEnterAnimation$2 = (baseEl, opts) => {
23986
+ const iosEnterAnimation$3 = (baseEl, opts) => {
24022
23987
  const { presentingEl, currentBreakpoint, expandToScroll } = opts;
24023
23988
  const root = getElementRoot(baseEl);
24024
23989
  const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
@@ -24111,7 +24076,7 @@ const createLeaveAnimation$1 = () => {
24111
24076
  /**
24112
24077
  * iOS Modal Leave Animation
24113
24078
  */
24114
- const iosLeaveAnimation$2 = (baseEl, opts, duration = 500) => {
24079
+ const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
24115
24080
  const { presentingEl, currentBreakpoint } = opts;
24116
24081
  const root = getElementRoot(baseEl);
24117
24082
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
@@ -25484,10 +25449,6 @@ class Modal {
25484
25449
  // Also called in dismiss() — intentional dual cleanup covers both
25485
25450
  // dismiss-then-remove and direct DOM removal without dismiss.
25486
25451
  this.cleanupSafeAreaOverrides();
25487
- // Clean up aria-hidden if removed without dismiss() being called
25488
- if (this.presented) {
25489
- cleanupRootFocusTrapAccessibility();
25490
- }
25491
25452
  }
25492
25453
  componentWillLoad() {
25493
25454
  var _a;
@@ -25664,7 +25625,7 @@ class Modal {
25664
25625
  this.statusBarStyle = await StatusBar.getStyle();
25665
25626
  setCardStatusBarDark();
25666
25627
  }
25667
- await present(this, 'modalEnter', iosEnterAnimation$2, mdEnterAnimation$2, {
25628
+ await present(this, 'modalEnter', iosEnterAnimation$3, mdEnterAnimation$2, {
25668
25629
  presentingEl: presentingElement,
25669
25630
  currentBreakpoint: this.initialBreakpoint,
25670
25631
  backdropBreakpoint: this.backdropBreakpoint,
@@ -25726,7 +25687,7 @@ class Modal {
25726
25687
  // All of the elements needed for the swipe gesture
25727
25688
  // should be in the DOM and referenced by now, except
25728
25689
  // for the presenting el
25729
- const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$2);
25690
+ const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$3);
25730
25691
  const ani = (this.animation = animationBuilder(el, {
25731
25692
  presentingEl: this.presentingElement,
25732
25693
  expandToScroll: this.expandToScroll,
@@ -25745,7 +25706,7 @@ class Modal {
25745
25706
  if (!wrapperEl || initialBreakpoint === undefined) {
25746
25707
  return;
25747
25708
  }
25748
- const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$2);
25709
+ const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$3);
25749
25710
  const ani = (this.animation = animationBuilder(this.el, {
25750
25711
  presentingEl: this.presentingElement,
25751
25712
  currentBreakpoint: initialBreakpoint,
@@ -25935,7 +25896,7 @@ class Modal {
25935
25896
  window.removeEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
25936
25897
  this.keyboardOpenCallback = undefined;
25937
25898
  }
25938
- const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$2, mdLeaveAnimation$2, {
25899
+ const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$3, mdLeaveAnimation$2, {
25939
25900
  presentingEl: presentingElement,
25940
25901
  currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
25941
25902
  backdropBreakpoint: this.backdropBreakpoint,
@@ -26367,20 +26328,20 @@ class Modal {
26367
26328
  const isCardModal = presentingElement !== undefined && mode === 'ios';
26368
26329
  const isHandleCycle = handleBehavior === 'cycle';
26369
26330
  const isSheetModalWithHandle = isSheetModal && showHandle;
26370
- return (hAsync(Host, Object.assign({ key: '8878518986eab4692754087d117b3b4a7968e4b2', "no-router": true,
26331
+ return (hAsync(Host, Object.assign({ key: '4bf38aa67df9a3f977163bba5423960bbafd16de', "no-router": true,
26371
26332
  // Allow the modal to be navigable when the handle is focusable
26372
26333
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
26373
26334
  zIndex: `${20000 + this.overlayIndex}`,
26374
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: '9566ae71e855f74ca44f54c98ba8e87ea987bb61', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '7411fb2aa9f9bd1b43339d95903732039db97817', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '191dac7e097957a46a55bb45717e8762a6865d86',
26335
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: '866da40cc5fc8d3e36637098fb3066a5bc9f4e0f', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '5a2a05514ea8592c8feb0465e504aa7c7af17963', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '4d327115306451f57d190b06ab8cbb6191a6f1d7',
26375
26336
  /*
26376
26337
  role and aria-modal must be used on the
26377
26338
  same element. They must also be set inside the
26378
26339
  shadow DOM otherwise ion-button will not be highlighted
26379
26340
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
26380
26341
  */
26381
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: 'e1cacd56459934e33f5ffab9326d4dfa31764b8f', class: "modal-handle",
26342
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: 'd1882835cc049232c0d957e3ba1e79676a07d179', class: "modal-handle",
26382
26343
  // Prevents the handle from receiving keyboard focus when it does not cycle
26383
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: 'b361c4609a107e2eb759926708178964e37132f2', onSlotchange: this.onSlotChange }))));
26344
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: '81dc58b09cf7d7022b04cd170f53113604364d5e', onSlotchange: this.onSlotChange }))));
26384
26345
  }
26385
26346
  get el() { return getElement(this); }
26386
26347
  static get watchers() { return {
@@ -27460,14 +27421,14 @@ class Note {
27460
27421
  }; }
27461
27422
  }
27462
27423
 
27463
- const pickerIosCss = () => `:host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:200px;direction:ltr;z-index:0}:host .picker-before,:host .picker-after{position:absolute;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:1;pointer-events:none}:host .picker-before{top:0;height:83px}:host .picker-before{inset-inline-start:0}:host .picker-after{top:116px;height:84px}:host .picker-after{inset-inline-start:0}:host .picker-highlight{border-radius:var(--highlight-border-radius, 8px);left:0;right:0;top:50%;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;position:absolute;width:calc(100% - 16px);height:34px;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:var(--highlight-background);z-index:-1}:host input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}:host ::slotted(ion-picker-column:first-of-type){text-align:start}:host ::slotted(ion-picker-column:last-of-type){text-align:end}:host ::slotted(ion-picker-column:only-child){text-align:center}:host .picker-before{background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), to(rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8)));background:linear-gradient(to bottom, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8) 100%)}:host .picker-after{background:-webkit-gradient(linear, left bottom, left top, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), to(rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8)));background:linear-gradient(to top, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8) 100%)}:host .picker-highlight{background:var(--highlight-background, var(--ion-color-step-150, var(--ion-background-color-step-150, #eeeeef)))}`;
27424
+ const pickerIosCss$1 = () => `:host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:200px;direction:ltr;z-index:0}:host .picker-before,:host .picker-after{position:absolute;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:1;pointer-events:none}:host .picker-before{top:0;height:83px}:host .picker-before{inset-inline-start:0}:host .picker-after{top:116px;height:84px}:host .picker-after{inset-inline-start:0}:host .picker-highlight{border-radius:var(--highlight-border-radius, 8px);left:0;right:0;top:50%;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;position:absolute;width:calc(100% - 16px);height:34px;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:var(--highlight-background);z-index:-1}:host input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}:host ::slotted(ion-picker-column:first-of-type){text-align:start}:host ::slotted(ion-picker-column:last-of-type){text-align:end}:host ::slotted(ion-picker-column:only-child){text-align:center}:host .picker-before{background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), to(rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8)));background:linear-gradient(to bottom, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8) 100%)}:host .picker-after{background:-webkit-gradient(linear, left bottom, left top, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), to(rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8)));background:linear-gradient(to top, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8) 100%)}:host .picker-highlight{background:var(--highlight-background, var(--ion-color-step-150, var(--ion-background-color-step-150, #eeeeef)))}`;
27464
27425
 
27465
- const pickerMdCss = () => `:host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:200px;direction:ltr;z-index:0}:host .picker-before,:host .picker-after{position:absolute;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:1;pointer-events:none}:host .picker-before{top:0;height:83px}:host .picker-before{inset-inline-start:0}:host .picker-after{top:116px;height:84px}:host .picker-after{inset-inline-start:0}:host .picker-highlight{border-radius:var(--highlight-border-radius, 8px);left:0;right:0;top:50%;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;position:absolute;width:calc(100% - 16px);height:34px;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:var(--highlight-background);z-index:-1}:host input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}:host ::slotted(ion-picker-column:first-of-type){text-align:start}:host ::slotted(ion-picker-column:last-of-type){text-align:end}:host ::slotted(ion-picker-column:only-child){text-align:center}:host .picker-before{background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), color-stop(90%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0)));background:linear-gradient(to bottom, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0) 90%)}:host .picker-after{background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), color-stop(90%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0)));background:linear-gradient(to top, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 30%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0) 90%)}`;
27426
+ const pickerMdCss$1 = () => `:host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:200px;direction:ltr;z-index:0}:host .picker-before,:host .picker-after{position:absolute;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:1;pointer-events:none}:host .picker-before{top:0;height:83px}:host .picker-before{inset-inline-start:0}:host .picker-after{top:116px;height:84px}:host .picker-after{inset-inline-start:0}:host .picker-highlight{border-radius:var(--highlight-border-radius, 8px);left:0;right:0;top:50%;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;position:absolute;width:calc(100% - 16px);height:34px;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:var(--highlight-background);z-index:-1}:host input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}:host ::slotted(ion-picker-column:first-of-type){text-align:start}:host ::slotted(ion-picker-column:last-of-type){text-align:end}:host ::slotted(ion-picker-column:only-child){text-align:center}:host .picker-before{background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), color-stop(90%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0)));background:linear-gradient(to bottom, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0) 90%)}:host .picker-after{background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), color-stop(90%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0)));background:linear-gradient(to top, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 30%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0) 90%)}`;
27466
27427
 
27467
27428
  /**
27468
27429
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
27469
27430
  */
27470
- class Picker {
27431
+ let Picker$1 = class Picker {
27471
27432
  constructor(hostRef) {
27472
27433
  registerInstance(this, hostRef);
27473
27434
  this.ionInputModeChange = createEvent(this, "ionInputModeChange", 7);
@@ -27933,8 +27894,8 @@ class Picker {
27933
27894
  }
27934
27895
  get el() { return getElement(this); }
27935
27896
  static get style() { return {
27936
- ios: pickerIosCss(),
27937
- md: pickerMdCss()
27897
+ ios: pickerIosCss$1(),
27898
+ md: pickerMdCss$1()
27938
27899
  }; }
27939
27900
  static get cmpMeta() { return {
27940
27901
  "$flags$": 297,
@@ -27946,7 +27907,322 @@ class Picker {
27946
27907
  "$lazyBundleId$": "-",
27947
27908
  "$attrsToReflect$": []
27948
27909
  }; }
27910
+ };
27911
+
27912
+ /**
27913
+ * iOS Picker Enter Animation
27914
+ */
27915
+ const iosEnterAnimation$2 = (baseEl) => {
27916
+ const baseAnimation = createAnimation();
27917
+ const backdropAnimation = createAnimation();
27918
+ const wrapperAnimation = createAnimation();
27919
+ backdropAnimation
27920
+ .addElement(baseEl.querySelector('ion-backdrop'))
27921
+ .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
27922
+ .beforeStyles({
27923
+ 'pointer-events': 'none',
27924
+ })
27925
+ .afterClearStyles(['pointer-events']);
27926
+ wrapperAnimation
27927
+ .addElement(baseEl.querySelector('.picker-wrapper'))
27928
+ .fromTo('transform', 'translateY(100%)', 'translateY(0%)');
27929
+ return baseAnimation
27930
+ .addElement(baseEl)
27931
+ .easing('cubic-bezier(.36,.66,.04,1)')
27932
+ .duration(400)
27933
+ .addAnimation([backdropAnimation, wrapperAnimation]);
27934
+ };
27935
+
27936
+ /**
27937
+ * iOS Picker Leave Animation
27938
+ */
27939
+ const iosLeaveAnimation$2 = (baseEl) => {
27940
+ const baseAnimation = createAnimation();
27941
+ const backdropAnimation = createAnimation();
27942
+ const wrapperAnimation = createAnimation();
27943
+ backdropAnimation
27944
+ .addElement(baseEl.querySelector('ion-backdrop'))
27945
+ .fromTo('opacity', 'var(--backdrop-opacity)', 0.01);
27946
+ wrapperAnimation
27947
+ .addElement(baseEl.querySelector('.picker-wrapper'))
27948
+ .fromTo('transform', 'translateY(0%)', 'translateY(100%)');
27949
+ return baseAnimation
27950
+ .addElement(baseEl)
27951
+ .easing('cubic-bezier(.36,.66,.04,1)')
27952
+ .duration(400)
27953
+ .addAnimation([backdropAnimation, wrapperAnimation]);
27954
+ };
27955
+
27956
+ const pickerIosCss = () => `.sc-ion-picker-legacy-ios-h{--border-radius:0;--border-style:solid;--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--max-height:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.sc-ion-picker-legacy-ios-h{inset-inline-start:0}.overlay-hidden.sc-ion-picker-legacy-ios-h{display:none}.picker-wrapper.sc-ion-picker-legacy-ios{border-radius:var(--border-radius);left:0;right:0;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;overflow:hidden;z-index:10}.picker-toolbar.sc-ion-picker-legacy-ios{width:100%;background:transparent;contain:strict;z-index:1}.picker-button.sc-ion-picker-legacy-ios{border:0;font-family:inherit}.picker-button.sc-ion-picker-legacy-ios:active,.picker-button.sc-ion-picker-legacy-ios:focus{outline:none}.picker-columns.sc-ion-picker-legacy-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-pack:center;justify-content:center;margin-bottom:var(--ion-safe-area-bottom, 0);contain:strict;overflow:hidden}.picker-above-highlight.sc-ion-picker-legacy-ios,.picker-below-highlight.sc-ion-picker-legacy-ios{display:none;pointer-events:none}.sc-ion-picker-legacy-ios-h{--background:var(--ion-background-color, #fff);--border-width:1px 0 0;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));--height:260px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.26);color:var(--ion-item-color, var(--ion-text-color, #000))}.picker-toolbar.sc-ion-picker-legacy-ios{display:-ms-flexbox;display:flex;height:44px;border-bottom:0.55px solid var(--border-color)}.picker-toolbar-button.sc-ion-picker-legacy-ios{-ms-flex:1;flex:1;text-align:end}.picker-toolbar-button.sc-ion-picker-legacy-ios:last-child .picker-button.sc-ion-picker-legacy-ios{font-weight:600}.picker-toolbar-button.sc-ion-picker-legacy-ios:first-child{font-weight:normal;text-align:start}.picker-button.sc-ion-picker-legacy-ios,.picker-button.ion-activated.sc-ion-picker-legacy-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:1em;padding-inline-start:1em;-webkit-padding-end:1em;padding-inline-end:1em;padding-top:0;padding-bottom:0;height:44px;background:transparent;color:var(--ion-color-primary, #0054e9);font-size:16px}.picker-columns.sc-ion-picker-legacy-ios{height:215px;-webkit-perspective:1000px;perspective:1000px}.picker-above-highlight.sc-ion-picker-legacy-ios{top:0;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);display:block;position:absolute;width:100%;height:81px;border-bottom:1px solid var(--border-color);background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, var(--background, var(--ion-background-color, #fff))), to(rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8)));background:linear-gradient(to bottom, var(--background, var(--ion-background-color, #fff)) 20%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8) 100%);z-index:10}.picker-above-highlight.sc-ion-picker-legacy-ios{inset-inline-start:0}.picker-below-highlight.sc-ion-picker-legacy-ios{top:115px;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);display:block;position:absolute;width:100%;height:119px;border-top:1px solid var(--border-color);background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, var(--background, var(--ion-background-color, #fff))), to(rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8)));background:linear-gradient(to top, var(--background, var(--ion-background-color, #fff)) 30%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8) 100%);z-index:11}.picker-below-highlight.sc-ion-picker-legacy-ios{inset-inline-start:0}`;
27957
+
27958
+ const pickerMdCss = () => `.sc-ion-picker-legacy-md-h{--border-radius:0;--border-style:solid;--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--max-height:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.sc-ion-picker-legacy-md-h{inset-inline-start:0}.overlay-hidden.sc-ion-picker-legacy-md-h{display:none}.picker-wrapper.sc-ion-picker-legacy-md{border-radius:var(--border-radius);left:0;right:0;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;overflow:hidden;z-index:10}.picker-toolbar.sc-ion-picker-legacy-md{width:100%;background:transparent;contain:strict;z-index:1}.picker-button.sc-ion-picker-legacy-md{border:0;font-family:inherit}.picker-button.sc-ion-picker-legacy-md:active,.picker-button.sc-ion-picker-legacy-md:focus{outline:none}.picker-columns.sc-ion-picker-legacy-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-pack:center;justify-content:center;margin-bottom:var(--ion-safe-area-bottom, 0);contain:strict;overflow:hidden}.picker-above-highlight.sc-ion-picker-legacy-md,.picker-below-highlight.sc-ion-picker-legacy-md{display:none;pointer-events:none}.sc-ion-picker-legacy-md-h{--background:var(--ion-background-color, #fff);--border-width:0.55px 0 0;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));--height:260px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.26);color:var(--ion-item-color, var(--ion-text-color, #000))}.picker-toolbar.sc-ion-picker-legacy-md{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;height:44px}.picker-button.sc-ion-picker-legacy-md,.picker-button.ion-activated.sc-ion-picker-legacy-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:1.1em;padding-inline-start:1.1em;-webkit-padding-end:1.1em;padding-inline-end:1.1em;padding-top:0;padding-bottom:0;height:44px;background:transparent;color:var(--ion-color-primary, #0054e9);font-size:14px;font-weight:500;text-transform:uppercase;-webkit-box-shadow:none;box-shadow:none}.picker-columns.sc-ion-picker-legacy-md{height:216px;-webkit-perspective:1800px;perspective:1800px}.picker-above-highlight.sc-ion-picker-legacy-md{top:0;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);position:absolute;width:100%;height:81px;border-bottom:1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, var(--ion-background-color, #fff)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background:linear-gradient(to bottom, var(--ion-background-color, #fff) 20%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%);z-index:10}.picker-above-highlight.sc-ion-picker-legacy-md{inset-inline-start:0}.picker-below-highlight.sc-ion-picker-legacy-md{top:115px;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);position:absolute;width:100%;height:119px;border-top:1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, var(--ion-background-color, #fff)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background:linear-gradient(to top, var(--ion-background-color, #fff) 30%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%);z-index:11}.picker-below-highlight.sc-ion-picker-legacy-md{inset-inline-start:0}`;
27959
+
27960
+ // TODO(FW-2832): types
27961
+ /**
27962
+ * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
27963
+ */
27964
+ class Picker {
27965
+ constructor(hostRef) {
27966
+ registerInstance(this, hostRef);
27967
+ this.didPresent = createEvent(this, "ionPickerDidPresent", 7);
27968
+ this.willPresent = createEvent(this, "ionPickerWillPresent", 7);
27969
+ this.willDismiss = createEvent(this, "ionPickerWillDismiss", 7);
27970
+ this.didDismiss = createEvent(this, "ionPickerDidDismiss", 7);
27971
+ this.didPresentShorthand = createEvent(this, "didPresent", 7);
27972
+ this.willPresentShorthand = createEvent(this, "willPresent", 7);
27973
+ this.willDismissShorthand = createEvent(this, "willDismiss", 7);
27974
+ this.didDismissShorthand = createEvent(this, "didDismiss", 7);
27975
+ this.delegateController = createDelegateController(this);
27976
+ this.lockController = createLockController();
27977
+ this.triggerController = createTriggerController();
27978
+ this.presented = false;
27979
+ /** @internal */
27980
+ this.hasController = false;
27981
+ /**
27982
+ * If `true`, the keyboard will be automatically dismissed when the overlay is presented.
27983
+ */
27984
+ this.keyboardClose = true;
27985
+ /**
27986
+ * Array of buttons to be displayed at the top of the picker.
27987
+ */
27988
+ this.buttons = [];
27989
+ /**
27990
+ * Array of columns to be displayed in the picker.
27991
+ */
27992
+ this.columns = [];
27993
+ /**
27994
+ * Number of milliseconds to wait before dismissing the picker.
27995
+ */
27996
+ this.duration = 0;
27997
+ /**
27998
+ * If `true`, a backdrop will be displayed behind the picker.
27999
+ */
28000
+ this.showBackdrop = true;
28001
+ /**
28002
+ * If `true`, the picker will be dismissed when the backdrop is clicked.
28003
+ */
28004
+ this.backdropDismiss = true;
28005
+ /**
28006
+ * If `true`, the picker will animate.
28007
+ */
28008
+ this.animated = true;
28009
+ /**
28010
+ * If `true`, the picker will open. If `false`, the picker will close.
28011
+ * Use this if you need finer grained control over presentation, otherwise
28012
+ * just use the pickerController or the `trigger` property.
28013
+ * Note: `isOpen` will not automatically be set back to `false` when
28014
+ * the picker dismisses. You will need to do that in your code.
28015
+ */
28016
+ this.isOpen = false;
28017
+ this.onBackdropTap = () => {
28018
+ this.dismiss(undefined, BACKDROP);
28019
+ };
28020
+ this.dispatchCancelHandler = (ev) => {
28021
+ const role = ev.detail.role;
28022
+ if (isCancel(role)) {
28023
+ const cancelButton = this.buttons.find((b) => b.role === 'cancel');
28024
+ this.callButtonHandler(cancelButton);
28025
+ }
28026
+ };
28027
+ }
28028
+ onIsOpenChange(newValue, oldValue) {
28029
+ if (newValue === true && oldValue === false) {
28030
+ this.present();
28031
+ }
28032
+ else if (newValue === false && oldValue === true) {
28033
+ this.dismiss();
28034
+ }
28035
+ }
28036
+ triggerChanged() {
28037
+ const { trigger, el, triggerController } = this;
28038
+ if (trigger) {
28039
+ triggerController.addClickListener(el, trigger);
28040
+ }
28041
+ }
28042
+ connectedCallback() {
28043
+ prepareOverlay(this.el);
28044
+ this.triggerChanged();
28045
+ }
28046
+ disconnectedCallback() {
28047
+ this.triggerController.removeClickListener();
28048
+ }
28049
+ componentWillLoad() {
28050
+ var _a;
28051
+ if (!((_a = this.htmlAttributes) === null || _a === void 0 ? void 0 : _a.id)) {
28052
+ setOverlayId(this.el);
28053
+ }
28054
+ }
28055
+ componentDidLoad() {
28056
+ printIonWarning('[ion-picker-legacy] - ion-picker-legacy and ion-picker-legacy-column have been deprecated in favor of new versions of the ion-picker and ion-picker-column components. These new components display inline with your page content allowing for more presentation flexibility than before.', this.el);
28057
+ /**
28058
+ * If picker was rendered with isOpen="true"
28059
+ * then we should open picker immediately.
28060
+ */
28061
+ if (this.isOpen === true) {
28062
+ raf(() => this.present());
28063
+ }
28064
+ /**
28065
+ * When binding values in frameworks such as Angular
28066
+ * it is possible for the value to be set after the Web Component
28067
+ * initializes but before the value watcher is set up in Stencil.
28068
+ * As a result, the watcher callback may not be fired.
28069
+ * We work around this by manually calling the watcher
28070
+ * callback when the component has loaded and the watcher
28071
+ * is configured.
28072
+ */
28073
+ this.triggerChanged();
28074
+ }
28075
+ /**
28076
+ * Present the picker overlay after it has been created.
28077
+ */
28078
+ async present() {
28079
+ const unlock = await this.lockController.lock();
28080
+ await this.delegateController.attachViewToDom();
28081
+ await present(this, 'pickerEnter', iosEnterAnimation$2, iosEnterAnimation$2, undefined);
28082
+ if (this.duration > 0) {
28083
+ this.durationTimeout = setTimeout(() => this.dismiss(), this.duration);
28084
+ }
28085
+ unlock();
28086
+ }
28087
+ /**
28088
+ * Dismiss the picker overlay after it has been presented.
28089
+ *
28090
+ * @param data Any data to emit in the dismiss events.
28091
+ * @param role The role of the element that is dismissing the picker.
28092
+ * This can be useful in a button handler for determining which button was
28093
+ * clicked to dismiss the picker.
28094
+ * Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
28095
+ */
28096
+ async dismiss(data, role) {
28097
+ const unlock = await this.lockController.lock();
28098
+ if (this.durationTimeout) {
28099
+ clearTimeout(this.durationTimeout);
28100
+ }
28101
+ const dismissed = await dismiss(this, data, role, 'pickerLeave', iosLeaveAnimation$2, iosLeaveAnimation$2);
28102
+ if (dismissed) {
28103
+ this.delegateController.removeViewFromDom();
28104
+ }
28105
+ unlock();
28106
+ return dismissed;
28107
+ }
28108
+ /**
28109
+ * Returns a promise that resolves when the picker did dismiss.
28110
+ */
28111
+ onDidDismiss() {
28112
+ return eventMethod(this.el, 'ionPickerDidDismiss');
28113
+ }
28114
+ /**
28115
+ * Returns a promise that resolves when the picker will dismiss.
28116
+ */
28117
+ onWillDismiss() {
28118
+ return eventMethod(this.el, 'ionPickerWillDismiss');
28119
+ }
28120
+ /**
28121
+ * Get the column that matches the specified name.
28122
+ *
28123
+ * @param name The name of the column.
28124
+ */
28125
+ getColumn(name) {
28126
+ return Promise.resolve(this.columns.find((column) => column.name === name));
28127
+ }
28128
+ async buttonClick(button) {
28129
+ const role = button.role;
28130
+ if (isCancel(role)) {
28131
+ return this.dismiss(undefined, role);
28132
+ }
28133
+ const shouldDismiss = await this.callButtonHandler(button);
28134
+ if (shouldDismiss) {
28135
+ return this.dismiss(this.getSelected(), button.role);
28136
+ }
28137
+ return Promise.resolve();
28138
+ }
28139
+ async callButtonHandler(button) {
28140
+ if (button) {
28141
+ // a handler has been provided, execute it
28142
+ // pass the handler the values from the inputs
28143
+ const rtn = await safeCall(button.handler, this.getSelected());
28144
+ if (rtn === false) {
28145
+ // if the return value of the handler is false then do not dismiss
28146
+ return false;
28147
+ }
28148
+ }
28149
+ return true;
28150
+ }
28151
+ getSelected() {
28152
+ const selected = {};
28153
+ this.columns.forEach((col, index) => {
28154
+ const selectedColumn = col.selectedIndex !== undefined ? col.options[col.selectedIndex] : undefined;
28155
+ selected[col.name] = {
28156
+ text: selectedColumn ? selectedColumn.text : undefined,
28157
+ value: selectedColumn ? selectedColumn.value : undefined,
28158
+ columnIndex: index,
28159
+ };
28160
+ });
28161
+ return selected;
28162
+ }
28163
+ render() {
28164
+ const { htmlAttributes } = this;
28165
+ const mode = getIonMode$1(this);
28166
+ return (hAsync(Host, Object.assign({ key: '80f66d33780d8a1352d24be9cb63a0cc03d01ab5', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
28167
+ zIndex: `${20000 + this.overlayIndex}`,
28168
+ }, class: Object.assign({ [mode]: true,
28169
+ // Used internally for styling
28170
+ [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { key: '97fb8e10ba08b197610cb8c0cdea61103883d55f', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: 'b3969cb6fbf7153623d14e3ca1493d3370efb211', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '299268483c3727e698d9135bfdf40349a7050ac1', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, hAsync("div", { key: '95394de3ef691899b7dbf416f56fd3e86bbdce3f', class: "picker-toolbar" }, this.buttons.map((b) => (hAsync("div", { class: buttonWrapperClass(b) }, hAsync("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass$1(b) }, b.text))))), hAsync("div", { key: '05f18bb8d00dc0e22f691b7e41f90f729a6c66d7', class: "picker-columns" }, hAsync("div", { key: '4a8fdf224effc0af67fd413e2e6aca8a78d1cf43', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => hAsync("ion-picker-legacy-column", { col: c })), hAsync("div", { key: 'e50a31db45e3f39e9d0fed36a21be9257eec09bf', class: "picker-below-highlight" }))), hAsync("div", { key: '5a78cb2176ac807ea0c195c6b76cd0e8eef9d4c0', tabindex: "0", "aria-hidden": "true" })));
28171
+ }
28172
+ get el() { return getElement(this); }
28173
+ static get watchers() { return {
28174
+ "isOpen": [{
28175
+ "onIsOpenChange": 0
28176
+ }],
28177
+ "trigger": [{
28178
+ "triggerChanged": 0
28179
+ }]
28180
+ }; }
28181
+ static get style() { return {
28182
+ ios: pickerIosCss(),
28183
+ md: pickerMdCss()
28184
+ }; }
28185
+ static get cmpMeta() { return {
28186
+ "$flags$": 34,
28187
+ "$tagName$": "ion-picker-legacy",
28188
+ "$members$": {
28189
+ "overlayIndex": [2, "overlay-index"],
28190
+ "delegate": [16],
28191
+ "hasController": [4, "has-controller"],
28192
+ "keyboardClose": [4, "keyboard-close"],
28193
+ "enterAnimation": [16],
28194
+ "leaveAnimation": [16],
28195
+ "buttons": [16],
28196
+ "columns": [16],
28197
+ "cssClass": [1, "css-class"],
28198
+ "duration": [2],
28199
+ "showBackdrop": [4, "show-backdrop"],
28200
+ "backdropDismiss": [4, "backdrop-dismiss"],
28201
+ "animated": [4],
28202
+ "htmlAttributes": [16],
28203
+ "isOpen": [4, "is-open"],
28204
+ "trigger": [1],
28205
+ "presented": [32],
28206
+ "present": [64],
28207
+ "dismiss": [64],
28208
+ "onDidDismiss": [64],
28209
+ "onWillDismiss": [64],
28210
+ "getColumn": [64]
28211
+ },
28212
+ "$listeners$": undefined,
28213
+ "$lazyBundleId$": "-",
28214
+ "$attrsToReflect$": []
28215
+ }; }
27949
28216
  }
28217
+ const buttonWrapperClass = (button) => {
28218
+ return {
28219
+ [`picker-toolbar-${button.role}`]: button.role !== undefined,
28220
+ 'picker-toolbar-button': true,
28221
+ };
28222
+ };
28223
+ const buttonClass$1 = (button) => {
28224
+ return Object.assign({ 'picker-button': true, 'ion-activatable': true }, getClassMap(button.cssClass));
28225
+ };
27950
28226
 
27951
28227
  const pickerColumnCss = () => `:host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;max-width:100%;height:200px;font-size:22px;text-align:center}.assistive-focusable{left:0;right:0;top:0;bottom:0;position:absolute;z-index:1;pointer-events:none}.assistive-focusable:focus{outline:none}.picker-opts{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;min-width:26px;max-height:200px;outline:none;text-align:inherit;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;overflow-x:hidden;overflow-y:scroll;scrollbar-width:none}.picker-item-empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.picker-opts::-webkit-scrollbar{display:none}::slotted(ion-picker-column-option){display:block;scroll-snap-align:center}.picker-item-empty,:host(:not([disabled])) ::slotted(ion-picker-column-option.option-disabled){scroll-snap-align:none}::slotted([slot=prefix]),::slotted([slot=suffix]){max-width:200px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::slotted([slot=prefix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:end;justify-content:end}::slotted([slot=suffix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:start;justify-content:start}:host(.picker-column-disabled) .picker-opts{overflow-y:hidden}:host(.picker-column-disabled) ::slotted(ion-picker-column-option){cursor:default;opacity:0.4;pointer-events:none}@media (any-hover: hover){:host(:focus) .picker-opts{outline:none;background:rgba(var(--ion-color-base-rgb), 0.2)}}`;
27952
28228
 
@@ -28533,6 +28809,371 @@ class PickerColumn {
28533
28809
  }
28534
28810
  const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
28535
28811
 
28812
+ const pickerColumnIosCss = () => `.picker-col{display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-pack:center;justify-content:center;height:100%;-webkit-box-sizing:content-box;box-sizing:content-box;contain:content}.picker-opts{position:relative;-ms-flex:1;flex:1;max-width:100%}.picker-opt{top:0;display:block;position:absolute;width:100%;border:0;text-align:center;text-overflow:ellipsis;white-space:nowrap;contain:strict;overflow:hidden;will-change:transform}.picker-opt{inset-inline-start:0}.picker-opt.picker-opt-disabled{pointer-events:none}.picker-opt-disabled{opacity:0}.picker-opts-left{-ms-flex-pack:start;justify-content:flex-start}.picker-opts-right{-ms-flex-pack:end;justify-content:flex-end}.picker-opt:active,.picker-opt:focus{outline:none}.picker-prefix{position:relative;-ms-flex:1;flex:1;text-align:end;white-space:nowrap}.picker-suffix{position:relative;-ms-flex:1;flex:1;text-align:start;white-space:nowrap}.picker-col{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:0;padding-bottom:0;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.picker-prefix,.picker-suffix,.picker-opts{top:77px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;color:inherit;font-size:20px;line-height:42px;pointer-events:none}.picker-opt{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-transform-origin:center center;transform-origin:center center;height:46px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;background:transparent;color:inherit;font-size:20px;line-height:42px;-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:auto}:host-context([dir=rtl]) .picker-opt{-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}[dir=rtl] .picker-opt{-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}@supports selector(:dir(rtl)){.picker-opt:dir(rtl){-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}}`;
28813
+
28814
+ const pickerColumnMdCss = () => `.picker-col{display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-pack:center;justify-content:center;height:100%;-webkit-box-sizing:content-box;box-sizing:content-box;contain:content}.picker-opts{position:relative;-ms-flex:1;flex:1;max-width:100%}.picker-opt{top:0;display:block;position:absolute;width:100%;border:0;text-align:center;text-overflow:ellipsis;white-space:nowrap;contain:strict;overflow:hidden;will-change:transform}.picker-opt{inset-inline-start:0}.picker-opt.picker-opt-disabled{pointer-events:none}.picker-opt-disabled{opacity:0}.picker-opts-left{-ms-flex-pack:start;justify-content:flex-start}.picker-opts-right{-ms-flex-pack:end;justify-content:flex-end}.picker-opt:active,.picker-opt:focus{outline:none}.picker-prefix{position:relative;-ms-flex:1;flex:1;text-align:end;white-space:nowrap}.picker-suffix{position:relative;-ms-flex:1;flex:1;text-align:start;white-space:nowrap}.picker-col{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.picker-prefix,.picker-suffix,.picker-opts{top:77px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;color:inherit;font-size:22px;line-height:42px;pointer-events:none}.picker-opt{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;height:43px;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;background:transparent;color:inherit;font-size:22px;line-height:42px;-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:auto}.picker-prefix,.picker-suffix,.picker-opt.picker-opt-selected{color:var(--ion-color-primary, #0054e9)}`;
28815
+
28816
+ /**
28817
+ * @internal
28818
+ */
28819
+ class PickerColumnCmp {
28820
+ constructor(hostRef) {
28821
+ registerInstance(this, hostRef);
28822
+ this.ionPickerColChange = createEvent(this, "ionPickerColChange", 7);
28823
+ this.optHeight = 0;
28824
+ this.rotateFactor = 0;
28825
+ this.scaleFactor = 1;
28826
+ this.velocity = 0;
28827
+ this.y = 0;
28828
+ this.noAnimate = true;
28829
+ // `colDidChange` is a flag that gets set when the column is changed
28830
+ // dynamically. When this flag is set, the column will refresh
28831
+ // after the component re-renders to incorporate the new column data.
28832
+ // This is necessary because `this.refresh` queries for the option elements,
28833
+ // so it needs to wait for the latest elements to be available in the DOM.
28834
+ // Ex: column is created with 3 options. User updates the column data
28835
+ // to have 5 options. The column will still think it only has 3 options.
28836
+ this.colDidChange = false;
28837
+ }
28838
+ colChanged() {
28839
+ this.colDidChange = true;
28840
+ }
28841
+ async connectedCallback() {
28842
+ let pickerRotateFactor = 0;
28843
+ let pickerScaleFactor = 0.81;
28844
+ const mode = getIonMode$1(this);
28845
+ if (mode === 'ios') {
28846
+ pickerRotateFactor = -0.46;
28847
+ pickerScaleFactor = 1;
28848
+ }
28849
+ this.rotateFactor = pickerRotateFactor;
28850
+ this.scaleFactor = pickerScaleFactor;
28851
+ this.gesture = (await Promise.resolve().then(function () { return index; })).createGesture({
28852
+ el: this.el,
28853
+ gestureName: 'picker-swipe',
28854
+ gesturePriority: 100,
28855
+ threshold: 0,
28856
+ passive: false,
28857
+ onStart: (ev) => this.onStart(ev),
28858
+ onMove: (ev) => this.onMove(ev),
28859
+ onEnd: (ev) => this.onEnd(ev),
28860
+ });
28861
+ this.gesture.enable();
28862
+ // Options have not been initialized yet
28863
+ // Animation must be disabled through the `noAnimate` flag
28864
+ // Otherwise, the options will render
28865
+ // at the top of the column and transition down
28866
+ this.tmrId = setTimeout(() => {
28867
+ this.noAnimate = false;
28868
+ // After initialization, `refresh()` will be called
28869
+ // At this point, animation will be enabled. The options will
28870
+ // animate as they are being selected.
28871
+ this.refresh(true);
28872
+ }, 250);
28873
+ }
28874
+ componentDidLoad() {
28875
+ this.onDomChange();
28876
+ }
28877
+ componentDidUpdate() {
28878
+ // Options may have changed since last update.
28879
+ if (this.colDidChange) {
28880
+ // Animation must be disabled through the `onDomChange` parameter.
28881
+ // Otherwise, the recently added options will render
28882
+ // at the top of the column and transition down
28883
+ this.onDomChange(true, false);
28884
+ this.colDidChange = false;
28885
+ }
28886
+ }
28887
+ disconnectedCallback() {
28888
+ if (this.rafId !== undefined)
28889
+ cancelAnimationFrame(this.rafId);
28890
+ if (this.tmrId)
28891
+ clearTimeout(this.tmrId);
28892
+ if (this.gesture) {
28893
+ this.gesture.destroy();
28894
+ this.gesture = undefined;
28895
+ }
28896
+ }
28897
+ emitColChange() {
28898
+ this.ionPickerColChange.emit(this.col);
28899
+ }
28900
+ setSelected(selectedIndex, duration) {
28901
+ // if there is a selected index, then figure out it's y position
28902
+ // if there isn't a selected index, then just use the top y position
28903
+ const y = selectedIndex > -1 ? -(selectedIndex * this.optHeight) : 0;
28904
+ this.velocity = 0;
28905
+ // set what y position we're at
28906
+ if (this.rafId !== undefined)
28907
+ cancelAnimationFrame(this.rafId);
28908
+ this.update(y, duration, true);
28909
+ this.emitColChange();
28910
+ }
28911
+ update(y, duration, saveY) {
28912
+ if (!this.optsEl) {
28913
+ return;
28914
+ }
28915
+ // ensure we've got a good round number :)
28916
+ let translateY = 0;
28917
+ let translateZ = 0;
28918
+ const { col, rotateFactor } = this;
28919
+ const prevSelected = col.selectedIndex;
28920
+ const selectedIndex = (col.selectedIndex = this.indexForY(-y));
28921
+ const durationStr = duration === 0 ? '' : duration + 'ms';
28922
+ const scaleStr = `scale(${this.scaleFactor})`;
28923
+ const children = this.optsEl.children;
28924
+ for (let i = 0; i < children.length; i++) {
28925
+ const button = children[i];
28926
+ const opt = col.options[i];
28927
+ const optOffset = i * this.optHeight + y;
28928
+ let transform = '';
28929
+ if (rotateFactor !== 0) {
28930
+ const rotateX = optOffset * rotateFactor;
28931
+ if (Math.abs(rotateX) <= 90) {
28932
+ translateY = 0;
28933
+ translateZ = 90;
28934
+ transform = `rotateX(${rotateX}deg) `;
28935
+ }
28936
+ else {
28937
+ translateY = -9999;
28938
+ }
28939
+ }
28940
+ else {
28941
+ translateZ = 0;
28942
+ translateY = optOffset;
28943
+ }
28944
+ const selected = selectedIndex === i;
28945
+ transform += `translate3d(0px,${translateY}px,${translateZ}px) `;
28946
+ if (this.scaleFactor !== 1 && !selected) {
28947
+ transform += scaleStr;
28948
+ }
28949
+ // Update transition duration
28950
+ if (this.noAnimate) {
28951
+ opt.duration = 0;
28952
+ button.style.transitionDuration = '';
28953
+ }
28954
+ else if (duration !== opt.duration) {
28955
+ opt.duration = duration;
28956
+ button.style.transitionDuration = durationStr;
28957
+ }
28958
+ // Update transform
28959
+ if (transform !== opt.transform) {
28960
+ opt.transform = transform;
28961
+ }
28962
+ button.style.transform = transform;
28963
+ /**
28964
+ * Ensure that the select column
28965
+ * item has the selected class
28966
+ */
28967
+ opt.selected = selected;
28968
+ if (selected) {
28969
+ button.classList.add(PICKER_OPT_SELECTED);
28970
+ }
28971
+ else {
28972
+ button.classList.remove(PICKER_OPT_SELECTED);
28973
+ }
28974
+ }
28975
+ this.col.prevSelected = prevSelected;
28976
+ if (saveY) {
28977
+ this.y = y;
28978
+ }
28979
+ if (this.lastIndex !== selectedIndex) {
28980
+ // have not set a last index yet
28981
+ hapticSelectionChanged();
28982
+ this.lastIndex = selectedIndex;
28983
+ }
28984
+ }
28985
+ decelerate() {
28986
+ if (this.velocity !== 0) {
28987
+ // still decelerating
28988
+ this.velocity *= DECELERATION_FRICTION;
28989
+ // do not let it go slower than a velocity of 1
28990
+ this.velocity = this.velocity > 0 ? Math.max(this.velocity, 1) : Math.min(this.velocity, -1);
28991
+ let y = this.y + this.velocity;
28992
+ if (y > this.minY) {
28993
+ // whoops, it's trying to scroll up farther than the options we have!
28994
+ y = this.minY;
28995
+ this.velocity = 0;
28996
+ }
28997
+ else if (y < this.maxY) {
28998
+ // gahh, it's trying to scroll down farther than we can!
28999
+ y = this.maxY;
29000
+ this.velocity = 0;
29001
+ }
29002
+ this.update(y, 0, true);
29003
+ const notLockedIn = Math.round(y) % this.optHeight !== 0 || Math.abs(this.velocity) > 1;
29004
+ if (notLockedIn) {
29005
+ // isn't locked in yet, keep decelerating until it is
29006
+ this.rafId = requestAnimationFrame(() => this.decelerate());
29007
+ }
29008
+ else {
29009
+ this.velocity = 0;
29010
+ this.emitColChange();
29011
+ hapticSelectionEnd();
29012
+ }
29013
+ }
29014
+ else if (this.y % this.optHeight !== 0) {
29015
+ // needs to still get locked into a position so options line up
29016
+ const currentPos = Math.abs(this.y % this.optHeight);
29017
+ // create a velocity in the direction it needs to scroll
29018
+ this.velocity = currentPos > this.optHeight / 2 ? 1 : -1;
29019
+ this.decelerate();
29020
+ }
29021
+ }
29022
+ indexForY(y) {
29023
+ return Math.min(Math.max(Math.abs(Math.round(y / this.optHeight)), 0), this.col.options.length - 1);
29024
+ }
29025
+ onStart(detail) {
29026
+ // We have to prevent default in order to block scrolling under the picker
29027
+ // but we DO NOT have to stop propagation, since we still want
29028
+ // some "click" events to capture
29029
+ if (detail.event.cancelable) {
29030
+ detail.event.preventDefault();
29031
+ }
29032
+ detail.event.stopPropagation();
29033
+ hapticSelectionStart();
29034
+ // reset everything
29035
+ if (this.rafId !== undefined)
29036
+ cancelAnimationFrame(this.rafId);
29037
+ const options = this.col.options;
29038
+ let minY = options.length - 1;
29039
+ let maxY = 0;
29040
+ for (let i = 0; i < options.length; i++) {
29041
+ if (!options[i].disabled) {
29042
+ minY = Math.min(minY, i);
29043
+ maxY = Math.max(maxY, i);
29044
+ }
29045
+ }
29046
+ this.minY = -(minY * this.optHeight);
29047
+ this.maxY = -(maxY * this.optHeight);
29048
+ }
29049
+ onMove(detail) {
29050
+ if (detail.event.cancelable) {
29051
+ detail.event.preventDefault();
29052
+ }
29053
+ detail.event.stopPropagation();
29054
+ // update the scroll position relative to pointer start position
29055
+ let y = this.y + detail.deltaY;
29056
+ if (y > this.minY) {
29057
+ // scrolling up higher than scroll area
29058
+ y = Math.pow(y, 0.8);
29059
+ this.bounceFrom = y;
29060
+ }
29061
+ else if (y < this.maxY) {
29062
+ // scrolling down below scroll area
29063
+ y += Math.pow(this.maxY - y, 0.9);
29064
+ this.bounceFrom = y;
29065
+ }
29066
+ else {
29067
+ this.bounceFrom = 0;
29068
+ }
29069
+ this.update(y, 0, false);
29070
+ }
29071
+ onEnd(detail) {
29072
+ if (this.bounceFrom > 0) {
29073
+ // bounce back up
29074
+ this.update(this.minY, 100, true);
29075
+ this.emitColChange();
29076
+ return;
29077
+ }
29078
+ else if (this.bounceFrom < 0) {
29079
+ // bounce back down
29080
+ this.update(this.maxY, 100, true);
29081
+ this.emitColChange();
29082
+ return;
29083
+ }
29084
+ this.velocity = clamp(-90, detail.velocityY * 23, MAX_PICKER_SPEED);
29085
+ if (this.velocity === 0 && detail.deltaY === 0) {
29086
+ const opt = detail.event.target.closest('.picker-opt');
29087
+ if (opt === null || opt === void 0 ? void 0 : opt.hasAttribute('opt-index')) {
29088
+ this.setSelected(parseInt(opt.getAttribute('opt-index'), 10), TRANSITION_DURATION);
29089
+ }
29090
+ }
29091
+ else {
29092
+ this.y += detail.deltaY;
29093
+ if (Math.abs(detail.velocityY) < 0.05) {
29094
+ const isScrollingUp = detail.deltaY > 0;
29095
+ const optHeightFraction = (Math.abs(this.y) % this.optHeight) / this.optHeight;
29096
+ if (isScrollingUp && optHeightFraction > 0.5) {
29097
+ this.velocity = Math.abs(this.velocity) * -1;
29098
+ }
29099
+ else if (!isScrollingUp && optHeightFraction <= 0.5) {
29100
+ this.velocity = Math.abs(this.velocity);
29101
+ }
29102
+ }
29103
+ this.decelerate();
29104
+ }
29105
+ }
29106
+ refresh(forceRefresh, animated) {
29107
+ var _a;
29108
+ let min = this.col.options.length - 1;
29109
+ let max = 0;
29110
+ const options = this.col.options;
29111
+ for (let i = 0; i < options.length; i++) {
29112
+ if (!options[i].disabled) {
29113
+ min = Math.min(min, i);
29114
+ max = Math.max(max, i);
29115
+ }
29116
+ }
29117
+ /**
29118
+ * Only update selected value if column has a
29119
+ * velocity of 0. If it does not, then the
29120
+ * column is animating might land on
29121
+ * a value different than the value at
29122
+ * selectedIndex
29123
+ */
29124
+ if (this.velocity !== 0) {
29125
+ return;
29126
+ }
29127
+ const selectedIndex = clamp(min, (_a = this.col.selectedIndex) !== null && _a !== void 0 ? _a : 0, max);
29128
+ if (this.col.prevSelected !== selectedIndex || forceRefresh) {
29129
+ const y = selectedIndex * this.optHeight * -1;
29130
+ const duration = animated ? TRANSITION_DURATION : 0;
29131
+ this.velocity = 0;
29132
+ this.update(y, duration, true);
29133
+ }
29134
+ }
29135
+ onDomChange(forceRefresh, animated) {
29136
+ const colEl = this.optsEl;
29137
+ if (colEl) {
29138
+ // DOM READ
29139
+ // We perfom a DOM read over a rendered item, this needs to happen after the first render or after the column has changed
29140
+ this.optHeight = colEl.firstElementChild ? colEl.firstElementChild.clientHeight : 0;
29141
+ }
29142
+ this.refresh(forceRefresh, animated);
29143
+ }
29144
+ render() {
29145
+ const col = this.col;
29146
+ const mode = getIonMode$1(this);
29147
+ return (hAsync(Host, { key: '86125e95f18837dfd021db01777d72a1562d8ee3', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
29148
+ 'max-width': this.col.columnWidth,
29149
+ } }, col.prefix && (hAsync("div", { key: 'b0f3d39e0bd128781066ffefb7a1e40d12a9e76d', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), hAsync("div", { key: '0b106ac4d56916eaaa7f09d1b68348b3754b7bba', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (hAsync("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (hAsync("div", { key: '00ff2f9dbb4561787e5a5223327c6a2a33f8362e', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
29150
+ }
29151
+ get el() { return getElement(this); }
29152
+ static get watchers() { return {
29153
+ "col": [{
29154
+ "colChanged": 0
29155
+ }]
29156
+ }; }
29157
+ static get style() { return {
29158
+ ios: pickerColumnIosCss(),
29159
+ md: pickerColumnMdCss()
29160
+ }; }
29161
+ static get cmpMeta() { return {
29162
+ "$flags$": 32,
29163
+ "$tagName$": "ion-picker-legacy-column",
29164
+ "$members$": {
29165
+ "col": [16]
29166
+ },
29167
+ "$listeners$": undefined,
29168
+ "$lazyBundleId$": "-",
29169
+ "$attrsToReflect$": []
29170
+ }; }
29171
+ }
29172
+ const PICKER_OPT_SELECTED = 'picker-opt-selected';
29173
+ const DECELERATION_FRICTION = 0.97;
29174
+ const MAX_PICKER_SPEED = 90;
29175
+ const TRANSITION_DURATION = 150;
29176
+
28536
29177
  const pickerColumnOptionIosCss = () => `.picker-column-option-button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) .picker-column-option-button{cursor:default}`;
28537
29178
 
28538
29179
  const pickerColumnOptionMdCss = () => `.picker-column-option-button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) .picker-column-option-button{cursor:default}:host(.option-active){color:var(--ion-color-base)}`;
@@ -29954,10 +30595,6 @@ class Popover {
29954
30595
  this.headerResizeObserver.disconnect();
29955
30596
  this.headerResizeObserver = undefined;
29956
30597
  }
29957
- // Clean up aria-hidden if removed without dismiss() being called
29958
- if (this.presented) {
29959
- cleanupRootFocusTrapAccessibility();
29960
- }
29961
30598
  }
29962
30599
  componentWillLoad() {
29963
30600
  var _a, _b;
@@ -30196,9 +30833,9 @@ class Popover {
30196
30833
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
30197
30834
  const desktop = isPlatform('desktop');
30198
30835
  const enableArrow = arrow && !parentPopover;
30199
- return (hAsync(Host, Object.assign({ key: 'd7f3aa2c2fa93a93585e3eda9e4a6d0daaa541be', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
30836
+ return (hAsync(Host, Object.assign({ key: '2edd8333c630efbce59071f8a383e4326e928dbc', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
30200
30837
  zIndex: `${20000 + this.overlayIndex}`,
30201
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && hAsync("ion-backdrop", { key: 'b87be2ef14219997b9c47dcbaf904eb770d0e057', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: 'e6243572faf1b871ae2b34923410b2a6638469f0', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { key: '3d4938c9d0764a644398e0e7a4361106da1bd926', class: "popover-arrow", part: "arrow" }), hAsync("div", { key: '24ad6d777828aad2881d56595693e6022fc9cb8e', class: "popover-content", part: "content" }, hAsync("slot", { key: '79f83df74a5c5e3dd7650f15c1aa50795b90a345' })))));
30838
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && hAsync("ion-backdrop", { key: 'aac4e68b08197534375e8ea3f8c9ea0c10ab2af4', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: 'b7f4ebf57d4148b32856b0075d286f454be8de5d', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { key: '607d94c28d73e8e957175a7c0f6e8a99ec4dcd53', class: "popover-arrow", part: "arrow" }), hAsync("div", { key: '4366a5a5de550c09895e923f345583508e1ec30c', class: "popover-content", part: "content" }, hAsync("slot", { key: 'eb7886fbc99c15b667b7d825d24f1c12d9380f03' })))));
30202
30839
  }
30203
30840
  get el() { return getElement(this); }
30204
30841
  static get watchers() { return {
@@ -30309,7 +30946,7 @@ class ProgressBar {
30309
30946
  const mode = getIonMode$1(this);
30310
30947
  // If the progress is displayed as a solid bar.
30311
30948
  const progressSolid = buffer === 1;
30312
- return (hAsync(Host, { key: 'd7476268ce53b6a4f425b7bc9f01d6935eb411c3', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
30949
+ return (hAsync(Host, { key: 'c859e48f3d24a458239e36d925e5dc003ed07c6b', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
30313
30950
  [mode]: true,
30314
30951
  [`progress-bar-${type}`]: true,
30315
30952
  'progress-paused': paused,
@@ -30494,7 +31131,7 @@ class Radio {
30494
31131
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
30495
31132
  const mode = getIonMode$1(this);
30496
31133
  const inItem = hostContext('ion-item', el);
30497
- return (hAsync(Host, { key: 'd9425b252ed38086420d91d5c680421d121c99f4', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
31134
+ return (hAsync(Host, { key: 'af5dc59ed528150872e907ed1036e3e2decba939', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
30498
31135
  [mode]: true,
30499
31136
  'in-item': inItem,
30500
31137
  'radio-checked': checked,
@@ -30505,10 +31142,10 @@ class Radio {
30505
31142
  // Focus and active styling should not apply when the radio is in an item
30506
31143
  'ion-activatable': !inItem,
30507
31144
  'ion-focusable': !inItem,
30508
- }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: 'de391fca2aa0b681af5c1d089121596c46e68271', class: "radio-wrapper" }, hAsync("div", { key: '44e4c71645f86a9e73ad58c0e8b41c0558b920f6', class: {
31145
+ }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: '1312aba3259a87fe23a6911cdfa477e309469c8b', class: "radio-wrapper" }, hAsync("div", { key: 'b342aa27e240a300836d2a135658d346b95daf09', class: {
30509
31146
  'label-text-wrapper': true,
30510
31147
  'label-text-wrapper-hidden': !hasLabel,
30511
- }, part: "label" }, hAsync("slot", { key: '589d7c1b45a1918b5811663daa8f30788e7729f8' })), hAsync("div", { key: '0f61a17b195582d6c9a0c597cd40e6629256e479', class: "native-wrapper" }, this.renderRadioControl()))));
31148
+ }, part: "label" }, hAsync("slot", { key: '0a4613d29aa783d1882cf889377f7e4fd4fea51d' })), hAsync("div", { key: '191faea79dc4cd8befc4b873f5bd9f5af8ca2acc', class: "native-wrapper" }, this.renderRadioControl()))));
30512
31149
  }
30513
31150
  get el() { return getElement(this); }
30514
31151
  static get watchers() { return {
@@ -30527,7 +31164,7 @@ class Radio {
30527
31164
  "color": [513],
30528
31165
  "name": [1],
30529
31166
  "disabled": [4],
30530
- "value": [520],
31167
+ "value": [8],
30531
31168
  "labelPlacement": [1, "label-placement"],
30532
31169
  "justify": [1],
30533
31170
  "alignment": [1],
@@ -30538,7 +31175,7 @@ class Radio {
30538
31175
  },
30539
31176
  "$listeners$": undefined,
30540
31177
  "$lazyBundleId$": "-",
30541
- "$attrsToReflect$": [["color", "color"], ["value", "value"]]
31178
+ "$attrsToReflect$": [["color", "color"]]
30542
31179
  }; }
30543
31180
  }
30544
31181
  let radioButtonIds = 0;
@@ -31603,7 +32240,7 @@ class Range {
31603
32240
  const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
31604
32241
  const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
31605
32242
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
31606
- return (hAsync(Host, { key: 'cd26f0187c0d37c7eb9df923f75c8a0f57c19ab6', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
32243
+ return (hAsync(Host, { key: 'f8063d1234fb113fe55a7902845dd4b4da8b1edb', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
31607
32244
  [mode]: true,
31608
32245
  'in-item': inItem,
31609
32246
  'range-disabled': disabled,
@@ -31617,10 +32254,10 @@ class Range {
31617
32254
  'range-item-end-adjustment': needsEndAdjustment,
31618
32255
  'range-value-min': valueAtMin,
31619
32256
  'range-value-max': valueAtMax,
31620
- }) }, hAsync("label", { key: '90224fd24b0e625a17e7972feff73a0ac31e093d', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'e07b9fa10983249c425eec26b741f0f628daf2b2', class: {
32257
+ }) }, hAsync("label", { key: 'beead65ab01e3b18e4be59c0ee8ac6ebf32aad7c', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '03633c689d9d2e4c50a2131bcd560329df49e314', class: {
31621
32258
  'label-text-wrapper': true,
31622
32259
  'label-text-wrapper-hidden': !hasLabel,
31623
- }, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '9e252f1190838fbae46e724bf665f9b1943600a4', class: "native-wrapper" }, hAsync("slot", { key: '950697dd9636da340de659812daa91fff50e5345', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: 'd3fce46b29db275af71e6149e725967839ec12b0', name: "end" })))));
32260
+ }, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: 'c066804263ab6ae7393f8dcc51184b7198844ffa', class: "native-wrapper" }, hAsync("slot", { key: '7e8ea224d72b3e965dd948bee7e45c1a096b6899', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: '21f242f6f60ff3adce6a2d90b2d4dac1ceaf6624', name: "end" })))));
31624
32261
  }
31625
32262
  get el() { return getElement(this); }
31626
32263
  static get watchers() { return {
@@ -32691,7 +33328,7 @@ class Refresher {
32691
33328
  }
32692
33329
  render() {
32693
33330
  const mode = getIonMode$1(this);
32694
- return (hAsync(Host, { key: '1dd475095f76491206644828cf89fc6d2ec276d1', slot: "fixed", class: {
33331
+ return (hAsync(Host, { key: '80fa313b0d77161680836bdd6aa334d02c549b41', slot: "fixed", class: {
32695
33332
  [mode]: true,
32696
33333
  // Used internally for styling
32697
33334
  [`refresher-${mode}`]: true,
@@ -32917,7 +33554,7 @@ class RefresherContent {
32917
33554
  const pullingIcon = this.pullingIcon;
32918
33555
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
32919
33556
  const mode = getIonMode$1(this);
32920
- return (hAsync(Host, { key: 'ec378d6a302be697c12c4f973a57c6ad2ada070f', class: mode }, hAsync("div", { key: '0055f98f8c5a1ed7979dc8146ec1f82a575860c7', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (hAsync("div", { key: '4f88468e26370df6889e72aa54ebb395ebf3757d', class: "refresher-pulling-icon" }, hAsync("div", { key: '05b3f8679576aaa6c2d84d60df6629a392df29e2', class: "spinner-arrow-container" }, hAsync("ion-spinner", { key: '0bf6ceea416ce1140c0f10a5bede063cae7054f4', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (hAsync("div", { key: 'b71ede8455837968218edae28504e5e14bbc1f5c', class: "arrow-container" }, hAsync("ion-icon", { key: '30b808288d23d3eac681b1225cd8392fdacfefe1', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (hAsync("div", { key: 'fee1ae7e57ef8a02f5654808dff9dca3002b6702', class: "refresher-pulling-icon" }, hAsync("ion-icon", { key: '55b34a98028adb497fbc2ac66bdb3d5ae5b1705b', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), hAsync("div", { key: 'ef8f987daa8060cb6f8fd83c0864095042b9eecf', class: "refresher-refreshing" }, this.refreshingSpinner && (hAsync("div", { key: 'cd6fe0e81b34eeae11478fcc8a42044bff6f7a52', class: "refresher-refreshing-icon" }, hAsync("ion-spinner", { key: '9cd778229582b538d54589c4d8e4d470efb64aad', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
33557
+ return (hAsync(Host, { key: '4add42b9fdfded359d1b054d04c2c6ff48e028c8', class: mode }, hAsync("div", { key: '45d4e4e0adfed7f96dd1849767aa2cde947de044', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (hAsync("div", { key: '6bd6c8ef5bf6e10699eec3bd8646431bfe1077a0', class: "refresher-pulling-icon" }, hAsync("div", { key: '852d20414da53352c8e58bc627e0fda38eff97cb', class: "spinner-arrow-container" }, hAsync("ion-spinner", { key: '0dde3578a80cc4b77a07c4d1db1af80c7eb10c27', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (hAsync("div", { key: 'c71dbfcf416a19c30fed38f722ebf0358c2181dd', class: "arrow-container" }, hAsync("ion-icon", { key: 'fa7c2cf624e7a9c41964e66cabc88c594da6d1fd', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (hAsync("div", { key: '3dd68c9968b421c379d1c4349ba619ee0a189c6d', class: "refresher-pulling-icon" }, hAsync("ion-icon", { key: 'f83bceceae4fa8245f91939fb6db589a595e975b', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), hAsync("div", { key: '98e22ceb0f7883e871f815f6199f5cb313e2e086', class: "refresher-refreshing" }, this.refreshingSpinner && (hAsync("div", { key: 'faabe8a9b61c02a00994ef978bb82b9ba4537214', class: "refresher-refreshing-icon" }, hAsync("ion-spinner", { key: '029a0c073ee1a07f01211e12ba2abc985cf21ed7', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
32921
33558
  }
32922
33559
  get el() { return getElement(this); }
32923
33560
  static get cmpMeta() { return {
@@ -32958,7 +33595,7 @@ class Reorder {
32958
33595
  render() {
32959
33596
  const mode = getIonMode$1(this);
32960
33597
  const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
32961
- return (hAsync(Host, { key: '4d35db30b5b3df2020d2212abb3cfac94f9bc2b8', class: mode }, hAsync("slot", { key: '68a565ae4a47f6a9f5d6ba845b596fdfa629ece8' }, hAsync("ion-icon", { key: '168fb0f8eb9c02329274488900fcdb05d44cb895', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
33598
+ return (hAsync(Host, { key: 'b869db61ca6393cf1476f2111a66b387b567c6d1', class: mode }, hAsync("slot", { key: 'a78edd1776835282b8b5c841377018f36c83296c' }, hAsync("ion-icon", { key: '7fb067c47bbb9a7258e5063f028282cc097d0f94', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
32962
33599
  }
32963
33600
  get el() { return getElement(this); }
32964
33601
  static get style() { return {
@@ -33229,7 +33866,7 @@ class ReorderGroup {
33229
33866
  }
33230
33867
  render() {
33231
33868
  const mode = getIonMode$1(this);
33232
- return (hAsync(Host, { key: '3afdc6a6c81bba2f88ea523d4b73c6fccff1b9ec', class: {
33869
+ return (hAsync(Host, { key: '9527bbdedaab63d31f562c874a7332ea60c4b47b', class: {
33233
33870
  [mode]: true,
33234
33871
  'reorder-enabled': !this.disabled,
33235
33872
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -33347,7 +33984,7 @@ class RippleEffect {
33347
33984
  }
33348
33985
  render() {
33349
33986
  const mode = getIonMode$1(this);
33350
- return (hAsync(Host, { key: '5e88b5225414e29883256c86f111ded5bdf2ef91', role: "presentation", class: {
33987
+ return (hAsync(Host, { key: '3b59cbb44741569a7350f9638b4392add673b6f1', role: "presentation", class: {
33351
33988
  [mode]: true,
33352
33989
  unbounded: this.unbounded,
33353
33990
  } }));
@@ -34316,10 +34953,10 @@ class RouterLink {
34316
34953
  rel: this.rel,
34317
34954
  target: this.target,
34318
34955
  };
34319
- return (hAsync(Host, { key: '6d5fdfa0dcf1eb216173bcc53f1f4d625f3ec551', onClick: this.onClick, class: createColorClasses$1(this.color, {
34956
+ return (hAsync(Host, { key: '8372835161d507c7b821b7536c55f912eb6ce704', onClick: this.onClick, class: createColorClasses$1(this.color, {
34320
34957
  [mode]: true,
34321
34958
  'ion-activatable': true,
34322
- }) }, hAsync("a", Object.assign({ key: '85796b7b48581fe9830ba1102dad7d1069de4e17' }, attrs), hAsync("slot", { key: '0f93b0da3ec4ae8f50f624f9e7bed87d13d712d0' }))));
34959
+ }) }, hAsync("a", Object.assign({ key: '315966e14a17760f3f64197e8315200039787897' }, attrs), hAsync("slot", { key: '95fc1697b884225e85e647dddcaa8f4af8b9a979' }))));
34323
34960
  }
34324
34961
  static get style() { return routerLinkCss(); }
34325
34962
  static get cmpMeta() { return {
@@ -34358,11 +34995,10 @@ class RouterOutlet {
34358
34995
  */
34359
34996
  this.animated = true;
34360
34997
  }
34361
- swipeGestureChanged() {
34362
- this.updateGestureEnabled();
34363
- }
34364
34998
  swipeHandlerChanged() {
34365
- this.updateGestureEnabled();
34999
+ if (this.gesture) {
35000
+ this.gesture.enable(this.swipeHandler !== undefined);
35001
+ }
34366
35002
  }
34367
35003
  async connectedCallback() {
34368
35004
  const onStart = () => {
@@ -34402,21 +35038,11 @@ class RouterOutlet {
34402
35038
  this.gestureOrAnimationInProgress = false;
34403
35039
  }
34404
35040
  });
34405
- if (this.swipeGesture === undefined) {
34406
- this.swipeGesture = config.getBoolean('swipeBackEnabled', this.mode === 'ios');
34407
- }
34408
- else {
34409
- this.updateGestureEnabled();
34410
- }
35041
+ this.swipeHandlerChanged();
34411
35042
  }
34412
35043
  componentWillLoad() {
34413
35044
  this.ionNavWillLoad.emit();
34414
35045
  }
34415
- updateGestureEnabled() {
34416
- if (this.gesture) {
34417
- this.gesture.enable(this.swipeHandler !== undefined && this.swipeGesture === true);
34418
- }
34419
- }
34420
35046
  disconnectedCallback() {
34421
35047
  if (this.gesture) {
34422
35048
  this.gesture.destroy();
@@ -34527,13 +35153,10 @@ class RouterOutlet {
34527
35153
  return true;
34528
35154
  }
34529
35155
  render() {
34530
- return hAsync("slot", { key: 'ce09e6fbba7b0a2276cdde5245bb37c9a162c1c7' });
35156
+ return hAsync("slot", { key: '386c41745b61daba161cf75063da97fe29ba36cb' });
34531
35157
  }
34532
35158
  get el() { return getElement(this); }
34533
35159
  static get watchers() { return {
34534
- "swipeGesture": [{
34535
- "swipeGestureChanged": 0
34536
- }],
34537
35160
  "swipeHandler": [{
34538
35161
  "swipeHandlerChanged": 0
34539
35162
  }]
@@ -34547,7 +35170,6 @@ class RouterOutlet {
34547
35170
  "delegate": [16],
34548
35171
  "animated": [4],
34549
35172
  "animation": [16],
34550
- "swipeGesture": [1028, "swipe-gesture"],
34551
35173
  "swipeHandler": [16],
34552
35174
  "commit": [64],
34553
35175
  "setRouteId": [64],
@@ -34566,7 +35188,7 @@ class Row {
34566
35188
  registerInstance(this, hostRef);
34567
35189
  }
34568
35190
  render() {
34569
- return (hAsync(Host, { key: 'a9066661fff12baaf3e80b2e8c08591af72fe5b8', class: getIonMode$1(this) }, hAsync("slot", { key: '62b103af46d3a5ec9c146019ae300b68a4ae867a' })));
35191
+ return (hAsync(Host, { key: '8ba906a8cbea060a79ed658c9bf34906f0c11d38', class: getIonMode$1(this) }, hAsync("slot", { key: 'd1009176f45b588fa52c7d9eb336f3c6d3214bb8' })));
34570
35192
  }
34571
35193
  static get style() { return rowCss(); }
34572
35194
  static get cmpMeta() { return {
@@ -35018,8 +35640,8 @@ class Searchbar {
35018
35640
  const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
35019
35641
  const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
35020
35642
  const shouldShowCancelButton = this.shouldShowCancelButton();
35021
- const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '7b4d126a3a3b44dc8695695afb058ccae482d4b1', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, hAsync("div", { key: '8a23082889ecef13bb5997d914d7dcdf3dc5a480', "aria-hidden": "true" }, mode === 'md' ? (hAsync("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
35022
- return (hAsync(Host, { key: 'ce0a2cebb0c2af3b351cb2d4699e3e4dbb8c3ee2', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
35643
+ const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '9e9f3a7f6ee66140181f8c3cfa42bbeee75adafc', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, hAsync("div", { key: '5f83fbcc0708830637815e8c0b69356cad381870', "aria-hidden": "true" }, mode === 'md' ? (hAsync("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
35644
+ return (hAsync(Host, { key: '219c263c1f3cc63e18bc2d2ba5d672b7806eddd0', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
35023
35645
  [mode]: true,
35024
35646
  'searchbar-animated': animated,
35025
35647
  'searchbar-disabled': this.disabled,
@@ -35029,14 +35651,14 @@ class Searchbar {
35029
35651
  'searchbar-has-focus': this.focused,
35030
35652
  'searchbar-should-show-clear': this.shouldShowClearButton(),
35031
35653
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
35032
- }) }, hAsync("div", { key: 'c4d734548345de9cb052269b19359720f50ed7e5', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: '849faa302b37b73345847ea7db401d3cc2a00404', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, hAsync("ion-icon", { key: '1d24d7901b61bb982eb9e2af396f53ac20f41a92', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: 'd5af1c9c54785f99f5dd3193e30684896783cde8', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
35654
+ }) }, hAsync("div", { key: '3f1c25442d6d87c0df67f79482a925b80dcc403d', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: 'a386fecafda0fab449ea1488906ba6cfc55e2b5c', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, hAsync("ion-icon", { key: '5f81642628335def39a14f0726e0fafdc7203776', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: 'da3073646f2d7f639261b556517fbadabc3c10e9', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
35033
35655
  /**
35034
35656
  * This prevents mobile browsers from
35035
35657
  * blurring the input when the clear
35036
35658
  * button is activated.
35037
35659
  */
35038
35660
  ev.preventDefault();
35039
- }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: 'cc9c8781b22faf80a95550f99670626d2626b7f9', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
35661
+ }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '065cd6c707ae462c0767df1bab04ce8045f340a4', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
35040
35662
  }
35041
35663
  get el() { return getElement(this); }
35042
35664
  static get watchers() { return {
@@ -35641,14 +36263,14 @@ class Segment {
35641
36263
  }
35642
36264
  render() {
35643
36265
  const mode = getIonMode$1(this);
35644
- return (hAsync(Host, { key: '3fd965c1483046cba38420dc6787f5b9cadec5ca', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
36266
+ return (hAsync(Host, { key: '725cc37b25c539fa5e3ae8d90530ae33ededc3de', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
35645
36267
  [mode]: true,
35646
36268
  'in-toolbar': hostContext('ion-toolbar', this.el),
35647
36269
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
35648
36270
  'segment-activated': this.activated,
35649
36271
  'segment-disabled': this.disabled,
35650
36272
  'segment-scrollable': this.scrollable,
35651
- }) }, hAsync("slot", { key: '56b2961719d8a8afba0f21b47d0785a7f896b34b', onSlotchange: this.onSlottedItemsChange })));
36273
+ }) }, hAsync("slot", { key: 'c51cf7ea50325866a9367d214e12bc3754870335', onSlotchange: this.onSlottedItemsChange })));
35652
36274
  }
35653
36275
  get el() { return getElement(this); }
35654
36276
  static get watchers() { return {
@@ -35796,7 +36418,7 @@ class SegmentButton {
35796
36418
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
35797
36419
  const mode = getIonMode$1(this);
35798
36420
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
35799
- return (hAsync(Host, { key: '792f621c36260b1fceff2b4ec4fa95d98d51d46b', class: {
36421
+ return (hAsync(Host, { key: 'f69e2a24198a7c57543dbe66902da039a6569c64', class: {
35800
36422
  [mode]: true,
35801
36423
  'in-toolbar': hostContext('ion-toolbar', this.el),
35802
36424
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -35812,7 +36434,7 @@ class SegmentButton {
35812
36434
  'ion-activatable': true,
35813
36435
  'ion-activatable-instant': true,
35814
36436
  'ion-focusable': true,
35815
- } }, hAsync("button", Object.assign({ key: '860698be6ceb8f08c0ce3d16ba82d4bb56adf030', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), hAsync("span", { key: 'e903a2642ff46797878a941887b5c596d52fd3a3', class: "button-inner" }, hAsync("slot", { key: '5fc6b842ecb7f0ab8df23b344bf6714f38dda89a' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '710aaf6e4fa2b6cb15897a883e88dec17ef3829f' })), hAsync("div", { key: 'a7b036cba32420e9eb3f2d16487df0519ecc5289', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, hAsync("div", { key: 'a0a5f49ea7f2ecab8014f4f9ca473a27db8348b6', part: "indicator-background", class: "segment-button-indicator-background" }))));
36437
+ } }, hAsync("button", Object.assign({ key: '0a6fea3a374074af19f7ece0ba3a7cf1e269ab6d', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), hAsync("span", { key: '991018a38c59a6f3d76b2e952e5569c874d2c13e', class: "button-inner" }, hAsync("slot", { key: '23c547c80108025027b913c7fcbec189286627a3' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '7faa9d06ab6aa7346d16b0b6808979759a79650c' })), hAsync("div", { key: '0d61badf2c227dc38e20185b2b2bb590a5efa434', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, hAsync("div", { key: 'a84035752b78491c344179d1e61d109fb4bd1cf1', part: "indicator-background", class: "segment-button-indicator-background" }))));
35816
36438
  }
35817
36439
  get el() { return getElement(this); }
35818
36440
  static get watchers() { return {
@@ -35849,7 +36471,7 @@ class SegmentContent {
35849
36471
  registerInstance(this, hostRef);
35850
36472
  }
35851
36473
  render() {
35852
- return (hAsync(Host, { key: 'ef39f29c444177c3b083cd35680ba891e4bb6a2a' }, hAsync("slot", { key: '51f9dd9ca084ddd928b376aa9d716509669c32b2' })));
36474
+ return (hAsync(Host, { key: '665f41a854621f898eaf7ba9a49e77cc9326501e' }, hAsync("slot", { key: '635aa57fbf6167dcd36fe8dc5dfc1c313637ac04' })));
35853
36475
  }
35854
36476
  static get style() { return segmentContentCss(); }
35855
36477
  static get cmpMeta() { return {
@@ -35968,11 +36590,11 @@ class SegmentView {
35968
36590
  }
35969
36591
  render() {
35970
36592
  const { disabled, isManualScroll, swipeGesture } = this;
35971
- return (hAsync(Host, { key: 'a6c6ac0232c4bb6f2a954b3de7993019d71f423a', class: {
36593
+ return (hAsync(Host, { key: '2a6e0a1046af75b1fa0eed20a5fbbb4634480297', class: {
35972
36594
  'segment-view-disabled': disabled,
35973
36595
  'segment-view-scroll-disabled': isManualScroll === false,
35974
36596
  'segment-view-swipe-disabled': swipeGesture === false,
35975
- } }, hAsync("slot", { key: '386305be2a75069c79def12005d9f6b49276763f' })));
36597
+ } }, hAsync("slot", { key: '644b60d179d0de3fa204e3bef26a3503ceeaf1d6' })));
35976
36598
  }
35977
36599
  get el() { return getElement(this); }
35978
36600
  static get style() { return {
@@ -36744,7 +37366,7 @@ class Select {
36744
37366
  * TODO(FW-5592): Remove hasStartEndSlots condition
36745
37367
  */
36746
37368
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
36747
- return (hAsync(Host, { key: 'ee7f8da9cbd2922f23e7b7984c418f79e6d491d6', onClick: this.onClick, class: createColorClasses$1(this.color, {
37369
+ return (hAsync(Host, { key: '5f4ee901b65554eacc9fa52230d06b1a5ff1247c', onClick: this.onClick, class: createColorClasses$1(this.color, {
36748
37370
  [mode]: true,
36749
37371
  'in-item': inItem,
36750
37372
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -36762,7 +37384,7 @@ class Select {
36762
37384
  [`select-justify-${justify}`]: justifyEnabled,
36763
37385
  [`select-shape-${shape}`]: shape !== undefined,
36764
37386
  [`select-label-placement-${labelPlacement}`]: true,
36765
- }) }, hAsync("label", { key: '1841d570664579a8adbb1426474d906c9583c866', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: '658a9003d9f142b53b5834cb058b250d96e633d7', class: "select-wrapper-inner", part: "inner" }, hAsync("slot", { key: '86a83eac51070ae2ba7291d7be346807ff5dc93f', name: "start" }), hAsync("div", { key: '5bb6f5f5df8c75ef84056f929298f215eeaefb19', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '4691dc89bdb257c36418619fa6d107d55012a492', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: '991af5d72a83721d48ce51dfb84c62b00a8250fc', class: "select-highlight" })), this.renderBottomContent()));
37387
+ }) }, hAsync("label", { key: 'd56d89b5b58da2b5eaebada9d1be58ca45c67806', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: 'bc8bf089c693781ad5b3a5db76a12223867d748e', class: "select-wrapper-inner", part: "inner" }, hAsync("slot", { key: 'e1c12b96f1573eb192608c458ed1f3463174cd89', name: "start" }), hAsync("div", { key: '6ee5e3900d8e462f175649b502ac6faa2f2b9909', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: 'faeaea34aad412e1458beab95d4b1b9ca7b87c41', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: 'aeff51e51c990844869eff9940575ce6b2223135', class: "select-highlight" })), this.renderBottomContent()));
36766
37388
  }
36767
37389
  get el() { return getElement(this); }
36768
37390
  static get watchers() { return {
@@ -36946,7 +37568,7 @@ class SelectModal {
36946
37568
  } }, option.text))));
36947
37569
  }
36948
37570
  render() {
36949
- return (hAsync(Host, { key: '36fe925fe98356858630325abc9ab71ef25dfb46', class: getIonMode$1(this) }, hAsync("ion-header", { key: '16d89db1284d7080b4ead5f4a4a0bac57f264f62' }, hAsync("ion-toolbar", { key: 'e16c889d9c7b5edf3b26a7cca1443ec5520e69e0' }, this.header !== undefined && hAsync("ion-title", { key: '269df2e45a3abf3fe7518e8a34b0bab749bdea14' }, this.header), hAsync("ion-buttons", { key: 'd8e218821e085424e52f86ef6ede2c5fb568dc82', slot: "end" }, hAsync("ion-button", { key: '26c99660d4f5ec6334da56ad5712bfc79f80d0e2', onClick: () => this.closeModal() }, this.cancelText)))), hAsync("ion-content", { key: '455fb684edae7d6754ef4882c1221956f7b4d29b' }, hAsync("ion-list", { key: '3817a9deb1881a8c0d165b21940890bd628b3614' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
37571
+ return (hAsync(Host, { key: 'fda0bf6f93cd5ec9f3c64f88a52de849e0e140a2', class: getIonMode$1(this) }, hAsync("ion-header", { key: '27c0b17175a53db9ff159feeeb96451a3f011dab' }, hAsync("ion-toolbar", { key: '91a4155ebc317fbc9f1bb3e26a7e94754b953c9b' }, this.header !== undefined && hAsync("ion-title", { key: 'f6dae8e4e381f322cc90efefd9bb6ef81d4d2f3e' }, this.header), hAsync("ion-buttons", { key: 'e7760532fb2e7e7385ed6e62097d92d96ff20148', slot: "end" }, hAsync("ion-button", { key: '4999b6fc46cba138186546dca67b7950855e6fb7', onClick: () => this.closeModal() }, this.cancelText)))), hAsync("ion-content", { key: 'c73f80a4bc25b9061ea65cf11e5d811c1a4d8704' }, hAsync("ion-list", { key: 'b21905d15b36ad5eb45845e768918d2763cf48b1' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
36950
37572
  }
36951
37573
  get el() { return getElement(this); }
36952
37574
  static get style() { return {
@@ -36981,7 +37603,7 @@ class SelectOption {
36981
37603
  this.disabled = false;
36982
37604
  }
36983
37605
  render() {
36984
- return hAsync(Host, { key: '1fc1737fbb29dcb62638149b21620cbdf2f00dbc', role: "option", id: this.inputId, class: getIonMode$1(this) });
37606
+ return hAsync(Host, { key: '824730b6c1e4f15b716e91b05840e890af5f1577', role: "option", id: this.inputId, class: getIonMode$1(this) });
36985
37607
  }
36986
37608
  get el() { return getElement(this); }
36987
37609
  static get style() { return selectOptionCss(); }
@@ -37109,7 +37731,7 @@ class SelectPopover {
37109
37731
  render() {
37110
37732
  const { header, message, options, subHeader } = this;
37111
37733
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
37112
- return (hAsync(Host, { key: '81783ad099ad52b3e035efa18e5a23be766faf7b', class: getIonMode$1(this) }, hAsync("ion-list", { key: '319171787e9c2228d1d5a0133b2f5e0998644516' }, header !== undefined && hAsync("ion-list-header", { key: '09a0fdbe2807c270b9abdb908965f72c4838030c' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: 'ede19cb8e121fd14a2335fcb81cc59b9a102eac5' }, hAsync("ion-label", { key: '6b98c0f132bc6161299b22c0e56092f85b7b0095', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: '8053e175eb36d7b8f52df1f93cee48ee0794857e' }, subHeader), message !== undefined && hAsync("p", { key: '508673abcda7444ed8f8c828b5418dd48ef86b8e' }, message)))), this.renderOptions(options))));
37734
+ return (hAsync(Host, { key: 'e7449a1ecfcdbf45a79f8e26a00253c4e146448a', class: getIonMode$1(this) }, hAsync("ion-list", { key: '52abdfc8668c3429a0dcefef8ddedb6647fdd894' }, header !== undefined && hAsync("ion-list-header", { key: '978e5c03728756feafcc60a0e10e6ec59bf2ae11' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: 'e93c44e7f07a76def16e4b11f0fb4780d84ed402' }, hAsync("ion-label", { key: 'bba1aac43b0bc7f4f00978dd8301985233f3725c', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: 'ad96f6017cf2cc5219540bded2c4f1ca3b532de2' }, subHeader), message !== undefined && hAsync("p", { key: '3fd038921dc40c4d0c29734433984b279ccaeec3' }, message)))), this.renderOptions(options))));
37113
37735
  }
37114
37736
  get el() { return getElement(this); }
37115
37737
  static get style() { return {
@@ -37159,11 +37781,11 @@ class SkeletonText {
37159
37781
  const animated = this.animated && config.getBoolean('animated', true);
37160
37782
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
37161
37783
  const mode = getIonMode$1(this);
37162
- return (hAsync(Host, { key: '887d958d982345ce610730ab5c9ae35010430f75', class: {
37784
+ return (hAsync(Host, { key: 'cb8da9aba121811b9a4ffdae60ed88105897cb3c', class: {
37163
37785
  [mode]: true,
37164
37786
  'skeleton-text-animated': animated,
37165
37787
  'in-media': inMedia,
37166
- } }, hAsync("span", { key: 'a184f4b9780a2aada0a16729109ac81436e9c9e1' }, "\u00A0")));
37788
+ } }, hAsync("span", { key: '5379deee3c76d46d615be0cba14b4f60129ffa25' }, "\u00A0")));
37167
37789
  }
37168
37790
  get el() { return getElement(this); }
37169
37791
  static get style() { return skeletonTextCss(); }
@@ -37215,7 +37837,7 @@ class Spinner {
37215
37837
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
37216
37838
  }
37217
37839
  }
37218
- return (hAsync(Host, { key: 'c35ebd01186e860acb9cac260193f0836424fdf4', class: createColorClasses$1(self.color, {
37840
+ return (hAsync(Host, { key: 'dd1954e557fa14b943e761474e29e4316ba53938', class: createColorClasses$1(self.color, {
37219
37841
  [mode]: true,
37220
37842
  [`spinner-${spinnerName}`]: true,
37221
37843
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -37314,12 +37936,12 @@ class SplitPane {
37314
37936
  }
37315
37937
  render() {
37316
37938
  const mode = getIonMode$1(this);
37317
- return (hAsync(Host, { key: '694e989fafcfe2453e0a83b3cb736efaa1eb4fec', class: {
37939
+ return (hAsync(Host, { key: '05c88c009fbe2e223fd261760a2b49da1653ff62', class: {
37318
37940
  [mode]: true,
37319
37941
  // Used internally for styling
37320
37942
  [`split-pane-${mode}`]: true,
37321
37943
  'split-pane-visible': this.visible,
37322
- } }, hAsync("slot", { key: 'dde7e9382b62cc11971aa233cf98c2314ae4f720' })));
37944
+ } }, hAsync("slot", { key: 'b35865082661253c4468520d79234fa5dab5bd35' })));
37323
37945
  }
37324
37946
  get el() { return getElement(this); }
37325
37947
  static get watchers() { return {
@@ -37391,10 +38013,10 @@ class Tab {
37391
38013
  }
37392
38014
  render() {
37393
38015
  const { tab, active, component } = this;
37394
- return (hAsync(Host, { key: '745262368a7f45244da459f4fa1730a46dd3e257', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
38016
+ return (hAsync(Host, { key: 'fbd837bad7a0632336d46a597ace23673b153e48', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
37395
38017
  'ion-page': component === undefined,
37396
38018
  'tab-hidden': !active,
37397
- } }, hAsync("slot", { key: '823d09a6f93bf7c0dc74f2b8717d1d3a62df1ad8' })));
38019
+ } }, hAsync("slot", { key: '35c218169fda826c9c1337558e0278d0c7f5f26a' })));
37398
38020
  }
37399
38021
  get el() { return getElement(this); }
37400
38022
  static get watchers() { return {
@@ -37508,11 +38130,11 @@ class TabBar {
37508
38130
  const { color, translucent, keyboardVisible } = this;
37509
38131
  const mode = getIonMode$1(this);
37510
38132
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
37511
- return (hAsync(Host, { key: '148f65df0818e9d220a9b46db74cb89ab94e62d2', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
38133
+ return (hAsync(Host, { key: '24e164eaf81a0bec9237b561465618f10990806c', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
37512
38134
  [mode]: true,
37513
38135
  'tab-bar-translucent': translucent,
37514
38136
  'tab-bar-hidden': shouldHide,
37515
- }) }, hAsync("slot", { key: 'a64e235f3703662e2dd7a834f752cc5b1490adbc' })));
38137
+ }) }, hAsync("slot", { key: '0ca29a2d97a7c38bbf43f8d79e271b874b4d9be8' })));
37516
38138
  }
37517
38139
  get el() { return getElement(this); }
37518
38140
  static get watchers() { return {
@@ -37610,7 +38232,7 @@ class TabButton {
37610
38232
  rel,
37611
38233
  target,
37612
38234
  };
37613
- return (hAsync(Host, { key: '1034b5a928ecec49bd8efec3730ea1b11a579cf3', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
38235
+ return (hAsync(Host, { key: '638b93ef40701ec3aefb89b1579eb91aaf6d4f8a', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
37614
38236
  [mode]: true,
37615
38237
  'tab-selected': selected,
37616
38238
  'tab-disabled': disabled,
@@ -37622,7 +38244,7 @@ class TabButton {
37622
38244
  'ion-activatable': true,
37623
38245
  'ion-selectable': true,
37624
38246
  'ion-focusable': true,
37625
- } }, hAsync("a", Object.assign({ key: '4cc8e695425956ffc7622af27c1b88a45f8a0c68' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), hAsync("span", { key: 'c529c166f557e1a5c744873c075b564c49786a2c', class: "button-inner" }, hAsync("slot", { key: 'f832355934d80267cd6e81e58b9c5afce0b42907' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '90e79bdf38ba1cd89fca9ce63465e26a29b49316', type: "unbounded" }))));
38247
+ } }, hAsync("a", Object.assign({ key: 'c053d32fbcdad8d5e4a409956b47164d7a080c6b' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), hAsync("span", { key: 'b3b460d33ec978a46b069442280d31b23bc8e794', class: "button-inner" }, hAsync("slot", { key: '87b3928475c941263261101b8fae27c6370d4671' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '6532e5b4546aebe4becaebe1c93ce0e6aedaffe7', type: "unbounded" }))));
37626
38248
  }
37627
38249
  get el() { return getElement(this); }
37628
38250
  static get style() { return {
@@ -37813,7 +38435,7 @@ class Tabs {
37813
38435
  return Array.from(this.el.querySelectorAll('ion-tab'));
37814
38436
  }
37815
38437
  render() {
37816
- return (hAsync(Host, { key: 'ba04a29fdd02d7c758cbaa98cfc589949872d832', onIonTabButtonClick: this.onTabClicked }, hAsync("slot", { key: 'd5794140152e2c251e567eeb06afc392af74749d', name: "top" }), hAsync("div", { key: '26fb83786637fe7288901fbbdb3694b8bc94329f', class: "tabs-inner" }, hAsync("slot", { key: '60c663a8647e684455b533eaf5fa3908f9333ae9' })), hAsync("slot", { key: '2d9f7d07c8cdc72f5df200fa71fa56a9dd822c4c', name: "bottom" })));
38438
+ return (hAsync(Host, { key: 'c7131135b31aa312dc0207602561e1c0f4ac3e53', onIonTabButtonClick: this.onTabClicked }, hAsync("slot", { key: '6c46e91c0389bbcea1f15f35cf3ea513a74ac545', name: "top" }), hAsync("div", { key: '4f1b649d8bb60b61402b97359de204979c5eda52', class: "tabs-inner" }, hAsync("slot", { key: '8d1ef4952be4fb33567376e1083ea4da697fcae0' })), hAsync("slot", { key: '260b8da8031494e9cb4635b3d22c49a433042db1', name: "bottom" })));
37817
38439
  }
37818
38440
  get el() { return getElement(this); }
37819
38441
  static get style() { return tabsCss(); }
@@ -37853,9 +38475,9 @@ class Text {
37853
38475
  }
37854
38476
  render() {
37855
38477
  const mode = getIonMode$1(this);
37856
- return (hAsync(Host, { key: '41ed8da617ed0e07bbfe96e32a000e1c6503e24e', class: createColorClasses$1(this.color, {
38478
+ return (hAsync(Host, { key: 'bfaa49d35f43b8036725ae8a322c716fc6e43bdf', class: createColorClasses$1(this.color, {
37857
38479
  [mode]: true,
37858
- }) }, hAsync("slot", { key: 'db8de04a2493537b3037f276b03abd92dfa56847' })));
38480
+ }) }, hAsync("slot", { key: 'c04880cd1935b42cbe60f58fd523b4d8a96072dc' })));
37859
38481
  }
37860
38482
  static get style() { return textCss(); }
37861
38483
  static get cmpMeta() { return {
@@ -38316,7 +38938,7 @@ class Textarea {
38316
38938
  * TODO(FW-5592): Remove hasStartEndSlots condition
38317
38939
  */
38318
38940
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
38319
- return (hAsync(Host, { key: 'eca1dfed53189408f614661ef3902cdb73d5f5de', class: createColorClasses$1(this.color, {
38941
+ return (hAsync(Host, { key: '4257e84acd46f43390fa2413d0b8f40e16a37499', class: createColorClasses$1(this.color, {
38320
38942
  [mode]: true,
38321
38943
  'has-value': hasValue,
38322
38944
  'has-focus': hasFocus,
@@ -38325,7 +38947,7 @@ class Textarea {
38325
38947
  [`textarea-shape-${shape}`]: shape !== undefined,
38326
38948
  [`textarea-label-placement-${labelPlacement}`]: true,
38327
38949
  'textarea-disabled': disabled,
38328
- }) }, hAsync("label", { key: 'd4d835ffedbf8b6de192096e21167ec4f7e01d30', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '39b03e26c23473de31a0237543eaf1e0875e6ed9', class: "textarea-wrapper-inner" }, hAsync("div", { key: 'e9e0997e7dc6d25f09e8439d81e138590c33a151', class: "start-slot-wrapper" }, hAsync("slot", { key: '2d88aace11d74196758e40af27a777eebb270019', name: "start" })), hAsync("div", { key: '8434424404f9fe707f9209ac6495a33bae060538', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, hAsync("textarea", Object.assign({ key: '5bb8eaeba76c39bccadb7c041a10fb077c422dcc', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined }, this.inheritedAttributes), value)), hAsync("div", { key: '107707676552f8faca3e708285cc3266061a0394', class: "end-slot-wrapper" }, hAsync("slot", { key: 'dc890ffdce898f3d39a315e7bc432840559be466', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: '4554ad09ac0908cea2e90bfa2301b4cd80ac7242', class: "textarea-highlight" })), this.renderBottomContent()));
38950
+ }) }, hAsync("label", { key: '003da35bad92ab36777b7ae40855541bf900c64a', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '3cae2d19f96ba2b18a2d64298fdcc4b64ad34ac7', class: "textarea-wrapper-inner" }, hAsync("div", { key: 'e26cb06763d551f7f83b6ea80349871aab18a016', class: "start-slot-wrapper" }, hAsync("slot", { key: '135ba6db893eaca5f2a785fe61e24f33f56f3765', name: "start" })), hAsync("div", { key: '951eabdd01c5e370790cec8578268361dcc8abdc', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, hAsync("textarea", Object.assign({ key: '13d78f1a934b9f8d85cd9ed386dabc786f953f1d', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined }, this.inheritedAttributes), value)), hAsync("div", { key: '699038558019470bccb4853fa65e7aeb069e0baa', class: "end-slot-wrapper" }, hAsync("slot", { key: '19d8c212d7c718aeb6924e10bf8e48cad01314ea', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: '910a9437437ce7cab21e37a1cb4a6b309afda58f', class: "textarea-highlight" })), this.renderBottomContent()));
38329
38951
  }
38330
38952
  get el() { return getElement(this); }
38331
38953
  static get watchers() { return {
@@ -38394,7 +39016,7 @@ class Thumbnail {
38394
39016
  registerInstance(this, hostRef);
38395
39017
  }
38396
39018
  render() {
38397
- return (hAsync(Host, { key: '833e947c683b482a78f8f0df8c9a68e99478bbaa', class: getIonMode$1(this) }, hAsync("slot", { key: '6d1e9e686db88d91379f14121058dbf035d8ded2' })));
39019
+ return (hAsync(Host, { key: 'b250e01664238f1dca8f9757b15bc3d5d9387ffa', class: getIonMode$1(this) }, hAsync("slot", { key: '72cb568bccabc983c5186a7596ef6c6d4ebf5ad9' })));
38398
39020
  }
38399
39021
  static get style() { return thumbnailCss(); }
38400
39022
  static get cmpMeta() { return {
@@ -39254,9 +39876,9 @@ class Toast {
39254
39876
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
39255
39877
  printIonWarning('[ion-toast] - This toast is using start and end buttons with the stacked toast layout. We recommend following the best practice of using either start or end buttons with the stacked toast layout.', el);
39256
39878
  }
39257
- return (hAsync(Host, Object.assign({ key: '2acb2cd2e12ea0082986495929e4a596d4da2f38', tabindex: "-1" }, this.htmlAttributes, { style: {
39879
+ return (hAsync(Host, Object.assign({ key: 'b5256edcf33d0ef51e6c5080c84e1ca58abe2ae0', tabindex: "-1" }, this.htmlAttributes, { style: {
39258
39880
  zIndex: `${60000 + this.overlayIndex}`,
39259
- }, class: createColorClasses$1(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), hAsync("div", { key: '8b24ba5d3d51d1ab94b9bf6bb5d6e4b8bb3248a7', class: wrapperClass, part: "wrapper" }, hAsync("div", { key: 'e1ebdf4f0425cc7b1e2688667ee9a2b3c545804a', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (hAsync("ion-icon", { key: '552b1ab8f4e72882cc8e878579c7a594119677e1', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), hAsync("div", { key: '8ac8d64f632fbedadb180132c83043474466bee0', class: "toast-content", part: "content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
39881
+ }, class: createColorClasses$1(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), hAsync("div", { key: '0860f7e895d8bc66e44c4d924ca569f4cbb1a749', class: wrapperClass, part: "wrapper" }, hAsync("div", { key: '28784199c880a3f664677c8f5560b7caa8903251', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (hAsync("ion-icon", { key: '0a63ba1336ad43d2aec14e49055eb46c112359c2', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), hAsync("div", { key: 'ecec8107af582dc55d4b3828dd7f3054a29f26b1', class: "toast-content", part: "content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
39260
39882
  }
39261
39883
  get el() { return getElement(this); }
39262
39884
  static get watchers() { return {
@@ -39574,7 +40196,7 @@ class Toggle {
39574
40196
  const value = this.getValue();
39575
40197
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
39576
40198
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
39577
- return (hAsync(Host, { key: 'ab093ddb505af61685cbb8571af1e765fc0292f8', role: "switch", "aria-checked": `${checked}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, "aria-labelledby": hasLabel ? inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, "aria-required": required ? 'true' : undefined, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, class: createColorClasses$1(color, {
40199
+ return (hAsync(Host, { key: '736e1dcfca34fd41f6f0632652e7f86d6996a232', role: "switch", "aria-checked": `${checked}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, "aria-labelledby": hasLabel ? inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, "aria-required": required ? 'true' : undefined, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, class: createColorClasses$1(color, {
39578
40200
  [mode]: true,
39579
40201
  'in-item': hostContext('ion-item', el),
39580
40202
  'toggle-activated': activated,
@@ -39584,10 +40206,10 @@ class Toggle {
39584
40206
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
39585
40207
  [`toggle-label-placement-${labelPlacement}`]: true,
39586
40208
  [`toggle-${rtl}`]: true,
39587
- }) }, hAsync("label", { key: 'b4b05e458fcbc767e4392ae43e647b075780cad0', class: "toggle-wrapper", htmlFor: inputId }, hAsync("input", Object.assign({ key: 'c09100447011c51d5b49b4400ec7d72012e3bc6f', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, required: required }, inheritedAttributes)), hAsync("div", { key: '71cf059a999ae572a20127b76907e010ace486ad', class: {
40209
+ }) }, hAsync("label", { key: 'e697739fd3964c1c6c23331cf7e38a9841c46a6a', class: "toggle-wrapper", htmlFor: inputId }, hAsync("input", Object.assign({ key: '3d500b8c1bc879591249d183c1abb3f5f26aff6b', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, required: required }, inheritedAttributes)), hAsync("div", { key: 'e38f3fe0e66b4ca434fd81514f5ef771c2960841', class: {
39588
40210
  'label-text-wrapper': true,
39589
40211
  'label-text-wrapper-hidden': !hasLabel,
39590
- }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: 'c480b96a0ddd926568f73291d71253d6f74438c7' }), this.renderHintText()), hAsync("div", { key: '96a2cbd1673e051a78f8b2b16535ecd3f0ed4339', class: "native-wrapper" }, this.renderToggleControl()))));
40212
+ }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '006dd3558264d69ab020c07005b348adc4ecdd5b' }), this.renderHintText()), hAsync("div", { key: 'dd4e52de31caabee41ec1bc58efecd1e213368c9', class: "native-wrapper" }, this.renderToggleControl()))));
39591
40213
  }
39592
40214
  get el() { return getElement(this); }
39593
40215
  static get watchers() { return {
@@ -39699,10 +40321,10 @@ class Toolbar {
39699
40321
  this.childrenStyles.forEach((value) => {
39700
40322
  Object.assign(childStyles, value);
39701
40323
  });
39702
- return (hAsync(Host, { key: '40bad6fa7e94262438da4bbe037dcf8a5fa2df22', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
40324
+ return (hAsync(Host, { key: 'b849db2863778dee6c5a251bffa1b3a657aeb036', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
39703
40325
  [mode]: true,
39704
40326
  'in-toolbar': hostContext('ion-toolbar', this.el),
39705
- })) }, hAsync("div", { key: 'df44c9f0fe3958116ab860b0dad79c53b89f6c59', class: "toolbar-background", part: "background" }), hAsync("div", { key: '2169ffa576875b8d5624211cc0b4bf86191562bc', class: "toolbar-container", part: "container" }, hAsync("slot", { key: 'c8910dcf1ce98ab427fd89c3396a67c2a75bdd07', name: "start" }), hAsync("slot", { key: '05da24d5ef96b9eebd83b534ce02c1f7bcd06680', name: "secondary" }), hAsync("div", { key: '090fea1541e7e2b6ad74a6ded4eadffdb471ccce', class: "toolbar-content", part: "content" }, hAsync("slot", { key: '507e143f92f6fa59ff23d94026411fa2c74f2f8e' })), hAsync("slot", { key: 'f79fdee472e657e26a910cb89d7551943e40e440', name: "primary" }), hAsync("slot", { key: 'dd40fe9ed490cf4346c642e195fdb524dc6cc4f5', name: "end" }))));
40327
+ })) }, hAsync("div", { key: '67f5bba9c4f527c3f35bfe1313a2b85741f9b246', class: "toolbar-background", part: "background" }), hAsync("div", { key: '085e8c68f056e5b0deb9d1606431fbeb45dae8e5', class: "toolbar-container", part: "container" }, hAsync("slot", { key: '15227c79c3baf883fd8c43fdb7e1313453933c79', name: "start" }), hAsync("slot", { key: '0b8a7f7e685aa31c80d9bc03446ccc3a9d07e0e8', name: "secondary" }), hAsync("div", { key: '57e4628c1fa89df79dd80456259db961bb691404', class: "toolbar-content", part: "content" }, hAsync("slot", { key: '82c2f6e1acf8d96db259bd8baf295881801edbd5' })), hAsync("slot", { key: 'b2d4afb15214199f206c0a5e08b581e4c9c2f58a', name: "primary" }), hAsync("slot", { key: 'bfb909a0c472f8834046c2ea23bef2f562167ad3', name: "end" }))));
39706
40328
  }
39707
40329
  get el() { return getElement(this); }
39708
40330
  static get style() { return {
@@ -39748,11 +40370,11 @@ class ToolbarTitle {
39748
40370
  render() {
39749
40371
  const mode = getIonMode$1(this);
39750
40372
  const size = this.getSize();
39751
- return (hAsync(Host, { key: 'd9317e8e66cb6112717f5a9c252658777efbd873', class: createColorClasses$1(this.color, {
40373
+ return (hAsync(Host, { key: '44e63f8439df64c470692904427b417e19406476', class: createColorClasses$1(this.color, {
39752
40374
  [mode]: true,
39753
40375
  [`title-${size}`]: true,
39754
40376
  'title-rtl': document.dir === 'rtl',
39755
- }) }, hAsync("div", { key: 'a4d011d6d409bf006d8efe33667002edb109820a', class: "toolbar-title" }, hAsync("slot", { key: '4ca3303b957a0e5387f1e9058e5adb4c6275afcc' }))));
40377
+ }) }, hAsync("div", { key: '784cf60a0db16045391891cc8fad0c7dbeba4039', class: "toolbar-title" }, hAsync("slot", { key: '0c720a50479ba257e8756337aeb9b0ab7516a227' }))));
39756
40378
  }
39757
40379
  get el() { return getElement(this); }
39758
40380
  static get watchers() { return {
@@ -39832,8 +40454,10 @@ registerComponents([
39832
40454
  Nav,
39833
40455
  NavLink,
39834
40456
  Note,
40457
+ Picker$1,
39835
40458
  Picker,
39836
40459
  PickerColumn,
40460
+ PickerColumnCmp,
39837
40461
  PickerColumnOption,
39838
40462
  Popover,
39839
40463
  ProgressBar,