@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.mjs CHANGED
@@ -7790,7 +7790,7 @@ const focusElementInOverlay = (hostToFocus, overlay) => {
7790
7790
  * Should NOT include: Toast
7791
7791
  */
7792
7792
  const trapKeyboardFocus = (ev, doc) => {
7793
- const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover');
7793
+ const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover');
7794
7794
  const target = ev.target;
7795
7795
  /**
7796
7796
  * If no active overlay, ignore this event.
@@ -8024,7 +8024,7 @@ const dismissOverlay = (doc, data, role, overlayTag, id) => {
8024
8024
  */
8025
8025
  const getOverlays = (doc, selector) => {
8026
8026
  if (selector === undefined) {
8027
- selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover,ion-toast';
8027
+ selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover,ion-toast';
8028
8028
  }
8029
8029
  return Array.from(doc.querySelectorAll(selector)).filter((c) => c.overlayIndex > 0);
8030
8030
  };
@@ -8086,29 +8086,6 @@ const setRootAriaHidden = (hidden = false) => {
8086
8086
  viewContainer.removeAttribute('aria-hidden');
8087
8087
  }
8088
8088
  };
8089
- /**
8090
- * Cleans up root `aria-hidden` and `backdrop-no-scroll` when
8091
- * an overlay is removed from the DOM without going through
8092
- * the `dismiss()` flow (e.g., when a framework unmounts the
8093
- * overlay during a route change).
8094
- *
8095
- * Should be called from an overlay's `disconnectedCallback`
8096
- * when the overlay was still presented at the time of removal.
8097
- */
8098
- const cleanupRootFocusTrapAccessibility = () => {
8099
- if (typeof document === 'undefined') {
8100
- return;
8101
- }
8102
- const remainingOverlays = getPresentedOverlays(document);
8103
- const hasRemainingLocking = remainingOverlays.some((o) => {
8104
- const el = o;
8105
- return el.tagName !== 'ION-TOAST' && el.focusTrap !== false && isBackdropAlwaysBlocking(el);
8106
- });
8107
- if (!hasRemainingLocking) {
8108
- setRootAriaHidden(false);
8109
- document.body.classList.remove(BACKDROP_NO_SCROLL);
8110
- }
8111
- };
8112
8089
  const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts) => {
8113
8090
  var _a, _b;
8114
8091
  if (overlay.presented) {
@@ -9365,7 +9342,7 @@ const createAnimation = (animationId) => {
9365
9342
  /**
9366
9343
  * iOS Action Sheet Enter Animation
9367
9344
  */
9368
- const iosEnterAnimation$5 = (baseEl) => {
9345
+ const iosEnterAnimation$6 = (baseEl) => {
9369
9346
  const baseAnimation = createAnimation();
9370
9347
  const backdropAnimation = createAnimation();
9371
9348
  const wrapperAnimation = createAnimation();
@@ -9389,7 +9366,7 @@ const iosEnterAnimation$5 = (baseEl) => {
9389
9366
  /**
9390
9367
  * iOS Action Sheet Leave Animation
9391
9368
  */
9392
- const iosLeaveAnimation$5 = (baseEl) => {
9369
+ const iosLeaveAnimation$6 = (baseEl) => {
9393
9370
  const baseAnimation = createAnimation();
9394
9371
  const backdropAnimation = createAnimation();
9395
9372
  const wrapperAnimation = createAnimation();
@@ -9545,7 +9522,7 @@ class ActionSheet {
9545
9522
  async present() {
9546
9523
  const unlock = await this.lockController.lock();
9547
9524
  await this.delegateController.attachViewToDom();
9548
- await present(this, 'actionSheetEnter', iosEnterAnimation$5, mdEnterAnimation$5);
9525
+ await present(this, 'actionSheetEnter', iosEnterAnimation$6, mdEnterAnimation$5);
9549
9526
  unlock();
9550
9527
  }
9551
9528
  /**
@@ -9562,7 +9539,7 @@ class ActionSheet {
9562
9539
  */
9563
9540
  async dismiss(data, role) {
9564
9541
  const unlock = await this.lockController.lock();
9565
- const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$5, mdLeaveAnimation$5);
9542
+ const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$6, mdLeaveAnimation$5);
9566
9543
  if (dismissed) {
9567
9544
  this.delegateController.removeViewFromDom();
9568
9545
  }
@@ -9731,10 +9708,6 @@ class ActionSheet {
9731
9708
  this.gesture = undefined;
9732
9709
  }
9733
9710
  this.triggerController.removeClickListener();
9734
- // Clean up aria-hidden if removed without dismiss() being called
9735
- if (this.presented) {
9736
- cleanupRootFocusTrapAccessibility();
9737
- }
9738
9711
  }
9739
9712
  componentWillLoad() {
9740
9713
  var _a;
@@ -9823,7 +9796,7 @@ class ActionSheet {
9823
9796
  if (isRadio) {
9824
9797
  htmlAttrs['aria-checked'] = isActiveRadio ? 'true' : 'false';
9825
9798
  }
9826
- 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: () => {
9799
+ 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: () => {
9827
9800
  if (isRadio) {
9828
9801
  this.selectRadioButton(b);
9829
9802
  }
@@ -9838,12 +9811,12 @@ class ActionSheet {
9838
9811
  const cancelButton = allButtons.find((b) => b.role === 'cancel');
9839
9812
  const buttons = allButtons.filter((b) => b.role !== 'cancel');
9840
9813
  const headerID = `action-sheet-${overlayIndex}-header`;
9841
- return (hAsync(Host, Object.assign({ key: 'fc8e6c837c7e16d78348a3109f5dc992f111784a', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
9814
+ return (hAsync(Host, Object.assign({ key: '173fcff5b1da7c33c267de4667591c946b8c8d03', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
9842
9815
  zIndex: `${20000 + this.overlayIndex}`,
9843
- }, 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: {
9816
+ }, 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: {
9844
9817
  'action-sheet-title': true,
9845
9818
  'action-sheet-has-sub-title': this.subHeader !== undefined,
9846
- } }, 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" })));
9819
+ } }, 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" })));
9847
9820
  }
9848
9821
  get el() { return getElement(this); }
9849
9822
  static get watchers() { return {
@@ -9892,7 +9865,7 @@ class ActionSheet {
9892
9865
  "$attrsToReflect$": []
9893
9866
  }; }
9894
9867
  }
9895
- const buttonClass$2 = (button) => {
9868
+ const buttonClass$3 = (button) => {
9896
9869
  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));
9897
9870
  };
9898
9871
 
@@ -10063,7 +10036,7 @@ class IonicSafeString {
10063
10036
  /**
10064
10037
  * iOS Alert Enter Animation
10065
10038
  */
10066
- const iosEnterAnimation$4 = (baseEl) => {
10039
+ const iosEnterAnimation$5 = (baseEl) => {
10067
10040
  const baseAnimation = createAnimation();
10068
10041
  const backdropAnimation = createAnimation();
10069
10042
  const wrapperAnimation = createAnimation();
@@ -10088,7 +10061,7 @@ const iosEnterAnimation$4 = (baseEl) => {
10088
10061
  /**
10089
10062
  * iOS Alert Leave Animation
10090
10063
  */
10091
- const iosLeaveAnimation$4 = (baseEl) => {
10064
+ const iosLeaveAnimation$5 = (baseEl) => {
10092
10065
  const baseAnimation = createAnimation();
10093
10066
  const backdropAnimation = createAnimation();
10094
10067
  const wrapperAnimation = createAnimation();
@@ -10349,10 +10322,6 @@ class Alert {
10349
10322
  this.gesture.destroy();
10350
10323
  this.gesture = undefined;
10351
10324
  }
10352
- // Clean up aria-hidden if removed without dismiss() being called
10353
- if (this.presented) {
10354
- cleanupRootFocusTrapAccessibility();
10355
- }
10356
10325
  }
10357
10326
  componentDidLoad() {
10358
10327
  /**
@@ -10389,7 +10358,7 @@ class Alert {
10389
10358
  async present() {
10390
10359
  const unlock = await this.lockController.lock();
10391
10360
  await this.delegateController.attachViewToDom();
10392
- await present(this, 'alertEnter', iosEnterAnimation$4, mdEnterAnimation$4).then(() => {
10361
+ await present(this, 'alertEnter', iosEnterAnimation$5, mdEnterAnimation$4).then(() => {
10393
10362
  var _a, _b;
10394
10363
  /**
10395
10364
  * Check if alert has only one button and no inputs.
@@ -10420,7 +10389,7 @@ class Alert {
10420
10389
  */
10421
10390
  async dismiss(data, role) {
10422
10391
  const unlock = await this.lockController.lock();
10423
- const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$4, mdLeaveAnimation$4);
10392
+ const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$5, mdLeaveAnimation$4);
10424
10393
  if (dismissed) {
10425
10394
  this.delegateController.removeViewFromDom();
10426
10395
  }
@@ -10561,7 +10530,7 @@ class Alert {
10561
10530
  'alert-button-group': true,
10562
10531
  'alert-button-group-vertical': buttons.length > 2,
10563
10532
  };
10564
- 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))))));
10533
+ 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))))));
10565
10534
  }
10566
10535
  renderAlertMessage(msgId) {
10567
10536
  const { customHTMLEnabled, message } = this;
@@ -10584,9 +10553,9 @@ class Alert {
10584
10553
  * If neither are defined, do not set aria-labelledby.
10585
10554
  */
10586
10555
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
10587
- return (hAsync(Host, { key: '51ccec282f165dbaa02d7ee0c6413b870abae1d5', tabindex: "-1", style: {
10556
+ return (hAsync(Host, { key: '6025440b9cd369d4fac89e7e4296c84a10a0b8e0', tabindex: "-1", style: {
10588
10557
  zIndex: `${20000 + overlayIndex}`,
10589
- }, 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" })));
10558
+ }, 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" })));
10590
10559
  }
10591
10560
  get el() { return getElement(this); }
10592
10561
  static get watchers() { return {
@@ -10643,7 +10612,7 @@ const inputClass = (input) => {
10643
10612
  var _a, _b, _c;
10644
10613
  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() : ''));
10645
10614
  };
10646
- const buttonClass$1 = (button) => {
10615
+ const buttonClass$2 = (button) => {
10647
10616
  return Object.assign({ 'alert-button': true, 'ion-focusable': true, 'ion-activatable': true, [`alert-button-role-${button.role}`]: button.role !== undefined }, getClassMap(button.cssClass));
10648
10617
  };
10649
10618
 
@@ -21473,7 +21442,7 @@ class ListHeader {
21473
21442
  /**
21474
21443
  * iOS Loading Enter Animation
21475
21444
  */
21476
- const iosEnterAnimation$3 = (baseEl) => {
21445
+ const iosEnterAnimation$4 = (baseEl) => {
21477
21446
  const baseAnimation = createAnimation();
21478
21447
  const backdropAnimation = createAnimation();
21479
21448
  const wrapperAnimation = createAnimation();
@@ -21498,7 +21467,7 @@ const iosEnterAnimation$3 = (baseEl) => {
21498
21467
  /**
21499
21468
  * iOS Loading Leave Animation
21500
21469
  */
21501
- const iosLeaveAnimation$3 = (baseEl) => {
21470
+ const iosLeaveAnimation$4 = (baseEl) => {
21502
21471
  const baseAnimation = createAnimation();
21503
21472
  const backdropAnimation = createAnimation();
21504
21473
  const wrapperAnimation = createAnimation();
@@ -21671,10 +21640,6 @@ class Loading {
21671
21640
  }
21672
21641
  disconnectedCallback() {
21673
21642
  this.triggerController.removeClickListener();
21674
- // Clean up aria-hidden if removed without dismiss() being called
21675
- if (this.presented) {
21676
- cleanupRootFocusTrapAccessibility();
21677
- }
21678
21643
  }
21679
21644
  /**
21680
21645
  * Present the loading overlay after it has been created.
@@ -21682,7 +21647,7 @@ class Loading {
21682
21647
  async present() {
21683
21648
  const unlock = await this.lockController.lock();
21684
21649
  await this.delegateController.attachViewToDom();
21685
- await present(this, 'loadingEnter', iosEnterAnimation$3, mdEnterAnimation$3);
21650
+ await present(this, 'loadingEnter', iosEnterAnimation$4, mdEnterAnimation$3);
21686
21651
  if (this.duration > 0) {
21687
21652
  this.durationTimeout = setTimeout(() => this.dismiss(), this.duration + 10);
21688
21653
  }
@@ -21705,7 +21670,7 @@ class Loading {
21705
21670
  if (this.durationTimeout) {
21706
21671
  clearTimeout(this.durationTimeout);
21707
21672
  }
21708
- const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$3, mdLeaveAnimation$3);
21673
+ const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$4, mdLeaveAnimation$3);
21709
21674
  if (dismissed) {
21710
21675
  this.delegateController.removeViewFromDom();
21711
21676
  }
@@ -21740,9 +21705,9 @@ class Loading {
21740
21705
  * Otherwise, don't set aria-labelledby.
21741
21706
  */
21742
21707
  const ariaLabelledBy = message !== undefined ? msgId : null;
21743
- return (hAsync(Host, Object.assign({ key: 'ab48bfcee8f7e3e33847a2f262fdc08b9ea804ca', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
21708
+ return (hAsync(Host, Object.assign({ key: 'f86ddbc600cb5c396b7de38fb5f49625388c3c3f', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
21744
21709
  zIndex: `${40000 + this.overlayIndex}`,
21745
- }, 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" })));
21710
+ }, 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" })));
21746
21711
  }
21747
21712
  get el() { return getElement(this); }
21748
21713
  static get watchers() { return {
@@ -24016,7 +23981,7 @@ const createEnterAnimation$1 = () => {
24016
23981
  /**
24017
23982
  * iOS Modal Enter Animation for the Card presentation style
24018
23983
  */
24019
- const iosEnterAnimation$2 = (baseEl, opts) => {
23984
+ const iosEnterAnimation$3 = (baseEl, opts) => {
24020
23985
  const { presentingEl, currentBreakpoint, expandToScroll } = opts;
24021
23986
  const root = getElementRoot(baseEl);
24022
23987
  const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
@@ -24109,7 +24074,7 @@ const createLeaveAnimation$1 = () => {
24109
24074
  /**
24110
24075
  * iOS Modal Leave Animation
24111
24076
  */
24112
- const iosLeaveAnimation$2 = (baseEl, opts, duration = 500) => {
24077
+ const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
24113
24078
  const { presentingEl, currentBreakpoint } = opts;
24114
24079
  const root = getElementRoot(baseEl);
24115
24080
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
@@ -25482,10 +25447,6 @@ class Modal {
25482
25447
  // Also called in dismiss() — intentional dual cleanup covers both
25483
25448
  // dismiss-then-remove and direct DOM removal without dismiss.
25484
25449
  this.cleanupSafeAreaOverrides();
25485
- // Clean up aria-hidden if removed without dismiss() being called
25486
- if (this.presented) {
25487
- cleanupRootFocusTrapAccessibility();
25488
- }
25489
25450
  }
25490
25451
  componentWillLoad() {
25491
25452
  var _a;
@@ -25662,7 +25623,7 @@ class Modal {
25662
25623
  this.statusBarStyle = await StatusBar.getStyle();
25663
25624
  setCardStatusBarDark();
25664
25625
  }
25665
- await present(this, 'modalEnter', iosEnterAnimation$2, mdEnterAnimation$2, {
25626
+ await present(this, 'modalEnter', iosEnterAnimation$3, mdEnterAnimation$2, {
25666
25627
  presentingEl: presentingElement,
25667
25628
  currentBreakpoint: this.initialBreakpoint,
25668
25629
  backdropBreakpoint: this.backdropBreakpoint,
@@ -25724,7 +25685,7 @@ class Modal {
25724
25685
  // All of the elements needed for the swipe gesture
25725
25686
  // should be in the DOM and referenced by now, except
25726
25687
  // for the presenting el
25727
- const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$2);
25688
+ const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$3);
25728
25689
  const ani = (this.animation = animationBuilder(el, {
25729
25690
  presentingEl: this.presentingElement,
25730
25691
  expandToScroll: this.expandToScroll,
@@ -25743,7 +25704,7 @@ class Modal {
25743
25704
  if (!wrapperEl || initialBreakpoint === undefined) {
25744
25705
  return;
25745
25706
  }
25746
- const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$2);
25707
+ const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$3);
25747
25708
  const ani = (this.animation = animationBuilder(this.el, {
25748
25709
  presentingEl: this.presentingElement,
25749
25710
  currentBreakpoint: initialBreakpoint,
@@ -25933,7 +25894,7 @@ class Modal {
25933
25894
  window.removeEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
25934
25895
  this.keyboardOpenCallback = undefined;
25935
25896
  }
25936
- const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$2, mdLeaveAnimation$2, {
25897
+ const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$3, mdLeaveAnimation$2, {
25937
25898
  presentingEl: presentingElement,
25938
25899
  currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
25939
25900
  backdropBreakpoint: this.backdropBreakpoint,
@@ -26365,20 +26326,20 @@ class Modal {
26365
26326
  const isCardModal = presentingElement !== undefined && mode === 'ios';
26366
26327
  const isHandleCycle = handleBehavior === 'cycle';
26367
26328
  const isSheetModalWithHandle = isSheetModal && showHandle;
26368
- return (hAsync(Host, Object.assign({ key: '8878518986eab4692754087d117b3b4a7968e4b2', "no-router": true,
26329
+ return (hAsync(Host, Object.assign({ key: '4bf38aa67df9a3f977163bba5423960bbafd16de', "no-router": true,
26369
26330
  // Allow the modal to be navigable when the handle is focusable
26370
26331
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
26371
26332
  zIndex: `${20000 + this.overlayIndex}`,
26372
- }, 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',
26333
+ }, 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',
26373
26334
  /*
26374
26335
  role and aria-modal must be used on the
26375
26336
  same element. They must also be set inside the
26376
26337
  shadow DOM otherwise ion-button will not be highlighted
26377
26338
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
26378
26339
  */
26379
- 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",
26340
+ 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",
26380
26341
  // Prevents the handle from receiving keyboard focus when it does not cycle
26381
- 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 }))));
26342
+ 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 }))));
26382
26343
  }
26383
26344
  get el() { return getElement(this); }
26384
26345
  static get watchers() { return {
@@ -27458,14 +27419,14 @@ class Note {
27458
27419
  }; }
27459
27420
  }
27460
27421
 
27461
- 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)))}`;
27422
+ 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)))}`;
27462
27423
 
27463
- 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%)}`;
27424
+ 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%)}`;
27464
27425
 
27465
27426
  /**
27466
27427
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
27467
27428
  */
27468
- class Picker {
27429
+ let Picker$1 = class Picker {
27469
27430
  constructor(hostRef) {
27470
27431
  registerInstance(this, hostRef);
27471
27432
  this.ionInputModeChange = createEvent(this, "ionInputModeChange", 7);
@@ -27931,8 +27892,8 @@ class Picker {
27931
27892
  }
27932
27893
  get el() { return getElement(this); }
27933
27894
  static get style() { return {
27934
- ios: pickerIosCss(),
27935
- md: pickerMdCss()
27895
+ ios: pickerIosCss$1(),
27896
+ md: pickerMdCss$1()
27936
27897
  }; }
27937
27898
  static get cmpMeta() { return {
27938
27899
  "$flags$": 297,
@@ -27944,7 +27905,322 @@ class Picker {
27944
27905
  "$lazyBundleId$": "-",
27945
27906
  "$attrsToReflect$": []
27946
27907
  }; }
27908
+ };
27909
+
27910
+ /**
27911
+ * iOS Picker Enter Animation
27912
+ */
27913
+ const iosEnterAnimation$2 = (baseEl) => {
27914
+ const baseAnimation = createAnimation();
27915
+ const backdropAnimation = createAnimation();
27916
+ const wrapperAnimation = createAnimation();
27917
+ backdropAnimation
27918
+ .addElement(baseEl.querySelector('ion-backdrop'))
27919
+ .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
27920
+ .beforeStyles({
27921
+ 'pointer-events': 'none',
27922
+ })
27923
+ .afterClearStyles(['pointer-events']);
27924
+ wrapperAnimation
27925
+ .addElement(baseEl.querySelector('.picker-wrapper'))
27926
+ .fromTo('transform', 'translateY(100%)', 'translateY(0%)');
27927
+ return baseAnimation
27928
+ .addElement(baseEl)
27929
+ .easing('cubic-bezier(.36,.66,.04,1)')
27930
+ .duration(400)
27931
+ .addAnimation([backdropAnimation, wrapperAnimation]);
27932
+ };
27933
+
27934
+ /**
27935
+ * iOS Picker Leave Animation
27936
+ */
27937
+ const iosLeaveAnimation$2 = (baseEl) => {
27938
+ const baseAnimation = createAnimation();
27939
+ const backdropAnimation = createAnimation();
27940
+ const wrapperAnimation = createAnimation();
27941
+ backdropAnimation
27942
+ .addElement(baseEl.querySelector('ion-backdrop'))
27943
+ .fromTo('opacity', 'var(--backdrop-opacity)', 0.01);
27944
+ wrapperAnimation
27945
+ .addElement(baseEl.querySelector('.picker-wrapper'))
27946
+ .fromTo('transform', 'translateY(0%)', 'translateY(100%)');
27947
+ return baseAnimation
27948
+ .addElement(baseEl)
27949
+ .easing('cubic-bezier(.36,.66,.04,1)')
27950
+ .duration(400)
27951
+ .addAnimation([backdropAnimation, wrapperAnimation]);
27952
+ };
27953
+
27954
+ 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}`;
27955
+
27956
+ 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}`;
27957
+
27958
+ // TODO(FW-2832): types
27959
+ /**
27960
+ * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
27961
+ */
27962
+ class Picker {
27963
+ constructor(hostRef) {
27964
+ registerInstance(this, hostRef);
27965
+ this.didPresent = createEvent(this, "ionPickerDidPresent", 7);
27966
+ this.willPresent = createEvent(this, "ionPickerWillPresent", 7);
27967
+ this.willDismiss = createEvent(this, "ionPickerWillDismiss", 7);
27968
+ this.didDismiss = createEvent(this, "ionPickerDidDismiss", 7);
27969
+ this.didPresentShorthand = createEvent(this, "didPresent", 7);
27970
+ this.willPresentShorthand = createEvent(this, "willPresent", 7);
27971
+ this.willDismissShorthand = createEvent(this, "willDismiss", 7);
27972
+ this.didDismissShorthand = createEvent(this, "didDismiss", 7);
27973
+ this.delegateController = createDelegateController(this);
27974
+ this.lockController = createLockController();
27975
+ this.triggerController = createTriggerController();
27976
+ this.presented = false;
27977
+ /** @internal */
27978
+ this.hasController = false;
27979
+ /**
27980
+ * If `true`, the keyboard will be automatically dismissed when the overlay is presented.
27981
+ */
27982
+ this.keyboardClose = true;
27983
+ /**
27984
+ * Array of buttons to be displayed at the top of the picker.
27985
+ */
27986
+ this.buttons = [];
27987
+ /**
27988
+ * Array of columns to be displayed in the picker.
27989
+ */
27990
+ this.columns = [];
27991
+ /**
27992
+ * Number of milliseconds to wait before dismissing the picker.
27993
+ */
27994
+ this.duration = 0;
27995
+ /**
27996
+ * If `true`, a backdrop will be displayed behind the picker.
27997
+ */
27998
+ this.showBackdrop = true;
27999
+ /**
28000
+ * If `true`, the picker will be dismissed when the backdrop is clicked.
28001
+ */
28002
+ this.backdropDismiss = true;
28003
+ /**
28004
+ * If `true`, the picker will animate.
28005
+ */
28006
+ this.animated = true;
28007
+ /**
28008
+ * If `true`, the picker will open. If `false`, the picker will close.
28009
+ * Use this if you need finer grained control over presentation, otherwise
28010
+ * just use the pickerController or the `trigger` property.
28011
+ * Note: `isOpen` will not automatically be set back to `false` when
28012
+ * the picker dismisses. You will need to do that in your code.
28013
+ */
28014
+ this.isOpen = false;
28015
+ this.onBackdropTap = () => {
28016
+ this.dismiss(undefined, BACKDROP);
28017
+ };
28018
+ this.dispatchCancelHandler = (ev) => {
28019
+ const role = ev.detail.role;
28020
+ if (isCancel(role)) {
28021
+ const cancelButton = this.buttons.find((b) => b.role === 'cancel');
28022
+ this.callButtonHandler(cancelButton);
28023
+ }
28024
+ };
28025
+ }
28026
+ onIsOpenChange(newValue, oldValue) {
28027
+ if (newValue === true && oldValue === false) {
28028
+ this.present();
28029
+ }
28030
+ else if (newValue === false && oldValue === true) {
28031
+ this.dismiss();
28032
+ }
28033
+ }
28034
+ triggerChanged() {
28035
+ const { trigger, el, triggerController } = this;
28036
+ if (trigger) {
28037
+ triggerController.addClickListener(el, trigger);
28038
+ }
28039
+ }
28040
+ connectedCallback() {
28041
+ prepareOverlay(this.el);
28042
+ this.triggerChanged();
28043
+ }
28044
+ disconnectedCallback() {
28045
+ this.triggerController.removeClickListener();
28046
+ }
28047
+ componentWillLoad() {
28048
+ var _a;
28049
+ if (!((_a = this.htmlAttributes) === null || _a === void 0 ? void 0 : _a.id)) {
28050
+ setOverlayId(this.el);
28051
+ }
28052
+ }
28053
+ componentDidLoad() {
28054
+ 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);
28055
+ /**
28056
+ * If picker was rendered with isOpen="true"
28057
+ * then we should open picker immediately.
28058
+ */
28059
+ if (this.isOpen === true) {
28060
+ raf(() => this.present());
28061
+ }
28062
+ /**
28063
+ * When binding values in frameworks such as Angular
28064
+ * it is possible for the value to be set after the Web Component
28065
+ * initializes but before the value watcher is set up in Stencil.
28066
+ * As a result, the watcher callback may not be fired.
28067
+ * We work around this by manually calling the watcher
28068
+ * callback when the component has loaded and the watcher
28069
+ * is configured.
28070
+ */
28071
+ this.triggerChanged();
28072
+ }
28073
+ /**
28074
+ * Present the picker overlay after it has been created.
28075
+ */
28076
+ async present() {
28077
+ const unlock = await this.lockController.lock();
28078
+ await this.delegateController.attachViewToDom();
28079
+ await present(this, 'pickerEnter', iosEnterAnimation$2, iosEnterAnimation$2, undefined);
28080
+ if (this.duration > 0) {
28081
+ this.durationTimeout = setTimeout(() => this.dismiss(), this.duration);
28082
+ }
28083
+ unlock();
28084
+ }
28085
+ /**
28086
+ * Dismiss the picker overlay after it has been presented.
28087
+ *
28088
+ * @param data Any data to emit in the dismiss events.
28089
+ * @param role The role of the element that is dismissing the picker.
28090
+ * This can be useful in a button handler for determining which button was
28091
+ * clicked to dismiss the picker.
28092
+ * Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
28093
+ */
28094
+ async dismiss(data, role) {
28095
+ const unlock = await this.lockController.lock();
28096
+ if (this.durationTimeout) {
28097
+ clearTimeout(this.durationTimeout);
28098
+ }
28099
+ const dismissed = await dismiss(this, data, role, 'pickerLeave', iosLeaveAnimation$2, iosLeaveAnimation$2);
28100
+ if (dismissed) {
28101
+ this.delegateController.removeViewFromDom();
28102
+ }
28103
+ unlock();
28104
+ return dismissed;
28105
+ }
28106
+ /**
28107
+ * Returns a promise that resolves when the picker did dismiss.
28108
+ */
28109
+ onDidDismiss() {
28110
+ return eventMethod(this.el, 'ionPickerDidDismiss');
28111
+ }
28112
+ /**
28113
+ * Returns a promise that resolves when the picker will dismiss.
28114
+ */
28115
+ onWillDismiss() {
28116
+ return eventMethod(this.el, 'ionPickerWillDismiss');
28117
+ }
28118
+ /**
28119
+ * Get the column that matches the specified name.
28120
+ *
28121
+ * @param name The name of the column.
28122
+ */
28123
+ getColumn(name) {
28124
+ return Promise.resolve(this.columns.find((column) => column.name === name));
28125
+ }
28126
+ async buttonClick(button) {
28127
+ const role = button.role;
28128
+ if (isCancel(role)) {
28129
+ return this.dismiss(undefined, role);
28130
+ }
28131
+ const shouldDismiss = await this.callButtonHandler(button);
28132
+ if (shouldDismiss) {
28133
+ return this.dismiss(this.getSelected(), button.role);
28134
+ }
28135
+ return Promise.resolve();
28136
+ }
28137
+ async callButtonHandler(button) {
28138
+ if (button) {
28139
+ // a handler has been provided, execute it
28140
+ // pass the handler the values from the inputs
28141
+ const rtn = await safeCall(button.handler, this.getSelected());
28142
+ if (rtn === false) {
28143
+ // if the return value of the handler is false then do not dismiss
28144
+ return false;
28145
+ }
28146
+ }
28147
+ return true;
28148
+ }
28149
+ getSelected() {
28150
+ const selected = {};
28151
+ this.columns.forEach((col, index) => {
28152
+ const selectedColumn = col.selectedIndex !== undefined ? col.options[col.selectedIndex] : undefined;
28153
+ selected[col.name] = {
28154
+ text: selectedColumn ? selectedColumn.text : undefined,
28155
+ value: selectedColumn ? selectedColumn.value : undefined,
28156
+ columnIndex: index,
28157
+ };
28158
+ });
28159
+ return selected;
28160
+ }
28161
+ render() {
28162
+ const { htmlAttributes } = this;
28163
+ const mode = getIonMode$1(this);
28164
+ return (hAsync(Host, Object.assign({ key: '80f66d33780d8a1352d24be9cb63a0cc03d01ab5', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
28165
+ zIndex: `${20000 + this.overlayIndex}`,
28166
+ }, class: Object.assign({ [mode]: true,
28167
+ // Used internally for styling
28168
+ [`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" })));
28169
+ }
28170
+ get el() { return getElement(this); }
28171
+ static get watchers() { return {
28172
+ "isOpen": [{
28173
+ "onIsOpenChange": 0
28174
+ }],
28175
+ "trigger": [{
28176
+ "triggerChanged": 0
28177
+ }]
28178
+ }; }
28179
+ static get style() { return {
28180
+ ios: pickerIosCss(),
28181
+ md: pickerMdCss()
28182
+ }; }
28183
+ static get cmpMeta() { return {
28184
+ "$flags$": 34,
28185
+ "$tagName$": "ion-picker-legacy",
28186
+ "$members$": {
28187
+ "overlayIndex": [2, "overlay-index"],
28188
+ "delegate": [16],
28189
+ "hasController": [4, "has-controller"],
28190
+ "keyboardClose": [4, "keyboard-close"],
28191
+ "enterAnimation": [16],
28192
+ "leaveAnimation": [16],
28193
+ "buttons": [16],
28194
+ "columns": [16],
28195
+ "cssClass": [1, "css-class"],
28196
+ "duration": [2],
28197
+ "showBackdrop": [4, "show-backdrop"],
28198
+ "backdropDismiss": [4, "backdrop-dismiss"],
28199
+ "animated": [4],
28200
+ "htmlAttributes": [16],
28201
+ "isOpen": [4, "is-open"],
28202
+ "trigger": [1],
28203
+ "presented": [32],
28204
+ "present": [64],
28205
+ "dismiss": [64],
28206
+ "onDidDismiss": [64],
28207
+ "onWillDismiss": [64],
28208
+ "getColumn": [64]
28209
+ },
28210
+ "$listeners$": undefined,
28211
+ "$lazyBundleId$": "-",
28212
+ "$attrsToReflect$": []
28213
+ }; }
27947
28214
  }
28215
+ const buttonWrapperClass = (button) => {
28216
+ return {
28217
+ [`picker-toolbar-${button.role}`]: button.role !== undefined,
28218
+ 'picker-toolbar-button': true,
28219
+ };
28220
+ };
28221
+ const buttonClass$1 = (button) => {
28222
+ return Object.assign({ 'picker-button': true, 'ion-activatable': true }, getClassMap(button.cssClass));
28223
+ };
27948
28224
 
27949
28225
  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)}}`;
27950
28226
 
@@ -28531,6 +28807,371 @@ class PickerColumn {
28531
28807
  }
28532
28808
  const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
28533
28809
 
28810
+ 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}}`;
28811
+
28812
+ 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)}`;
28813
+
28814
+ /**
28815
+ * @internal
28816
+ */
28817
+ class PickerColumnCmp {
28818
+ constructor(hostRef) {
28819
+ registerInstance(this, hostRef);
28820
+ this.ionPickerColChange = createEvent(this, "ionPickerColChange", 7);
28821
+ this.optHeight = 0;
28822
+ this.rotateFactor = 0;
28823
+ this.scaleFactor = 1;
28824
+ this.velocity = 0;
28825
+ this.y = 0;
28826
+ this.noAnimate = true;
28827
+ // `colDidChange` is a flag that gets set when the column is changed
28828
+ // dynamically. When this flag is set, the column will refresh
28829
+ // after the component re-renders to incorporate the new column data.
28830
+ // This is necessary because `this.refresh` queries for the option elements,
28831
+ // so it needs to wait for the latest elements to be available in the DOM.
28832
+ // Ex: column is created with 3 options. User updates the column data
28833
+ // to have 5 options. The column will still think it only has 3 options.
28834
+ this.colDidChange = false;
28835
+ }
28836
+ colChanged() {
28837
+ this.colDidChange = true;
28838
+ }
28839
+ async connectedCallback() {
28840
+ let pickerRotateFactor = 0;
28841
+ let pickerScaleFactor = 0.81;
28842
+ const mode = getIonMode$1(this);
28843
+ if (mode === 'ios') {
28844
+ pickerRotateFactor = -0.46;
28845
+ pickerScaleFactor = 1;
28846
+ }
28847
+ this.rotateFactor = pickerRotateFactor;
28848
+ this.scaleFactor = pickerScaleFactor;
28849
+ this.gesture = (await Promise.resolve().then(function () { return index; })).createGesture({
28850
+ el: this.el,
28851
+ gestureName: 'picker-swipe',
28852
+ gesturePriority: 100,
28853
+ threshold: 0,
28854
+ passive: false,
28855
+ onStart: (ev) => this.onStart(ev),
28856
+ onMove: (ev) => this.onMove(ev),
28857
+ onEnd: (ev) => this.onEnd(ev),
28858
+ });
28859
+ this.gesture.enable();
28860
+ // Options have not been initialized yet
28861
+ // Animation must be disabled through the `noAnimate` flag
28862
+ // Otherwise, the options will render
28863
+ // at the top of the column and transition down
28864
+ this.tmrId = setTimeout(() => {
28865
+ this.noAnimate = false;
28866
+ // After initialization, `refresh()` will be called
28867
+ // At this point, animation will be enabled. The options will
28868
+ // animate as they are being selected.
28869
+ this.refresh(true);
28870
+ }, 250);
28871
+ }
28872
+ componentDidLoad() {
28873
+ this.onDomChange();
28874
+ }
28875
+ componentDidUpdate() {
28876
+ // Options may have changed since last update.
28877
+ if (this.colDidChange) {
28878
+ // Animation must be disabled through the `onDomChange` parameter.
28879
+ // Otherwise, the recently added options will render
28880
+ // at the top of the column and transition down
28881
+ this.onDomChange(true, false);
28882
+ this.colDidChange = false;
28883
+ }
28884
+ }
28885
+ disconnectedCallback() {
28886
+ if (this.rafId !== undefined)
28887
+ cancelAnimationFrame(this.rafId);
28888
+ if (this.tmrId)
28889
+ clearTimeout(this.tmrId);
28890
+ if (this.gesture) {
28891
+ this.gesture.destroy();
28892
+ this.gesture = undefined;
28893
+ }
28894
+ }
28895
+ emitColChange() {
28896
+ this.ionPickerColChange.emit(this.col);
28897
+ }
28898
+ setSelected(selectedIndex, duration) {
28899
+ // if there is a selected index, then figure out it's y position
28900
+ // if there isn't a selected index, then just use the top y position
28901
+ const y = selectedIndex > -1 ? -(selectedIndex * this.optHeight) : 0;
28902
+ this.velocity = 0;
28903
+ // set what y position we're at
28904
+ if (this.rafId !== undefined)
28905
+ cancelAnimationFrame(this.rafId);
28906
+ this.update(y, duration, true);
28907
+ this.emitColChange();
28908
+ }
28909
+ update(y, duration, saveY) {
28910
+ if (!this.optsEl) {
28911
+ return;
28912
+ }
28913
+ // ensure we've got a good round number :)
28914
+ let translateY = 0;
28915
+ let translateZ = 0;
28916
+ const { col, rotateFactor } = this;
28917
+ const prevSelected = col.selectedIndex;
28918
+ const selectedIndex = (col.selectedIndex = this.indexForY(-y));
28919
+ const durationStr = duration === 0 ? '' : duration + 'ms';
28920
+ const scaleStr = `scale(${this.scaleFactor})`;
28921
+ const children = this.optsEl.children;
28922
+ for (let i = 0; i < children.length; i++) {
28923
+ const button = children[i];
28924
+ const opt = col.options[i];
28925
+ const optOffset = i * this.optHeight + y;
28926
+ let transform = '';
28927
+ if (rotateFactor !== 0) {
28928
+ const rotateX = optOffset * rotateFactor;
28929
+ if (Math.abs(rotateX) <= 90) {
28930
+ translateY = 0;
28931
+ translateZ = 90;
28932
+ transform = `rotateX(${rotateX}deg) `;
28933
+ }
28934
+ else {
28935
+ translateY = -9999;
28936
+ }
28937
+ }
28938
+ else {
28939
+ translateZ = 0;
28940
+ translateY = optOffset;
28941
+ }
28942
+ const selected = selectedIndex === i;
28943
+ transform += `translate3d(0px,${translateY}px,${translateZ}px) `;
28944
+ if (this.scaleFactor !== 1 && !selected) {
28945
+ transform += scaleStr;
28946
+ }
28947
+ // Update transition duration
28948
+ if (this.noAnimate) {
28949
+ opt.duration = 0;
28950
+ button.style.transitionDuration = '';
28951
+ }
28952
+ else if (duration !== opt.duration) {
28953
+ opt.duration = duration;
28954
+ button.style.transitionDuration = durationStr;
28955
+ }
28956
+ // Update transform
28957
+ if (transform !== opt.transform) {
28958
+ opt.transform = transform;
28959
+ }
28960
+ button.style.transform = transform;
28961
+ /**
28962
+ * Ensure that the select column
28963
+ * item has the selected class
28964
+ */
28965
+ opt.selected = selected;
28966
+ if (selected) {
28967
+ button.classList.add(PICKER_OPT_SELECTED);
28968
+ }
28969
+ else {
28970
+ button.classList.remove(PICKER_OPT_SELECTED);
28971
+ }
28972
+ }
28973
+ this.col.prevSelected = prevSelected;
28974
+ if (saveY) {
28975
+ this.y = y;
28976
+ }
28977
+ if (this.lastIndex !== selectedIndex) {
28978
+ // have not set a last index yet
28979
+ hapticSelectionChanged();
28980
+ this.lastIndex = selectedIndex;
28981
+ }
28982
+ }
28983
+ decelerate() {
28984
+ if (this.velocity !== 0) {
28985
+ // still decelerating
28986
+ this.velocity *= DECELERATION_FRICTION;
28987
+ // do not let it go slower than a velocity of 1
28988
+ this.velocity = this.velocity > 0 ? Math.max(this.velocity, 1) : Math.min(this.velocity, -1);
28989
+ let y = this.y + this.velocity;
28990
+ if (y > this.minY) {
28991
+ // whoops, it's trying to scroll up farther than the options we have!
28992
+ y = this.minY;
28993
+ this.velocity = 0;
28994
+ }
28995
+ else if (y < this.maxY) {
28996
+ // gahh, it's trying to scroll down farther than we can!
28997
+ y = this.maxY;
28998
+ this.velocity = 0;
28999
+ }
29000
+ this.update(y, 0, true);
29001
+ const notLockedIn = Math.round(y) % this.optHeight !== 0 || Math.abs(this.velocity) > 1;
29002
+ if (notLockedIn) {
29003
+ // isn't locked in yet, keep decelerating until it is
29004
+ this.rafId = requestAnimationFrame(() => this.decelerate());
29005
+ }
29006
+ else {
29007
+ this.velocity = 0;
29008
+ this.emitColChange();
29009
+ hapticSelectionEnd();
29010
+ }
29011
+ }
29012
+ else if (this.y % this.optHeight !== 0) {
29013
+ // needs to still get locked into a position so options line up
29014
+ const currentPos = Math.abs(this.y % this.optHeight);
29015
+ // create a velocity in the direction it needs to scroll
29016
+ this.velocity = currentPos > this.optHeight / 2 ? 1 : -1;
29017
+ this.decelerate();
29018
+ }
29019
+ }
29020
+ indexForY(y) {
29021
+ return Math.min(Math.max(Math.abs(Math.round(y / this.optHeight)), 0), this.col.options.length - 1);
29022
+ }
29023
+ onStart(detail) {
29024
+ // We have to prevent default in order to block scrolling under the picker
29025
+ // but we DO NOT have to stop propagation, since we still want
29026
+ // some "click" events to capture
29027
+ if (detail.event.cancelable) {
29028
+ detail.event.preventDefault();
29029
+ }
29030
+ detail.event.stopPropagation();
29031
+ hapticSelectionStart();
29032
+ // reset everything
29033
+ if (this.rafId !== undefined)
29034
+ cancelAnimationFrame(this.rafId);
29035
+ const options = this.col.options;
29036
+ let minY = options.length - 1;
29037
+ let maxY = 0;
29038
+ for (let i = 0; i < options.length; i++) {
29039
+ if (!options[i].disabled) {
29040
+ minY = Math.min(minY, i);
29041
+ maxY = Math.max(maxY, i);
29042
+ }
29043
+ }
29044
+ this.minY = -(minY * this.optHeight);
29045
+ this.maxY = -(maxY * this.optHeight);
29046
+ }
29047
+ onMove(detail) {
29048
+ if (detail.event.cancelable) {
29049
+ detail.event.preventDefault();
29050
+ }
29051
+ detail.event.stopPropagation();
29052
+ // update the scroll position relative to pointer start position
29053
+ let y = this.y + detail.deltaY;
29054
+ if (y > this.minY) {
29055
+ // scrolling up higher than scroll area
29056
+ y = Math.pow(y, 0.8);
29057
+ this.bounceFrom = y;
29058
+ }
29059
+ else if (y < this.maxY) {
29060
+ // scrolling down below scroll area
29061
+ y += Math.pow(this.maxY - y, 0.9);
29062
+ this.bounceFrom = y;
29063
+ }
29064
+ else {
29065
+ this.bounceFrom = 0;
29066
+ }
29067
+ this.update(y, 0, false);
29068
+ }
29069
+ onEnd(detail) {
29070
+ if (this.bounceFrom > 0) {
29071
+ // bounce back up
29072
+ this.update(this.minY, 100, true);
29073
+ this.emitColChange();
29074
+ return;
29075
+ }
29076
+ else if (this.bounceFrom < 0) {
29077
+ // bounce back down
29078
+ this.update(this.maxY, 100, true);
29079
+ this.emitColChange();
29080
+ return;
29081
+ }
29082
+ this.velocity = clamp(-90, detail.velocityY * 23, MAX_PICKER_SPEED);
29083
+ if (this.velocity === 0 && detail.deltaY === 0) {
29084
+ const opt = detail.event.target.closest('.picker-opt');
29085
+ if (opt === null || opt === void 0 ? void 0 : opt.hasAttribute('opt-index')) {
29086
+ this.setSelected(parseInt(opt.getAttribute('opt-index'), 10), TRANSITION_DURATION);
29087
+ }
29088
+ }
29089
+ else {
29090
+ this.y += detail.deltaY;
29091
+ if (Math.abs(detail.velocityY) < 0.05) {
29092
+ const isScrollingUp = detail.deltaY > 0;
29093
+ const optHeightFraction = (Math.abs(this.y) % this.optHeight) / this.optHeight;
29094
+ if (isScrollingUp && optHeightFraction > 0.5) {
29095
+ this.velocity = Math.abs(this.velocity) * -1;
29096
+ }
29097
+ else if (!isScrollingUp && optHeightFraction <= 0.5) {
29098
+ this.velocity = Math.abs(this.velocity);
29099
+ }
29100
+ }
29101
+ this.decelerate();
29102
+ }
29103
+ }
29104
+ refresh(forceRefresh, animated) {
29105
+ var _a;
29106
+ let min = this.col.options.length - 1;
29107
+ let max = 0;
29108
+ const options = this.col.options;
29109
+ for (let i = 0; i < options.length; i++) {
29110
+ if (!options[i].disabled) {
29111
+ min = Math.min(min, i);
29112
+ max = Math.max(max, i);
29113
+ }
29114
+ }
29115
+ /**
29116
+ * Only update selected value if column has a
29117
+ * velocity of 0. If it does not, then the
29118
+ * column is animating might land on
29119
+ * a value different than the value at
29120
+ * selectedIndex
29121
+ */
29122
+ if (this.velocity !== 0) {
29123
+ return;
29124
+ }
29125
+ const selectedIndex = clamp(min, (_a = this.col.selectedIndex) !== null && _a !== void 0 ? _a : 0, max);
29126
+ if (this.col.prevSelected !== selectedIndex || forceRefresh) {
29127
+ const y = selectedIndex * this.optHeight * -1;
29128
+ const duration = animated ? TRANSITION_DURATION : 0;
29129
+ this.velocity = 0;
29130
+ this.update(y, duration, true);
29131
+ }
29132
+ }
29133
+ onDomChange(forceRefresh, animated) {
29134
+ const colEl = this.optsEl;
29135
+ if (colEl) {
29136
+ // DOM READ
29137
+ // We perfom a DOM read over a rendered item, this needs to happen after the first render or after the column has changed
29138
+ this.optHeight = colEl.firstElementChild ? colEl.firstElementChild.clientHeight : 0;
29139
+ }
29140
+ this.refresh(forceRefresh, animated);
29141
+ }
29142
+ render() {
29143
+ const col = this.col;
29144
+ const mode = getIonMode$1(this);
29145
+ 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: {
29146
+ 'max-width': this.col.columnWidth,
29147
+ } }, 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))));
29148
+ }
29149
+ get el() { return getElement(this); }
29150
+ static get watchers() { return {
29151
+ "col": [{
29152
+ "colChanged": 0
29153
+ }]
29154
+ }; }
29155
+ static get style() { return {
29156
+ ios: pickerColumnIosCss(),
29157
+ md: pickerColumnMdCss()
29158
+ }; }
29159
+ static get cmpMeta() { return {
29160
+ "$flags$": 32,
29161
+ "$tagName$": "ion-picker-legacy-column",
29162
+ "$members$": {
29163
+ "col": [16]
29164
+ },
29165
+ "$listeners$": undefined,
29166
+ "$lazyBundleId$": "-",
29167
+ "$attrsToReflect$": []
29168
+ }; }
29169
+ }
29170
+ const PICKER_OPT_SELECTED = 'picker-opt-selected';
29171
+ const DECELERATION_FRICTION = 0.97;
29172
+ const MAX_PICKER_SPEED = 90;
29173
+ const TRANSITION_DURATION = 150;
29174
+
28534
29175
  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}`;
28535
29176
 
28536
29177
  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)}`;
@@ -29952,10 +30593,6 @@ class Popover {
29952
30593
  this.headerResizeObserver.disconnect();
29953
30594
  this.headerResizeObserver = undefined;
29954
30595
  }
29955
- // Clean up aria-hidden if removed without dismiss() being called
29956
- if (this.presented) {
29957
- cleanupRootFocusTrapAccessibility();
29958
- }
29959
30596
  }
29960
30597
  componentWillLoad() {
29961
30598
  var _a, _b;
@@ -30194,9 +30831,9 @@ class Popover {
30194
30831
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
30195
30832
  const desktop = isPlatform('desktop');
30196
30833
  const enableArrow = arrow && !parentPopover;
30197
- return (hAsync(Host, Object.assign({ key: 'd7f3aa2c2fa93a93585e3eda9e4a6d0daaa541be', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
30834
+ return (hAsync(Host, Object.assign({ key: '2edd8333c630efbce59071f8a383e4326e928dbc', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
30198
30835
  zIndex: `${20000 + this.overlayIndex}`,
30199
- }, 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' })))));
30836
+ }, 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' })))));
30200
30837
  }
30201
30838
  get el() { return getElement(this); }
30202
30839
  static get watchers() { return {
@@ -30307,7 +30944,7 @@ class ProgressBar {
30307
30944
  const mode = getIonMode$1(this);
30308
30945
  // If the progress is displayed as a solid bar.
30309
30946
  const progressSolid = buffer === 1;
30310
- return (hAsync(Host, { key: 'd7476268ce53b6a4f425b7bc9f01d6935eb411c3', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
30947
+ return (hAsync(Host, { key: 'c859e48f3d24a458239e36d925e5dc003ed07c6b', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
30311
30948
  [mode]: true,
30312
30949
  [`progress-bar-${type}`]: true,
30313
30950
  'progress-paused': paused,
@@ -30492,7 +31129,7 @@ class Radio {
30492
31129
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
30493
31130
  const mode = getIonMode$1(this);
30494
31131
  const inItem = hostContext('ion-item', el);
30495
- return (hAsync(Host, { key: 'd9425b252ed38086420d91d5c680421d121c99f4', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
31132
+ return (hAsync(Host, { key: 'af5dc59ed528150872e907ed1036e3e2decba939', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
30496
31133
  [mode]: true,
30497
31134
  'in-item': inItem,
30498
31135
  'radio-checked': checked,
@@ -30503,10 +31140,10 @@ class Radio {
30503
31140
  // Focus and active styling should not apply when the radio is in an item
30504
31141
  'ion-activatable': !inItem,
30505
31142
  'ion-focusable': !inItem,
30506
- }), 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: {
31143
+ }), 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: {
30507
31144
  'label-text-wrapper': true,
30508
31145
  'label-text-wrapper-hidden': !hasLabel,
30509
- }, part: "label" }, hAsync("slot", { key: '589d7c1b45a1918b5811663daa8f30788e7729f8' })), hAsync("div", { key: '0f61a17b195582d6c9a0c597cd40e6629256e479', class: "native-wrapper" }, this.renderRadioControl()))));
31146
+ }, part: "label" }, hAsync("slot", { key: '0a4613d29aa783d1882cf889377f7e4fd4fea51d' })), hAsync("div", { key: '191faea79dc4cd8befc4b873f5bd9f5af8ca2acc', class: "native-wrapper" }, this.renderRadioControl()))));
30510
31147
  }
30511
31148
  get el() { return getElement(this); }
30512
31149
  static get watchers() { return {
@@ -30525,7 +31162,7 @@ class Radio {
30525
31162
  "color": [513],
30526
31163
  "name": [1],
30527
31164
  "disabled": [4],
30528
- "value": [520],
31165
+ "value": [8],
30529
31166
  "labelPlacement": [1, "label-placement"],
30530
31167
  "justify": [1],
30531
31168
  "alignment": [1],
@@ -30536,7 +31173,7 @@ class Radio {
30536
31173
  },
30537
31174
  "$listeners$": undefined,
30538
31175
  "$lazyBundleId$": "-",
30539
- "$attrsToReflect$": [["color", "color"], ["value", "value"]]
31176
+ "$attrsToReflect$": [["color", "color"]]
30540
31177
  }; }
30541
31178
  }
30542
31179
  let radioButtonIds = 0;
@@ -31601,7 +32238,7 @@ class Range {
31601
32238
  const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
31602
32239
  const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
31603
32240
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
31604
- return (hAsync(Host, { key: 'cd26f0187c0d37c7eb9df923f75c8a0f57c19ab6', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
32241
+ return (hAsync(Host, { key: 'f8063d1234fb113fe55a7902845dd4b4da8b1edb', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
31605
32242
  [mode]: true,
31606
32243
  'in-item': inItem,
31607
32244
  'range-disabled': disabled,
@@ -31615,10 +32252,10 @@ class Range {
31615
32252
  'range-item-end-adjustment': needsEndAdjustment,
31616
32253
  'range-value-min': valueAtMin,
31617
32254
  'range-value-max': valueAtMax,
31618
- }) }, hAsync("label", { key: '90224fd24b0e625a17e7972feff73a0ac31e093d', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'e07b9fa10983249c425eec26b741f0f628daf2b2', class: {
32255
+ }) }, hAsync("label", { key: 'beead65ab01e3b18e4be59c0ee8ac6ebf32aad7c', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '03633c689d9d2e4c50a2131bcd560329df49e314', class: {
31619
32256
  'label-text-wrapper': true,
31620
32257
  'label-text-wrapper-hidden': !hasLabel,
31621
- }, 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" })))));
32258
+ }, 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" })))));
31622
32259
  }
31623
32260
  get el() { return getElement(this); }
31624
32261
  static get watchers() { return {
@@ -32689,7 +33326,7 @@ class Refresher {
32689
33326
  }
32690
33327
  render() {
32691
33328
  const mode = getIonMode$1(this);
32692
- return (hAsync(Host, { key: '1dd475095f76491206644828cf89fc6d2ec276d1', slot: "fixed", class: {
33329
+ return (hAsync(Host, { key: '80fa313b0d77161680836bdd6aa334d02c549b41', slot: "fixed", class: {
32693
33330
  [mode]: true,
32694
33331
  // Used internally for styling
32695
33332
  [`refresher-${mode}`]: true,
@@ -32915,7 +33552,7 @@ class RefresherContent {
32915
33552
  const pullingIcon = this.pullingIcon;
32916
33553
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
32917
33554
  const mode = getIonMode$1(this);
32918
- 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())));
33555
+ 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())));
32919
33556
  }
32920
33557
  get el() { return getElement(this); }
32921
33558
  static get cmpMeta() { return {
@@ -32956,7 +33593,7 @@ class Reorder {
32956
33593
  render() {
32957
33594
  const mode = getIonMode$1(this);
32958
33595
  const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
32959
- 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" }))));
33596
+ 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" }))));
32960
33597
  }
32961
33598
  get el() { return getElement(this); }
32962
33599
  static get style() { return {
@@ -33227,7 +33864,7 @@ class ReorderGroup {
33227
33864
  }
33228
33865
  render() {
33229
33866
  const mode = getIonMode$1(this);
33230
- return (hAsync(Host, { key: '3afdc6a6c81bba2f88ea523d4b73c6fccff1b9ec', class: {
33867
+ return (hAsync(Host, { key: '9527bbdedaab63d31f562c874a7332ea60c4b47b', class: {
33231
33868
  [mode]: true,
33232
33869
  'reorder-enabled': !this.disabled,
33233
33870
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -33345,7 +33982,7 @@ class RippleEffect {
33345
33982
  }
33346
33983
  render() {
33347
33984
  const mode = getIonMode$1(this);
33348
- return (hAsync(Host, { key: '5e88b5225414e29883256c86f111ded5bdf2ef91', role: "presentation", class: {
33985
+ return (hAsync(Host, { key: '3b59cbb44741569a7350f9638b4392add673b6f1', role: "presentation", class: {
33349
33986
  [mode]: true,
33350
33987
  unbounded: this.unbounded,
33351
33988
  } }));
@@ -34314,10 +34951,10 @@ class RouterLink {
34314
34951
  rel: this.rel,
34315
34952
  target: this.target,
34316
34953
  };
34317
- return (hAsync(Host, { key: '6d5fdfa0dcf1eb216173bcc53f1f4d625f3ec551', onClick: this.onClick, class: createColorClasses$1(this.color, {
34954
+ return (hAsync(Host, { key: '8372835161d507c7b821b7536c55f912eb6ce704', onClick: this.onClick, class: createColorClasses$1(this.color, {
34318
34955
  [mode]: true,
34319
34956
  'ion-activatable': true,
34320
- }) }, hAsync("a", Object.assign({ key: '85796b7b48581fe9830ba1102dad7d1069de4e17' }, attrs), hAsync("slot", { key: '0f93b0da3ec4ae8f50f624f9e7bed87d13d712d0' }))));
34957
+ }) }, hAsync("a", Object.assign({ key: '315966e14a17760f3f64197e8315200039787897' }, attrs), hAsync("slot", { key: '95fc1697b884225e85e647dddcaa8f4af8b9a979' }))));
34321
34958
  }
34322
34959
  static get style() { return routerLinkCss(); }
34323
34960
  static get cmpMeta() { return {
@@ -34356,11 +34993,10 @@ class RouterOutlet {
34356
34993
  */
34357
34994
  this.animated = true;
34358
34995
  }
34359
- swipeGestureChanged() {
34360
- this.updateGestureEnabled();
34361
- }
34362
34996
  swipeHandlerChanged() {
34363
- this.updateGestureEnabled();
34997
+ if (this.gesture) {
34998
+ this.gesture.enable(this.swipeHandler !== undefined);
34999
+ }
34364
35000
  }
34365
35001
  async connectedCallback() {
34366
35002
  const onStart = () => {
@@ -34400,21 +35036,11 @@ class RouterOutlet {
34400
35036
  this.gestureOrAnimationInProgress = false;
34401
35037
  }
34402
35038
  });
34403
- if (this.swipeGesture === undefined) {
34404
- this.swipeGesture = config.getBoolean('swipeBackEnabled', this.mode === 'ios');
34405
- }
34406
- else {
34407
- this.updateGestureEnabled();
34408
- }
35039
+ this.swipeHandlerChanged();
34409
35040
  }
34410
35041
  componentWillLoad() {
34411
35042
  this.ionNavWillLoad.emit();
34412
35043
  }
34413
- updateGestureEnabled() {
34414
- if (this.gesture) {
34415
- this.gesture.enable(this.swipeHandler !== undefined && this.swipeGesture === true);
34416
- }
34417
- }
34418
35044
  disconnectedCallback() {
34419
35045
  if (this.gesture) {
34420
35046
  this.gesture.destroy();
@@ -34525,13 +35151,10 @@ class RouterOutlet {
34525
35151
  return true;
34526
35152
  }
34527
35153
  render() {
34528
- return hAsync("slot", { key: 'ce09e6fbba7b0a2276cdde5245bb37c9a162c1c7' });
35154
+ return hAsync("slot", { key: '386c41745b61daba161cf75063da97fe29ba36cb' });
34529
35155
  }
34530
35156
  get el() { return getElement(this); }
34531
35157
  static get watchers() { return {
34532
- "swipeGesture": [{
34533
- "swipeGestureChanged": 0
34534
- }],
34535
35158
  "swipeHandler": [{
34536
35159
  "swipeHandlerChanged": 0
34537
35160
  }]
@@ -34545,7 +35168,6 @@ class RouterOutlet {
34545
35168
  "delegate": [16],
34546
35169
  "animated": [4],
34547
35170
  "animation": [16],
34548
- "swipeGesture": [1028, "swipe-gesture"],
34549
35171
  "swipeHandler": [16],
34550
35172
  "commit": [64],
34551
35173
  "setRouteId": [64],
@@ -34564,7 +35186,7 @@ class Row {
34564
35186
  registerInstance(this, hostRef);
34565
35187
  }
34566
35188
  render() {
34567
- return (hAsync(Host, { key: 'a9066661fff12baaf3e80b2e8c08591af72fe5b8', class: getIonMode$1(this) }, hAsync("slot", { key: '62b103af46d3a5ec9c146019ae300b68a4ae867a' })));
35189
+ return (hAsync(Host, { key: '8ba906a8cbea060a79ed658c9bf34906f0c11d38', class: getIonMode$1(this) }, hAsync("slot", { key: 'd1009176f45b588fa52c7d9eb336f3c6d3214bb8' })));
34568
35190
  }
34569
35191
  static get style() { return rowCss(); }
34570
35192
  static get cmpMeta() { return {
@@ -35016,8 +35638,8 @@ class Searchbar {
35016
35638
  const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
35017
35639
  const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
35018
35640
  const shouldShowCancelButton = this.shouldShowCancelButton();
35019
- 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))));
35020
- return (hAsync(Host, { key: 'ce0a2cebb0c2af3b351cb2d4699e3e4dbb8c3ee2', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
35641
+ 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))));
35642
+ return (hAsync(Host, { key: '219c263c1f3cc63e18bc2d2ba5d672b7806eddd0', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
35021
35643
  [mode]: true,
35022
35644
  'searchbar-animated': animated,
35023
35645
  'searchbar-disabled': this.disabled,
@@ -35027,14 +35649,14 @@ class Searchbar {
35027
35649
  'searchbar-has-focus': this.focused,
35028
35650
  'searchbar-should-show-clear': this.shouldShowClearButton(),
35029
35651
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
35030
- }) }, 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) => {
35652
+ }) }, 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) => {
35031
35653
  /**
35032
35654
  * This prevents mobile browsers from
35033
35655
  * blurring the input when the clear
35034
35656
  * button is activated.
35035
35657
  */
35036
35658
  ev.preventDefault();
35037
- }, 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));
35659
+ }, 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));
35038
35660
  }
35039
35661
  get el() { return getElement(this); }
35040
35662
  static get watchers() { return {
@@ -35639,14 +36261,14 @@ class Segment {
35639
36261
  }
35640
36262
  render() {
35641
36263
  const mode = getIonMode$1(this);
35642
- return (hAsync(Host, { key: '3fd965c1483046cba38420dc6787f5b9cadec5ca', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
36264
+ return (hAsync(Host, { key: '725cc37b25c539fa5e3ae8d90530ae33ededc3de', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
35643
36265
  [mode]: true,
35644
36266
  'in-toolbar': hostContext('ion-toolbar', this.el),
35645
36267
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
35646
36268
  'segment-activated': this.activated,
35647
36269
  'segment-disabled': this.disabled,
35648
36270
  'segment-scrollable': this.scrollable,
35649
- }) }, hAsync("slot", { key: '56b2961719d8a8afba0f21b47d0785a7f896b34b', onSlotchange: this.onSlottedItemsChange })));
36271
+ }) }, hAsync("slot", { key: 'c51cf7ea50325866a9367d214e12bc3754870335', onSlotchange: this.onSlottedItemsChange })));
35650
36272
  }
35651
36273
  get el() { return getElement(this); }
35652
36274
  static get watchers() { return {
@@ -35794,7 +36416,7 @@ class SegmentButton {
35794
36416
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
35795
36417
  const mode = getIonMode$1(this);
35796
36418
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
35797
- return (hAsync(Host, { key: '792f621c36260b1fceff2b4ec4fa95d98d51d46b', class: {
36419
+ return (hAsync(Host, { key: 'f69e2a24198a7c57543dbe66902da039a6569c64', class: {
35798
36420
  [mode]: true,
35799
36421
  'in-toolbar': hostContext('ion-toolbar', this.el),
35800
36422
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -35810,7 +36432,7 @@ class SegmentButton {
35810
36432
  'ion-activatable': true,
35811
36433
  'ion-activatable-instant': true,
35812
36434
  'ion-focusable': true,
35813
- } }, 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" }))));
36435
+ } }, 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" }))));
35814
36436
  }
35815
36437
  get el() { return getElement(this); }
35816
36438
  static get watchers() { return {
@@ -35847,7 +36469,7 @@ class SegmentContent {
35847
36469
  registerInstance(this, hostRef);
35848
36470
  }
35849
36471
  render() {
35850
- return (hAsync(Host, { key: 'ef39f29c444177c3b083cd35680ba891e4bb6a2a' }, hAsync("slot", { key: '51f9dd9ca084ddd928b376aa9d716509669c32b2' })));
36472
+ return (hAsync(Host, { key: '665f41a854621f898eaf7ba9a49e77cc9326501e' }, hAsync("slot", { key: '635aa57fbf6167dcd36fe8dc5dfc1c313637ac04' })));
35851
36473
  }
35852
36474
  static get style() { return segmentContentCss(); }
35853
36475
  static get cmpMeta() { return {
@@ -35966,11 +36588,11 @@ class SegmentView {
35966
36588
  }
35967
36589
  render() {
35968
36590
  const { disabled, isManualScroll, swipeGesture } = this;
35969
- return (hAsync(Host, { key: 'a6c6ac0232c4bb6f2a954b3de7993019d71f423a', class: {
36591
+ return (hAsync(Host, { key: '2a6e0a1046af75b1fa0eed20a5fbbb4634480297', class: {
35970
36592
  'segment-view-disabled': disabled,
35971
36593
  'segment-view-scroll-disabled': isManualScroll === false,
35972
36594
  'segment-view-swipe-disabled': swipeGesture === false,
35973
- } }, hAsync("slot", { key: '386305be2a75069c79def12005d9f6b49276763f' })));
36595
+ } }, hAsync("slot", { key: '644b60d179d0de3fa204e3bef26a3503ceeaf1d6' })));
35974
36596
  }
35975
36597
  get el() { return getElement(this); }
35976
36598
  static get style() { return {
@@ -36742,7 +37364,7 @@ class Select {
36742
37364
  * TODO(FW-5592): Remove hasStartEndSlots condition
36743
37365
  */
36744
37366
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
36745
- return (hAsync(Host, { key: 'ee7f8da9cbd2922f23e7b7984c418f79e6d491d6', onClick: this.onClick, class: createColorClasses$1(this.color, {
37367
+ return (hAsync(Host, { key: '5f4ee901b65554eacc9fa52230d06b1a5ff1247c', onClick: this.onClick, class: createColorClasses$1(this.color, {
36746
37368
  [mode]: true,
36747
37369
  'in-item': inItem,
36748
37370
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -36760,7 +37382,7 @@ class Select {
36760
37382
  [`select-justify-${justify}`]: justifyEnabled,
36761
37383
  [`select-shape-${shape}`]: shape !== undefined,
36762
37384
  [`select-label-placement-${labelPlacement}`]: true,
36763
- }) }, 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()));
37385
+ }) }, 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()));
36764
37386
  }
36765
37387
  get el() { return getElement(this); }
36766
37388
  static get watchers() { return {
@@ -36944,7 +37566,7 @@ class SelectModal {
36944
37566
  } }, option.text))));
36945
37567
  }
36946
37568
  render() {
36947
- 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()))));
37569
+ 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()))));
36948
37570
  }
36949
37571
  get el() { return getElement(this); }
36950
37572
  static get style() { return {
@@ -36979,7 +37601,7 @@ class SelectOption {
36979
37601
  this.disabled = false;
36980
37602
  }
36981
37603
  render() {
36982
- return hAsync(Host, { key: '1fc1737fbb29dcb62638149b21620cbdf2f00dbc', role: "option", id: this.inputId, class: getIonMode$1(this) });
37604
+ return hAsync(Host, { key: '824730b6c1e4f15b716e91b05840e890af5f1577', role: "option", id: this.inputId, class: getIonMode$1(this) });
36983
37605
  }
36984
37606
  get el() { return getElement(this); }
36985
37607
  static get style() { return selectOptionCss(); }
@@ -37107,7 +37729,7 @@ class SelectPopover {
37107
37729
  render() {
37108
37730
  const { header, message, options, subHeader } = this;
37109
37731
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
37110
- 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))));
37732
+ 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))));
37111
37733
  }
37112
37734
  get el() { return getElement(this); }
37113
37735
  static get style() { return {
@@ -37157,11 +37779,11 @@ class SkeletonText {
37157
37779
  const animated = this.animated && config.getBoolean('animated', true);
37158
37780
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
37159
37781
  const mode = getIonMode$1(this);
37160
- return (hAsync(Host, { key: '887d958d982345ce610730ab5c9ae35010430f75', class: {
37782
+ return (hAsync(Host, { key: 'cb8da9aba121811b9a4ffdae60ed88105897cb3c', class: {
37161
37783
  [mode]: true,
37162
37784
  'skeleton-text-animated': animated,
37163
37785
  'in-media': inMedia,
37164
- } }, hAsync("span", { key: 'a184f4b9780a2aada0a16729109ac81436e9c9e1' }, "\u00A0")));
37786
+ } }, hAsync("span", { key: '5379deee3c76d46d615be0cba14b4f60129ffa25' }, "\u00A0")));
37165
37787
  }
37166
37788
  get el() { return getElement(this); }
37167
37789
  static get style() { return skeletonTextCss(); }
@@ -37213,7 +37835,7 @@ class Spinner {
37213
37835
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
37214
37836
  }
37215
37837
  }
37216
- return (hAsync(Host, { key: 'c35ebd01186e860acb9cac260193f0836424fdf4', class: createColorClasses$1(self.color, {
37838
+ return (hAsync(Host, { key: 'dd1954e557fa14b943e761474e29e4316ba53938', class: createColorClasses$1(self.color, {
37217
37839
  [mode]: true,
37218
37840
  [`spinner-${spinnerName}`]: true,
37219
37841
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -37312,12 +37934,12 @@ class SplitPane {
37312
37934
  }
37313
37935
  render() {
37314
37936
  const mode = getIonMode$1(this);
37315
- return (hAsync(Host, { key: '694e989fafcfe2453e0a83b3cb736efaa1eb4fec', class: {
37937
+ return (hAsync(Host, { key: '05c88c009fbe2e223fd261760a2b49da1653ff62', class: {
37316
37938
  [mode]: true,
37317
37939
  // Used internally for styling
37318
37940
  [`split-pane-${mode}`]: true,
37319
37941
  'split-pane-visible': this.visible,
37320
- } }, hAsync("slot", { key: 'dde7e9382b62cc11971aa233cf98c2314ae4f720' })));
37942
+ } }, hAsync("slot", { key: 'b35865082661253c4468520d79234fa5dab5bd35' })));
37321
37943
  }
37322
37944
  get el() { return getElement(this); }
37323
37945
  static get watchers() { return {
@@ -37389,10 +38011,10 @@ class Tab {
37389
38011
  }
37390
38012
  render() {
37391
38013
  const { tab, active, component } = this;
37392
- return (hAsync(Host, { key: '745262368a7f45244da459f4fa1730a46dd3e257', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
38014
+ return (hAsync(Host, { key: 'fbd837bad7a0632336d46a597ace23673b153e48', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
37393
38015
  'ion-page': component === undefined,
37394
38016
  'tab-hidden': !active,
37395
- } }, hAsync("slot", { key: '823d09a6f93bf7c0dc74f2b8717d1d3a62df1ad8' })));
38017
+ } }, hAsync("slot", { key: '35c218169fda826c9c1337558e0278d0c7f5f26a' })));
37396
38018
  }
37397
38019
  get el() { return getElement(this); }
37398
38020
  static get watchers() { return {
@@ -37506,11 +38128,11 @@ class TabBar {
37506
38128
  const { color, translucent, keyboardVisible } = this;
37507
38129
  const mode = getIonMode$1(this);
37508
38130
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
37509
- return (hAsync(Host, { key: '148f65df0818e9d220a9b46db74cb89ab94e62d2', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
38131
+ return (hAsync(Host, { key: '24e164eaf81a0bec9237b561465618f10990806c', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
37510
38132
  [mode]: true,
37511
38133
  'tab-bar-translucent': translucent,
37512
38134
  'tab-bar-hidden': shouldHide,
37513
- }) }, hAsync("slot", { key: 'a64e235f3703662e2dd7a834f752cc5b1490adbc' })));
38135
+ }) }, hAsync("slot", { key: '0ca29a2d97a7c38bbf43f8d79e271b874b4d9be8' })));
37514
38136
  }
37515
38137
  get el() { return getElement(this); }
37516
38138
  static get watchers() { return {
@@ -37608,7 +38230,7 @@ class TabButton {
37608
38230
  rel,
37609
38231
  target,
37610
38232
  };
37611
- return (hAsync(Host, { key: '1034b5a928ecec49bd8efec3730ea1b11a579cf3', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
38233
+ return (hAsync(Host, { key: '638b93ef40701ec3aefb89b1579eb91aaf6d4f8a', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
37612
38234
  [mode]: true,
37613
38235
  'tab-selected': selected,
37614
38236
  'tab-disabled': disabled,
@@ -37620,7 +38242,7 @@ class TabButton {
37620
38242
  'ion-activatable': true,
37621
38243
  'ion-selectable': true,
37622
38244
  'ion-focusable': true,
37623
- } }, 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" }))));
38245
+ } }, 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" }))));
37624
38246
  }
37625
38247
  get el() { return getElement(this); }
37626
38248
  static get style() { return {
@@ -37811,7 +38433,7 @@ class Tabs {
37811
38433
  return Array.from(this.el.querySelectorAll('ion-tab'));
37812
38434
  }
37813
38435
  render() {
37814
- 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" })));
38436
+ 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" })));
37815
38437
  }
37816
38438
  get el() { return getElement(this); }
37817
38439
  static get style() { return tabsCss(); }
@@ -37851,9 +38473,9 @@ class Text {
37851
38473
  }
37852
38474
  render() {
37853
38475
  const mode = getIonMode$1(this);
37854
- return (hAsync(Host, { key: '41ed8da617ed0e07bbfe96e32a000e1c6503e24e', class: createColorClasses$1(this.color, {
38476
+ return (hAsync(Host, { key: 'bfaa49d35f43b8036725ae8a322c716fc6e43bdf', class: createColorClasses$1(this.color, {
37855
38477
  [mode]: true,
37856
- }) }, hAsync("slot", { key: 'db8de04a2493537b3037f276b03abd92dfa56847' })));
38478
+ }) }, hAsync("slot", { key: 'c04880cd1935b42cbe60f58fd523b4d8a96072dc' })));
37857
38479
  }
37858
38480
  static get style() { return textCss(); }
37859
38481
  static get cmpMeta() { return {
@@ -38314,7 +38936,7 @@ class Textarea {
38314
38936
  * TODO(FW-5592): Remove hasStartEndSlots condition
38315
38937
  */
38316
38938
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
38317
- return (hAsync(Host, { key: 'eca1dfed53189408f614661ef3902cdb73d5f5de', class: createColorClasses$1(this.color, {
38939
+ return (hAsync(Host, { key: '4257e84acd46f43390fa2413d0b8f40e16a37499', class: createColorClasses$1(this.color, {
38318
38940
  [mode]: true,
38319
38941
  'has-value': hasValue,
38320
38942
  'has-focus': hasFocus,
@@ -38323,7 +38945,7 @@ class Textarea {
38323
38945
  [`textarea-shape-${shape}`]: shape !== undefined,
38324
38946
  [`textarea-label-placement-${labelPlacement}`]: true,
38325
38947
  'textarea-disabled': disabled,
38326
- }) }, 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()));
38948
+ }) }, 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()));
38327
38949
  }
38328
38950
  get el() { return getElement(this); }
38329
38951
  static get watchers() { return {
@@ -38392,7 +39014,7 @@ class Thumbnail {
38392
39014
  registerInstance(this, hostRef);
38393
39015
  }
38394
39016
  render() {
38395
- return (hAsync(Host, { key: '833e947c683b482a78f8f0df8c9a68e99478bbaa', class: getIonMode$1(this) }, hAsync("slot", { key: '6d1e9e686db88d91379f14121058dbf035d8ded2' })));
39017
+ return (hAsync(Host, { key: 'b250e01664238f1dca8f9757b15bc3d5d9387ffa', class: getIonMode$1(this) }, hAsync("slot", { key: '72cb568bccabc983c5186a7596ef6c6d4ebf5ad9' })));
38396
39018
  }
38397
39019
  static get style() { return thumbnailCss(); }
38398
39020
  static get cmpMeta() { return {
@@ -39252,9 +39874,9 @@ class Toast {
39252
39874
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
39253
39875
  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);
39254
39876
  }
39255
- return (hAsync(Host, Object.assign({ key: '2acb2cd2e12ea0082986495929e4a596d4da2f38', tabindex: "-1" }, this.htmlAttributes, { style: {
39877
+ return (hAsync(Host, Object.assign({ key: 'b5256edcf33d0ef51e6c5080c84e1ca58abe2ae0', tabindex: "-1" }, this.htmlAttributes, { style: {
39256
39878
  zIndex: `${60000 + this.overlayIndex}`,
39257
- }, 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')))));
39879
+ }, 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')))));
39258
39880
  }
39259
39881
  get el() { return getElement(this); }
39260
39882
  static get watchers() { return {
@@ -39572,7 +40194,7 @@ class Toggle {
39572
40194
  const value = this.getValue();
39573
40195
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
39574
40196
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
39575
- 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, {
40197
+ 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, {
39576
40198
  [mode]: true,
39577
40199
  'in-item': hostContext('ion-item', el),
39578
40200
  'toggle-activated': activated,
@@ -39582,10 +40204,10 @@ class Toggle {
39582
40204
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
39583
40205
  [`toggle-label-placement-${labelPlacement}`]: true,
39584
40206
  [`toggle-${rtl}`]: true,
39585
- }) }, 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: {
40207
+ }) }, 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: {
39586
40208
  'label-text-wrapper': true,
39587
40209
  'label-text-wrapper-hidden': !hasLabel,
39588
- }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: 'c480b96a0ddd926568f73291d71253d6f74438c7' }), this.renderHintText()), hAsync("div", { key: '96a2cbd1673e051a78f8b2b16535ecd3f0ed4339', class: "native-wrapper" }, this.renderToggleControl()))));
40210
+ }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '006dd3558264d69ab020c07005b348adc4ecdd5b' }), this.renderHintText()), hAsync("div", { key: 'dd4e52de31caabee41ec1bc58efecd1e213368c9', class: "native-wrapper" }, this.renderToggleControl()))));
39589
40211
  }
39590
40212
  get el() { return getElement(this); }
39591
40213
  static get watchers() { return {
@@ -39697,10 +40319,10 @@ class Toolbar {
39697
40319
  this.childrenStyles.forEach((value) => {
39698
40320
  Object.assign(childStyles, value);
39699
40321
  });
39700
- return (hAsync(Host, { key: '40bad6fa7e94262438da4bbe037dcf8a5fa2df22', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
40322
+ return (hAsync(Host, { key: 'b849db2863778dee6c5a251bffa1b3a657aeb036', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
39701
40323
  [mode]: true,
39702
40324
  'in-toolbar': hostContext('ion-toolbar', this.el),
39703
- })) }, 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" }))));
40325
+ })) }, 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" }))));
39704
40326
  }
39705
40327
  get el() { return getElement(this); }
39706
40328
  static get style() { return {
@@ -39746,11 +40368,11 @@ class ToolbarTitle {
39746
40368
  render() {
39747
40369
  const mode = getIonMode$1(this);
39748
40370
  const size = this.getSize();
39749
- return (hAsync(Host, { key: 'd9317e8e66cb6112717f5a9c252658777efbd873', class: createColorClasses$1(this.color, {
40371
+ return (hAsync(Host, { key: '44e63f8439df64c470692904427b417e19406476', class: createColorClasses$1(this.color, {
39750
40372
  [mode]: true,
39751
40373
  [`title-${size}`]: true,
39752
40374
  'title-rtl': document.dir === 'rtl',
39753
- }) }, hAsync("div", { key: 'a4d011d6d409bf006d8efe33667002edb109820a', class: "toolbar-title" }, hAsync("slot", { key: '4ca3303b957a0e5387f1e9058e5adb4c6275afcc' }))));
40375
+ }) }, hAsync("div", { key: '784cf60a0db16045391891cc8fad0c7dbeba4039', class: "toolbar-title" }, hAsync("slot", { key: '0c720a50479ba257e8756337aeb9b0ab7516a227' }))));
39754
40376
  }
39755
40377
  get el() { return getElement(this); }
39756
40378
  static get watchers() { return {
@@ -39830,8 +40452,10 @@ registerComponents([
39830
40452
  Nav,
39831
40453
  NavLink,
39832
40454
  Note,
40455
+ Picker$1,
39833
40456
  Picker,
39834
40457
  PickerColumn,
40458
+ PickerColumnCmp,
39835
40459
  PickerColumnOption,
39836
40460
  Popover,
39837
40461
  ProgressBar,