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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (288) 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-input.js +1 -1
  14. package/components/ion-item-option.js +1 -1
  15. package/components/ion-item.js +1 -1
  16. package/components/ion-loading.js +1 -1
  17. package/components/ion-menu-button.js +1 -1
  18. package/components/ion-menu.js +1 -1
  19. package/components/ion-modal.js +1 -1
  20. package/components/ion-picker-legacy-column.d.ts +11 -0
  21. package/components/ion-picker-legacy-column.js +4 -0
  22. package/components/ion-picker-legacy.d.ts +11 -0
  23. package/components/ion-picker-legacy.js +4 -0
  24. package/components/ion-popover.js +1 -1
  25. package/components/ion-progress-bar.js +1 -1
  26. package/components/ion-radio.js +1 -1
  27. package/components/ion-range.js +1 -1
  28. package/components/ion-refresher-content.js +1 -1
  29. package/components/ion-refresher.js +1 -1
  30. package/components/ion-reorder-group.js +1 -1
  31. package/components/ion-reorder.js +1 -1
  32. package/components/ion-ripple-effect.js +1 -1
  33. package/components/ion-router-link.js +1 -1
  34. package/components/ion-router-outlet.js +1 -1
  35. package/components/ion-row.js +1 -1
  36. package/components/ion-searchbar.js +1 -1
  37. package/components/ion-segment-button.js +1 -1
  38. package/components/ion-segment-content.js +1 -1
  39. package/components/ion-segment-view.js +1 -1
  40. package/components/ion-segment.js +1 -1
  41. package/components/ion-select-modal.js +1 -1
  42. package/components/ion-select-option.js +1 -1
  43. package/components/ion-select-popover.js +1 -1
  44. package/components/ion-select.js +1 -1
  45. package/components/ion-skeleton-text.js +1 -1
  46. package/components/ion-spinner.js +1 -1
  47. package/components/ion-split-pane.js +1 -1
  48. package/components/ion-tab-bar.js +1 -1
  49. package/components/ion-tab-button.js +1 -1
  50. package/components/ion-tab.js +1 -1
  51. package/components/ion-tabs.js +1 -1
  52. package/components/ion-text.js +1 -1
  53. package/components/ion-textarea.js +1 -1
  54. package/components/ion-thumbnail.js +1 -1
  55. package/components/ion-title.js +1 -1
  56. package/components/ion-toast.js +1 -1
  57. package/components/ion-toggle.js +1 -1
  58. package/components/ion-toolbar.js +1 -1
  59. package/components/p-0NRupjzW.js +4 -0
  60. package/components/{p-DpV-p5Xs.js → p-5bE_Wz4Y.js} +1 -1
  61. package/components/{p-r0aq7dpt.js → p-B60hm8Qv.js} +1 -1
  62. package/components/{p-XJWMAP8m.js → p-BLmJ0zRm.js} +1 -1
  63. package/components/{p-DhkITZ-y.js → p-BSEgsdFI.js} +1 -1
  64. package/components/p-Bth-EzJ0.js +4 -0
  65. package/components/{p-DEBD4LvH.js → p-C2lKgrXx.js} +1 -1
  66. package/components/p-CU5rbWAW.js +4 -0
  67. package/components/{p-Dz74mwlk.js → p-Cfx4M1Bn.js} +1 -1
  68. package/components/{p-Ck2wcXbv.js → p-DDWp95gH.js} +1 -1
  69. package/components/p-W9CZ2mWX.js +4 -0
  70. package/components/p-dhLYXa7A.js +4 -0
  71. package/components/{p-B8U2xbtx.js → p-nQi4oKcG.js} +1 -1
  72. package/components/{p-wk2QqrAo.js → p-rCa2eL0j.js} +1 -1
  73. package/components/p-uVRyUM3z.js +4 -0
  74. package/dist/cjs/index.cjs.js +2 -1
  75. package/dist/cjs/ion-action-sheet.cjs.entry.js +4 -8
  76. package/dist/cjs/ion-alert.cjs.entry.js +3 -7
  77. package/dist/cjs/ion-app_8.cjs.entry.js +9 -23
  78. package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
  79. package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
  80. package/dist/cjs/{ion-datetime.cjs.entry.js → ion-datetime_3.cjs.entry.js} +639 -1
  81. package/dist/cjs/ion-input.cjs.entry.js +4 -4
  82. package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
  83. package/dist/cjs/ion-loading.cjs.entry.js +3 -7
  84. package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
  85. package/dist/cjs/ion-modal.cjs.entry.js +5 -9
  86. package/dist/cjs/ion-popover.cjs.entry.js +3 -7
  87. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  88. package/dist/cjs/ion-radio_2.cjs.entry.js +3 -3
  89. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  90. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  91. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  92. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  93. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  94. package/dist/cjs/ion-searchbar.cjs.entry.js +27 -6
  95. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  96. package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
  97. package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
  98. package/dist/cjs/ion-select-modal.cjs.entry.js +2 -2
  99. package/dist/cjs/ion-select_3.cjs.entry.js +5 -36
  100. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  101. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  102. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  103. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  104. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  105. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  106. package/dist/cjs/ion-toast.cjs.entry.js +3 -3
  107. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  108. package/dist/cjs/ionic.cjs.js +1 -1
  109. package/dist/cjs/loader.cjs.js +1 -1
  110. package/dist/cjs/{overlays-DSmSrd_4.js → overlays-TbKsuC-K.js} +7 -26
  111. package/dist/collection/collection-manifest.json +9 -5
  112. package/dist/collection/components/action-sheet/action-sheet.js +4 -8
  113. package/dist/collection/components/alert/alert.js +3 -7
  114. package/dist/collection/components/input/input.js +8 -8
  115. package/dist/collection/components/loading/loading.js +3 -7
  116. package/dist/collection/components/modal/modal.js +5 -9
  117. package/dist/collection/components/picker-legacy/animations/ios.enter.js +27 -0
  118. package/dist/collection/components/picker-legacy/animations/ios.leave.js +23 -0
  119. package/dist/collection/components/picker-legacy/picker-interface.js +1 -0
  120. package/dist/collection/components/picker-legacy/picker.ios.css +300 -0
  121. package/dist/collection/components/picker-legacy/picker.js +890 -0
  122. package/dist/collection/components/picker-legacy/picker.md.css +287 -0
  123. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +231 -0
  124. package/dist/collection/components/picker-legacy-column/picker-column.js +422 -0
  125. package/dist/collection/components/picker-legacy-column/picker-column.md.css +222 -0
  126. package/dist/collection/components/picker-legacy-column/test/test.utils.js +43 -0
  127. package/dist/collection/components/popover/popover.js +3 -7
  128. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  129. package/dist/collection/components/radio/radio.js +4 -4
  130. package/dist/collection/components/range/range.js +3 -3
  131. package/dist/collection/components/refresher/refresher.js +1 -1
  132. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  133. package/dist/collection/components/reorder/reorder.js +1 -1
  134. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  135. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  136. package/dist/collection/components/router-link/router-link.js +2 -2
  137. package/dist/collection/components/router-outlet/router-outlet.js +5 -38
  138. package/dist/collection/components/row/row.js +1 -1
  139. package/dist/collection/components/searchbar/searchbar.js +31 -10
  140. package/dist/collection/components/segment/segment.js +2 -2
  141. package/dist/collection/components/segment-button/segment-button.js +2 -2
  142. package/dist/collection/components/segment-content/segment-content.js +1 -1
  143. package/dist/collection/components/segment-view/segment-view.js +2 -2
  144. package/dist/collection/components/select/select.js +2 -33
  145. package/dist/collection/components/select-modal/select-modal.js +1 -1
  146. package/dist/collection/components/select-option/select-option.js +1 -1
  147. package/dist/collection/components/select-popover/select-popover.js +1 -1
  148. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  149. package/dist/collection/components/spinner/spinner.js +1 -1
  150. package/dist/collection/components/split-pane/split-pane.js +2 -2
  151. package/dist/collection/components/tab/tab.js +2 -2
  152. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  153. package/dist/collection/components/tab-button/tab-button.js +2 -2
  154. package/dist/collection/components/tabs/tabs.js +1 -1
  155. package/dist/collection/components/text/text.js +2 -2
  156. package/dist/collection/components/textarea/textarea.js +2 -2
  157. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  158. package/dist/collection/components/title/title.js +2 -2
  159. package/dist/collection/components/toast/toast.js +2 -2
  160. package/dist/collection/components/toggle/toggle.js +3 -3
  161. package/dist/collection/components/toolbar/toolbar.js +2 -2
  162. package/dist/collection/index.js +1 -1
  163. package/dist/collection/utils/overlays.js +6 -25
  164. package/dist/docs.json +1170 -247
  165. package/dist/esm/{index-AlrZKoWR.js → index-DV3sJJW8.js} +1 -1
  166. package/dist/esm/index.js +1 -1
  167. package/dist/esm/ion-accordion_2.entry.js +1 -1
  168. package/dist/esm/ion-action-sheet.entry.js +4 -8
  169. package/dist/esm/ion-alert.entry.js +3 -7
  170. package/dist/esm/ion-app_8.entry.js +9 -23
  171. package/dist/esm/ion-avatar_3.entry.js +1 -1
  172. package/dist/esm/ion-back-button.entry.js +1 -1
  173. package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
  174. package/dist/esm/ion-col_3.entry.js +1 -1
  175. package/dist/esm/{ion-datetime.entry.js → ion-datetime_3.entry.js} +641 -5
  176. package/dist/esm/ion-fab_3.entry.js +1 -1
  177. package/dist/esm/ion-input-password-toggle.entry.js +1 -1
  178. package/dist/esm/ion-input.entry.js +5 -5
  179. package/dist/esm/ion-item_8.entry.js +3 -3
  180. package/dist/esm/ion-loading.entry.js +3 -7
  181. package/dist/esm/ion-menu_3.entry.js +2 -2
  182. package/dist/esm/ion-modal.entry.js +5 -9
  183. package/dist/esm/ion-popover.entry.js +3 -7
  184. package/dist/esm/ion-progress-bar.entry.js +1 -1
  185. package/dist/esm/ion-radio_2.entry.js +3 -3
  186. package/dist/esm/ion-range.entry.js +3 -3
  187. package/dist/esm/ion-refresher_2.entry.js +3 -3
  188. package/dist/esm/ion-reorder_2.entry.js +3 -3
  189. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  190. package/dist/esm/ion-route_4.entry.js +2 -2
  191. package/dist/esm/ion-searchbar.entry.js +28 -7
  192. package/dist/esm/ion-segment-content.entry.js +1 -1
  193. package/dist/esm/ion-segment-view.entry.js +2 -2
  194. package/dist/esm/ion-segment_2.entry.js +4 -4
  195. package/dist/esm/ion-select-modal.entry.js +2 -2
  196. package/dist/esm/ion-select_3.entry.js +7 -38
  197. package/dist/esm/ion-spinner.entry.js +1 -1
  198. package/dist/esm/ion-split-pane.entry.js +2 -2
  199. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  200. package/dist/esm/ion-tab_2.entry.js +3 -3
  201. package/dist/esm/ion-text.entry.js +2 -2
  202. package/dist/esm/ion-textarea.entry.js +2 -2
  203. package/dist/esm/ion-toast.entry.js +3 -3
  204. package/dist/esm/ion-toggle.entry.js +4 -4
  205. package/dist/esm/ionic.js +1 -1
  206. package/dist/esm/loader.js +1 -1
  207. package/dist/esm/{overlays-DLNOHWNc.js → overlays-TbiM4mdr.js} +7 -26
  208. package/dist/html.html-data.json +77 -6
  209. package/dist/ionic/index.esm.js +1 -1
  210. package/dist/ionic/ionic.esm.js +1 -1
  211. package/dist/ionic/p-00dbb17e.entry.js +4 -0
  212. package/dist/ionic/p-01f81ea5.entry.js +4 -0
  213. package/dist/ionic/p-0d005398.entry.js +4 -0
  214. package/dist/ionic/{p-fe4aa1db.entry.js → p-0fa9c382.entry.js} +1 -1
  215. package/dist/ionic/p-21eb76d5.entry.js +4 -0
  216. package/dist/ionic/p-27d30585.entry.js +4 -0
  217. package/dist/ionic/p-2bb2cb18.entry.js +4 -0
  218. package/dist/ionic/p-2f55dc1a.entry.js +4 -0
  219. package/dist/ionic/p-30bf9737.entry.js +4 -0
  220. package/dist/ionic/{p-80b44b3c.entry.js → p-3353c229.entry.js} +1 -1
  221. package/dist/ionic/{p-a7628bc7.entry.js → p-37e720da.entry.js} +1 -1
  222. package/dist/ionic/{p-9177f4ac.entry.js → p-390ca786.entry.js} +1 -1
  223. package/dist/ionic/{p-259d0d98.entry.js → p-3a126bca.entry.js} +1 -1
  224. package/dist/ionic/p-3a541154.entry.js +4 -0
  225. package/dist/ionic/{p-4502a274.entry.js → p-3a7d1e91.entry.js} +1 -1
  226. package/dist/ionic/{p-627fabd9.entry.js → p-3ae5f277.entry.js} +1 -1
  227. package/dist/ionic/{p-a5213260.entry.js → p-4858af1f.entry.js} +1 -1
  228. package/dist/ionic/p-485fda23.entry.js +4 -0
  229. package/dist/ionic/p-4baa5b82.entry.js +4 -0
  230. package/dist/ionic/p-4dc1c33c.entry.js +4 -0
  231. package/dist/ionic/{p-76e92a84.entry.js → p-5d1da0a2.entry.js} +1 -1
  232. package/dist/ionic/p-5fc7e542.entry.js +4 -0
  233. package/dist/ionic/{p-d2c7f046.entry.js → p-75dc25ba.entry.js} +1 -1
  234. package/dist/ionic/{p-b9ac1fe0.entry.js → p-84d5ce05.entry.js} +1 -1
  235. package/dist/ionic/{p-51cd1643.entry.js → p-874b4bd8.entry.js} +1 -1
  236. package/dist/ionic/{p-ef93ca92.entry.js → p-8eb8ee76.entry.js} +1 -1
  237. package/dist/ionic/{p-14095ba5.entry.js → p-8fce95d5.entry.js} +1 -1
  238. package/dist/ionic/{p-c93553d2.entry.js → p-94f2a736.entry.js} +1 -1
  239. package/dist/ionic/{p-db1b6738.entry.js → p-9a65ac7f.entry.js} +1 -1
  240. package/dist/ionic/{p-7a37b3ce.entry.js → p-9f1103ce.entry.js} +1 -1
  241. package/dist/ionic/{p-AlrZKoWR.js → p-DV3sJJW8.js} +1 -1
  242. package/dist/ionic/{p-441fbb13.entry.js → p-a21add2f.entry.js} +1 -1
  243. package/dist/ionic/{p-03aa786d.entry.js → p-aa5d6b8f.entry.js} +1 -1
  244. package/dist/ionic/{p-d8387b99.entry.js → p-c4d8641b.entry.js} +1 -1
  245. package/dist/ionic/{p-629e4703.entry.js → p-e0be05c5.entry.js} +1 -1
  246. package/dist/ionic/{p-2a6d6565.entry.js → p-e847a888.entry.js} +1 -1
  247. package/dist/ionic/p-ec090e0a.entry.js +4 -0
  248. package/dist/ionic/{p-b1599fca.entry.js → p-ef4c3bee.entry.js} +1 -1
  249. package/dist/ionic/{p-341032b3.entry.js → p-fabcce6c.entry.js} +1 -1
  250. package/dist/ionic/p-xOfi7-Zn.js +4 -0
  251. package/dist/types/components/input/input.d.ts +1 -1
  252. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +5 -0
  253. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +5 -0
  254. package/dist/types/components/picker-legacy/picker-interface.d.ts +52 -0
  255. package/dist/types/components/picker-legacy/picker.d.ts +158 -0
  256. package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
  257. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +9 -0
  258. package/dist/types/components/router-outlet/router-outlet.d.ts +0 -7
  259. package/dist/types/components/searchbar/searchbar.d.ts +2 -1
  260. package/dist/types/components/select/select.d.ts +0 -1
  261. package/dist/types/components.d.ts +282 -19
  262. package/dist/types/index.d.ts +1 -1
  263. package/dist/types/interface.d.ts +1 -0
  264. package/dist/types/utils/config.d.ts +8 -0
  265. package/dist/types/utils/overlays.d.ts +9 -11
  266. package/hydrate/index.js +817 -203
  267. package/hydrate/index.mjs +817 -203
  268. package/package.json +5 -37
  269. package/components/p-BpCi7xHq.js +0 -4
  270. package/components/p-CHzfYZbv.js +0 -4
  271. package/components/p-DH50pr9O.js +0 -4
  272. package/components/p-DmpBvltk.js +0 -4
  273. package/components/p-djQLE88P.js +0 -4
  274. package/dist/ionic/p-4621c387.entry.js +0 -4
  275. package/dist/ionic/p-4bb3eb60.entry.js +0 -4
  276. package/dist/ionic/p-5c3ec490.entry.js +0 -4
  277. package/dist/ionic/p-7aed7726.entry.js +0 -4
  278. package/dist/ionic/p-7ebd980c.entry.js +0 -4
  279. package/dist/ionic/p-8d624ee5.entry.js +0 -4
  280. package/dist/ionic/p-944c8939.entry.js +0 -4
  281. package/dist/ionic/p-9c6a5a8d.entry.js +0 -4
  282. package/dist/ionic/p-Cg5-OQYy.js +0 -4
  283. package/dist/ionic/p-a2e51c5d.entry.js +0 -4
  284. package/dist/ionic/p-b16be471.entry.js +0 -4
  285. package/dist/ionic/p-d8ac9eea.entry.js +0 -4
  286. package/dist/ionic/p-ed797c72.entry.js +0 -4
  287. package/dist/ionic/p-f09f9642.entry.js +0 -4
  288. package/dist/ionic/p-f1c06f82.entry.js +0 -4
package/hydrate/index.js CHANGED
@@ -8041,7 +8041,7 @@ const focusElementInOverlay = (hostToFocus, overlay) => {
8041
8041
  * Should NOT include: Toast
8042
8042
  */
8043
8043
  const trapKeyboardFocus = (ev, doc) => {
8044
- const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover');
8044
+ const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover');
8045
8045
  const target = ev.target;
8046
8046
  /**
8047
8047
  * If no active overlay, ignore this event.
@@ -8275,7 +8275,7 @@ const dismissOverlay = (doc, data, role, overlayTag, id) => {
8275
8275
  */
8276
8276
  const getOverlays = (doc, selector) => {
8277
8277
  if (selector === undefined) {
8278
- selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover,ion-toast';
8278
+ selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover,ion-toast';
8279
8279
  }
8280
8280
  return Array.from(doc.querySelectorAll(selector)).filter((c) => c.overlayIndex > 0);
8281
8281
  };
@@ -8337,29 +8337,6 @@ const setRootAriaHidden = (hidden = false) => {
8337
8337
  viewContainer.removeAttribute('aria-hidden');
8338
8338
  }
8339
8339
  };
8340
- /**
8341
- * Cleans up root `aria-hidden` and `backdrop-no-scroll` when
8342
- * an overlay is removed from the DOM without going through
8343
- * the `dismiss()` flow (e.g., when a framework unmounts the
8344
- * overlay during a route change).
8345
- *
8346
- * Should be called from an overlay's `disconnectedCallback`
8347
- * when the overlay was still presented at the time of removal.
8348
- */
8349
- const cleanupRootFocusTrapAccessibility = () => {
8350
- if (typeof document === 'undefined') {
8351
- return;
8352
- }
8353
- const remainingOverlays = getPresentedOverlays(document);
8354
- const hasRemainingLocking = remainingOverlays.some((o) => {
8355
- const el = o;
8356
- return el.tagName !== 'ION-TOAST' && el.focusTrap !== false && isBackdropAlwaysBlocking(el);
8357
- });
8358
- if (!hasRemainingLocking) {
8359
- setRootAriaHidden(false);
8360
- document.body.classList.remove(BACKDROP_NO_SCROLL);
8361
- }
8362
- };
8363
8340
  const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts) => {
8364
8341
  var _a, _b;
8365
8342
  if (overlay.presented) {
@@ -9616,7 +9593,7 @@ const createAnimation = (animationId) => {
9616
9593
  /**
9617
9594
  * iOS Action Sheet Enter Animation
9618
9595
  */
9619
- const iosEnterAnimation$5 = (baseEl) => {
9596
+ const iosEnterAnimation$6 = (baseEl) => {
9620
9597
  const baseAnimation = createAnimation();
9621
9598
  const backdropAnimation = createAnimation();
9622
9599
  const wrapperAnimation = createAnimation();
@@ -9640,7 +9617,7 @@ const iosEnterAnimation$5 = (baseEl) => {
9640
9617
  /**
9641
9618
  * iOS Action Sheet Leave Animation
9642
9619
  */
9643
- const iosLeaveAnimation$5 = (baseEl) => {
9620
+ const iosLeaveAnimation$6 = (baseEl) => {
9644
9621
  const baseAnimation = createAnimation();
9645
9622
  const backdropAnimation = createAnimation();
9646
9623
  const wrapperAnimation = createAnimation();
@@ -9796,7 +9773,7 @@ class ActionSheet {
9796
9773
  async present() {
9797
9774
  const unlock = await this.lockController.lock();
9798
9775
  await this.delegateController.attachViewToDom();
9799
- await present(this, 'actionSheetEnter', iosEnterAnimation$5, mdEnterAnimation$5);
9776
+ await present(this, 'actionSheetEnter', iosEnterAnimation$6, mdEnterAnimation$5);
9800
9777
  unlock();
9801
9778
  }
9802
9779
  /**
@@ -9813,7 +9790,7 @@ class ActionSheet {
9813
9790
  */
9814
9791
  async dismiss(data, role) {
9815
9792
  const unlock = await this.lockController.lock();
9816
- const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$5, mdLeaveAnimation$5);
9793
+ const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$6, mdLeaveAnimation$5);
9817
9794
  if (dismissed) {
9818
9795
  this.delegateController.removeViewFromDom();
9819
9796
  }
@@ -9982,10 +9959,6 @@ class ActionSheet {
9982
9959
  this.gesture = undefined;
9983
9960
  }
9984
9961
  this.triggerController.removeClickListener();
9985
- // Clean up aria-hidden if removed without dismiss() being called
9986
- if (this.presented) {
9987
- cleanupRootFocusTrapAccessibility();
9988
- }
9989
9962
  }
9990
9963
  componentWillLoad() {
9991
9964
  var _a;
@@ -10074,7 +10047,7 @@ class ActionSheet {
10074
10047
  if (isRadio) {
10075
10048
  htmlAttrs['aria-checked'] = isActiveRadio ? 'true' : 'false';
10076
10049
  }
10077
- return (hAsync("button", Object.assign({}, htmlAttrs, { role: isRadio ? 'radio' : undefined, type: "button", id: buttonId, class: Object.assign(Object.assign({}, buttonClass$2(b)), (isRadio && { 'action-sheet-selected': isActiveRadio })), onClick: () => {
10050
+ return (hAsync("button", Object.assign({}, htmlAttrs, { role: isRadio ? 'radio' : undefined, type: "button", id: buttonId, class: Object.assign(Object.assign({}, buttonClass$3(b)), (isRadio && { 'action-sheet-selected': isActiveRadio })), onClick: () => {
10078
10051
  if (isRadio) {
10079
10052
  this.selectRadioButton(b);
10080
10053
  }
@@ -10089,12 +10062,12 @@ class ActionSheet {
10089
10062
  const cancelButton = allButtons.find((b) => b.role === 'cancel');
10090
10063
  const buttons = allButtons.filter((b) => b.role !== 'cancel');
10091
10064
  const headerID = `action-sheet-${overlayIndex}-header`;
10092
- return (hAsync(Host, Object.assign({ key: '572ea2b7b7ffd902186a17f8063e46f4e7360633', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
10065
+ return (hAsync(Host, Object.assign({ key: '48b63b870f2816b4cad3c606f3d9956854cee79a', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
10093
10066
  zIndex: `${20000 + this.overlayIndex}`,
10094
- }, 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: '065f29ec2021e25fdde59707a42cbacd4f9319c6', tappable: this.backdropDismiss }), hAsync("div", { key: 'c92615ae5b292bfd223cee644c07f144f5f1d974', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'd4b30e289503203048420c35ac447dfff72c9183', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: '7fc9bcc2f32666e170cd2052ce2b359b3915da60', class: "action-sheet-container" }, hAsync("div", { key: 'd85ff13a6029bbe081053e818eeaa115327abdc1', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (hAsync("div", { key: 'c743f928302e20007219fbcdd1e5c2efa662d3d9', id: headerID, class: {
10067
+ }, 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: '41dd5781f139d26b3feea33ab387451aeafacd51', tappable: this.backdropDismiss }), hAsync("div", { key: 'f797c2657782e4e83adf90d2d796108e857a1fc0', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '8e74209321fc5e8712e3e293c91a6fa036ea45ab', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: 'c811860be2eed0b6c73fc2cc5a59cb94db2e8912', class: "action-sheet-container" }, hAsync("div", { key: 'd36ee14b70d73eb5cd69e0c57bc5cc31daf86ab3', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (hAsync("div", { key: '922695de191edc86451eed2552acc4f54993ea52', id: headerID, class: {
10095
10068
  'action-sheet-title': true,
10096
10069
  'action-sheet-has-sub-title': this.subHeader !== undefined,
10097
- } }, header, this.subHeader && hAsync("div", { key: '2cce9ba82989d893052cb6acf88677058a7b26ce', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (hAsync("div", { key: 'cf91d8a47838570e4c533694614bb6ad46f20ac7', class: "action-sheet-group action-sheet-group-cancel" }, hAsync("button", Object.assign({ key: '5ffc9e3d9f4db002a1112ed71977a407edb9f86e' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass$2(cancelButton), onClick: () => this.buttonClick(cancelButton) }), hAsync("span", { key: 'e0802b849fef77fd8158cbfee23adf7fc6e08d62', class: "action-sheet-button-inner" }, cancelButton.icon && (hAsync("ion-icon", { key: '991a60ebf6966e5815f849325c4e9c571a31fdeb', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && hAsync("ion-ripple-effect", { key: 'af533882239ba0d4e98691e38d517fbcee858a6d' })))))), hAsync("div", { key: '7107a8b235b00bf48486db95f66ac3ba53faf157', tabindex: "0", "aria-hidden": "true" })));
10070
+ } }, header, this.subHeader && hAsync("div", { key: 'a119d4a93668e829f7106f11cbbdd437310f3e80', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (hAsync("div", { key: '1d27f36d09bedd2e4c61fea9dd9d05f8f9271aef', class: "action-sheet-group action-sheet-group-cancel" }, hAsync("button", Object.assign({ key: 'ed13658176c54cc45808a54a0331c297430d9bc6' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass$3(cancelButton), onClick: () => this.buttonClick(cancelButton) }), hAsync("span", { key: '5208e3e3535b775a443cef6fb1decd790db69b0c', class: "action-sheet-button-inner" }, cancelButton.icon && (hAsync("ion-icon", { key: 'b7ba489e1ee50524a5b4af670eef787844a16286', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && hAsync("ion-ripple-effect", { key: 'b3f88898114855853259f0001def26b4bd6e4a98' })))))), hAsync("div", { key: '0dfd0fcdc633bf565990eaa06679608e749cf8f9', tabindex: "0", "aria-hidden": "true" })));
10098
10071
  }
10099
10072
  get el() { return getElement(this); }
10100
10073
  static get watchers() { return {
@@ -10143,7 +10116,7 @@ class ActionSheet {
10143
10116
  "$attrsToReflect$": []
10144
10117
  }; }
10145
10118
  }
10146
- const buttonClass$2 = (button) => {
10119
+ const buttonClass$3 = (button) => {
10147
10120
  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));
10148
10121
  };
10149
10122
 
@@ -10314,7 +10287,7 @@ class IonicSafeString {
10314
10287
  /**
10315
10288
  * iOS Alert Enter Animation
10316
10289
  */
10317
- const iosEnterAnimation$4 = (baseEl) => {
10290
+ const iosEnterAnimation$5 = (baseEl) => {
10318
10291
  const baseAnimation = createAnimation();
10319
10292
  const backdropAnimation = createAnimation();
10320
10293
  const wrapperAnimation = createAnimation();
@@ -10339,7 +10312,7 @@ const iosEnterAnimation$4 = (baseEl) => {
10339
10312
  /**
10340
10313
  * iOS Alert Leave Animation
10341
10314
  */
10342
- const iosLeaveAnimation$4 = (baseEl) => {
10315
+ const iosLeaveAnimation$5 = (baseEl) => {
10343
10316
  const baseAnimation = createAnimation();
10344
10317
  const backdropAnimation = createAnimation();
10345
10318
  const wrapperAnimation = createAnimation();
@@ -10615,10 +10588,6 @@ class Alert {
10615
10588
  this.gesture.destroy();
10616
10589
  this.gesture = undefined;
10617
10590
  }
10618
- // Clean up aria-hidden if removed without dismiss() being called
10619
- if (this.presented) {
10620
- cleanupRootFocusTrapAccessibility();
10621
- }
10622
10591
  (_a = this.buttonGroupResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
10623
10592
  this.buttonGroupResizeObserver = undefined;
10624
10593
  }
@@ -10658,7 +10627,7 @@ class Alert {
10658
10627
  async present() {
10659
10628
  const unlock = await this.lockController.lock();
10660
10629
  await this.delegateController.attachViewToDom();
10661
- await present(this, 'alertEnter', iosEnterAnimation$4, mdEnterAnimation$4).then(() => {
10630
+ await present(this, 'alertEnter', iosEnterAnimation$5, mdEnterAnimation$4).then(() => {
10662
10631
  var _a, _b;
10663
10632
  /**
10664
10633
  * Check if alert has only one button and no inputs.
@@ -10689,7 +10658,7 @@ class Alert {
10689
10658
  */
10690
10659
  async dismiss(data, role) {
10691
10660
  const unlock = await this.lockController.lock();
10692
- const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$4, mdLeaveAnimation$4);
10661
+ const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$5, mdLeaveAnimation$4);
10693
10662
  if (dismissed) {
10694
10663
  this.delegateController.removeViewFromDom();
10695
10664
  }
@@ -10874,7 +10843,7 @@ class Alert {
10874
10843
  'alert-button-group': true,
10875
10844
  'alert-button-group-vertical': buttons.length > 2 || this.isButtonGroupWrapped,
10876
10845
  };
10877
- return (hAsync("div", { class: alertButtonGroupClass, ref: (el) => (this.buttonGroupEl = el) }, 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))))));
10846
+ return (hAsync("div", { class: alertButtonGroupClass, ref: (el) => (this.buttonGroupEl = el) }, 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))))));
10878
10847
  }
10879
10848
  renderAlertMessage(msgId) {
10880
10849
  const { customHTMLEnabled, message } = this;
@@ -10897,9 +10866,9 @@ class Alert {
10897
10866
  * If neither are defined, do not set aria-labelledby.
10898
10867
  */
10899
10868
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
10900
- return (hAsync(Host, { key: '80642b44e08bcbe73f7a217578f89716827e2f7d', tabindex: "-1", style: {
10869
+ return (hAsync(Host, { key: '8d54ccd725ea634be080e67b56fa5efe498f496c', tabindex: "-1", style: {
10901
10870
  zIndex: `${20000 + overlayIndex}`,
10902
- }, 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: 'f7777dfd624d4a6253681bf36ab3b66389617fb5', tappable: this.backdropDismiss }), hAsync("div", { key: '2a3a03bae54ff66d7d182d41eda7158b5228fdbc', tabindex: "0", "aria-hidden": "true" }), hAsync("div", Object.assign({ key: '255051adf9deeb3d9b872906b8eaa4a93075325c', 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: '3039e1a0f37617b9cba644b259b62097401cf84b', class: "alert-head" }, header && (hAsync("h2", { key: 'b65dc3fa312a520d893d0710a28d72dfad17d020', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: 'e1f9bd496f2baaa28c7c0c6efb7b84591d1548de', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: 'ffa52291e21ee6a56bf11abbef87c698512ae477', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: '5db1dce6054f16ea8da7830754c740ace31eb9d1', tabindex: "0", "aria-hidden": "true" })));
10871
+ }, 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: '05a238583342285545587de9dce144a82d779193', tappable: this.backdropDismiss }), hAsync("div", { key: 'e52c53fd9845e66781af01b2a788a291b45a927c', tabindex: "0", "aria-hidden": "true" }), hAsync("div", Object.assign({ key: '8417e52eebca24ff436fab0703666db51072f980', 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: '5c560d4800b24d41961423718108b54be6cd6f91', class: "alert-head" }, header && (hAsync("h2", { key: '8637b64cd5125b2258115d1c11f3743113658608', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '7a4e61a02c29b16b336d8acaf6569b30de6fe71e', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: '30844b6a0a7e3dab46514cd548ecffa86dcd59cb', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: '39c824fee1e60ad8d6234c79d22ceb8bba8004af', tabindex: "0", "aria-hidden": "true" })));
10903
10872
  }
10904
10873
  get el() { return getElement(this); }
10905
10874
  static get watchers() { return {
@@ -10957,7 +10926,7 @@ const inputClass = (input) => {
10957
10926
  var _a, _b, _c;
10958
10927
  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() : ''));
10959
10928
  };
10960
- const buttonClass$1 = (button) => {
10929
+ const buttonClass$2 = (button) => {
10961
10930
  return Object.assign({ 'alert-button': true, 'ion-focusable': true, 'ion-activatable': true, [`alert-button-role-${button.role}`]: button.role !== undefined }, getClassMap(button.cssClass));
10962
10931
  };
10963
10932
 
@@ -19296,7 +19265,7 @@ class Input {
19296
19265
  /**
19297
19266
  * Whether auto correction should be enabled when the user is entering/editing the text value.
19298
19267
  */
19299
- this.autocorrect = false;
19268
+ this.autocorrect = 'off';
19300
19269
  /**
19301
19270
  * Sets the [`autofocus` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus) on the native input element.
19302
19271
  *
@@ -19753,7 +19722,7 @@ class Input {
19753
19722
  * TODO(FW-5592): Remove hasStartEndSlots condition
19754
19723
  */
19755
19724
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
19756
- return (hAsync(Host, { key: '6a05f61339d8045285d5820c2508296cc842c210', class: createColorClasses$1(this.color, {
19725
+ return (hAsync(Host, { key: '9ba9cf425b573d2ca9ac34455a0e6b8474c4de6d', class: createColorClasses$1(this.color, {
19757
19726
  [mode]: true,
19758
19727
  'has-value': hasValue,
19759
19728
  'has-focus': hasFocus,
@@ -19764,14 +19733,14 @@ class Input {
19764
19733
  'in-item': inItem,
19765
19734
  'in-item-color': hostContext('ion-item.ion-color', this.el),
19766
19735
  'input-disabled': disabled,
19767
- }) }, hAsync("label", { key: 'b546d66f53ea25082494e3a4cb0ce7532ee649d7', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '6af832f2b25fadee7a49adb999166dbc97565e2d', class: "native-wrapper", onClick: this.onLabelClick }, hAsync("slot", { key: 'e7a8895038a8d2503f646acfda20c6c1a99c2839', name: "start" }), hAsync("input", Object.assign({ key: 'ce85703e0434a6322bb4275a924e3cd91c79fa20', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect ? 'on' : 'off', autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-labelledby": this.getLabelledById() }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (hAsync("button", { key: '1e59589fc89a37d7830dc915b4c19d26a8f568c7', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
19736
+ }) }, hAsync("label", { key: '74b989d0aa5ab38f29f952519868f05119df6005', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '47f2b42e2f74ea866b4f871026e08ab375d7a726', class: "native-wrapper", onClick: this.onLabelClick }, hAsync("slot", { key: 'eaabe5a4a329a356cac3294d15c087d0d131fff2', name: "start" }), hAsync("input", Object.assign({ key: 'c821a984a8a9b7f96f30892c06d8deda093ff24b', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-labelledby": this.getLabelledById() }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (hAsync("button", { key: '62069c11016ee190dc46ab941372e1c4ad8a36ed', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
19768
19737
  /**
19769
19738
  * This prevents mobile browsers from
19770
19739
  * blurring the input when the clear
19771
19740
  * button is activated.
19772
19741
  */
19773
19742
  ev.preventDefault();
19774
- }, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '7d443c5061bf6436d3b77a2444676c679b3e62e4', "aria-hidden": "true", icon: clearIconData }))), hAsync("slot", { key: '5516f88d46886348217570ec1fadda0b79b63c01', name: "end" })), shouldRenderHighlight && hAsync("div", { key: '2a1fdb7e7c974654dfbb3afb4fbfd9204e9d9092', class: "input-highlight" })), this.renderBottomContent()));
19743
+ }, onClick: this.clearTextInput }, hAsync("ion-icon", { key: 'dd75a516d32110d85382b664c663bd41f177ce12', "aria-hidden": "true", icon: clearIconData }))), hAsync("slot", { key: '330d4b9389f2c62223a5ee24003e96ef3e6b2473', name: "end" })), shouldRenderHighlight && hAsync("div", { key: '8e442bed130ddc84976ab70fd3f8578d6bcc6316', class: "input-highlight" })), this.renderBottomContent()));
19775
19744
  }
19776
19745
  get el() { return getElement(this); }
19777
19746
  static get watchers() { return {
@@ -19799,7 +19768,7 @@ class Input {
19799
19768
  "color": [513],
19800
19769
  "autocapitalize": [1],
19801
19770
  "autocomplete": [1],
19802
- "autocorrect": [4],
19771
+ "autocorrect": [1],
19803
19772
  "autofocus": [4],
19804
19773
  "clearInput": [4, "clear-input"],
19805
19774
  "clearInputIcon": [1, "clear-input-icon"],
@@ -21803,7 +21772,7 @@ class ListHeader {
21803
21772
  /**
21804
21773
  * iOS Loading Enter Animation
21805
21774
  */
21806
- const iosEnterAnimation$3 = (baseEl) => {
21775
+ const iosEnterAnimation$4 = (baseEl) => {
21807
21776
  const baseAnimation = createAnimation();
21808
21777
  const backdropAnimation = createAnimation();
21809
21778
  const wrapperAnimation = createAnimation();
@@ -21828,7 +21797,7 @@ const iosEnterAnimation$3 = (baseEl) => {
21828
21797
  /**
21829
21798
  * iOS Loading Leave Animation
21830
21799
  */
21831
- const iosLeaveAnimation$3 = (baseEl) => {
21800
+ const iosLeaveAnimation$4 = (baseEl) => {
21832
21801
  const baseAnimation = createAnimation();
21833
21802
  const backdropAnimation = createAnimation();
21834
21803
  const wrapperAnimation = createAnimation();
@@ -22001,10 +21970,6 @@ class Loading {
22001
21970
  }
22002
21971
  disconnectedCallback() {
22003
21972
  this.triggerController.removeClickListener();
22004
- // Clean up aria-hidden if removed without dismiss() being called
22005
- if (this.presented) {
22006
- cleanupRootFocusTrapAccessibility();
22007
- }
22008
21973
  }
22009
21974
  /**
22010
21975
  * Present the loading overlay after it has been created.
@@ -22012,7 +21977,7 @@ class Loading {
22012
21977
  async present() {
22013
21978
  const unlock = await this.lockController.lock();
22014
21979
  await this.delegateController.attachViewToDom();
22015
- await present(this, 'loadingEnter', iosEnterAnimation$3, mdEnterAnimation$3);
21980
+ await present(this, 'loadingEnter', iosEnterAnimation$4, mdEnterAnimation$3);
22016
21981
  if (this.duration > 0) {
22017
21982
  this.durationTimeout = setTimeout(() => this.dismiss(), this.duration + 10);
22018
21983
  }
@@ -22035,7 +22000,7 @@ class Loading {
22035
22000
  if (this.durationTimeout) {
22036
22001
  clearTimeout(this.durationTimeout);
22037
22002
  }
22038
- const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$3, mdLeaveAnimation$3);
22003
+ const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$4, mdLeaveAnimation$3);
22039
22004
  if (dismissed) {
22040
22005
  this.delegateController.removeViewFromDom();
22041
22006
  }
@@ -22070,9 +22035,9 @@ class Loading {
22070
22035
  * Otherwise, don't set aria-labelledby.
22071
22036
  */
22072
22037
  const ariaLabelledBy = message !== undefined ? msgId : null;
22073
- return (hAsync(Host, Object.assign({ key: 'ab48bfcee8f7e3e33847a2f262fdc08b9ea804ca', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
22038
+ return (hAsync(Host, Object.assign({ key: 'f86ddbc600cb5c396b7de38fb5f49625388c3c3f', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
22074
22039
  zIndex: `${40000 + this.overlayIndex}`,
22075
- }, 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" })));
22040
+ }, 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" })));
22076
22041
  }
22077
22042
  get el() { return getElement(this); }
22078
22043
  static get watchers() { return {
@@ -24346,7 +24311,7 @@ const createEnterAnimation$1 = () => {
24346
24311
  /**
24347
24312
  * iOS Modal Enter Animation for the Card presentation style
24348
24313
  */
24349
- const iosEnterAnimation$2 = (baseEl, opts) => {
24314
+ const iosEnterAnimation$3 = (baseEl, opts) => {
24350
24315
  const { presentingEl, currentBreakpoint, expandToScroll } = opts;
24351
24316
  const root = getElementRoot(baseEl);
24352
24317
  const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
@@ -24439,7 +24404,7 @@ const createLeaveAnimation$1 = () => {
24439
24404
  /**
24440
24405
  * iOS Modal Leave Animation
24441
24406
  */
24442
- const iosLeaveAnimation$2 = (baseEl, opts, duration = 500) => {
24407
+ const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
24443
24408
  const { presentingEl, currentBreakpoint } = opts;
24444
24409
  const root = getElementRoot(baseEl);
24445
24410
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
@@ -25812,10 +25777,6 @@ class Modal {
25812
25777
  // Also called in dismiss() — intentional dual cleanup covers both
25813
25778
  // dismiss-then-remove and direct DOM removal without dismiss.
25814
25779
  this.cleanupSafeAreaOverrides();
25815
- // Clean up aria-hidden if removed without dismiss() being called
25816
- if (this.presented) {
25817
- cleanupRootFocusTrapAccessibility();
25818
- }
25819
25780
  }
25820
25781
  componentWillLoad() {
25821
25782
  var _a;
@@ -25992,7 +25953,7 @@ class Modal {
25992
25953
  this.statusBarStyle = await StatusBar.getStyle();
25993
25954
  setCardStatusBarDark();
25994
25955
  }
25995
- await present(this, 'modalEnter', iosEnterAnimation$2, mdEnterAnimation$2, {
25956
+ await present(this, 'modalEnter', iosEnterAnimation$3, mdEnterAnimation$2, {
25996
25957
  presentingEl: presentingElement,
25997
25958
  currentBreakpoint: this.initialBreakpoint,
25998
25959
  backdropBreakpoint: this.backdropBreakpoint,
@@ -26054,7 +26015,7 @@ class Modal {
26054
26015
  // All of the elements needed for the swipe gesture
26055
26016
  // should be in the DOM and referenced by now, except
26056
26017
  // for the presenting el
26057
- const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$2);
26018
+ const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$3);
26058
26019
  const ani = (this.animation = animationBuilder(el, {
26059
26020
  presentingEl: this.presentingElement,
26060
26021
  expandToScroll: this.expandToScroll,
@@ -26073,7 +26034,7 @@ class Modal {
26073
26034
  if (!wrapperEl || initialBreakpoint === undefined) {
26074
26035
  return;
26075
26036
  }
26076
- const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$2);
26037
+ const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$3);
26077
26038
  const ani = (this.animation = animationBuilder(this.el, {
26078
26039
  presentingEl: this.presentingElement,
26079
26040
  currentBreakpoint: initialBreakpoint,
@@ -26263,7 +26224,7 @@ class Modal {
26263
26224
  window.removeEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
26264
26225
  this.keyboardOpenCallback = undefined;
26265
26226
  }
26266
- const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$2, mdLeaveAnimation$2, {
26227
+ const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$3, mdLeaveAnimation$2, {
26267
26228
  presentingEl: presentingElement,
26268
26229
  currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
26269
26230
  backdropBreakpoint: this.backdropBreakpoint,
@@ -26695,20 +26656,20 @@ class Modal {
26695
26656
  const isCardModal = presentingElement !== undefined && mode === 'ios';
26696
26657
  const isHandleCycle = handleBehavior === 'cycle';
26697
26658
  const isSheetModalWithHandle = isSheetModal && showHandle;
26698
- return (hAsync(Host, Object.assign({ key: '1a8350cc8389b167ba9dadd2e629d531af5698cf', "no-router": true,
26659
+ return (hAsync(Host, Object.assign({ key: 'ab93657f4a5b4c97168d292b398d975e4b5b4af4', "no-router": true,
26699
26660
  // Allow the modal to be navigable when the handle is focusable
26700
26661
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
26701
26662
  zIndex: `${20000 + this.overlayIndex}`,
26702
- }, 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: 'f757adb2407482cf567dbbf689b5d3c44c59d9fb', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '960517dded3129f74f146b652e55d7fd21a163ae', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '590f49003dda88fee559d08dd844a666731f438f',
26663
+ }, 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: '5ba6315c7c8c64fa04c62f85fd493da5275b2cbd', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: 'a76c48d41c67f86c18a7481e980e6925e614f85d', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '3f6c61ba60b063592784d76a9594073b3bf210a9',
26703
26664
  /*
26704
26665
  role and aria-modal must be used on the
26705
26666
  same element. They must also be set inside the
26706
26667
  shadow DOM otherwise ion-button will not be highlighted
26707
26668
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
26708
26669
  */
26709
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '6b4e133da9d8bfbaa50158fcd5635e9868941072', class: "modal-handle",
26670
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '7f66b4fdb3dec61a2b9aec4e9dbacf5d013d637c', class: "modal-handle",
26710
26671
  // Prevents the handle from receiving keyboard focus when it does not cycle
26711
- 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: 'dbacacb0f285c4a712a65cb1597d3a332056d954', onSlotchange: this.onSlotChange }))));
26672
+ 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: '2dfaaebe3d0b2a46be1224c25f9ab89bf1744332', onSlotchange: this.onSlotChange }))));
26712
26673
  }
26713
26674
  get el() { return getElement(this); }
26714
26675
  static get watchers() { return {
@@ -27791,14 +27752,14 @@ class Note {
27791
27752
  }; }
27792
27753
  }
27793
27754
 
27794
- 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)))}`;
27755
+ 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)))}`;
27795
27756
 
27796
- 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%)}`;
27757
+ 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%)}`;
27797
27758
 
27798
27759
  /**
27799
27760
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
27800
27761
  */
27801
- class Picker {
27762
+ let Picker$1 = class Picker {
27802
27763
  constructor(hostRef) {
27803
27764
  registerInstance(this, hostRef);
27804
27765
  this.ionInputModeChange = createEvent(this, "ionInputModeChange", 7);
@@ -28264,8 +28225,8 @@ class Picker {
28264
28225
  }
28265
28226
  get el() { return getElement(this); }
28266
28227
  static get style() { return {
28267
- ios: pickerIosCss(),
28268
- md: pickerMdCss()
28228
+ ios: pickerIosCss$1(),
28229
+ md: pickerMdCss$1()
28269
28230
  }; }
28270
28231
  static get cmpMeta() { return {
28271
28232
  "$flags$": 297,
@@ -28277,7 +28238,322 @@ class Picker {
28277
28238
  "$lazyBundleId$": "-",
28278
28239
  "$attrsToReflect$": []
28279
28240
  }; }
28241
+ };
28242
+
28243
+ /**
28244
+ * iOS Picker Enter Animation
28245
+ */
28246
+ const iosEnterAnimation$2 = (baseEl) => {
28247
+ const baseAnimation = createAnimation();
28248
+ const backdropAnimation = createAnimation();
28249
+ const wrapperAnimation = createAnimation();
28250
+ backdropAnimation
28251
+ .addElement(baseEl.querySelector('ion-backdrop'))
28252
+ .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
28253
+ .beforeStyles({
28254
+ 'pointer-events': 'none',
28255
+ })
28256
+ .afterClearStyles(['pointer-events']);
28257
+ wrapperAnimation
28258
+ .addElement(baseEl.querySelector('.picker-wrapper'))
28259
+ .fromTo('transform', 'translateY(100%)', 'translateY(0%)');
28260
+ return baseAnimation
28261
+ .addElement(baseEl)
28262
+ .easing('cubic-bezier(.36,.66,.04,1)')
28263
+ .duration(400)
28264
+ .addAnimation([backdropAnimation, wrapperAnimation]);
28265
+ };
28266
+
28267
+ /**
28268
+ * iOS Picker Leave Animation
28269
+ */
28270
+ const iosLeaveAnimation$2 = (baseEl) => {
28271
+ const baseAnimation = createAnimation();
28272
+ const backdropAnimation = createAnimation();
28273
+ const wrapperAnimation = createAnimation();
28274
+ backdropAnimation
28275
+ .addElement(baseEl.querySelector('ion-backdrop'))
28276
+ .fromTo('opacity', 'var(--backdrop-opacity)', 0.01);
28277
+ wrapperAnimation
28278
+ .addElement(baseEl.querySelector('.picker-wrapper'))
28279
+ .fromTo('transform', 'translateY(0%)', 'translateY(100%)');
28280
+ return baseAnimation
28281
+ .addElement(baseEl)
28282
+ .easing('cubic-bezier(.36,.66,.04,1)')
28283
+ .duration(400)
28284
+ .addAnimation([backdropAnimation, wrapperAnimation]);
28285
+ };
28286
+
28287
+ 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}`;
28288
+
28289
+ 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}`;
28290
+
28291
+ // TODO(FW-2832): types
28292
+ /**
28293
+ * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
28294
+ */
28295
+ class Picker {
28296
+ constructor(hostRef) {
28297
+ registerInstance(this, hostRef);
28298
+ this.didPresent = createEvent(this, "ionPickerDidPresent", 7);
28299
+ this.willPresent = createEvent(this, "ionPickerWillPresent", 7);
28300
+ this.willDismiss = createEvent(this, "ionPickerWillDismiss", 7);
28301
+ this.didDismiss = createEvent(this, "ionPickerDidDismiss", 7);
28302
+ this.didPresentShorthand = createEvent(this, "didPresent", 7);
28303
+ this.willPresentShorthand = createEvent(this, "willPresent", 7);
28304
+ this.willDismissShorthand = createEvent(this, "willDismiss", 7);
28305
+ this.didDismissShorthand = createEvent(this, "didDismiss", 7);
28306
+ this.delegateController = createDelegateController(this);
28307
+ this.lockController = createLockController();
28308
+ this.triggerController = createTriggerController();
28309
+ this.presented = false;
28310
+ /** @internal */
28311
+ this.hasController = false;
28312
+ /**
28313
+ * If `true`, the keyboard will be automatically dismissed when the overlay is presented.
28314
+ */
28315
+ this.keyboardClose = true;
28316
+ /**
28317
+ * Array of buttons to be displayed at the top of the picker.
28318
+ */
28319
+ this.buttons = [];
28320
+ /**
28321
+ * Array of columns to be displayed in the picker.
28322
+ */
28323
+ this.columns = [];
28324
+ /**
28325
+ * Number of milliseconds to wait before dismissing the picker.
28326
+ */
28327
+ this.duration = 0;
28328
+ /**
28329
+ * If `true`, a backdrop will be displayed behind the picker.
28330
+ */
28331
+ this.showBackdrop = true;
28332
+ /**
28333
+ * If `true`, the picker will be dismissed when the backdrop is clicked.
28334
+ */
28335
+ this.backdropDismiss = true;
28336
+ /**
28337
+ * If `true`, the picker will animate.
28338
+ */
28339
+ this.animated = true;
28340
+ /**
28341
+ * If `true`, the picker will open. If `false`, the picker will close.
28342
+ * Use this if you need finer grained control over presentation, otherwise
28343
+ * just use the pickerController or the `trigger` property.
28344
+ * Note: `isOpen` will not automatically be set back to `false` when
28345
+ * the picker dismisses. You will need to do that in your code.
28346
+ */
28347
+ this.isOpen = false;
28348
+ this.onBackdropTap = () => {
28349
+ this.dismiss(undefined, BACKDROP);
28350
+ };
28351
+ this.dispatchCancelHandler = (ev) => {
28352
+ const role = ev.detail.role;
28353
+ if (isCancel(role)) {
28354
+ const cancelButton = this.buttons.find((b) => b.role === 'cancel');
28355
+ this.callButtonHandler(cancelButton);
28356
+ }
28357
+ };
28358
+ }
28359
+ onIsOpenChange(newValue, oldValue) {
28360
+ if (newValue === true && oldValue === false) {
28361
+ this.present();
28362
+ }
28363
+ else if (newValue === false && oldValue === true) {
28364
+ this.dismiss();
28365
+ }
28366
+ }
28367
+ triggerChanged() {
28368
+ const { trigger, el, triggerController } = this;
28369
+ if (trigger) {
28370
+ triggerController.addClickListener(el, trigger);
28371
+ }
28372
+ }
28373
+ connectedCallback() {
28374
+ prepareOverlay(this.el);
28375
+ this.triggerChanged();
28376
+ }
28377
+ disconnectedCallback() {
28378
+ this.triggerController.removeClickListener();
28379
+ }
28380
+ componentWillLoad() {
28381
+ var _a;
28382
+ if (!((_a = this.htmlAttributes) === null || _a === void 0 ? void 0 : _a.id)) {
28383
+ setOverlayId(this.el);
28384
+ }
28385
+ }
28386
+ componentDidLoad() {
28387
+ 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);
28388
+ /**
28389
+ * If picker was rendered with isOpen="true"
28390
+ * then we should open picker immediately.
28391
+ */
28392
+ if (this.isOpen === true) {
28393
+ raf(() => this.present());
28394
+ }
28395
+ /**
28396
+ * When binding values in frameworks such as Angular
28397
+ * it is possible for the value to be set after the Web Component
28398
+ * initializes but before the value watcher is set up in Stencil.
28399
+ * As a result, the watcher callback may not be fired.
28400
+ * We work around this by manually calling the watcher
28401
+ * callback when the component has loaded and the watcher
28402
+ * is configured.
28403
+ */
28404
+ this.triggerChanged();
28405
+ }
28406
+ /**
28407
+ * Present the picker overlay after it has been created.
28408
+ */
28409
+ async present() {
28410
+ const unlock = await this.lockController.lock();
28411
+ await this.delegateController.attachViewToDom();
28412
+ await present(this, 'pickerEnter', iosEnterAnimation$2, iosEnterAnimation$2, undefined);
28413
+ if (this.duration > 0) {
28414
+ this.durationTimeout = setTimeout(() => this.dismiss(), this.duration);
28415
+ }
28416
+ unlock();
28417
+ }
28418
+ /**
28419
+ * Dismiss the picker overlay after it has been presented.
28420
+ *
28421
+ * @param data Any data to emit in the dismiss events.
28422
+ * @param role The role of the element that is dismissing the picker.
28423
+ * This can be useful in a button handler for determining which button was
28424
+ * clicked to dismiss the picker.
28425
+ * Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
28426
+ */
28427
+ async dismiss(data, role) {
28428
+ const unlock = await this.lockController.lock();
28429
+ if (this.durationTimeout) {
28430
+ clearTimeout(this.durationTimeout);
28431
+ }
28432
+ const dismissed = await dismiss(this, data, role, 'pickerLeave', iosLeaveAnimation$2, iosLeaveAnimation$2);
28433
+ if (dismissed) {
28434
+ this.delegateController.removeViewFromDom();
28435
+ }
28436
+ unlock();
28437
+ return dismissed;
28438
+ }
28439
+ /**
28440
+ * Returns a promise that resolves when the picker did dismiss.
28441
+ */
28442
+ onDidDismiss() {
28443
+ return eventMethod(this.el, 'ionPickerDidDismiss');
28444
+ }
28445
+ /**
28446
+ * Returns a promise that resolves when the picker will dismiss.
28447
+ */
28448
+ onWillDismiss() {
28449
+ return eventMethod(this.el, 'ionPickerWillDismiss');
28450
+ }
28451
+ /**
28452
+ * Get the column that matches the specified name.
28453
+ *
28454
+ * @param name The name of the column.
28455
+ */
28456
+ getColumn(name) {
28457
+ return Promise.resolve(this.columns.find((column) => column.name === name));
28458
+ }
28459
+ async buttonClick(button) {
28460
+ const role = button.role;
28461
+ if (isCancel(role)) {
28462
+ return this.dismiss(undefined, role);
28463
+ }
28464
+ const shouldDismiss = await this.callButtonHandler(button);
28465
+ if (shouldDismiss) {
28466
+ return this.dismiss(this.getSelected(), button.role);
28467
+ }
28468
+ return Promise.resolve();
28469
+ }
28470
+ async callButtonHandler(button) {
28471
+ if (button) {
28472
+ // a handler has been provided, execute it
28473
+ // pass the handler the values from the inputs
28474
+ const rtn = await safeCall(button.handler, this.getSelected());
28475
+ if (rtn === false) {
28476
+ // if the return value of the handler is false then do not dismiss
28477
+ return false;
28478
+ }
28479
+ }
28480
+ return true;
28481
+ }
28482
+ getSelected() {
28483
+ const selected = {};
28484
+ this.columns.forEach((col, index) => {
28485
+ const selectedColumn = col.selectedIndex !== undefined ? col.options[col.selectedIndex] : undefined;
28486
+ selected[col.name] = {
28487
+ text: selectedColumn ? selectedColumn.text : undefined,
28488
+ value: selectedColumn ? selectedColumn.value : undefined,
28489
+ columnIndex: index,
28490
+ };
28491
+ });
28492
+ return selected;
28493
+ }
28494
+ render() {
28495
+ const { htmlAttributes } = this;
28496
+ const mode = getIonMode$1(this);
28497
+ return (hAsync(Host, Object.assign({ key: '80f66d33780d8a1352d24be9cb63a0cc03d01ab5', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
28498
+ zIndex: `${20000 + this.overlayIndex}`,
28499
+ }, class: Object.assign({ [mode]: true,
28500
+ // Used internally for styling
28501
+ [`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" })));
28502
+ }
28503
+ get el() { return getElement(this); }
28504
+ static get watchers() { return {
28505
+ "isOpen": [{
28506
+ "onIsOpenChange": 0
28507
+ }],
28508
+ "trigger": [{
28509
+ "triggerChanged": 0
28510
+ }]
28511
+ }; }
28512
+ static get style() { return {
28513
+ ios: pickerIosCss(),
28514
+ md: pickerMdCss()
28515
+ }; }
28516
+ static get cmpMeta() { return {
28517
+ "$flags$": 34,
28518
+ "$tagName$": "ion-picker-legacy",
28519
+ "$members$": {
28520
+ "overlayIndex": [2, "overlay-index"],
28521
+ "delegate": [16],
28522
+ "hasController": [4, "has-controller"],
28523
+ "keyboardClose": [4, "keyboard-close"],
28524
+ "enterAnimation": [16],
28525
+ "leaveAnimation": [16],
28526
+ "buttons": [16],
28527
+ "columns": [16],
28528
+ "cssClass": [1, "css-class"],
28529
+ "duration": [2],
28530
+ "showBackdrop": [4, "show-backdrop"],
28531
+ "backdropDismiss": [4, "backdrop-dismiss"],
28532
+ "animated": [4],
28533
+ "htmlAttributes": [16],
28534
+ "isOpen": [4, "is-open"],
28535
+ "trigger": [1],
28536
+ "presented": [32],
28537
+ "present": [64],
28538
+ "dismiss": [64],
28539
+ "onDidDismiss": [64],
28540
+ "onWillDismiss": [64],
28541
+ "getColumn": [64]
28542
+ },
28543
+ "$listeners$": undefined,
28544
+ "$lazyBundleId$": "-",
28545
+ "$attrsToReflect$": []
28546
+ }; }
28280
28547
  }
28548
+ const buttonWrapperClass = (button) => {
28549
+ return {
28550
+ [`picker-toolbar-${button.role}`]: button.role !== undefined,
28551
+ 'picker-toolbar-button': true,
28552
+ };
28553
+ };
28554
+ const buttonClass$1 = (button) => {
28555
+ return Object.assign({ 'picker-button': true, 'ion-activatable': true }, getClassMap(button.cssClass));
28556
+ };
28281
28557
 
28282
28558
  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)}}`;
28283
28559
 
@@ -28864,6 +29140,371 @@ class PickerColumn {
28864
29140
  }
28865
29141
  const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
28866
29142
 
29143
+ 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}}`;
29144
+
29145
+ 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)}`;
29146
+
29147
+ /**
29148
+ * @internal
29149
+ */
29150
+ class PickerColumnCmp {
29151
+ constructor(hostRef) {
29152
+ registerInstance(this, hostRef);
29153
+ this.ionPickerColChange = createEvent(this, "ionPickerColChange", 7);
29154
+ this.optHeight = 0;
29155
+ this.rotateFactor = 0;
29156
+ this.scaleFactor = 1;
29157
+ this.velocity = 0;
29158
+ this.y = 0;
29159
+ this.noAnimate = true;
29160
+ // `colDidChange` is a flag that gets set when the column is changed
29161
+ // dynamically. When this flag is set, the column will refresh
29162
+ // after the component re-renders to incorporate the new column data.
29163
+ // This is necessary because `this.refresh` queries for the option elements,
29164
+ // so it needs to wait for the latest elements to be available in the DOM.
29165
+ // Ex: column is created with 3 options. User updates the column data
29166
+ // to have 5 options. The column will still think it only has 3 options.
29167
+ this.colDidChange = false;
29168
+ }
29169
+ colChanged() {
29170
+ this.colDidChange = true;
29171
+ }
29172
+ async connectedCallback() {
29173
+ let pickerRotateFactor = 0;
29174
+ let pickerScaleFactor = 0.81;
29175
+ const mode = getIonMode$1(this);
29176
+ if (mode === 'ios') {
29177
+ pickerRotateFactor = -0.46;
29178
+ pickerScaleFactor = 1;
29179
+ }
29180
+ this.rotateFactor = pickerRotateFactor;
29181
+ this.scaleFactor = pickerScaleFactor;
29182
+ this.gesture = (await Promise.resolve().then(function () { return index; })).createGesture({
29183
+ el: this.el,
29184
+ gestureName: 'picker-swipe',
29185
+ gesturePriority: 100,
29186
+ threshold: 0,
29187
+ passive: false,
29188
+ onStart: (ev) => this.onStart(ev),
29189
+ onMove: (ev) => this.onMove(ev),
29190
+ onEnd: (ev) => this.onEnd(ev),
29191
+ });
29192
+ this.gesture.enable();
29193
+ // Options have not been initialized yet
29194
+ // Animation must be disabled through the `noAnimate` flag
29195
+ // Otherwise, the options will render
29196
+ // at the top of the column and transition down
29197
+ this.tmrId = setTimeout(() => {
29198
+ this.noAnimate = false;
29199
+ // After initialization, `refresh()` will be called
29200
+ // At this point, animation will be enabled. The options will
29201
+ // animate as they are being selected.
29202
+ this.refresh(true);
29203
+ }, 250);
29204
+ }
29205
+ componentDidLoad() {
29206
+ this.onDomChange();
29207
+ }
29208
+ componentDidUpdate() {
29209
+ // Options may have changed since last update.
29210
+ if (this.colDidChange) {
29211
+ // Animation must be disabled through the `onDomChange` parameter.
29212
+ // Otherwise, the recently added options will render
29213
+ // at the top of the column and transition down
29214
+ this.onDomChange(true, false);
29215
+ this.colDidChange = false;
29216
+ }
29217
+ }
29218
+ disconnectedCallback() {
29219
+ if (this.rafId !== undefined)
29220
+ cancelAnimationFrame(this.rafId);
29221
+ if (this.tmrId)
29222
+ clearTimeout(this.tmrId);
29223
+ if (this.gesture) {
29224
+ this.gesture.destroy();
29225
+ this.gesture = undefined;
29226
+ }
29227
+ }
29228
+ emitColChange() {
29229
+ this.ionPickerColChange.emit(this.col);
29230
+ }
29231
+ setSelected(selectedIndex, duration) {
29232
+ // if there is a selected index, then figure out it's y position
29233
+ // if there isn't a selected index, then just use the top y position
29234
+ const y = selectedIndex > -1 ? -(selectedIndex * this.optHeight) : 0;
29235
+ this.velocity = 0;
29236
+ // set what y position we're at
29237
+ if (this.rafId !== undefined)
29238
+ cancelAnimationFrame(this.rafId);
29239
+ this.update(y, duration, true);
29240
+ this.emitColChange();
29241
+ }
29242
+ update(y, duration, saveY) {
29243
+ if (!this.optsEl) {
29244
+ return;
29245
+ }
29246
+ // ensure we've got a good round number :)
29247
+ let translateY = 0;
29248
+ let translateZ = 0;
29249
+ const { col, rotateFactor } = this;
29250
+ const prevSelected = col.selectedIndex;
29251
+ const selectedIndex = (col.selectedIndex = this.indexForY(-y));
29252
+ const durationStr = duration === 0 ? '' : duration + 'ms';
29253
+ const scaleStr = `scale(${this.scaleFactor})`;
29254
+ const children = this.optsEl.children;
29255
+ for (let i = 0; i < children.length; i++) {
29256
+ const button = children[i];
29257
+ const opt = col.options[i];
29258
+ const optOffset = i * this.optHeight + y;
29259
+ let transform = '';
29260
+ if (rotateFactor !== 0) {
29261
+ const rotateX = optOffset * rotateFactor;
29262
+ if (Math.abs(rotateX) <= 90) {
29263
+ translateY = 0;
29264
+ translateZ = 90;
29265
+ transform = `rotateX(${rotateX}deg) `;
29266
+ }
29267
+ else {
29268
+ translateY = -9999;
29269
+ }
29270
+ }
29271
+ else {
29272
+ translateZ = 0;
29273
+ translateY = optOffset;
29274
+ }
29275
+ const selected = selectedIndex === i;
29276
+ transform += `translate3d(0px,${translateY}px,${translateZ}px) `;
29277
+ if (this.scaleFactor !== 1 && !selected) {
29278
+ transform += scaleStr;
29279
+ }
29280
+ // Update transition duration
29281
+ if (this.noAnimate) {
29282
+ opt.duration = 0;
29283
+ button.style.transitionDuration = '';
29284
+ }
29285
+ else if (duration !== opt.duration) {
29286
+ opt.duration = duration;
29287
+ button.style.transitionDuration = durationStr;
29288
+ }
29289
+ // Update transform
29290
+ if (transform !== opt.transform) {
29291
+ opt.transform = transform;
29292
+ }
29293
+ button.style.transform = transform;
29294
+ /**
29295
+ * Ensure that the select column
29296
+ * item has the selected class
29297
+ */
29298
+ opt.selected = selected;
29299
+ if (selected) {
29300
+ button.classList.add(PICKER_OPT_SELECTED);
29301
+ }
29302
+ else {
29303
+ button.classList.remove(PICKER_OPT_SELECTED);
29304
+ }
29305
+ }
29306
+ this.col.prevSelected = prevSelected;
29307
+ if (saveY) {
29308
+ this.y = y;
29309
+ }
29310
+ if (this.lastIndex !== selectedIndex) {
29311
+ // have not set a last index yet
29312
+ hapticSelectionChanged();
29313
+ this.lastIndex = selectedIndex;
29314
+ }
29315
+ }
29316
+ decelerate() {
29317
+ if (this.velocity !== 0) {
29318
+ // still decelerating
29319
+ this.velocity *= DECELERATION_FRICTION;
29320
+ // do not let it go slower than a velocity of 1
29321
+ this.velocity = this.velocity > 0 ? Math.max(this.velocity, 1) : Math.min(this.velocity, -1);
29322
+ let y = this.y + this.velocity;
29323
+ if (y > this.minY) {
29324
+ // whoops, it's trying to scroll up farther than the options we have!
29325
+ y = this.minY;
29326
+ this.velocity = 0;
29327
+ }
29328
+ else if (y < this.maxY) {
29329
+ // gahh, it's trying to scroll down farther than we can!
29330
+ y = this.maxY;
29331
+ this.velocity = 0;
29332
+ }
29333
+ this.update(y, 0, true);
29334
+ const notLockedIn = Math.round(y) % this.optHeight !== 0 || Math.abs(this.velocity) > 1;
29335
+ if (notLockedIn) {
29336
+ // isn't locked in yet, keep decelerating until it is
29337
+ this.rafId = requestAnimationFrame(() => this.decelerate());
29338
+ }
29339
+ else {
29340
+ this.velocity = 0;
29341
+ this.emitColChange();
29342
+ hapticSelectionEnd();
29343
+ }
29344
+ }
29345
+ else if (this.y % this.optHeight !== 0) {
29346
+ // needs to still get locked into a position so options line up
29347
+ const currentPos = Math.abs(this.y % this.optHeight);
29348
+ // create a velocity in the direction it needs to scroll
29349
+ this.velocity = currentPos > this.optHeight / 2 ? 1 : -1;
29350
+ this.decelerate();
29351
+ }
29352
+ }
29353
+ indexForY(y) {
29354
+ return Math.min(Math.max(Math.abs(Math.round(y / this.optHeight)), 0), this.col.options.length - 1);
29355
+ }
29356
+ onStart(detail) {
29357
+ // We have to prevent default in order to block scrolling under the picker
29358
+ // but we DO NOT have to stop propagation, since we still want
29359
+ // some "click" events to capture
29360
+ if (detail.event.cancelable) {
29361
+ detail.event.preventDefault();
29362
+ }
29363
+ detail.event.stopPropagation();
29364
+ hapticSelectionStart();
29365
+ // reset everything
29366
+ if (this.rafId !== undefined)
29367
+ cancelAnimationFrame(this.rafId);
29368
+ const options = this.col.options;
29369
+ let minY = options.length - 1;
29370
+ let maxY = 0;
29371
+ for (let i = 0; i < options.length; i++) {
29372
+ if (!options[i].disabled) {
29373
+ minY = Math.min(minY, i);
29374
+ maxY = Math.max(maxY, i);
29375
+ }
29376
+ }
29377
+ this.minY = -(minY * this.optHeight);
29378
+ this.maxY = -(maxY * this.optHeight);
29379
+ }
29380
+ onMove(detail) {
29381
+ if (detail.event.cancelable) {
29382
+ detail.event.preventDefault();
29383
+ }
29384
+ detail.event.stopPropagation();
29385
+ // update the scroll position relative to pointer start position
29386
+ let y = this.y + detail.deltaY;
29387
+ if (y > this.minY) {
29388
+ // scrolling up higher than scroll area
29389
+ y = Math.pow(y, 0.8);
29390
+ this.bounceFrom = y;
29391
+ }
29392
+ else if (y < this.maxY) {
29393
+ // scrolling down below scroll area
29394
+ y += Math.pow(this.maxY - y, 0.9);
29395
+ this.bounceFrom = y;
29396
+ }
29397
+ else {
29398
+ this.bounceFrom = 0;
29399
+ }
29400
+ this.update(y, 0, false);
29401
+ }
29402
+ onEnd(detail) {
29403
+ if (this.bounceFrom > 0) {
29404
+ // bounce back up
29405
+ this.update(this.minY, 100, true);
29406
+ this.emitColChange();
29407
+ return;
29408
+ }
29409
+ else if (this.bounceFrom < 0) {
29410
+ // bounce back down
29411
+ this.update(this.maxY, 100, true);
29412
+ this.emitColChange();
29413
+ return;
29414
+ }
29415
+ this.velocity = clamp(-MAX_PICKER_SPEED, detail.velocityY * 23, MAX_PICKER_SPEED);
29416
+ if (this.velocity === 0 && detail.deltaY === 0) {
29417
+ const opt = detail.event.target.closest('.picker-opt');
29418
+ if (opt === null || opt === void 0 ? void 0 : opt.hasAttribute('opt-index')) {
29419
+ this.setSelected(parseInt(opt.getAttribute('opt-index'), 10), TRANSITION_DURATION);
29420
+ }
29421
+ }
29422
+ else {
29423
+ this.y += detail.deltaY;
29424
+ if (Math.abs(detail.velocityY) < 0.05) {
29425
+ const isScrollingUp = detail.deltaY > 0;
29426
+ const optHeightFraction = (Math.abs(this.y) % this.optHeight) / this.optHeight;
29427
+ if (isScrollingUp && optHeightFraction > 0.5) {
29428
+ this.velocity = Math.abs(this.velocity) * -1;
29429
+ }
29430
+ else if (!isScrollingUp && optHeightFraction <= 0.5) {
29431
+ this.velocity = Math.abs(this.velocity);
29432
+ }
29433
+ }
29434
+ this.decelerate();
29435
+ }
29436
+ }
29437
+ refresh(forceRefresh, animated) {
29438
+ var _a;
29439
+ let min = this.col.options.length - 1;
29440
+ let max = 0;
29441
+ const options = this.col.options;
29442
+ for (let i = 0; i < options.length; i++) {
29443
+ if (!options[i].disabled) {
29444
+ min = Math.min(min, i);
29445
+ max = Math.max(max, i);
29446
+ }
29447
+ }
29448
+ /**
29449
+ * Only update selected value if column has a
29450
+ * velocity of 0. If it does not, then the
29451
+ * column is animating might land on
29452
+ * a value different than the value at
29453
+ * selectedIndex
29454
+ */
29455
+ if (this.velocity !== 0) {
29456
+ return;
29457
+ }
29458
+ const selectedIndex = clamp(min, (_a = this.col.selectedIndex) !== null && _a !== void 0 ? _a : 0, max);
29459
+ if (this.col.prevSelected !== selectedIndex || forceRefresh) {
29460
+ const y = selectedIndex * this.optHeight * -1;
29461
+ const duration = animated ? TRANSITION_DURATION : 0;
29462
+ this.velocity = 0;
29463
+ this.update(y, duration, true);
29464
+ }
29465
+ }
29466
+ onDomChange(forceRefresh, animated) {
29467
+ const colEl = this.optsEl;
29468
+ if (colEl) {
29469
+ // DOM READ
29470
+ // We perfom a DOM read over a rendered item, this needs to happen after the first render or after the column has changed
29471
+ this.optHeight = colEl.firstElementChild ? colEl.firstElementChild.clientHeight : 0;
29472
+ }
29473
+ this.refresh(forceRefresh, animated);
29474
+ }
29475
+ render() {
29476
+ const col = this.col;
29477
+ const mode = getIonMode$1(this);
29478
+ 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: {
29479
+ 'max-width': this.col.columnWidth,
29480
+ } }, 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))));
29481
+ }
29482
+ get el() { return getElement(this); }
29483
+ static get watchers() { return {
29484
+ "col": [{
29485
+ "colChanged": 0
29486
+ }]
29487
+ }; }
29488
+ static get style() { return {
29489
+ ios: pickerColumnIosCss(),
29490
+ md: pickerColumnMdCss()
29491
+ }; }
29492
+ static get cmpMeta() { return {
29493
+ "$flags$": 32,
29494
+ "$tagName$": "ion-picker-legacy-column",
29495
+ "$members$": {
29496
+ "col": [16]
29497
+ },
29498
+ "$listeners$": undefined,
29499
+ "$lazyBundleId$": "-",
29500
+ "$attrsToReflect$": []
29501
+ }; }
29502
+ }
29503
+ const PICKER_OPT_SELECTED = 'picker-opt-selected';
29504
+ const DECELERATION_FRICTION = 0.97;
29505
+ const MAX_PICKER_SPEED = 90;
29506
+ const TRANSITION_DURATION = 150;
29507
+
28867
29508
  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}`;
28868
29509
 
28869
29510
  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),:host([part~=active]){color:var(--ion-color-base)}`;
@@ -30285,10 +30926,6 @@ class Popover {
30285
30926
  this.headerResizeObserver.disconnect();
30286
30927
  this.headerResizeObserver = undefined;
30287
30928
  }
30288
- // Clean up aria-hidden if removed without dismiss() being called
30289
- if (this.presented) {
30290
- cleanupRootFocusTrapAccessibility();
30291
- }
30292
30929
  }
30293
30930
  componentWillLoad() {
30294
30931
  var _a, _b;
@@ -30527,9 +31164,9 @@ class Popover {
30527
31164
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
30528
31165
  const desktop = isPlatform('desktop');
30529
31166
  const enableArrow = arrow && !parentPopover;
30530
- return (hAsync(Host, Object.assign({ key: 'd7f3aa2c2fa93a93585e3eda9e4a6d0daaa541be', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
31167
+ return (hAsync(Host, Object.assign({ key: '2edd8333c630efbce59071f8a383e4326e928dbc', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
30531
31168
  zIndex: `${20000 + this.overlayIndex}`,
30532
- }, 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' })))));
31169
+ }, 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' })))));
30533
31170
  }
30534
31171
  get el() { return getElement(this); }
30535
31172
  static get watchers() { return {
@@ -30640,7 +31277,7 @@ class ProgressBar {
30640
31277
  const mode = getIonMode$1(this);
30641
31278
  // If the progress is displayed as a solid bar.
30642
31279
  const progressSolid = buffer === 1;
30643
- return (hAsync(Host, { key: 'd7476268ce53b6a4f425b7bc9f01d6935eb411c3', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
31280
+ return (hAsync(Host, { key: 'c859e48f3d24a458239e36d925e5dc003ed07c6b', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
30644
31281
  [mode]: true,
30645
31282
  [`progress-bar-${type}`]: true,
30646
31283
  'progress-paused': paused,
@@ -30825,7 +31462,7 @@ class Radio {
30825
31462
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
30826
31463
  const mode = getIonMode$1(this);
30827
31464
  const inItem = hostContext('ion-item', el);
30828
- return (hAsync(Host, { key: 'd9425b252ed38086420d91d5c680421d121c99f4', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
31465
+ return (hAsync(Host, { key: 'af5dc59ed528150872e907ed1036e3e2decba939', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
30829
31466
  [mode]: true,
30830
31467
  'in-item': inItem,
30831
31468
  'radio-checked': checked,
@@ -30836,10 +31473,10 @@ class Radio {
30836
31473
  // Focus and active styling should not apply when the radio is in an item
30837
31474
  'ion-activatable': !inItem,
30838
31475
  'ion-focusable': !inItem,
30839
- }), 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: {
31476
+ }), 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: {
30840
31477
  'label-text-wrapper': true,
30841
31478
  'label-text-wrapper-hidden': !hasLabel,
30842
- }, part: "label" }, hAsync("slot", { key: '589d7c1b45a1918b5811663daa8f30788e7729f8' })), hAsync("div", { key: '0f61a17b195582d6c9a0c597cd40e6629256e479', class: "native-wrapper" }, this.renderRadioControl()))));
31479
+ }, part: "label" }, hAsync("slot", { key: '0a4613d29aa783d1882cf889377f7e4fd4fea51d' })), hAsync("div", { key: '191faea79dc4cd8befc4b873f5bd9f5af8ca2acc', class: "native-wrapper" }, this.renderRadioControl()))));
30843
31480
  }
30844
31481
  get el() { return getElement(this); }
30845
31482
  static get watchers() { return {
@@ -30858,7 +31495,7 @@ class Radio {
30858
31495
  "color": [513],
30859
31496
  "name": [1],
30860
31497
  "disabled": [4],
30861
- "value": [520],
31498
+ "value": [8],
30862
31499
  "labelPlacement": [1, "label-placement"],
30863
31500
  "justify": [1],
30864
31501
  "alignment": [1],
@@ -30869,7 +31506,7 @@ class Radio {
30869
31506
  },
30870
31507
  "$listeners$": undefined,
30871
31508
  "$lazyBundleId$": "-",
30872
- "$attrsToReflect$": [["color", "color"], ["value", "value"]]
31509
+ "$attrsToReflect$": [["color", "color"]]
30873
31510
  }; }
30874
31511
  }
30875
31512
  let radioButtonIds = 0;
@@ -31934,7 +32571,7 @@ class Range {
31934
32571
  const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
31935
32572
  const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
31936
32573
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
31937
- return (hAsync(Host, { key: 'cd26f0187c0d37c7eb9df923f75c8a0f57c19ab6', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
32574
+ return (hAsync(Host, { key: 'f8063d1234fb113fe55a7902845dd4b4da8b1edb', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
31938
32575
  [mode]: true,
31939
32576
  'in-item': inItem,
31940
32577
  'range-disabled': disabled,
@@ -31948,10 +32585,10 @@ class Range {
31948
32585
  'range-item-end-adjustment': needsEndAdjustment,
31949
32586
  'range-value-min': valueAtMin,
31950
32587
  'range-value-max': valueAtMax,
31951
- }) }, hAsync("label", { key: '90224fd24b0e625a17e7972feff73a0ac31e093d', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'e07b9fa10983249c425eec26b741f0f628daf2b2', class: {
32588
+ }) }, hAsync("label", { key: 'beead65ab01e3b18e4be59c0ee8ac6ebf32aad7c', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '03633c689d9d2e4c50a2131bcd560329df49e314', class: {
31952
32589
  'label-text-wrapper': true,
31953
32590
  'label-text-wrapper-hidden': !hasLabel,
31954
- }, 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" })))));
32591
+ }, 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" })))));
31955
32592
  }
31956
32593
  get el() { return getElement(this); }
31957
32594
  static get watchers() { return {
@@ -33022,7 +33659,7 @@ class Refresher {
33022
33659
  }
33023
33660
  render() {
33024
33661
  const mode = getIonMode$1(this);
33025
- return (hAsync(Host, { key: '1dd475095f76491206644828cf89fc6d2ec276d1', slot: "fixed", class: {
33662
+ return (hAsync(Host, { key: '80fa313b0d77161680836bdd6aa334d02c549b41', slot: "fixed", class: {
33026
33663
  [mode]: true,
33027
33664
  // Used internally for styling
33028
33665
  [`refresher-${mode}`]: true,
@@ -33248,7 +33885,7 @@ class RefresherContent {
33248
33885
  const pullingIcon = this.pullingIcon;
33249
33886
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
33250
33887
  const mode = getIonMode$1(this);
33251
- 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())));
33888
+ 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())));
33252
33889
  }
33253
33890
  get el() { return getElement(this); }
33254
33891
  static get cmpMeta() { return {
@@ -33289,7 +33926,7 @@ class Reorder {
33289
33926
  render() {
33290
33927
  const mode = getIonMode$1(this);
33291
33928
  const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
33292
- 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" }))));
33929
+ 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" }))));
33293
33930
  }
33294
33931
  get el() { return getElement(this); }
33295
33932
  static get style() { return {
@@ -33560,7 +34197,7 @@ class ReorderGroup {
33560
34197
  }
33561
34198
  render() {
33562
34199
  const mode = getIonMode$1(this);
33563
- return (hAsync(Host, { key: '3afdc6a6c81bba2f88ea523d4b73c6fccff1b9ec', class: {
34200
+ return (hAsync(Host, { key: '9527bbdedaab63d31f562c874a7332ea60c4b47b', class: {
33564
34201
  [mode]: true,
33565
34202
  'reorder-enabled': !this.disabled,
33566
34203
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -33678,7 +34315,7 @@ class RippleEffect {
33678
34315
  }
33679
34316
  render() {
33680
34317
  const mode = getIonMode$1(this);
33681
- return (hAsync(Host, { key: '5e88b5225414e29883256c86f111ded5bdf2ef91', role: "presentation", class: {
34318
+ return (hAsync(Host, { key: '3b59cbb44741569a7350f9638b4392add673b6f1', role: "presentation", class: {
33682
34319
  [mode]: true,
33683
34320
  unbounded: this.unbounded,
33684
34321
  } }));
@@ -34812,10 +35449,10 @@ class RouterLink {
34812
35449
  rel: this.rel,
34813
35450
  target: this.target,
34814
35451
  };
34815
- return (hAsync(Host, { key: '6d5fdfa0dcf1eb216173bcc53f1f4d625f3ec551', onClick: this.onClick, class: createColorClasses$1(this.color, {
35452
+ return (hAsync(Host, { key: '8372835161d507c7b821b7536c55f912eb6ce704', onClick: this.onClick, class: createColorClasses$1(this.color, {
34816
35453
  [mode]: true,
34817
35454
  'ion-activatable': true,
34818
- }) }, hAsync("a", Object.assign({ key: '85796b7b48581fe9830ba1102dad7d1069de4e17' }, attrs), hAsync("slot", { key: '0f93b0da3ec4ae8f50f624f9e7bed87d13d712d0' }))));
35455
+ }) }, hAsync("a", Object.assign({ key: '315966e14a17760f3f64197e8315200039787897' }, attrs), hAsync("slot", { key: '95fc1697b884225e85e647dddcaa8f4af8b9a979' }))));
34819
35456
  }
34820
35457
  static get style() { return routerLinkCss(); }
34821
35458
  static get cmpMeta() { return {
@@ -34854,11 +35491,10 @@ class RouterOutlet {
34854
35491
  */
34855
35492
  this.animated = true;
34856
35493
  }
34857
- swipeGestureChanged() {
34858
- this.updateGestureEnabled();
34859
- }
34860
35494
  swipeHandlerChanged() {
34861
- this.updateGestureEnabled();
35495
+ if (this.gesture) {
35496
+ this.gesture.enable(this.swipeHandler !== undefined);
35497
+ }
34862
35498
  }
34863
35499
  async connectedCallback() {
34864
35500
  const onStart = () => {
@@ -34898,21 +35534,11 @@ class RouterOutlet {
34898
35534
  this.gestureOrAnimationInProgress = false;
34899
35535
  }
34900
35536
  });
34901
- if (this.swipeGesture === undefined) {
34902
- this.swipeGesture = config.getBoolean('swipeBackEnabled', this.mode === 'ios');
34903
- }
34904
- else {
34905
- this.updateGestureEnabled();
34906
- }
35537
+ this.swipeHandlerChanged();
34907
35538
  }
34908
35539
  componentWillLoad() {
34909
35540
  this.ionNavWillLoad.emit();
34910
35541
  }
34911
- updateGestureEnabled() {
34912
- if (this.gesture) {
34913
- this.gesture.enable(this.swipeHandler !== undefined && this.swipeGesture === true);
34914
- }
34915
- }
34916
35542
  disconnectedCallback() {
34917
35543
  if (this.gesture) {
34918
35544
  this.gesture.destroy();
@@ -35023,13 +35649,10 @@ class RouterOutlet {
35023
35649
  return true;
35024
35650
  }
35025
35651
  render() {
35026
- return hAsync("slot", { key: 'ce09e6fbba7b0a2276cdde5245bb37c9a162c1c7' });
35652
+ return hAsync("slot", { key: '386c41745b61daba161cf75063da97fe29ba36cb' });
35027
35653
  }
35028
35654
  get el() { return getElement(this); }
35029
35655
  static get watchers() { return {
35030
- "swipeGesture": [{
35031
- "swipeGestureChanged": 0
35032
- }],
35033
35656
  "swipeHandler": [{
35034
35657
  "swipeHandlerChanged": 0
35035
35658
  }]
@@ -35043,7 +35666,6 @@ class RouterOutlet {
35043
35666
  "delegate": [16],
35044
35667
  "animated": [4],
35045
35668
  "animation": [16],
35046
- "swipeGesture": [1028, "swipe-gesture"],
35047
35669
  "swipeHandler": [16],
35048
35670
  "commit": [64],
35049
35671
  "setRouteId": [64],
@@ -35062,7 +35684,7 @@ class Row {
35062
35684
  registerInstance(this, hostRef);
35063
35685
  }
35064
35686
  render() {
35065
- return (hAsync(Host, { key: 'a9066661fff12baaf3e80b2e8c08591af72fe5b8', class: getIonMode$1(this) }, hAsync("slot", { key: '62b103af46d3a5ec9c146019ae300b68a4ae867a' })));
35687
+ return (hAsync(Host, { key: '8ba906a8cbea060a79ed658c9bf34906f0c11d38', class: getIonMode$1(this) }, hAsync("slot", { key: 'd1009176f45b588fa52c7d9eb336f3c6d3214bb8' })));
35066
35688
  }
35067
35689
  static get style() { return rowCss(); }
35068
35690
  static get cmpMeta() { return {
@@ -35114,7 +35736,7 @@ class Searchbar {
35114
35736
  /**
35115
35737
  * Set the input's autocorrect property.
35116
35738
  */
35117
- this.autocorrect = false;
35739
+ this.autocorrect = 'off';
35118
35740
  /**
35119
35741
  * Set the cancel button icon. Only applies to `md` mode.
35120
35742
  * Defaults to `arrow-back-sharp`.
@@ -35319,12 +35941,14 @@ class Searchbar {
35319
35941
  }, 300);
35320
35942
  }
35321
35943
  disconnectedCallback() {
35944
+ var _a;
35322
35945
  if (this.loadTimeout) {
35323
35946
  clearTimeout(this.loadTimeout);
35324
35947
  }
35325
35948
  if (this.clearTimeout) {
35326
35949
  clearTimeout(this.clearTimeout);
35327
35950
  }
35951
+ (_a = this.searchIconResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
35328
35952
  }
35329
35953
  emitStyle() {
35330
35954
  this.ionStyle.emit({
@@ -35422,6 +36046,7 @@ class Searchbar {
35422
36046
  doc.body.appendChild(tempSpan);
35423
36047
  // Get the width of the span then remove it
35424
36048
  raf(() => {
36049
+ var _a, _b;
35425
36050
  const textWidth = tempSpan.offsetWidth;
35426
36051
  tempSpan.remove();
35427
36052
  // Calculate the input padding
@@ -35433,7 +36058,25 @@ class Searchbar {
35433
36058
  * such as Dynamic Type on iOS as well as 8px
35434
36059
  * of padding.
35435
36060
  */
35436
- const iconLeft = 'calc(50% - ' + (textWidth / 2 + iconEl.clientWidth + 8) + 'px)';
36061
+ const iconWidth = iconEl.clientWidth;
36062
+ /**
36063
+ * Fix for https://github.com/ionic-team/ionic-framework/issues/30434:
36064
+ * iconEl.clientWidth can very briefly be 0 when this is called from componentDidLoad.
36065
+ * If it is zero, set up a ResizeObserver and call this function when it observes a width greater than 0.
36066
+ */
36067
+ if (iconWidth === 0) {
36068
+ (_a = this.searchIconResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
36069
+ this.searchIconResizeObserver = new ResizeObserver((entries) => {
36070
+ var _a;
36071
+ if (entries[0].contentRect.width > 0) {
36072
+ (_a = this.searchIconResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
36073
+ this.positionPlaceholder();
36074
+ }
36075
+ });
36076
+ (_b = this.searchIconResizeObserver) === null || _b === void 0 ? void 0 : _b.observe(iconEl);
36077
+ return;
36078
+ }
36079
+ const iconLeft = 'calc(50% - ' + (textWidth / 2 + iconWidth + 8) + 'px)';
35437
36080
  // Set the input padding start and icon margin start
35438
36081
  if (rtl) {
35439
36082
  inputEl.style.paddingRight = inputLeft;
@@ -35514,8 +36157,8 @@ class Searchbar {
35514
36157
  const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
35515
36158
  const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
35516
36159
  const shouldShowCancelButton = this.shouldShowCancelButton();
35517
- const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '870c9284441fdf431056ac944ac93afa7cb1ee96', "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: '730e33f44c5ec6eee898ea6612fdba337de354e3', "aria-hidden": "true" }, mode === 'md' ? (hAsync("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
35518
- return (hAsync(Host, { key: 'd898b9f9768ec7119a3ad4be8350d8a3cfb32ba6', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
36160
+ const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '226b7a676b4819cda4062b8334fa8d4c4cee6f1a', "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: '89adb4efa17a78c973bbd5527cfac91d99ceb9bb', "aria-hidden": "true" }, mode === 'md' ? (hAsync("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
36161
+ return (hAsync(Host, { key: '237dd767403dba3cb3d7de8905996e275669da3b', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
35519
36162
  [mode]: true,
35520
36163
  'searchbar-animated': animated,
35521
36164
  'searchbar-disabled': this.disabled,
@@ -35525,14 +36168,14 @@ class Searchbar {
35525
36168
  'searchbar-has-focus': this.focused,
35526
36169
  'searchbar-should-show-clear': this.shouldShowClearButton(),
35527
36170
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
35528
- }) }, hAsync("div", { key: 'a0b49cce6241b7e79834de7cbb1d1076f9d42a21', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: '8ad5e659f8ed675fa5559f9e5dfcdf99cfcb8bcf', "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 ? 'on' : 'off', spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, hAsync("ion-icon", { key: '09f26831a519bb6639115f827b2b8985ae51e4b9', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: 'd70ccda51cb79e51577648fcca3b274c6fa20a4f', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
36171
+ }) }, hAsync("div", { key: '5b4bdf7280bea710304b6975e76390fe6ceb7417', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: '01a0820a2cf904aec1c7d84b542ab7918d435632', "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: 'cd64973206b1cc59d221112861733b7ee25f0323', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: '2061fa8449bbc576cf8c5130ea613378ea492944', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
35529
36172
  /**
35530
36173
  * This prevents mobile browsers from
35531
36174
  * blurring the input when the clear
35532
36175
  * button is activated.
35533
36176
  */
35534
36177
  ev.preventDefault();
35535
- }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '428dcb1c0ffef947e24771b060288da47e67b6bd', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
36178
+ }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '00df6f7742bff70b1b088d544b8c00e962e7216c', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
35536
36179
  }
35537
36180
  get el() { return getElement(this); }
35538
36181
  static get watchers() { return {
@@ -35564,7 +36207,7 @@ class Searchbar {
35564
36207
  "animated": [4],
35565
36208
  "autocapitalize": [1],
35566
36209
  "autocomplete": [1],
35567
- "autocorrect": [4],
36210
+ "autocorrect": [1],
35568
36211
  "cancelButtonIcon": [1, "cancel-button-icon"],
35569
36212
  "cancelButtonText": [1, "cancel-button-text"],
35570
36213
  "clearIcon": [1, "clear-icon"],
@@ -36141,14 +36784,14 @@ class Segment {
36141
36784
  }
36142
36785
  render() {
36143
36786
  const mode = getIonMode$1(this);
36144
- return (hAsync(Host, { key: 'bb626072e73f09c3433e1a769e09789a00822d8f', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
36787
+ return (hAsync(Host, { key: 'eda6b7b88b7967b55cf9098c59b655b348a42224', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
36145
36788
  [mode]: true,
36146
36789
  'in-toolbar': hostContext('ion-toolbar', this.el),
36147
36790
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
36148
36791
  'segment-activated': this.activated,
36149
36792
  'segment-disabled': this.disabled,
36150
36793
  'segment-scrollable': this.scrollable,
36151
- }) }, hAsync("slot", { key: '652d5037c2c2dee4d47a5710b1d150e691202d25', onSlotchange: this.onSlottedItemsChange })));
36794
+ }) }, hAsync("slot", { key: 'fdb451f235ce59c5bb50c61a13c69160ece2d5df', onSlotchange: this.onSlottedItemsChange })));
36152
36795
  }
36153
36796
  get el() { return getElement(this); }
36154
36797
  static get watchers() { return {
@@ -36296,7 +36939,7 @@ class SegmentButton {
36296
36939
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
36297
36940
  const mode = getIonMode$1(this);
36298
36941
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
36299
- return (hAsync(Host, { key: '792f621c36260b1fceff2b4ec4fa95d98d51d46b', class: {
36942
+ return (hAsync(Host, { key: 'f69e2a24198a7c57543dbe66902da039a6569c64', class: {
36300
36943
  [mode]: true,
36301
36944
  'in-toolbar': hostContext('ion-toolbar', this.el),
36302
36945
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -36312,7 +36955,7 @@ class SegmentButton {
36312
36955
  'ion-activatable': true,
36313
36956
  'ion-activatable-instant': true,
36314
36957
  'ion-focusable': true,
36315
- } }, 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" }))));
36958
+ } }, 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" }))));
36316
36959
  }
36317
36960
  get el() { return getElement(this); }
36318
36961
  static get watchers() { return {
@@ -36349,7 +36992,7 @@ class SegmentContent {
36349
36992
  registerInstance(this, hostRef);
36350
36993
  }
36351
36994
  render() {
36352
- return (hAsync(Host, { key: 'ef39f29c444177c3b083cd35680ba891e4bb6a2a' }, hAsync("slot", { key: '51f9dd9ca084ddd928b376aa9d716509669c32b2' })));
36995
+ return (hAsync(Host, { key: '665f41a854621f898eaf7ba9a49e77cc9326501e' }, hAsync("slot", { key: '635aa57fbf6167dcd36fe8dc5dfc1c313637ac04' })));
36353
36996
  }
36354
36997
  static get style() { return segmentContentCss(); }
36355
36998
  static get cmpMeta() { return {
@@ -36468,11 +37111,11 @@ class SegmentView {
36468
37111
  }
36469
37112
  render() {
36470
37113
  const { disabled, isManualScroll, swipeGesture } = this;
36471
- return (hAsync(Host, { key: 'a6c6ac0232c4bb6f2a954b3de7993019d71f423a', class: {
37114
+ return (hAsync(Host, { key: '2a6e0a1046af75b1fa0eed20a5fbbb4634480297', class: {
36472
37115
  'segment-view-disabled': disabled,
36473
37116
  'segment-view-scroll-disabled': isManualScroll === false,
36474
37117
  'segment-view-swipe-disabled': swipeGesture === false,
36475
- } }, hAsync("slot", { key: '386305be2a75069c79def12005d9f6b49276763f' })));
37118
+ } }, hAsync("slot", { key: '644b60d179d0de3fa204e3bef26a3503ceeaf1d6' })));
36476
37119
  }
36477
37120
  get el() { return getElement(this); }
36478
37121
  static get style() { return {
@@ -36656,40 +37299,9 @@ class Select {
36656
37299
  this.emitStyle();
36657
37300
  }
36658
37301
  setValue(value) {
36659
- if (this.isValueEqual(this.value, value)) {
36660
- return;
36661
- }
36662
37302
  this.value = value;
36663
37303
  this.ionChange.emit({ value });
36664
37304
  }
36665
- isValueEqual(currentValue, newValue) {
36666
- if (this.multiple) {
36667
- const currentArr = Array.isArray(currentValue) ? currentValue : [];
36668
- const newArr = Array.isArray(newValue) ? newValue : [];
36669
- if (currentArr.length !== newArr.length) {
36670
- return false;
36671
- }
36672
- // Multiset compare: each new value must match a distinct current value.
36673
- // A plain `every(isOptionSelected)` would accept ['a','a'] as equal to
36674
- // ['a','b'] when both 'a' and 'b' map to options whose values overlap.
36675
- const remaining = currentArr.slice();
36676
- return newArr.every((val) => {
36677
- const idx = remaining.findIndex((c) => compareOptions(c, val, this.compareWith));
36678
- if (idx === -1) {
36679
- return false;
36680
- }
36681
- remaining.splice(idx, 1);
36682
- return true;
36683
- });
36684
- }
36685
- if (currentValue == null && newValue == null) {
36686
- return true;
36687
- }
36688
- if (currentValue == null || newValue == null) {
36689
- return false;
36690
- }
36691
- return compareOptions(currentValue, newValue, this.compareWith);
36692
- }
36693
37305
  async connectedCallback() {
36694
37306
  const { el } = this;
36695
37307
  this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
@@ -37275,7 +37887,7 @@ class Select {
37275
37887
  * TODO(FW-5592): Remove hasStartEndSlots condition
37276
37888
  */
37277
37889
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
37278
- return (hAsync(Host, { key: '2c141ef1b6983b464118e8ed192739dfca9d095a', onClick: this.onClick, class: createColorClasses$1(this.color, {
37890
+ return (hAsync(Host, { key: '5f4ee901b65554eacc9fa52230d06b1a5ff1247c', onClick: this.onClick, class: createColorClasses$1(this.color, {
37279
37891
  [mode]: true,
37280
37892
  'in-item': inItem,
37281
37893
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -37293,7 +37905,7 @@ class Select {
37293
37905
  [`select-justify-${justify}`]: justifyEnabled,
37294
37906
  [`select-shape-${shape}`]: shape !== undefined,
37295
37907
  [`select-label-placement-${labelPlacement}`]: true,
37296
- }) }, hAsync("label", { key: 'fa1889b325387da10d1e5fa865aef128bc31aee6', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: 'e31f4ae38af01dbe3a7551e9e5dca2650ae42ef5', class: "select-wrapper-inner", part: "inner" }, hAsync("slot", { key: '623916631f44446fcf2c1df64788ce530964afea', name: "start" }), hAsync("div", { key: 'cbd2298a7c6666ce6b4443b3967195f96558861c', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: 'ee8c2a236c7f120988f5bab17397204f1b374b57', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: '951566d0da3aea0be4921b2951207765b089a7f3', class: "select-highlight" })), this.renderBottomContent()));
37908
+ }) }, 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()));
37297
37909
  }
37298
37910
  get el() { return getElement(this); }
37299
37911
  static get watchers() { return {
@@ -37477,7 +38089,7 @@ class SelectModal {
37477
38089
  } }, option.text))));
37478
38090
  }
37479
38091
  render() {
37480
- 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()))));
38092
+ 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()))));
37481
38093
  }
37482
38094
  get el() { return getElement(this); }
37483
38095
  static get style() { return {
@@ -37512,7 +38124,7 @@ class SelectOption {
37512
38124
  this.disabled = false;
37513
38125
  }
37514
38126
  render() {
37515
- return hAsync(Host, { key: '1fc1737fbb29dcb62638149b21620cbdf2f00dbc', role: "option", id: this.inputId, class: getIonMode$1(this) });
38127
+ return hAsync(Host, { key: '824730b6c1e4f15b716e91b05840e890af5f1577', role: "option", id: this.inputId, class: getIonMode$1(this) });
37516
38128
  }
37517
38129
  get el() { return getElement(this); }
37518
38130
  static get style() { return selectOptionCss(); }
@@ -37640,7 +38252,7 @@ class SelectPopover {
37640
38252
  render() {
37641
38253
  const { header, message, options, subHeader } = this;
37642
38254
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
37643
- 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))));
38255
+ 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))));
37644
38256
  }
37645
38257
  get el() { return getElement(this); }
37646
38258
  static get style() { return {
@@ -37690,11 +38302,11 @@ class SkeletonText {
37690
38302
  const animated = this.animated && config.getBoolean('animated', true);
37691
38303
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
37692
38304
  const mode = getIonMode$1(this);
37693
- return (hAsync(Host, { key: '887d958d982345ce610730ab5c9ae35010430f75', class: {
38305
+ return (hAsync(Host, { key: 'cb8da9aba121811b9a4ffdae60ed88105897cb3c', class: {
37694
38306
  [mode]: true,
37695
38307
  'skeleton-text-animated': animated,
37696
38308
  'in-media': inMedia,
37697
- } }, hAsync("span", { key: 'a184f4b9780a2aada0a16729109ac81436e9c9e1' }, "\u00A0")));
38309
+ } }, hAsync("span", { key: '5379deee3c76d46d615be0cba14b4f60129ffa25' }, "\u00A0")));
37698
38310
  }
37699
38311
  get el() { return getElement(this); }
37700
38312
  static get style() { return skeletonTextCss(); }
@@ -37746,7 +38358,7 @@ class Spinner {
37746
38358
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
37747
38359
  }
37748
38360
  }
37749
- return (hAsync(Host, { key: 'c35ebd01186e860acb9cac260193f0836424fdf4', class: createColorClasses$1(self.color, {
38361
+ return (hAsync(Host, { key: 'dd1954e557fa14b943e761474e29e4316ba53938', class: createColorClasses$1(self.color, {
37750
38362
  [mode]: true,
37751
38363
  [`spinner-${spinnerName}`]: true,
37752
38364
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -37845,12 +38457,12 @@ class SplitPane {
37845
38457
  }
37846
38458
  render() {
37847
38459
  const mode = getIonMode$1(this);
37848
- return (hAsync(Host, { key: '694e989fafcfe2453e0a83b3cb736efaa1eb4fec', class: {
38460
+ return (hAsync(Host, { key: '05c88c009fbe2e223fd261760a2b49da1653ff62', class: {
37849
38461
  [mode]: true,
37850
38462
  // Used internally for styling
37851
38463
  [`split-pane-${mode}`]: true,
37852
38464
  'split-pane-visible': this.visible,
37853
- } }, hAsync("slot", { key: 'dde7e9382b62cc11971aa233cf98c2314ae4f720' })));
38465
+ } }, hAsync("slot", { key: 'b35865082661253c4468520d79234fa5dab5bd35' })));
37854
38466
  }
37855
38467
  get el() { return getElement(this); }
37856
38468
  static get watchers() { return {
@@ -37922,10 +38534,10 @@ class Tab {
37922
38534
  }
37923
38535
  render() {
37924
38536
  const { tab, active, component } = this;
37925
- return (hAsync(Host, { key: '745262368a7f45244da459f4fa1730a46dd3e257', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
38537
+ return (hAsync(Host, { key: 'fbd837bad7a0632336d46a597ace23673b153e48', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
37926
38538
  'ion-page': component === undefined,
37927
38539
  'tab-hidden': !active,
37928
- } }, hAsync("slot", { key: '823d09a6f93bf7c0dc74f2b8717d1d3a62df1ad8' })));
38540
+ } }, hAsync("slot", { key: '35c218169fda826c9c1337558e0278d0c7f5f26a' })));
37929
38541
  }
37930
38542
  get el() { return getElement(this); }
37931
38543
  static get watchers() { return {
@@ -38039,11 +38651,11 @@ class TabBar {
38039
38651
  const { color, translucent, keyboardVisible } = this;
38040
38652
  const mode = getIonMode$1(this);
38041
38653
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
38042
- return (hAsync(Host, { key: '148f65df0818e9d220a9b46db74cb89ab94e62d2', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
38654
+ return (hAsync(Host, { key: '24e164eaf81a0bec9237b561465618f10990806c', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
38043
38655
  [mode]: true,
38044
38656
  'tab-bar-translucent': translucent,
38045
38657
  'tab-bar-hidden': shouldHide,
38046
- }) }, hAsync("slot", { key: 'a64e235f3703662e2dd7a834f752cc5b1490adbc' })));
38658
+ }) }, hAsync("slot", { key: '0ca29a2d97a7c38bbf43f8d79e271b874b4d9be8' })));
38047
38659
  }
38048
38660
  get el() { return getElement(this); }
38049
38661
  static get watchers() { return {
@@ -38141,7 +38753,7 @@ class TabButton {
38141
38753
  rel,
38142
38754
  target,
38143
38755
  };
38144
- return (hAsync(Host, { key: '1034b5a928ecec49bd8efec3730ea1b11a579cf3', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
38756
+ return (hAsync(Host, { key: '638b93ef40701ec3aefb89b1579eb91aaf6d4f8a', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
38145
38757
  [mode]: true,
38146
38758
  'tab-selected': selected,
38147
38759
  'tab-disabled': disabled,
@@ -38153,7 +38765,7 @@ class TabButton {
38153
38765
  'ion-activatable': true,
38154
38766
  'ion-selectable': true,
38155
38767
  'ion-focusable': true,
38156
- } }, 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" }))));
38768
+ } }, 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" }))));
38157
38769
  }
38158
38770
  get el() { return getElement(this); }
38159
38771
  static get style() { return {
@@ -38344,7 +38956,7 @@ class Tabs {
38344
38956
  return Array.from(this.el.querySelectorAll('ion-tab'));
38345
38957
  }
38346
38958
  render() {
38347
- 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" })));
38959
+ 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" })));
38348
38960
  }
38349
38961
  get el() { return getElement(this); }
38350
38962
  static get style() { return tabsCss(); }
@@ -38384,9 +38996,9 @@ class Text {
38384
38996
  }
38385
38997
  render() {
38386
38998
  const mode = getIonMode$1(this);
38387
- return (hAsync(Host, { key: '41ed8da617ed0e07bbfe96e32a000e1c6503e24e', class: createColorClasses$1(this.color, {
38999
+ return (hAsync(Host, { key: 'bfaa49d35f43b8036725ae8a322c716fc6e43bdf', class: createColorClasses$1(this.color, {
38388
39000
  [mode]: true,
38389
- }) }, hAsync("slot", { key: 'db8de04a2493537b3037f276b03abd92dfa56847' })));
39001
+ }) }, hAsync("slot", { key: 'c04880cd1935b42cbe60f58fd523b4d8a96072dc' })));
38390
39002
  }
38391
39003
  static get style() { return textCss(); }
38392
39004
  static get cmpMeta() { return {
@@ -38847,7 +39459,7 @@ class Textarea {
38847
39459
  * TODO(FW-5592): Remove hasStartEndSlots condition
38848
39460
  */
38849
39461
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
38850
- return (hAsync(Host, { key: 'eca1dfed53189408f614661ef3902cdb73d5f5de', class: createColorClasses$1(this.color, {
39462
+ return (hAsync(Host, { key: '4257e84acd46f43390fa2413d0b8f40e16a37499', class: createColorClasses$1(this.color, {
38851
39463
  [mode]: true,
38852
39464
  'has-value': hasValue,
38853
39465
  'has-focus': hasFocus,
@@ -38856,7 +39468,7 @@ class Textarea {
38856
39468
  [`textarea-shape-${shape}`]: shape !== undefined,
38857
39469
  [`textarea-label-placement-${labelPlacement}`]: true,
38858
39470
  'textarea-disabled': disabled,
38859
- }) }, 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()));
39471
+ }) }, 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()));
38860
39472
  }
38861
39473
  get el() { return getElement(this); }
38862
39474
  static get watchers() { return {
@@ -38925,7 +39537,7 @@ class Thumbnail {
38925
39537
  registerInstance(this, hostRef);
38926
39538
  }
38927
39539
  render() {
38928
- return (hAsync(Host, { key: '833e947c683b482a78f8f0df8c9a68e99478bbaa', class: getIonMode$1(this) }, hAsync("slot", { key: '6d1e9e686db88d91379f14121058dbf035d8ded2' })));
39540
+ return (hAsync(Host, { key: 'b250e01664238f1dca8f9757b15bc3d5d9387ffa', class: getIonMode$1(this) }, hAsync("slot", { key: '72cb568bccabc983c5186a7596ef6c6d4ebf5ad9' })));
38929
39541
  }
38930
39542
  static get style() { return thumbnailCss(); }
38931
39543
  static get cmpMeta() { return {
@@ -39785,9 +40397,9 @@ class Toast {
39785
40397
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
39786
40398
  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);
39787
40399
  }
39788
- return (hAsync(Host, Object.assign({ key: '2acb2cd2e12ea0082986495929e4a596d4da2f38', tabindex: "-1" }, this.htmlAttributes, { style: {
40400
+ return (hAsync(Host, Object.assign({ key: 'b5256edcf33d0ef51e6c5080c84e1ca58abe2ae0', tabindex: "-1" }, this.htmlAttributes, { style: {
39789
40401
  zIndex: `${60000 + this.overlayIndex}`,
39790
- }, 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')))));
40402
+ }, 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')))));
39791
40403
  }
39792
40404
  get el() { return getElement(this); }
39793
40405
  static get watchers() { return {
@@ -40105,7 +40717,7 @@ class Toggle {
40105
40717
  const value = this.getValue();
40106
40718
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
40107
40719
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
40108
- 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, {
40720
+ 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, {
40109
40721
  [mode]: true,
40110
40722
  'in-item': hostContext('ion-item', el),
40111
40723
  'toggle-activated': activated,
@@ -40115,10 +40727,10 @@ class Toggle {
40115
40727
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
40116
40728
  [`toggle-label-placement-${labelPlacement}`]: true,
40117
40729
  [`toggle-${rtl}`]: true,
40118
- }) }, 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: {
40730
+ }) }, 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: {
40119
40731
  'label-text-wrapper': true,
40120
40732
  'label-text-wrapper-hidden': !hasLabel,
40121
- }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: 'c480b96a0ddd926568f73291d71253d6f74438c7' }), this.renderHintText()), hAsync("div", { key: '96a2cbd1673e051a78f8b2b16535ecd3f0ed4339', class: "native-wrapper" }, this.renderToggleControl()))));
40733
+ }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '006dd3558264d69ab020c07005b348adc4ecdd5b' }), this.renderHintText()), hAsync("div", { key: 'dd4e52de31caabee41ec1bc58efecd1e213368c9', class: "native-wrapper" }, this.renderToggleControl()))));
40122
40734
  }
40123
40735
  get el() { return getElement(this); }
40124
40736
  static get watchers() { return {
@@ -40230,10 +40842,10 @@ class Toolbar {
40230
40842
  this.childrenStyles.forEach((value) => {
40231
40843
  Object.assign(childStyles, value);
40232
40844
  });
40233
- return (hAsync(Host, { key: '40bad6fa7e94262438da4bbe037dcf8a5fa2df22', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
40845
+ return (hAsync(Host, { key: 'b849db2863778dee6c5a251bffa1b3a657aeb036', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
40234
40846
  [mode]: true,
40235
40847
  'in-toolbar': hostContext('ion-toolbar', this.el),
40236
- })) }, 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" }))));
40848
+ })) }, 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" }))));
40237
40849
  }
40238
40850
  get el() { return getElement(this); }
40239
40851
  static get style() { return {
@@ -40279,11 +40891,11 @@ class ToolbarTitle {
40279
40891
  render() {
40280
40892
  const mode = getIonMode$1(this);
40281
40893
  const size = this.getSize();
40282
- return (hAsync(Host, { key: 'd9317e8e66cb6112717f5a9c252658777efbd873', class: createColorClasses$1(this.color, {
40894
+ return (hAsync(Host, { key: '44e63f8439df64c470692904427b417e19406476', class: createColorClasses$1(this.color, {
40283
40895
  [mode]: true,
40284
40896
  [`title-${size}`]: true,
40285
40897
  'title-rtl': document.dir === 'rtl',
40286
- }) }, hAsync("div", { key: 'a4d011d6d409bf006d8efe33667002edb109820a', class: "toolbar-title" }, hAsync("slot", { key: '4ca3303b957a0e5387f1e9058e5adb4c6275afcc' }))));
40898
+ }) }, hAsync("div", { key: '784cf60a0db16045391891cc8fad0c7dbeba4039', class: "toolbar-title" }, hAsync("slot", { key: '0c720a50479ba257e8756337aeb9b0ab7516a227' }))));
40287
40899
  }
40288
40900
  get el() { return getElement(this); }
40289
40901
  static get watchers() { return {
@@ -40363,8 +40975,10 @@ registerComponents([
40363
40975
  Nav,
40364
40976
  NavLink,
40365
40977
  Note,
40978
+ Picker$1,
40366
40979
  Picker,
40367
40980
  PickerColumn,
40981
+ PickerColumnCmp,
40368
40982
  PickerColumnOption,
40369
40983
  Popover,
40370
40984
  ProgressBar,