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

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-popover.js +1 -1
  21. package/components/ion-progress-bar.js +1 -1
  22. package/components/ion-radio.js +1 -1
  23. package/components/ion-range.js +1 -1
  24. package/components/ion-refresher-content.js +1 -1
  25. package/components/ion-refresher.js +1 -1
  26. package/components/ion-reorder-group.js +1 -1
  27. package/components/ion-reorder.js +1 -1
  28. package/components/ion-ripple-effect.js +1 -1
  29. package/components/ion-router-link.js +1 -1
  30. package/components/ion-router-outlet.js +1 -1
  31. package/components/ion-row.js +1 -1
  32. package/components/ion-searchbar.js +1 -1
  33. package/components/ion-segment-button.js +1 -1
  34. package/components/ion-segment-content.js +1 -1
  35. package/components/ion-segment-view.js +1 -1
  36. package/components/ion-segment.js +1 -1
  37. package/components/ion-select-modal.js +1 -1
  38. package/components/ion-select-option.js +1 -1
  39. package/components/ion-select-popover.js +1 -1
  40. package/components/ion-select.js +1 -1
  41. package/components/ion-skeleton-text.js +1 -1
  42. package/components/ion-spinner.js +1 -1
  43. package/components/ion-split-pane.js +1 -1
  44. package/components/ion-tab-bar.js +1 -1
  45. package/components/ion-tab-button.js +1 -1
  46. package/components/ion-tab.js +1 -1
  47. package/components/ion-tabs.js +1 -1
  48. package/components/ion-text.js +1 -1
  49. package/components/ion-textarea.js +1 -1
  50. package/components/ion-thumbnail.js +1 -1
  51. package/components/ion-title.js +1 -1
  52. package/components/ion-toast.js +1 -1
  53. package/components/ion-toggle.js +1 -1
  54. package/components/ion-toolbar.js +1 -1
  55. package/components/{p-nQi4oKcG.js → p-B8U2xbtx.js} +1 -1
  56. package/components/p-BpCi7xHq.js +4 -0
  57. package/components/p-CHzfYZbv.js +4 -0
  58. package/components/{p-DDWp95gH.js → p-Ck2wcXbv.js} +1 -1
  59. package/components/{p-C2lKgrXx.js → p-DEBD4LvH.js} +1 -1
  60. package/components/p-DH50pr9O.js +4 -0
  61. package/components/{p-BSEgsdFI.js → p-DhkITZ-y.js} +1 -1
  62. package/components/p-DmpBvltk.js +4 -0
  63. package/components/{p-5bE_Wz4Y.js → p-DpV-p5Xs.js} +1 -1
  64. package/components/{p-Cfx4M1Bn.js → p-Dz74mwlk.js} +1 -1
  65. package/components/{p-BLmJ0zRm.js → p-XJWMAP8m.js} +1 -1
  66. package/components/p-djQLE88P.js +4 -0
  67. package/components/{p-B60hm8Qv.js → p-r0aq7dpt.js} +1 -1
  68. package/components/{p-rCa2eL0j.js → p-wk2QqrAo.js} +1 -1
  69. package/dist/cjs/index.cjs.js +1 -2
  70. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -4
  71. package/dist/cjs/ion-alert.cjs.entry.js +7 -3
  72. package/dist/cjs/ion-app_8.cjs.entry.js +23 -9
  73. package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
  74. package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
  75. package/dist/cjs/{ion-datetime_3.cjs.entry.js → ion-datetime.cjs.entry.js} +1 -639
  76. package/dist/cjs/ion-input.cjs.entry.js +4 -4
  77. package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
  78. package/dist/cjs/ion-loading.cjs.entry.js +7 -3
  79. package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
  80. package/dist/cjs/ion-modal.cjs.entry.js +9 -5
  81. package/dist/cjs/ion-popover.cjs.entry.js +7 -3
  82. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  83. package/dist/cjs/ion-radio_2.cjs.entry.js +3 -3
  84. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  85. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  86. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  87. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  88. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  89. package/dist/cjs/ion-searchbar.cjs.entry.js +5 -5
  90. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  91. package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
  92. package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
  93. package/dist/cjs/ion-select-modal.cjs.entry.js +2 -2
  94. package/dist/cjs/ion-select_3.cjs.entry.js +36 -5
  95. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  96. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  97. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  98. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  99. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  100. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  101. package/dist/cjs/ion-toast.cjs.entry.js +3 -3
  102. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  103. package/dist/cjs/ionic.cjs.js +1 -1
  104. package/dist/cjs/loader.cjs.js +1 -1
  105. package/dist/cjs/{overlays-TbKsuC-K.js → overlays-DSmSrd_4.js} +26 -7
  106. package/dist/collection/collection-manifest.json +5 -9
  107. package/dist/collection/components/action-sheet/action-sheet.js +8 -4
  108. package/dist/collection/components/alert/alert.js +7 -3
  109. package/dist/collection/components/input/input.js +8 -8
  110. package/dist/collection/components/loading/loading.js +7 -3
  111. package/dist/collection/components/modal/modal.js +9 -5
  112. package/dist/collection/components/popover/popover.js +7 -3
  113. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  114. package/dist/collection/components/radio/radio.js +4 -4
  115. package/dist/collection/components/range/range.js +3 -3
  116. package/dist/collection/components/refresher/refresher.js +1 -1
  117. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  118. package/dist/collection/components/reorder/reorder.js +1 -1
  119. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  120. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  121. package/dist/collection/components/router-link/router-link.js +2 -2
  122. package/dist/collection/components/router-outlet/router-outlet.js +38 -5
  123. package/dist/collection/components/row/row.js +1 -1
  124. package/dist/collection/components/searchbar/searchbar.js +9 -9
  125. package/dist/collection/components/segment/segment.js +2 -2
  126. package/dist/collection/components/segment-button/segment-button.js +2 -2
  127. package/dist/collection/components/segment-content/segment-content.js +1 -1
  128. package/dist/collection/components/segment-view/segment-view.js +2 -2
  129. package/dist/collection/components/select/select.js +33 -2
  130. package/dist/collection/components/select-modal/select-modal.js +1 -1
  131. package/dist/collection/components/select-option/select-option.js +1 -1
  132. package/dist/collection/components/select-popover/select-popover.js +1 -1
  133. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  134. package/dist/collection/components/spinner/spinner.js +1 -1
  135. package/dist/collection/components/split-pane/split-pane.js +2 -2
  136. package/dist/collection/components/tab/tab.js +2 -2
  137. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  138. package/dist/collection/components/tab-button/tab-button.js +2 -2
  139. package/dist/collection/components/tabs/tabs.js +1 -1
  140. package/dist/collection/components/text/text.js +2 -2
  141. package/dist/collection/components/textarea/textarea.js +2 -2
  142. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  143. package/dist/collection/components/title/title.js +2 -2
  144. package/dist/collection/components/toast/toast.js +2 -2
  145. package/dist/collection/components/toggle/toggle.js +3 -3
  146. package/dist/collection/components/toolbar/toolbar.js +2 -2
  147. package/dist/collection/index.js +1 -1
  148. package/dist/collection/utils/overlays.js +25 -6
  149. package/dist/docs.json +247 -1170
  150. package/dist/esm/{index-DV3sJJW8.js → index-AlrZKoWR.js} +1 -1
  151. package/dist/esm/index.js +1 -1
  152. package/dist/esm/ion-accordion_2.entry.js +1 -1
  153. package/dist/esm/ion-action-sheet.entry.js +8 -4
  154. package/dist/esm/ion-alert.entry.js +7 -3
  155. package/dist/esm/ion-app_8.entry.js +23 -9
  156. package/dist/esm/ion-avatar_3.entry.js +1 -1
  157. package/dist/esm/ion-back-button.entry.js +1 -1
  158. package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
  159. package/dist/esm/ion-col_3.entry.js +1 -1
  160. package/dist/esm/{ion-datetime_3.entry.js → ion-datetime.entry.js} +5 -641
  161. package/dist/esm/ion-fab_3.entry.js +1 -1
  162. package/dist/esm/ion-input-password-toggle.entry.js +1 -1
  163. package/dist/esm/ion-input.entry.js +5 -5
  164. package/dist/esm/ion-item_8.entry.js +3 -3
  165. package/dist/esm/ion-loading.entry.js +7 -3
  166. package/dist/esm/ion-menu_3.entry.js +2 -2
  167. package/dist/esm/ion-modal.entry.js +9 -5
  168. package/dist/esm/ion-popover.entry.js +7 -3
  169. package/dist/esm/ion-progress-bar.entry.js +1 -1
  170. package/dist/esm/ion-radio_2.entry.js +3 -3
  171. package/dist/esm/ion-range.entry.js +3 -3
  172. package/dist/esm/ion-refresher_2.entry.js +3 -3
  173. package/dist/esm/ion-reorder_2.entry.js +3 -3
  174. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  175. package/dist/esm/ion-route_4.entry.js +2 -2
  176. package/dist/esm/ion-searchbar.entry.js +6 -6
  177. package/dist/esm/ion-segment-content.entry.js +1 -1
  178. package/dist/esm/ion-segment-view.entry.js +2 -2
  179. package/dist/esm/ion-segment_2.entry.js +4 -4
  180. package/dist/esm/ion-select-modal.entry.js +2 -2
  181. package/dist/esm/ion-select_3.entry.js +38 -7
  182. package/dist/esm/ion-spinner.entry.js +1 -1
  183. package/dist/esm/ion-split-pane.entry.js +2 -2
  184. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  185. package/dist/esm/ion-tab_2.entry.js +3 -3
  186. package/dist/esm/ion-text.entry.js +2 -2
  187. package/dist/esm/ion-textarea.entry.js +2 -2
  188. package/dist/esm/ion-toast.entry.js +3 -3
  189. package/dist/esm/ion-toggle.entry.js +4 -4
  190. package/dist/esm/ionic.js +1 -1
  191. package/dist/esm/loader.js +1 -1
  192. package/dist/esm/{overlays-TbiM4mdr.js → overlays-DLNOHWNc.js} +26 -7
  193. package/dist/html.html-data.json +6 -77
  194. package/dist/ionic/index.esm.js +1 -1
  195. package/dist/ionic/ionic.esm.js +1 -1
  196. package/dist/ionic/{p-aa5d6b8f.entry.js → p-03aa786d.entry.js} +1 -1
  197. package/dist/ionic/{p-8fce95d5.entry.js → p-14095ba5.entry.js} +1 -1
  198. package/dist/ionic/{p-3a126bca.entry.js → p-259d0d98.entry.js} +1 -1
  199. package/dist/ionic/{p-e847a888.entry.js → p-2a6d6565.entry.js} +1 -1
  200. package/dist/ionic/{p-fabcce6c.entry.js → p-341032b3.entry.js} +1 -1
  201. package/dist/ionic/{p-a21add2f.entry.js → p-441fbb13.entry.js} +1 -1
  202. package/dist/ionic/{p-3a7d1e91.entry.js → p-4502a274.entry.js} +1 -1
  203. package/dist/ionic/p-4621c387.entry.js +4 -0
  204. package/dist/ionic/p-4bb3eb60.entry.js +4 -0
  205. package/dist/ionic/{p-874b4bd8.entry.js → p-51cd1643.entry.js} +1 -1
  206. package/dist/ionic/p-5c3ec490.entry.js +4 -0
  207. package/dist/ionic/{p-3ae5f277.entry.js → p-627fabd9.entry.js} +1 -1
  208. package/dist/ionic/{p-e0be05c5.entry.js → p-629e4703.entry.js} +1 -1
  209. package/dist/ionic/{p-5d1da0a2.entry.js → p-76e92a84.entry.js} +1 -1
  210. package/dist/ionic/{p-9f1103ce.entry.js → p-7a37b3ce.entry.js} +1 -1
  211. package/dist/ionic/p-7aed7726.entry.js +4 -0
  212. package/dist/ionic/p-7ebd980c.entry.js +4 -0
  213. package/dist/ionic/{p-3353c229.entry.js → p-80b44b3c.entry.js} +1 -1
  214. package/dist/ionic/p-8d624ee5.entry.js +4 -0
  215. package/dist/ionic/{p-390ca786.entry.js → p-9177f4ac.entry.js} +1 -1
  216. package/dist/ionic/p-944c8939.entry.js +4 -0
  217. package/dist/ionic/p-9c6a5a8d.entry.js +4 -0
  218. package/dist/ionic/{p-DV3sJJW8.js → p-AlrZKoWR.js} +1 -1
  219. package/dist/ionic/p-Cg5-OQYy.js +4 -0
  220. package/dist/ionic/p-a2e51c5d.entry.js +4 -0
  221. package/dist/ionic/{p-4858af1f.entry.js → p-a5213260.entry.js} +1 -1
  222. package/dist/ionic/{p-37e720da.entry.js → p-a7628bc7.entry.js} +1 -1
  223. package/dist/ionic/{p-ef4c3bee.entry.js → p-b1599fca.entry.js} +1 -1
  224. package/dist/ionic/p-b16be471.entry.js +4 -0
  225. package/dist/ionic/{p-84d5ce05.entry.js → p-b9ac1fe0.entry.js} +1 -1
  226. package/dist/ionic/{p-94f2a736.entry.js → p-c93553d2.entry.js} +1 -1
  227. package/dist/ionic/{p-75dc25ba.entry.js → p-d2c7f046.entry.js} +1 -1
  228. package/dist/ionic/{p-c4d8641b.entry.js → p-d8387b99.entry.js} +1 -1
  229. package/dist/ionic/p-d8ac9eea.entry.js +4 -0
  230. package/dist/ionic/{p-9a65ac7f.entry.js → p-db1b6738.entry.js} +1 -1
  231. package/dist/ionic/p-ed797c72.entry.js +4 -0
  232. package/dist/ionic/{p-8eb8ee76.entry.js → p-ef93ca92.entry.js} +1 -1
  233. package/dist/ionic/p-f09f9642.entry.js +4 -0
  234. package/dist/ionic/p-f1c06f82.entry.js +4 -0
  235. package/dist/ionic/{p-0fa9c382.entry.js → p-fe4aa1db.entry.js} +1 -1
  236. package/dist/types/components/input/input.d.ts +1 -1
  237. package/dist/types/components/router-outlet/router-outlet.d.ts +7 -0
  238. package/dist/types/components/searchbar/searchbar.d.ts +1 -1
  239. package/dist/types/components/select/select.d.ts +1 -0
  240. package/dist/types/components.d.ts +19 -282
  241. package/dist/types/index.d.ts +1 -1
  242. package/dist/types/interface.d.ts +0 -1
  243. package/dist/types/utils/config.d.ts +0 -8
  244. package/dist/types/utils/overlays.d.ts +11 -9
  245. package/hydrate/index.js +202 -795
  246. package/hydrate/index.mjs +202 -795
  247. package/package.json +37 -5
  248. package/components/ion-picker-legacy-column.d.ts +0 -11
  249. package/components/ion-picker-legacy-column.js +0 -4
  250. package/components/ion-picker-legacy.d.ts +0 -11
  251. package/components/ion-picker-legacy.js +0 -4
  252. package/components/p-0NRupjzW.js +0 -4
  253. package/components/p-Bth-EzJ0.js +0 -4
  254. package/components/p-CU5rbWAW.js +0 -4
  255. package/components/p-W9CZ2mWX.js +0 -4
  256. package/components/p-dhLYXa7A.js +0 -4
  257. package/components/p-uVRyUM3z.js +0 -4
  258. package/dist/collection/components/picker-legacy/animations/ios.enter.js +0 -27
  259. package/dist/collection/components/picker-legacy/animations/ios.leave.js +0 -23
  260. package/dist/collection/components/picker-legacy/picker-interface.js +0 -1
  261. package/dist/collection/components/picker-legacy/picker.ios.css +0 -300
  262. package/dist/collection/components/picker-legacy/picker.js +0 -890
  263. package/dist/collection/components/picker-legacy/picker.md.css +0 -287
  264. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -231
  265. package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
  266. package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -222
  267. package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
  268. package/dist/ionic/p-00dbb17e.entry.js +0 -4
  269. package/dist/ionic/p-01f81ea5.entry.js +0 -4
  270. package/dist/ionic/p-0d005398.entry.js +0 -4
  271. package/dist/ionic/p-27d30585.entry.js +0 -4
  272. package/dist/ionic/p-2bb2cb18.entry.js +0 -4
  273. package/dist/ionic/p-2f55dc1a.entry.js +0 -4
  274. package/dist/ionic/p-30bf9737.entry.js +0 -4
  275. package/dist/ionic/p-3a541154.entry.js +0 -4
  276. package/dist/ionic/p-485fda23.entry.js +0 -4
  277. package/dist/ionic/p-4baa5b82.entry.js +0 -4
  278. package/dist/ionic/p-4dc1c33c.entry.js +0 -4
  279. package/dist/ionic/p-5fc7e542.entry.js +0 -4
  280. package/dist/ionic/p-e686695b.entry.js +0 -4
  281. package/dist/ionic/p-ec090e0a.entry.js +0 -4
  282. package/dist/ionic/p-xOfi7-Zn.js +0 -4
  283. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +0 -5
  284. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +0 -5
  285. package/dist/types/components/picker-legacy/picker-interface.d.ts +0 -52
  286. package/dist/types/components/picker-legacy/picker.d.ts +0 -158
  287. package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
  288. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +0 -9
package/hydrate/index.mjs CHANGED
@@ -8039,7 +8039,7 @@ const focusElementInOverlay = (hostToFocus, overlay) => {
8039
8039
  * Should NOT include: Toast
8040
8040
  */
8041
8041
  const trapKeyboardFocus = (ev, doc) => {
8042
- const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover');
8042
+ const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover');
8043
8043
  const target = ev.target;
8044
8044
  /**
8045
8045
  * If no active overlay, ignore this event.
@@ -8273,7 +8273,7 @@ const dismissOverlay = (doc, data, role, overlayTag, id) => {
8273
8273
  */
8274
8274
  const getOverlays = (doc, selector) => {
8275
8275
  if (selector === undefined) {
8276
- selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover,ion-toast';
8276
+ selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover,ion-toast';
8277
8277
  }
8278
8278
  return Array.from(doc.querySelectorAll(selector)).filter((c) => c.overlayIndex > 0);
8279
8279
  };
@@ -8335,6 +8335,29 @@ const setRootAriaHidden = (hidden = false) => {
8335
8335
  viewContainer.removeAttribute('aria-hidden');
8336
8336
  }
8337
8337
  };
8338
+ /**
8339
+ * Cleans up root `aria-hidden` and `backdrop-no-scroll` when
8340
+ * an overlay is removed from the DOM without going through
8341
+ * the `dismiss()` flow (e.g., when a framework unmounts the
8342
+ * overlay during a route change).
8343
+ *
8344
+ * Should be called from an overlay's `disconnectedCallback`
8345
+ * when the overlay was still presented at the time of removal.
8346
+ */
8347
+ const cleanupRootFocusTrapAccessibility = () => {
8348
+ if (typeof document === 'undefined') {
8349
+ return;
8350
+ }
8351
+ const remainingOverlays = getPresentedOverlays(document);
8352
+ const hasRemainingLocking = remainingOverlays.some((o) => {
8353
+ const el = o;
8354
+ return el.tagName !== 'ION-TOAST' && el.focusTrap !== false && isBackdropAlwaysBlocking(el);
8355
+ });
8356
+ if (!hasRemainingLocking) {
8357
+ setRootAriaHidden(false);
8358
+ document.body.classList.remove(BACKDROP_NO_SCROLL);
8359
+ }
8360
+ };
8338
8361
  const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts) => {
8339
8362
  var _a, _b;
8340
8363
  if (overlay.presented) {
@@ -9591,7 +9614,7 @@ const createAnimation = (animationId) => {
9591
9614
  /**
9592
9615
  * iOS Action Sheet Enter Animation
9593
9616
  */
9594
- const iosEnterAnimation$6 = (baseEl) => {
9617
+ const iosEnterAnimation$5 = (baseEl) => {
9595
9618
  const baseAnimation = createAnimation();
9596
9619
  const backdropAnimation = createAnimation();
9597
9620
  const wrapperAnimation = createAnimation();
@@ -9615,7 +9638,7 @@ const iosEnterAnimation$6 = (baseEl) => {
9615
9638
  /**
9616
9639
  * iOS Action Sheet Leave Animation
9617
9640
  */
9618
- const iosLeaveAnimation$6 = (baseEl) => {
9641
+ const iosLeaveAnimation$5 = (baseEl) => {
9619
9642
  const baseAnimation = createAnimation();
9620
9643
  const backdropAnimation = createAnimation();
9621
9644
  const wrapperAnimation = createAnimation();
@@ -9771,7 +9794,7 @@ class ActionSheet {
9771
9794
  async present() {
9772
9795
  const unlock = await this.lockController.lock();
9773
9796
  await this.delegateController.attachViewToDom();
9774
- await present(this, 'actionSheetEnter', iosEnterAnimation$6, mdEnterAnimation$5);
9797
+ await present(this, 'actionSheetEnter', iosEnterAnimation$5, mdEnterAnimation$5);
9775
9798
  unlock();
9776
9799
  }
9777
9800
  /**
@@ -9788,7 +9811,7 @@ class ActionSheet {
9788
9811
  */
9789
9812
  async dismiss(data, role) {
9790
9813
  const unlock = await this.lockController.lock();
9791
- const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$6, mdLeaveAnimation$5);
9814
+ const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$5, mdLeaveAnimation$5);
9792
9815
  if (dismissed) {
9793
9816
  this.delegateController.removeViewFromDom();
9794
9817
  }
@@ -9957,6 +9980,10 @@ class ActionSheet {
9957
9980
  this.gesture = undefined;
9958
9981
  }
9959
9982
  this.triggerController.removeClickListener();
9983
+ // Clean up aria-hidden if removed without dismiss() being called
9984
+ if (this.presented) {
9985
+ cleanupRootFocusTrapAccessibility();
9986
+ }
9960
9987
  }
9961
9988
  componentWillLoad() {
9962
9989
  var _a;
@@ -10045,7 +10072,7 @@ class ActionSheet {
10045
10072
  if (isRadio) {
10046
10073
  htmlAttrs['aria-checked'] = isActiveRadio ? 'true' : 'false';
10047
10074
  }
10048
- 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: () => {
10075
+ 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: () => {
10049
10076
  if (isRadio) {
10050
10077
  this.selectRadioButton(b);
10051
10078
  }
@@ -10060,12 +10087,12 @@ class ActionSheet {
10060
10087
  const cancelButton = allButtons.find((b) => b.role === 'cancel');
10061
10088
  const buttons = allButtons.filter((b) => b.role !== 'cancel');
10062
10089
  const headerID = `action-sheet-${overlayIndex}-header`;
10063
- return (hAsync(Host, Object.assign({ key: '48b63b870f2816b4cad3c606f3d9956854cee79a', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
10090
+ return (hAsync(Host, Object.assign({ key: '572ea2b7b7ffd902186a17f8063e46f4e7360633', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
10064
10091
  zIndex: `${20000 + this.overlayIndex}`,
10065
- }, 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: {
10092
+ }, 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: {
10066
10093
  'action-sheet-title': true,
10067
10094
  'action-sheet-has-sub-title': this.subHeader !== undefined,
10068
- } }, 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" })));
10095
+ } }, 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" })));
10069
10096
  }
10070
10097
  get el() { return getElement(this); }
10071
10098
  static get watchers() { return {
@@ -10114,7 +10141,7 @@ class ActionSheet {
10114
10141
  "$attrsToReflect$": []
10115
10142
  }; }
10116
10143
  }
10117
- const buttonClass$3 = (button) => {
10144
+ const buttonClass$2 = (button) => {
10118
10145
  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));
10119
10146
  };
10120
10147
 
@@ -10285,7 +10312,7 @@ class IonicSafeString {
10285
10312
  /**
10286
10313
  * iOS Alert Enter Animation
10287
10314
  */
10288
- const iosEnterAnimation$5 = (baseEl) => {
10315
+ const iosEnterAnimation$4 = (baseEl) => {
10289
10316
  const baseAnimation = createAnimation();
10290
10317
  const backdropAnimation = createAnimation();
10291
10318
  const wrapperAnimation = createAnimation();
@@ -10310,7 +10337,7 @@ const iosEnterAnimation$5 = (baseEl) => {
10310
10337
  /**
10311
10338
  * iOS Alert Leave Animation
10312
10339
  */
10313
- const iosLeaveAnimation$5 = (baseEl) => {
10340
+ const iosLeaveAnimation$4 = (baseEl) => {
10314
10341
  const baseAnimation = createAnimation();
10315
10342
  const backdropAnimation = createAnimation();
10316
10343
  const wrapperAnimation = createAnimation();
@@ -10586,6 +10613,10 @@ class Alert {
10586
10613
  this.gesture.destroy();
10587
10614
  this.gesture = undefined;
10588
10615
  }
10616
+ // Clean up aria-hidden if removed without dismiss() being called
10617
+ if (this.presented) {
10618
+ cleanupRootFocusTrapAccessibility();
10619
+ }
10589
10620
  (_a = this.buttonGroupResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
10590
10621
  this.buttonGroupResizeObserver = undefined;
10591
10622
  }
@@ -10625,7 +10656,7 @@ class Alert {
10625
10656
  async present() {
10626
10657
  const unlock = await this.lockController.lock();
10627
10658
  await this.delegateController.attachViewToDom();
10628
- await present(this, 'alertEnter', iosEnterAnimation$5, mdEnterAnimation$4).then(() => {
10659
+ await present(this, 'alertEnter', iosEnterAnimation$4, mdEnterAnimation$4).then(() => {
10629
10660
  var _a, _b;
10630
10661
  /**
10631
10662
  * Check if alert has only one button and no inputs.
@@ -10656,7 +10687,7 @@ class Alert {
10656
10687
  */
10657
10688
  async dismiss(data, role) {
10658
10689
  const unlock = await this.lockController.lock();
10659
- const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$5, mdLeaveAnimation$4);
10690
+ const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$4, mdLeaveAnimation$4);
10660
10691
  if (dismissed) {
10661
10692
  this.delegateController.removeViewFromDom();
10662
10693
  }
@@ -10841,7 +10872,7 @@ class Alert {
10841
10872
  'alert-button-group': true,
10842
10873
  'alert-button-group-vertical': buttons.length > 2 || this.isButtonGroupWrapped,
10843
10874
  };
10844
- 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))))));
10875
+ 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))))));
10845
10876
  }
10846
10877
  renderAlertMessage(msgId) {
10847
10878
  const { customHTMLEnabled, message } = this;
@@ -10864,9 +10895,9 @@ class Alert {
10864
10895
  * If neither are defined, do not set aria-labelledby.
10865
10896
  */
10866
10897
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
10867
- return (hAsync(Host, { key: '8d54ccd725ea634be080e67b56fa5efe498f496c', tabindex: "-1", style: {
10898
+ return (hAsync(Host, { key: '80642b44e08bcbe73f7a217578f89716827e2f7d', tabindex: "-1", style: {
10868
10899
  zIndex: `${20000 + overlayIndex}`,
10869
- }, 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" })));
10900
+ }, 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" })));
10870
10901
  }
10871
10902
  get el() { return getElement(this); }
10872
10903
  static get watchers() { return {
@@ -10924,7 +10955,7 @@ const inputClass = (input) => {
10924
10955
  var _a, _b, _c;
10925
10956
  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() : ''));
10926
10957
  };
10927
- const buttonClass$2 = (button) => {
10958
+ const buttonClass$1 = (button) => {
10928
10959
  return Object.assign({ 'alert-button': true, 'ion-focusable': true, 'ion-activatable': true, [`alert-button-role-${button.role}`]: button.role !== undefined }, getClassMap(button.cssClass));
10929
10960
  };
10930
10961
 
@@ -19263,7 +19294,7 @@ class Input {
19263
19294
  /**
19264
19295
  * Whether auto correction should be enabled when the user is entering/editing the text value.
19265
19296
  */
19266
- this.autocorrect = 'off';
19297
+ this.autocorrect = false;
19267
19298
  /**
19268
19299
  * Sets the [`autofocus` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus) on the native input element.
19269
19300
  *
@@ -19720,7 +19751,7 @@ class Input {
19720
19751
  * TODO(FW-5592): Remove hasStartEndSlots condition
19721
19752
  */
19722
19753
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
19723
- return (hAsync(Host, { key: '9ba9cf425b573d2ca9ac34455a0e6b8474c4de6d', class: createColorClasses$1(this.color, {
19754
+ return (hAsync(Host, { key: '6a05f61339d8045285d5820c2508296cc842c210', class: createColorClasses$1(this.color, {
19724
19755
  [mode]: true,
19725
19756
  'has-value': hasValue,
19726
19757
  'has-focus': hasFocus,
@@ -19731,14 +19762,14 @@ class Input {
19731
19762
  'in-item': inItem,
19732
19763
  'in-item-color': hostContext('ion-item.ion-color', this.el),
19733
19764
  'input-disabled': disabled,
19734
- }) }, 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) => {
19765
+ }) }, 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) => {
19735
19766
  /**
19736
19767
  * This prevents mobile browsers from
19737
19768
  * blurring the input when the clear
19738
19769
  * button is activated.
19739
19770
  */
19740
19771
  ev.preventDefault();
19741
- }, 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()));
19772
+ }, 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()));
19742
19773
  }
19743
19774
  get el() { return getElement(this); }
19744
19775
  static get watchers() { return {
@@ -19766,7 +19797,7 @@ class Input {
19766
19797
  "color": [513],
19767
19798
  "autocapitalize": [1],
19768
19799
  "autocomplete": [1],
19769
- "autocorrect": [1],
19800
+ "autocorrect": [4],
19770
19801
  "autofocus": [4],
19771
19802
  "clearInput": [4, "clear-input"],
19772
19803
  "clearInputIcon": [1, "clear-input-icon"],
@@ -21770,7 +21801,7 @@ class ListHeader {
21770
21801
  /**
21771
21802
  * iOS Loading Enter Animation
21772
21803
  */
21773
- const iosEnterAnimation$4 = (baseEl) => {
21804
+ const iosEnterAnimation$3 = (baseEl) => {
21774
21805
  const baseAnimation = createAnimation();
21775
21806
  const backdropAnimation = createAnimation();
21776
21807
  const wrapperAnimation = createAnimation();
@@ -21795,7 +21826,7 @@ const iosEnterAnimation$4 = (baseEl) => {
21795
21826
  /**
21796
21827
  * iOS Loading Leave Animation
21797
21828
  */
21798
- const iosLeaveAnimation$4 = (baseEl) => {
21829
+ const iosLeaveAnimation$3 = (baseEl) => {
21799
21830
  const baseAnimation = createAnimation();
21800
21831
  const backdropAnimation = createAnimation();
21801
21832
  const wrapperAnimation = createAnimation();
@@ -21968,6 +21999,10 @@ class Loading {
21968
21999
  }
21969
22000
  disconnectedCallback() {
21970
22001
  this.triggerController.removeClickListener();
22002
+ // Clean up aria-hidden if removed without dismiss() being called
22003
+ if (this.presented) {
22004
+ cleanupRootFocusTrapAccessibility();
22005
+ }
21971
22006
  }
21972
22007
  /**
21973
22008
  * Present the loading overlay after it has been created.
@@ -21975,7 +22010,7 @@ class Loading {
21975
22010
  async present() {
21976
22011
  const unlock = await this.lockController.lock();
21977
22012
  await this.delegateController.attachViewToDom();
21978
- await present(this, 'loadingEnter', iosEnterAnimation$4, mdEnterAnimation$3);
22013
+ await present(this, 'loadingEnter', iosEnterAnimation$3, mdEnterAnimation$3);
21979
22014
  if (this.duration > 0) {
21980
22015
  this.durationTimeout = setTimeout(() => this.dismiss(), this.duration + 10);
21981
22016
  }
@@ -21998,7 +22033,7 @@ class Loading {
21998
22033
  if (this.durationTimeout) {
21999
22034
  clearTimeout(this.durationTimeout);
22000
22035
  }
22001
- const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$4, mdLeaveAnimation$3);
22036
+ const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$3, mdLeaveAnimation$3);
22002
22037
  if (dismissed) {
22003
22038
  this.delegateController.removeViewFromDom();
22004
22039
  }
@@ -22033,9 +22068,9 @@ class Loading {
22033
22068
  * Otherwise, don't set aria-labelledby.
22034
22069
  */
22035
22070
  const ariaLabelledBy = message !== undefined ? msgId : null;
22036
- return (hAsync(Host, Object.assign({ key: 'f86ddbc600cb5c396b7de38fb5f49625388c3c3f', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
22071
+ return (hAsync(Host, Object.assign({ key: 'ab48bfcee8f7e3e33847a2f262fdc08b9ea804ca', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
22037
22072
  zIndex: `${40000 + this.overlayIndex}`,
22038
- }, 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" })));
22073
+ }, 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" })));
22039
22074
  }
22040
22075
  get el() { return getElement(this); }
22041
22076
  static get watchers() { return {
@@ -24309,7 +24344,7 @@ const createEnterAnimation$1 = () => {
24309
24344
  /**
24310
24345
  * iOS Modal Enter Animation for the Card presentation style
24311
24346
  */
24312
- const iosEnterAnimation$3 = (baseEl, opts) => {
24347
+ const iosEnterAnimation$2 = (baseEl, opts) => {
24313
24348
  const { presentingEl, currentBreakpoint, expandToScroll } = opts;
24314
24349
  const root = getElementRoot(baseEl);
24315
24350
  const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
@@ -24402,7 +24437,7 @@ const createLeaveAnimation$1 = () => {
24402
24437
  /**
24403
24438
  * iOS Modal Leave Animation
24404
24439
  */
24405
- const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
24440
+ const iosLeaveAnimation$2 = (baseEl, opts, duration = 500) => {
24406
24441
  const { presentingEl, currentBreakpoint } = opts;
24407
24442
  const root = getElementRoot(baseEl);
24408
24443
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
@@ -25775,6 +25810,10 @@ class Modal {
25775
25810
  // Also called in dismiss() — intentional dual cleanup covers both
25776
25811
  // dismiss-then-remove and direct DOM removal without dismiss.
25777
25812
  this.cleanupSafeAreaOverrides();
25813
+ // Clean up aria-hidden if removed without dismiss() being called
25814
+ if (this.presented) {
25815
+ cleanupRootFocusTrapAccessibility();
25816
+ }
25778
25817
  }
25779
25818
  componentWillLoad() {
25780
25819
  var _a;
@@ -25951,7 +25990,7 @@ class Modal {
25951
25990
  this.statusBarStyle = await StatusBar.getStyle();
25952
25991
  setCardStatusBarDark();
25953
25992
  }
25954
- await present(this, 'modalEnter', iosEnterAnimation$3, mdEnterAnimation$2, {
25993
+ await present(this, 'modalEnter', iosEnterAnimation$2, mdEnterAnimation$2, {
25955
25994
  presentingEl: presentingElement,
25956
25995
  currentBreakpoint: this.initialBreakpoint,
25957
25996
  backdropBreakpoint: this.backdropBreakpoint,
@@ -26013,7 +26052,7 @@ class Modal {
26013
26052
  // All of the elements needed for the swipe gesture
26014
26053
  // should be in the DOM and referenced by now, except
26015
26054
  // for the presenting el
26016
- const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$3);
26055
+ const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$2);
26017
26056
  const ani = (this.animation = animationBuilder(el, {
26018
26057
  presentingEl: this.presentingElement,
26019
26058
  expandToScroll: this.expandToScroll,
@@ -26032,7 +26071,7 @@ class Modal {
26032
26071
  if (!wrapperEl || initialBreakpoint === undefined) {
26033
26072
  return;
26034
26073
  }
26035
- const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$3);
26074
+ const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$2);
26036
26075
  const ani = (this.animation = animationBuilder(this.el, {
26037
26076
  presentingEl: this.presentingElement,
26038
26077
  currentBreakpoint: initialBreakpoint,
@@ -26222,7 +26261,7 @@ class Modal {
26222
26261
  window.removeEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
26223
26262
  this.keyboardOpenCallback = undefined;
26224
26263
  }
26225
- const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$3, mdLeaveAnimation$2, {
26264
+ const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$2, mdLeaveAnimation$2, {
26226
26265
  presentingEl: presentingElement,
26227
26266
  currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
26228
26267
  backdropBreakpoint: this.backdropBreakpoint,
@@ -26654,20 +26693,20 @@ class Modal {
26654
26693
  const isCardModal = presentingElement !== undefined && mode === 'ios';
26655
26694
  const isHandleCycle = handleBehavior === 'cycle';
26656
26695
  const isSheetModalWithHandle = isSheetModal && showHandle;
26657
- return (hAsync(Host, Object.assign({ key: 'ab93657f4a5b4c97168d292b398d975e4b5b4af4', "no-router": true,
26696
+ return (hAsync(Host, Object.assign({ key: '1a8350cc8389b167ba9dadd2e629d531af5698cf', "no-router": true,
26658
26697
  // Allow the modal to be navigable when the handle is focusable
26659
26698
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
26660
26699
  zIndex: `${20000 + this.overlayIndex}`,
26661
- }, 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',
26700
+ }, 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',
26662
26701
  /*
26663
26702
  role and aria-modal must be used on the
26664
26703
  same element. They must also be set inside the
26665
26704
  shadow DOM otherwise ion-button will not be highlighted
26666
26705
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
26667
26706
  */
26668
- 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",
26707
+ 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",
26669
26708
  // Prevents the handle from receiving keyboard focus when it does not cycle
26670
- 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 }))));
26709
+ 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 }))));
26671
26710
  }
26672
26711
  get el() { return getElement(this); }
26673
26712
  static get watchers() { return {
@@ -27750,14 +27789,14 @@ class Note {
27750
27789
  }; }
27751
27790
  }
27752
27791
 
27753
- 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)))}`;
27792
+ 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)))}`;
27754
27793
 
27755
- 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%)}`;
27794
+ 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%)}`;
27756
27795
 
27757
27796
  /**
27758
27797
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
27759
27798
  */
27760
- let Picker$1 = class Picker {
27799
+ class Picker {
27761
27800
  constructor(hostRef) {
27762
27801
  registerInstance(this, hostRef);
27763
27802
  this.ionInputModeChange = createEvent(this, "ionInputModeChange", 7);
@@ -28223,8 +28262,8 @@ let Picker$1 = class Picker {
28223
28262
  }
28224
28263
  get el() { return getElement(this); }
28225
28264
  static get style() { return {
28226
- ios: pickerIosCss$1(),
28227
- md: pickerMdCss$1()
28265
+ ios: pickerIosCss(),
28266
+ md: pickerMdCss()
28228
28267
  }; }
28229
28268
  static get cmpMeta() { return {
28230
28269
  "$flags$": 297,
@@ -28236,322 +28275,7 @@ let Picker$1 = class Picker {
28236
28275
  "$lazyBundleId$": "-",
28237
28276
  "$attrsToReflect$": []
28238
28277
  }; }
28239
- };
28240
-
28241
- /**
28242
- * iOS Picker Enter Animation
28243
- */
28244
- const iosEnterAnimation$2 = (baseEl) => {
28245
- const baseAnimation = createAnimation();
28246
- const backdropAnimation = createAnimation();
28247
- const wrapperAnimation = createAnimation();
28248
- backdropAnimation
28249
- .addElement(baseEl.querySelector('ion-backdrop'))
28250
- .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
28251
- .beforeStyles({
28252
- 'pointer-events': 'none',
28253
- })
28254
- .afterClearStyles(['pointer-events']);
28255
- wrapperAnimation
28256
- .addElement(baseEl.querySelector('.picker-wrapper'))
28257
- .fromTo('transform', 'translateY(100%)', 'translateY(0%)');
28258
- return baseAnimation
28259
- .addElement(baseEl)
28260
- .easing('cubic-bezier(.36,.66,.04,1)')
28261
- .duration(400)
28262
- .addAnimation([backdropAnimation, wrapperAnimation]);
28263
- };
28264
-
28265
- /**
28266
- * iOS Picker Leave Animation
28267
- */
28268
- const iosLeaveAnimation$2 = (baseEl) => {
28269
- const baseAnimation = createAnimation();
28270
- const backdropAnimation = createAnimation();
28271
- const wrapperAnimation = createAnimation();
28272
- backdropAnimation
28273
- .addElement(baseEl.querySelector('ion-backdrop'))
28274
- .fromTo('opacity', 'var(--backdrop-opacity)', 0.01);
28275
- wrapperAnimation
28276
- .addElement(baseEl.querySelector('.picker-wrapper'))
28277
- .fromTo('transform', 'translateY(0%)', 'translateY(100%)');
28278
- return baseAnimation
28279
- .addElement(baseEl)
28280
- .easing('cubic-bezier(.36,.66,.04,1)')
28281
- .duration(400)
28282
- .addAnimation([backdropAnimation, wrapperAnimation]);
28283
- };
28284
-
28285
- 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}`;
28286
-
28287
- 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}`;
28288
-
28289
- // TODO(FW-2832): types
28290
- /**
28291
- * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
28292
- */
28293
- class Picker {
28294
- constructor(hostRef) {
28295
- registerInstance(this, hostRef);
28296
- this.didPresent = createEvent(this, "ionPickerDidPresent", 7);
28297
- this.willPresent = createEvent(this, "ionPickerWillPresent", 7);
28298
- this.willDismiss = createEvent(this, "ionPickerWillDismiss", 7);
28299
- this.didDismiss = createEvent(this, "ionPickerDidDismiss", 7);
28300
- this.didPresentShorthand = createEvent(this, "didPresent", 7);
28301
- this.willPresentShorthand = createEvent(this, "willPresent", 7);
28302
- this.willDismissShorthand = createEvent(this, "willDismiss", 7);
28303
- this.didDismissShorthand = createEvent(this, "didDismiss", 7);
28304
- this.delegateController = createDelegateController(this);
28305
- this.lockController = createLockController();
28306
- this.triggerController = createTriggerController();
28307
- this.presented = false;
28308
- /** @internal */
28309
- this.hasController = false;
28310
- /**
28311
- * If `true`, the keyboard will be automatically dismissed when the overlay is presented.
28312
- */
28313
- this.keyboardClose = true;
28314
- /**
28315
- * Array of buttons to be displayed at the top of the picker.
28316
- */
28317
- this.buttons = [];
28318
- /**
28319
- * Array of columns to be displayed in the picker.
28320
- */
28321
- this.columns = [];
28322
- /**
28323
- * Number of milliseconds to wait before dismissing the picker.
28324
- */
28325
- this.duration = 0;
28326
- /**
28327
- * If `true`, a backdrop will be displayed behind the picker.
28328
- */
28329
- this.showBackdrop = true;
28330
- /**
28331
- * If `true`, the picker will be dismissed when the backdrop is clicked.
28332
- */
28333
- this.backdropDismiss = true;
28334
- /**
28335
- * If `true`, the picker will animate.
28336
- */
28337
- this.animated = true;
28338
- /**
28339
- * If `true`, the picker will open. If `false`, the picker will close.
28340
- * Use this if you need finer grained control over presentation, otherwise
28341
- * just use the pickerController or the `trigger` property.
28342
- * Note: `isOpen` will not automatically be set back to `false` when
28343
- * the picker dismisses. You will need to do that in your code.
28344
- */
28345
- this.isOpen = false;
28346
- this.onBackdropTap = () => {
28347
- this.dismiss(undefined, BACKDROP);
28348
- };
28349
- this.dispatchCancelHandler = (ev) => {
28350
- const role = ev.detail.role;
28351
- if (isCancel(role)) {
28352
- const cancelButton = this.buttons.find((b) => b.role === 'cancel');
28353
- this.callButtonHandler(cancelButton);
28354
- }
28355
- };
28356
- }
28357
- onIsOpenChange(newValue, oldValue) {
28358
- if (newValue === true && oldValue === false) {
28359
- this.present();
28360
- }
28361
- else if (newValue === false && oldValue === true) {
28362
- this.dismiss();
28363
- }
28364
- }
28365
- triggerChanged() {
28366
- const { trigger, el, triggerController } = this;
28367
- if (trigger) {
28368
- triggerController.addClickListener(el, trigger);
28369
- }
28370
- }
28371
- connectedCallback() {
28372
- prepareOverlay(this.el);
28373
- this.triggerChanged();
28374
- }
28375
- disconnectedCallback() {
28376
- this.triggerController.removeClickListener();
28377
- }
28378
- componentWillLoad() {
28379
- var _a;
28380
- if (!((_a = this.htmlAttributes) === null || _a === void 0 ? void 0 : _a.id)) {
28381
- setOverlayId(this.el);
28382
- }
28383
- }
28384
- componentDidLoad() {
28385
- 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);
28386
- /**
28387
- * If picker was rendered with isOpen="true"
28388
- * then we should open picker immediately.
28389
- */
28390
- if (this.isOpen === true) {
28391
- raf(() => this.present());
28392
- }
28393
- /**
28394
- * When binding values in frameworks such as Angular
28395
- * it is possible for the value to be set after the Web Component
28396
- * initializes but before the value watcher is set up in Stencil.
28397
- * As a result, the watcher callback may not be fired.
28398
- * We work around this by manually calling the watcher
28399
- * callback when the component has loaded and the watcher
28400
- * is configured.
28401
- */
28402
- this.triggerChanged();
28403
- }
28404
- /**
28405
- * Present the picker overlay after it has been created.
28406
- */
28407
- async present() {
28408
- const unlock = await this.lockController.lock();
28409
- await this.delegateController.attachViewToDom();
28410
- await present(this, 'pickerEnter', iosEnterAnimation$2, iosEnterAnimation$2, undefined);
28411
- if (this.duration > 0) {
28412
- this.durationTimeout = setTimeout(() => this.dismiss(), this.duration);
28413
- }
28414
- unlock();
28415
- }
28416
- /**
28417
- * Dismiss the picker overlay after it has been presented.
28418
- *
28419
- * @param data Any data to emit in the dismiss events.
28420
- * @param role The role of the element that is dismissing the picker.
28421
- * This can be useful in a button handler for determining which button was
28422
- * clicked to dismiss the picker.
28423
- * Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
28424
- */
28425
- async dismiss(data, role) {
28426
- const unlock = await this.lockController.lock();
28427
- if (this.durationTimeout) {
28428
- clearTimeout(this.durationTimeout);
28429
- }
28430
- const dismissed = await dismiss(this, data, role, 'pickerLeave', iosLeaveAnimation$2, iosLeaveAnimation$2);
28431
- if (dismissed) {
28432
- this.delegateController.removeViewFromDom();
28433
- }
28434
- unlock();
28435
- return dismissed;
28436
- }
28437
- /**
28438
- * Returns a promise that resolves when the picker did dismiss.
28439
- */
28440
- onDidDismiss() {
28441
- return eventMethod(this.el, 'ionPickerDidDismiss');
28442
- }
28443
- /**
28444
- * Returns a promise that resolves when the picker will dismiss.
28445
- */
28446
- onWillDismiss() {
28447
- return eventMethod(this.el, 'ionPickerWillDismiss');
28448
- }
28449
- /**
28450
- * Get the column that matches the specified name.
28451
- *
28452
- * @param name The name of the column.
28453
- */
28454
- getColumn(name) {
28455
- return Promise.resolve(this.columns.find((column) => column.name === name));
28456
- }
28457
- async buttonClick(button) {
28458
- const role = button.role;
28459
- if (isCancel(role)) {
28460
- return this.dismiss(undefined, role);
28461
- }
28462
- const shouldDismiss = await this.callButtonHandler(button);
28463
- if (shouldDismiss) {
28464
- return this.dismiss(this.getSelected(), button.role);
28465
- }
28466
- return Promise.resolve();
28467
- }
28468
- async callButtonHandler(button) {
28469
- if (button) {
28470
- // a handler has been provided, execute it
28471
- // pass the handler the values from the inputs
28472
- const rtn = await safeCall(button.handler, this.getSelected());
28473
- if (rtn === false) {
28474
- // if the return value of the handler is false then do not dismiss
28475
- return false;
28476
- }
28477
- }
28478
- return true;
28479
- }
28480
- getSelected() {
28481
- const selected = {};
28482
- this.columns.forEach((col, index) => {
28483
- const selectedColumn = col.selectedIndex !== undefined ? col.options[col.selectedIndex] : undefined;
28484
- selected[col.name] = {
28485
- text: selectedColumn ? selectedColumn.text : undefined,
28486
- value: selectedColumn ? selectedColumn.value : undefined,
28487
- columnIndex: index,
28488
- };
28489
- });
28490
- return selected;
28491
- }
28492
- render() {
28493
- const { htmlAttributes } = this;
28494
- const mode = getIonMode$1(this);
28495
- return (hAsync(Host, Object.assign({ key: '80f66d33780d8a1352d24be9cb63a0cc03d01ab5', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
28496
- zIndex: `${20000 + this.overlayIndex}`,
28497
- }, class: Object.assign({ [mode]: true,
28498
- // Used internally for styling
28499
- [`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" })));
28500
- }
28501
- get el() { return getElement(this); }
28502
- static get watchers() { return {
28503
- "isOpen": [{
28504
- "onIsOpenChange": 0
28505
- }],
28506
- "trigger": [{
28507
- "triggerChanged": 0
28508
- }]
28509
- }; }
28510
- static get style() { return {
28511
- ios: pickerIosCss(),
28512
- md: pickerMdCss()
28513
- }; }
28514
- static get cmpMeta() { return {
28515
- "$flags$": 34,
28516
- "$tagName$": "ion-picker-legacy",
28517
- "$members$": {
28518
- "overlayIndex": [2, "overlay-index"],
28519
- "delegate": [16],
28520
- "hasController": [4, "has-controller"],
28521
- "keyboardClose": [4, "keyboard-close"],
28522
- "enterAnimation": [16],
28523
- "leaveAnimation": [16],
28524
- "buttons": [16],
28525
- "columns": [16],
28526
- "cssClass": [1, "css-class"],
28527
- "duration": [2],
28528
- "showBackdrop": [4, "show-backdrop"],
28529
- "backdropDismiss": [4, "backdrop-dismiss"],
28530
- "animated": [4],
28531
- "htmlAttributes": [16],
28532
- "isOpen": [4, "is-open"],
28533
- "trigger": [1],
28534
- "presented": [32],
28535
- "present": [64],
28536
- "dismiss": [64],
28537
- "onDidDismiss": [64],
28538
- "onWillDismiss": [64],
28539
- "getColumn": [64]
28540
- },
28541
- "$listeners$": undefined,
28542
- "$lazyBundleId$": "-",
28543
- "$attrsToReflect$": []
28544
- }; }
28545
28278
  }
28546
- const buttonWrapperClass = (button) => {
28547
- return {
28548
- [`picker-toolbar-${button.role}`]: button.role !== undefined,
28549
- 'picker-toolbar-button': true,
28550
- };
28551
- };
28552
- const buttonClass$1 = (button) => {
28553
- return Object.assign({ 'picker-button': true, 'ion-activatable': true }, getClassMap(button.cssClass));
28554
- };
28555
28279
 
28556
28280
  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)}}`;
28557
28281
 
@@ -29138,371 +28862,6 @@ class PickerColumn {
29138
28862
  }
29139
28863
  const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
29140
28864
 
29141
- 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}}`;
29142
-
29143
- 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)}`;
29144
-
29145
- /**
29146
- * @internal
29147
- */
29148
- class PickerColumnCmp {
29149
- constructor(hostRef) {
29150
- registerInstance(this, hostRef);
29151
- this.ionPickerColChange = createEvent(this, "ionPickerColChange", 7);
29152
- this.optHeight = 0;
29153
- this.rotateFactor = 0;
29154
- this.scaleFactor = 1;
29155
- this.velocity = 0;
29156
- this.y = 0;
29157
- this.noAnimate = true;
29158
- // `colDidChange` is a flag that gets set when the column is changed
29159
- // dynamically. When this flag is set, the column will refresh
29160
- // after the component re-renders to incorporate the new column data.
29161
- // This is necessary because `this.refresh` queries for the option elements,
29162
- // so it needs to wait for the latest elements to be available in the DOM.
29163
- // Ex: column is created with 3 options. User updates the column data
29164
- // to have 5 options. The column will still think it only has 3 options.
29165
- this.colDidChange = false;
29166
- }
29167
- colChanged() {
29168
- this.colDidChange = true;
29169
- }
29170
- async connectedCallback() {
29171
- let pickerRotateFactor = 0;
29172
- let pickerScaleFactor = 0.81;
29173
- const mode = getIonMode$1(this);
29174
- if (mode === 'ios') {
29175
- pickerRotateFactor = -0.46;
29176
- pickerScaleFactor = 1;
29177
- }
29178
- this.rotateFactor = pickerRotateFactor;
29179
- this.scaleFactor = pickerScaleFactor;
29180
- this.gesture = (await Promise.resolve().then(function () { return index; })).createGesture({
29181
- el: this.el,
29182
- gestureName: 'picker-swipe',
29183
- gesturePriority: 100,
29184
- threshold: 0,
29185
- passive: false,
29186
- onStart: (ev) => this.onStart(ev),
29187
- onMove: (ev) => this.onMove(ev),
29188
- onEnd: (ev) => this.onEnd(ev),
29189
- });
29190
- this.gesture.enable();
29191
- // Options have not been initialized yet
29192
- // Animation must be disabled through the `noAnimate` flag
29193
- // Otherwise, the options will render
29194
- // at the top of the column and transition down
29195
- this.tmrId = setTimeout(() => {
29196
- this.noAnimate = false;
29197
- // After initialization, `refresh()` will be called
29198
- // At this point, animation will be enabled. The options will
29199
- // animate as they are being selected.
29200
- this.refresh(true);
29201
- }, 250);
29202
- }
29203
- componentDidLoad() {
29204
- this.onDomChange();
29205
- }
29206
- componentDidUpdate() {
29207
- // Options may have changed since last update.
29208
- if (this.colDidChange) {
29209
- // Animation must be disabled through the `onDomChange` parameter.
29210
- // Otherwise, the recently added options will render
29211
- // at the top of the column and transition down
29212
- this.onDomChange(true, false);
29213
- this.colDidChange = false;
29214
- }
29215
- }
29216
- disconnectedCallback() {
29217
- if (this.rafId !== undefined)
29218
- cancelAnimationFrame(this.rafId);
29219
- if (this.tmrId)
29220
- clearTimeout(this.tmrId);
29221
- if (this.gesture) {
29222
- this.gesture.destroy();
29223
- this.gesture = undefined;
29224
- }
29225
- }
29226
- emitColChange() {
29227
- this.ionPickerColChange.emit(this.col);
29228
- }
29229
- setSelected(selectedIndex, duration) {
29230
- // if there is a selected index, then figure out it's y position
29231
- // if there isn't a selected index, then just use the top y position
29232
- const y = selectedIndex > -1 ? -(selectedIndex * this.optHeight) : 0;
29233
- this.velocity = 0;
29234
- // set what y position we're at
29235
- if (this.rafId !== undefined)
29236
- cancelAnimationFrame(this.rafId);
29237
- this.update(y, duration, true);
29238
- this.emitColChange();
29239
- }
29240
- update(y, duration, saveY) {
29241
- if (!this.optsEl) {
29242
- return;
29243
- }
29244
- // ensure we've got a good round number :)
29245
- let translateY = 0;
29246
- let translateZ = 0;
29247
- const { col, rotateFactor } = this;
29248
- const prevSelected = col.selectedIndex;
29249
- const selectedIndex = (col.selectedIndex = this.indexForY(-y));
29250
- const durationStr = duration === 0 ? '' : duration + 'ms';
29251
- const scaleStr = `scale(${this.scaleFactor})`;
29252
- const children = this.optsEl.children;
29253
- for (let i = 0; i < children.length; i++) {
29254
- const button = children[i];
29255
- const opt = col.options[i];
29256
- const optOffset = i * this.optHeight + y;
29257
- let transform = '';
29258
- if (rotateFactor !== 0) {
29259
- const rotateX = optOffset * rotateFactor;
29260
- if (Math.abs(rotateX) <= 90) {
29261
- translateY = 0;
29262
- translateZ = 90;
29263
- transform = `rotateX(${rotateX}deg) `;
29264
- }
29265
- else {
29266
- translateY = -9999;
29267
- }
29268
- }
29269
- else {
29270
- translateZ = 0;
29271
- translateY = optOffset;
29272
- }
29273
- const selected = selectedIndex === i;
29274
- transform += `translate3d(0px,${translateY}px,${translateZ}px) `;
29275
- if (this.scaleFactor !== 1 && !selected) {
29276
- transform += scaleStr;
29277
- }
29278
- // Update transition duration
29279
- if (this.noAnimate) {
29280
- opt.duration = 0;
29281
- button.style.transitionDuration = '';
29282
- }
29283
- else if (duration !== opt.duration) {
29284
- opt.duration = duration;
29285
- button.style.transitionDuration = durationStr;
29286
- }
29287
- // Update transform
29288
- if (transform !== opt.transform) {
29289
- opt.transform = transform;
29290
- }
29291
- button.style.transform = transform;
29292
- /**
29293
- * Ensure that the select column
29294
- * item has the selected class
29295
- */
29296
- opt.selected = selected;
29297
- if (selected) {
29298
- button.classList.add(PICKER_OPT_SELECTED);
29299
- }
29300
- else {
29301
- button.classList.remove(PICKER_OPT_SELECTED);
29302
- }
29303
- }
29304
- this.col.prevSelected = prevSelected;
29305
- if (saveY) {
29306
- this.y = y;
29307
- }
29308
- if (this.lastIndex !== selectedIndex) {
29309
- // have not set a last index yet
29310
- hapticSelectionChanged();
29311
- this.lastIndex = selectedIndex;
29312
- }
29313
- }
29314
- decelerate() {
29315
- if (this.velocity !== 0) {
29316
- // still decelerating
29317
- this.velocity *= DECELERATION_FRICTION;
29318
- // do not let it go slower than a velocity of 1
29319
- this.velocity = this.velocity > 0 ? Math.max(this.velocity, 1) : Math.min(this.velocity, -1);
29320
- let y = this.y + this.velocity;
29321
- if (y > this.minY) {
29322
- // whoops, it's trying to scroll up farther than the options we have!
29323
- y = this.minY;
29324
- this.velocity = 0;
29325
- }
29326
- else if (y < this.maxY) {
29327
- // gahh, it's trying to scroll down farther than we can!
29328
- y = this.maxY;
29329
- this.velocity = 0;
29330
- }
29331
- this.update(y, 0, true);
29332
- const notLockedIn = Math.round(y) % this.optHeight !== 0 || Math.abs(this.velocity) > 1;
29333
- if (notLockedIn) {
29334
- // isn't locked in yet, keep decelerating until it is
29335
- this.rafId = requestAnimationFrame(() => this.decelerate());
29336
- }
29337
- else {
29338
- this.velocity = 0;
29339
- this.emitColChange();
29340
- hapticSelectionEnd();
29341
- }
29342
- }
29343
- else if (this.y % this.optHeight !== 0) {
29344
- // needs to still get locked into a position so options line up
29345
- const currentPos = Math.abs(this.y % this.optHeight);
29346
- // create a velocity in the direction it needs to scroll
29347
- this.velocity = currentPos > this.optHeight / 2 ? 1 : -1;
29348
- this.decelerate();
29349
- }
29350
- }
29351
- indexForY(y) {
29352
- return Math.min(Math.max(Math.abs(Math.round(y / this.optHeight)), 0), this.col.options.length - 1);
29353
- }
29354
- onStart(detail) {
29355
- // We have to prevent default in order to block scrolling under the picker
29356
- // but we DO NOT have to stop propagation, since we still want
29357
- // some "click" events to capture
29358
- if (detail.event.cancelable) {
29359
- detail.event.preventDefault();
29360
- }
29361
- detail.event.stopPropagation();
29362
- hapticSelectionStart();
29363
- // reset everything
29364
- if (this.rafId !== undefined)
29365
- cancelAnimationFrame(this.rafId);
29366
- const options = this.col.options;
29367
- let minY = options.length - 1;
29368
- let maxY = 0;
29369
- for (let i = 0; i < options.length; i++) {
29370
- if (!options[i].disabled) {
29371
- minY = Math.min(minY, i);
29372
- maxY = Math.max(maxY, i);
29373
- }
29374
- }
29375
- this.minY = -(minY * this.optHeight);
29376
- this.maxY = -(maxY * this.optHeight);
29377
- }
29378
- onMove(detail) {
29379
- if (detail.event.cancelable) {
29380
- detail.event.preventDefault();
29381
- }
29382
- detail.event.stopPropagation();
29383
- // update the scroll position relative to pointer start position
29384
- let y = this.y + detail.deltaY;
29385
- if (y > this.minY) {
29386
- // scrolling up higher than scroll area
29387
- y = Math.pow(y, 0.8);
29388
- this.bounceFrom = y;
29389
- }
29390
- else if (y < this.maxY) {
29391
- // scrolling down below scroll area
29392
- y += Math.pow(this.maxY - y, 0.9);
29393
- this.bounceFrom = y;
29394
- }
29395
- else {
29396
- this.bounceFrom = 0;
29397
- }
29398
- this.update(y, 0, false);
29399
- }
29400
- onEnd(detail) {
29401
- if (this.bounceFrom > 0) {
29402
- // bounce back up
29403
- this.update(this.minY, 100, true);
29404
- this.emitColChange();
29405
- return;
29406
- }
29407
- else if (this.bounceFrom < 0) {
29408
- // bounce back down
29409
- this.update(this.maxY, 100, true);
29410
- this.emitColChange();
29411
- return;
29412
- }
29413
- this.velocity = clamp(-MAX_PICKER_SPEED, detail.velocityY * 23, MAX_PICKER_SPEED);
29414
- if (this.velocity === 0 && detail.deltaY === 0) {
29415
- const opt = detail.event.target.closest('.picker-opt');
29416
- if (opt === null || opt === void 0 ? void 0 : opt.hasAttribute('opt-index')) {
29417
- this.setSelected(parseInt(opt.getAttribute('opt-index'), 10), TRANSITION_DURATION);
29418
- }
29419
- }
29420
- else {
29421
- this.y += detail.deltaY;
29422
- if (Math.abs(detail.velocityY) < 0.05) {
29423
- const isScrollingUp = detail.deltaY > 0;
29424
- const optHeightFraction = (Math.abs(this.y) % this.optHeight) / this.optHeight;
29425
- if (isScrollingUp && optHeightFraction > 0.5) {
29426
- this.velocity = Math.abs(this.velocity) * -1;
29427
- }
29428
- else if (!isScrollingUp && optHeightFraction <= 0.5) {
29429
- this.velocity = Math.abs(this.velocity);
29430
- }
29431
- }
29432
- this.decelerate();
29433
- }
29434
- }
29435
- refresh(forceRefresh, animated) {
29436
- var _a;
29437
- let min = this.col.options.length - 1;
29438
- let max = 0;
29439
- const options = this.col.options;
29440
- for (let i = 0; i < options.length; i++) {
29441
- if (!options[i].disabled) {
29442
- min = Math.min(min, i);
29443
- max = Math.max(max, i);
29444
- }
29445
- }
29446
- /**
29447
- * Only update selected value if column has a
29448
- * velocity of 0. If it does not, then the
29449
- * column is animating might land on
29450
- * a value different than the value at
29451
- * selectedIndex
29452
- */
29453
- if (this.velocity !== 0) {
29454
- return;
29455
- }
29456
- const selectedIndex = clamp(min, (_a = this.col.selectedIndex) !== null && _a !== void 0 ? _a : 0, max);
29457
- if (this.col.prevSelected !== selectedIndex || forceRefresh) {
29458
- const y = selectedIndex * this.optHeight * -1;
29459
- const duration = animated ? TRANSITION_DURATION : 0;
29460
- this.velocity = 0;
29461
- this.update(y, duration, true);
29462
- }
29463
- }
29464
- onDomChange(forceRefresh, animated) {
29465
- const colEl = this.optsEl;
29466
- if (colEl) {
29467
- // DOM READ
29468
- // We perfom a DOM read over a rendered item, this needs to happen after the first render or after the column has changed
29469
- this.optHeight = colEl.firstElementChild ? colEl.firstElementChild.clientHeight : 0;
29470
- }
29471
- this.refresh(forceRefresh, animated);
29472
- }
29473
- render() {
29474
- const col = this.col;
29475
- const mode = getIonMode$1(this);
29476
- 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: {
29477
- 'max-width': this.col.columnWidth,
29478
- } }, 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))));
29479
- }
29480
- get el() { return getElement(this); }
29481
- static get watchers() { return {
29482
- "col": [{
29483
- "colChanged": 0
29484
- }]
29485
- }; }
29486
- static get style() { return {
29487
- ios: pickerColumnIosCss(),
29488
- md: pickerColumnMdCss()
29489
- }; }
29490
- static get cmpMeta() { return {
29491
- "$flags$": 32,
29492
- "$tagName$": "ion-picker-legacy-column",
29493
- "$members$": {
29494
- "col": [16]
29495
- },
29496
- "$listeners$": undefined,
29497
- "$lazyBundleId$": "-",
29498
- "$attrsToReflect$": []
29499
- }; }
29500
- }
29501
- const PICKER_OPT_SELECTED = 'picker-opt-selected';
29502
- const DECELERATION_FRICTION = 0.97;
29503
- const MAX_PICKER_SPEED = 90;
29504
- const TRANSITION_DURATION = 150;
29505
-
29506
28865
  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}`;
29507
28866
 
29508
28867
  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)}`;
@@ -30924,6 +30283,10 @@ class Popover {
30924
30283
  this.headerResizeObserver.disconnect();
30925
30284
  this.headerResizeObserver = undefined;
30926
30285
  }
30286
+ // Clean up aria-hidden if removed without dismiss() being called
30287
+ if (this.presented) {
30288
+ cleanupRootFocusTrapAccessibility();
30289
+ }
30927
30290
  }
30928
30291
  componentWillLoad() {
30929
30292
  var _a, _b;
@@ -31162,9 +30525,9 @@ class Popover {
31162
30525
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
31163
30526
  const desktop = isPlatform('desktop');
31164
30527
  const enableArrow = arrow && !parentPopover;
31165
- return (hAsync(Host, Object.assign({ key: '2edd8333c630efbce59071f8a383e4326e928dbc', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
30528
+ return (hAsync(Host, Object.assign({ key: 'd7f3aa2c2fa93a93585e3eda9e4a6d0daaa541be', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
31166
30529
  zIndex: `${20000 + this.overlayIndex}`,
31167
- }, 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' })))));
30530
+ }, 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' })))));
31168
30531
  }
31169
30532
  get el() { return getElement(this); }
31170
30533
  static get watchers() { return {
@@ -31275,7 +30638,7 @@ class ProgressBar {
31275
30638
  const mode = getIonMode$1(this);
31276
30639
  // If the progress is displayed as a solid bar.
31277
30640
  const progressSolid = buffer === 1;
31278
- return (hAsync(Host, { key: 'c859e48f3d24a458239e36d925e5dc003ed07c6b', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
30641
+ return (hAsync(Host, { key: 'd7476268ce53b6a4f425b7bc9f01d6935eb411c3', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
31279
30642
  [mode]: true,
31280
30643
  [`progress-bar-${type}`]: true,
31281
30644
  'progress-paused': paused,
@@ -31460,7 +30823,7 @@ class Radio {
31460
30823
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
31461
30824
  const mode = getIonMode$1(this);
31462
30825
  const inItem = hostContext('ion-item', el);
31463
- return (hAsync(Host, { key: 'af5dc59ed528150872e907ed1036e3e2decba939', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
30826
+ return (hAsync(Host, { key: 'd9425b252ed38086420d91d5c680421d121c99f4', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
31464
30827
  [mode]: true,
31465
30828
  'in-item': inItem,
31466
30829
  'radio-checked': checked,
@@ -31471,10 +30834,10 @@ class Radio {
31471
30834
  // Focus and active styling should not apply when the radio is in an item
31472
30835
  'ion-activatable': !inItem,
31473
30836
  'ion-focusable': !inItem,
31474
- }), 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: {
30837
+ }), 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: {
31475
30838
  'label-text-wrapper': true,
31476
30839
  'label-text-wrapper-hidden': !hasLabel,
31477
- }, part: "label" }, hAsync("slot", { key: '0a4613d29aa783d1882cf889377f7e4fd4fea51d' })), hAsync("div", { key: '191faea79dc4cd8befc4b873f5bd9f5af8ca2acc', class: "native-wrapper" }, this.renderRadioControl()))));
30840
+ }, part: "label" }, hAsync("slot", { key: '589d7c1b45a1918b5811663daa8f30788e7729f8' })), hAsync("div", { key: '0f61a17b195582d6c9a0c597cd40e6629256e479', class: "native-wrapper" }, this.renderRadioControl()))));
31478
30841
  }
31479
30842
  get el() { return getElement(this); }
31480
30843
  static get watchers() { return {
@@ -31493,7 +30856,7 @@ class Radio {
31493
30856
  "color": [513],
31494
30857
  "name": [1],
31495
30858
  "disabled": [4],
31496
- "value": [8],
30859
+ "value": [520],
31497
30860
  "labelPlacement": [1, "label-placement"],
31498
30861
  "justify": [1],
31499
30862
  "alignment": [1],
@@ -31504,7 +30867,7 @@ class Radio {
31504
30867
  },
31505
30868
  "$listeners$": undefined,
31506
30869
  "$lazyBundleId$": "-",
31507
- "$attrsToReflect$": [["color", "color"]]
30870
+ "$attrsToReflect$": [["color", "color"], ["value", "value"]]
31508
30871
  }; }
31509
30872
  }
31510
30873
  let radioButtonIds = 0;
@@ -32569,7 +31932,7 @@ class Range {
32569
31932
  const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
32570
31933
  const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
32571
31934
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
32572
- return (hAsync(Host, { key: 'f8063d1234fb113fe55a7902845dd4b4da8b1edb', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
31935
+ return (hAsync(Host, { key: 'cd26f0187c0d37c7eb9df923f75c8a0f57c19ab6', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
32573
31936
  [mode]: true,
32574
31937
  'in-item': inItem,
32575
31938
  'range-disabled': disabled,
@@ -32583,10 +31946,10 @@ class Range {
32583
31946
  'range-item-end-adjustment': needsEndAdjustment,
32584
31947
  'range-value-min': valueAtMin,
32585
31948
  'range-value-max': valueAtMax,
32586
- }) }, hAsync("label", { key: 'beead65ab01e3b18e4be59c0ee8ac6ebf32aad7c', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '03633c689d9d2e4c50a2131bcd560329df49e314', class: {
31949
+ }) }, hAsync("label", { key: '90224fd24b0e625a17e7972feff73a0ac31e093d', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'e07b9fa10983249c425eec26b741f0f628daf2b2', class: {
32587
31950
  'label-text-wrapper': true,
32588
31951
  'label-text-wrapper-hidden': !hasLabel,
32589
- }, 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" })))));
31952
+ }, 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" })))));
32590
31953
  }
32591
31954
  get el() { return getElement(this); }
32592
31955
  static get watchers() { return {
@@ -33657,7 +33020,7 @@ class Refresher {
33657
33020
  }
33658
33021
  render() {
33659
33022
  const mode = getIonMode$1(this);
33660
- return (hAsync(Host, { key: '80fa313b0d77161680836bdd6aa334d02c549b41', slot: "fixed", class: {
33023
+ return (hAsync(Host, { key: '1dd475095f76491206644828cf89fc6d2ec276d1', slot: "fixed", class: {
33661
33024
  [mode]: true,
33662
33025
  // Used internally for styling
33663
33026
  [`refresher-${mode}`]: true,
@@ -33883,7 +33246,7 @@ class RefresherContent {
33883
33246
  const pullingIcon = this.pullingIcon;
33884
33247
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
33885
33248
  const mode = getIonMode$1(this);
33886
- 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())));
33249
+ 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())));
33887
33250
  }
33888
33251
  get el() { return getElement(this); }
33889
33252
  static get cmpMeta() { return {
@@ -33924,7 +33287,7 @@ class Reorder {
33924
33287
  render() {
33925
33288
  const mode = getIonMode$1(this);
33926
33289
  const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
33927
- 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" }))));
33290
+ 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" }))));
33928
33291
  }
33929
33292
  get el() { return getElement(this); }
33930
33293
  static get style() { return {
@@ -34195,7 +33558,7 @@ class ReorderGroup {
34195
33558
  }
34196
33559
  render() {
34197
33560
  const mode = getIonMode$1(this);
34198
- return (hAsync(Host, { key: '9527bbdedaab63d31f562c874a7332ea60c4b47b', class: {
33561
+ return (hAsync(Host, { key: '3afdc6a6c81bba2f88ea523d4b73c6fccff1b9ec', class: {
34199
33562
  [mode]: true,
34200
33563
  'reorder-enabled': !this.disabled,
34201
33564
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -34313,7 +33676,7 @@ class RippleEffect {
34313
33676
  }
34314
33677
  render() {
34315
33678
  const mode = getIonMode$1(this);
34316
- return (hAsync(Host, { key: '3b59cbb44741569a7350f9638b4392add673b6f1', role: "presentation", class: {
33679
+ return (hAsync(Host, { key: '5e88b5225414e29883256c86f111ded5bdf2ef91', role: "presentation", class: {
34317
33680
  [mode]: true,
34318
33681
  unbounded: this.unbounded,
34319
33682
  } }));
@@ -35447,10 +34810,10 @@ class RouterLink {
35447
34810
  rel: this.rel,
35448
34811
  target: this.target,
35449
34812
  };
35450
- return (hAsync(Host, { key: '8372835161d507c7b821b7536c55f912eb6ce704', onClick: this.onClick, class: createColorClasses$1(this.color, {
34813
+ return (hAsync(Host, { key: '6d5fdfa0dcf1eb216173bcc53f1f4d625f3ec551', onClick: this.onClick, class: createColorClasses$1(this.color, {
35451
34814
  [mode]: true,
35452
34815
  'ion-activatable': true,
35453
- }) }, hAsync("a", Object.assign({ key: '315966e14a17760f3f64197e8315200039787897' }, attrs), hAsync("slot", { key: '95fc1697b884225e85e647dddcaa8f4af8b9a979' }))));
34816
+ }) }, hAsync("a", Object.assign({ key: '85796b7b48581fe9830ba1102dad7d1069de4e17' }, attrs), hAsync("slot", { key: '0f93b0da3ec4ae8f50f624f9e7bed87d13d712d0' }))));
35454
34817
  }
35455
34818
  static get style() { return routerLinkCss(); }
35456
34819
  static get cmpMeta() { return {
@@ -35489,10 +34852,11 @@ class RouterOutlet {
35489
34852
  */
35490
34853
  this.animated = true;
35491
34854
  }
34855
+ swipeGestureChanged() {
34856
+ this.updateGestureEnabled();
34857
+ }
35492
34858
  swipeHandlerChanged() {
35493
- if (this.gesture) {
35494
- this.gesture.enable(this.swipeHandler !== undefined);
35495
- }
34859
+ this.updateGestureEnabled();
35496
34860
  }
35497
34861
  async connectedCallback() {
35498
34862
  const onStart = () => {
@@ -35532,11 +34896,21 @@ class RouterOutlet {
35532
34896
  this.gestureOrAnimationInProgress = false;
35533
34897
  }
35534
34898
  });
35535
- this.swipeHandlerChanged();
34899
+ if (this.swipeGesture === undefined) {
34900
+ this.swipeGesture = config.getBoolean('swipeBackEnabled', this.mode === 'ios');
34901
+ }
34902
+ else {
34903
+ this.updateGestureEnabled();
34904
+ }
35536
34905
  }
35537
34906
  componentWillLoad() {
35538
34907
  this.ionNavWillLoad.emit();
35539
34908
  }
34909
+ updateGestureEnabled() {
34910
+ if (this.gesture) {
34911
+ this.gesture.enable(this.swipeHandler !== undefined && this.swipeGesture === true);
34912
+ }
34913
+ }
35540
34914
  disconnectedCallback() {
35541
34915
  if (this.gesture) {
35542
34916
  this.gesture.destroy();
@@ -35647,10 +35021,13 @@ class RouterOutlet {
35647
35021
  return true;
35648
35022
  }
35649
35023
  render() {
35650
- return hAsync("slot", { key: '386c41745b61daba161cf75063da97fe29ba36cb' });
35024
+ return hAsync("slot", { key: 'ce09e6fbba7b0a2276cdde5245bb37c9a162c1c7' });
35651
35025
  }
35652
35026
  get el() { return getElement(this); }
35653
35027
  static get watchers() { return {
35028
+ "swipeGesture": [{
35029
+ "swipeGestureChanged": 0
35030
+ }],
35654
35031
  "swipeHandler": [{
35655
35032
  "swipeHandlerChanged": 0
35656
35033
  }]
@@ -35664,6 +35041,7 @@ class RouterOutlet {
35664
35041
  "delegate": [16],
35665
35042
  "animated": [4],
35666
35043
  "animation": [16],
35044
+ "swipeGesture": [1028, "swipe-gesture"],
35667
35045
  "swipeHandler": [16],
35668
35046
  "commit": [64],
35669
35047
  "setRouteId": [64],
@@ -35682,7 +35060,7 @@ class Row {
35682
35060
  registerInstance(this, hostRef);
35683
35061
  }
35684
35062
  render() {
35685
- return (hAsync(Host, { key: '8ba906a8cbea060a79ed658c9bf34906f0c11d38', class: getIonMode$1(this) }, hAsync("slot", { key: 'd1009176f45b588fa52c7d9eb336f3c6d3214bb8' })));
35063
+ return (hAsync(Host, { key: 'a9066661fff12baaf3e80b2e8c08591af72fe5b8', class: getIonMode$1(this) }, hAsync("slot", { key: '62b103af46d3a5ec9c146019ae300b68a4ae867a' })));
35686
35064
  }
35687
35065
  static get style() { return rowCss(); }
35688
35066
  static get cmpMeta() { return {
@@ -35734,7 +35112,7 @@ class Searchbar {
35734
35112
  /**
35735
35113
  * Set the input's autocorrect property.
35736
35114
  */
35737
- this.autocorrect = 'off';
35115
+ this.autocorrect = false;
35738
35116
  /**
35739
35117
  * Set the cancel button icon. Only applies to `md` mode.
35740
35118
  * Defaults to `arrow-back-sharp`.
@@ -36134,8 +35512,8 @@ class Searchbar {
36134
35512
  const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
36135
35513
  const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
36136
35514
  const shouldShowCancelButton = this.shouldShowCancelButton();
36137
- const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '9e9f3a7f6ee66140181f8c3cfa42bbeee75adafc', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, hAsync("div", { key: '5f83fbcc0708830637815e8c0b69356cad381870', "aria-hidden": "true" }, mode === 'md' ? (hAsync("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
36138
- return (hAsync(Host, { key: '219c263c1f3cc63e18bc2d2ba5d672b7806eddd0', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
35515
+ 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))));
35516
+ return (hAsync(Host, { key: 'd898b9f9768ec7119a3ad4be8350d8a3cfb32ba6', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
36139
35517
  [mode]: true,
36140
35518
  'searchbar-animated': animated,
36141
35519
  'searchbar-disabled': this.disabled,
@@ -36145,14 +35523,14 @@ class Searchbar {
36145
35523
  'searchbar-has-focus': this.focused,
36146
35524
  'searchbar-should-show-clear': this.shouldShowClearButton(),
36147
35525
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
36148
- }) }, hAsync("div", { key: '3f1c25442d6d87c0df67f79482a925b80dcc403d', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: 'a386fecafda0fab449ea1488906ba6cfc55e2b5c', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, hAsync("ion-icon", { key: '5f81642628335def39a14f0726e0fafdc7203776', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: 'da3073646f2d7f639261b556517fbadabc3c10e9', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
35526
+ }) }, 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) => {
36149
35527
  /**
36150
35528
  * This prevents mobile browsers from
36151
35529
  * blurring the input when the clear
36152
35530
  * button is activated.
36153
35531
  */
36154
35532
  ev.preventDefault();
36155
- }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '065cd6c707ae462c0767df1bab04ce8045f340a4', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
35533
+ }, 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));
36156
35534
  }
36157
35535
  get el() { return getElement(this); }
36158
35536
  static get watchers() { return {
@@ -36184,7 +35562,7 @@ class Searchbar {
36184
35562
  "animated": [4],
36185
35563
  "autocapitalize": [1],
36186
35564
  "autocomplete": [1],
36187
- "autocorrect": [1],
35565
+ "autocorrect": [4],
36188
35566
  "cancelButtonIcon": [1, "cancel-button-icon"],
36189
35567
  "cancelButtonText": [1, "cancel-button-text"],
36190
35568
  "clearIcon": [1, "clear-icon"],
@@ -36761,14 +36139,14 @@ class Segment {
36761
36139
  }
36762
36140
  render() {
36763
36141
  const mode = getIonMode$1(this);
36764
- return (hAsync(Host, { key: 'eda6b7b88b7967b55cf9098c59b655b348a42224', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
36142
+ return (hAsync(Host, { key: 'bb626072e73f09c3433e1a769e09789a00822d8f', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
36765
36143
  [mode]: true,
36766
36144
  'in-toolbar': hostContext('ion-toolbar', this.el),
36767
36145
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
36768
36146
  'segment-activated': this.activated,
36769
36147
  'segment-disabled': this.disabled,
36770
36148
  'segment-scrollable': this.scrollable,
36771
- }) }, hAsync("slot", { key: 'fdb451f235ce59c5bb50c61a13c69160ece2d5df', onSlotchange: this.onSlottedItemsChange })));
36149
+ }) }, hAsync("slot", { key: '652d5037c2c2dee4d47a5710b1d150e691202d25', onSlotchange: this.onSlottedItemsChange })));
36772
36150
  }
36773
36151
  get el() { return getElement(this); }
36774
36152
  static get watchers() { return {
@@ -36916,7 +36294,7 @@ class SegmentButton {
36916
36294
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
36917
36295
  const mode = getIonMode$1(this);
36918
36296
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
36919
- return (hAsync(Host, { key: 'f69e2a24198a7c57543dbe66902da039a6569c64', class: {
36297
+ return (hAsync(Host, { key: '792f621c36260b1fceff2b4ec4fa95d98d51d46b', class: {
36920
36298
  [mode]: true,
36921
36299
  'in-toolbar': hostContext('ion-toolbar', this.el),
36922
36300
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -36932,7 +36310,7 @@ class SegmentButton {
36932
36310
  'ion-activatable': true,
36933
36311
  'ion-activatable-instant': true,
36934
36312
  'ion-focusable': true,
36935
- } }, 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" }))));
36313
+ } }, 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" }))));
36936
36314
  }
36937
36315
  get el() { return getElement(this); }
36938
36316
  static get watchers() { return {
@@ -36969,7 +36347,7 @@ class SegmentContent {
36969
36347
  registerInstance(this, hostRef);
36970
36348
  }
36971
36349
  render() {
36972
- return (hAsync(Host, { key: '665f41a854621f898eaf7ba9a49e77cc9326501e' }, hAsync("slot", { key: '635aa57fbf6167dcd36fe8dc5dfc1c313637ac04' })));
36350
+ return (hAsync(Host, { key: 'ef39f29c444177c3b083cd35680ba891e4bb6a2a' }, hAsync("slot", { key: '51f9dd9ca084ddd928b376aa9d716509669c32b2' })));
36973
36351
  }
36974
36352
  static get style() { return segmentContentCss(); }
36975
36353
  static get cmpMeta() { return {
@@ -37088,11 +36466,11 @@ class SegmentView {
37088
36466
  }
37089
36467
  render() {
37090
36468
  const { disabled, isManualScroll, swipeGesture } = this;
37091
- return (hAsync(Host, { key: '2a6e0a1046af75b1fa0eed20a5fbbb4634480297', class: {
36469
+ return (hAsync(Host, { key: 'a6c6ac0232c4bb6f2a954b3de7993019d71f423a', class: {
37092
36470
  'segment-view-disabled': disabled,
37093
36471
  'segment-view-scroll-disabled': isManualScroll === false,
37094
36472
  'segment-view-swipe-disabled': swipeGesture === false,
37095
- } }, hAsync("slot", { key: '644b60d179d0de3fa204e3bef26a3503ceeaf1d6' })));
36473
+ } }, hAsync("slot", { key: '386305be2a75069c79def12005d9f6b49276763f' })));
37096
36474
  }
37097
36475
  get el() { return getElement(this); }
37098
36476
  static get style() { return {
@@ -37276,9 +36654,40 @@ class Select {
37276
36654
  this.emitStyle();
37277
36655
  }
37278
36656
  setValue(value) {
36657
+ if (this.isValueEqual(this.value, value)) {
36658
+ return;
36659
+ }
37279
36660
  this.value = value;
37280
36661
  this.ionChange.emit({ value });
37281
36662
  }
36663
+ isValueEqual(currentValue, newValue) {
36664
+ if (this.multiple) {
36665
+ const currentArr = Array.isArray(currentValue) ? currentValue : [];
36666
+ const newArr = Array.isArray(newValue) ? newValue : [];
36667
+ if (currentArr.length !== newArr.length) {
36668
+ return false;
36669
+ }
36670
+ // Multiset compare: each new value must match a distinct current value.
36671
+ // A plain `every(isOptionSelected)` would accept ['a','a'] as equal to
36672
+ // ['a','b'] when both 'a' and 'b' map to options whose values overlap.
36673
+ const remaining = currentArr.slice();
36674
+ return newArr.every((val) => {
36675
+ const idx = remaining.findIndex((c) => compareOptions(c, val, this.compareWith));
36676
+ if (idx === -1) {
36677
+ return false;
36678
+ }
36679
+ remaining.splice(idx, 1);
36680
+ return true;
36681
+ });
36682
+ }
36683
+ if (currentValue == null && newValue == null) {
36684
+ return true;
36685
+ }
36686
+ if (currentValue == null || newValue == null) {
36687
+ return false;
36688
+ }
36689
+ return compareOptions(currentValue, newValue, this.compareWith);
36690
+ }
37282
36691
  async connectedCallback() {
37283
36692
  const { el } = this;
37284
36693
  this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
@@ -37864,7 +37273,7 @@ class Select {
37864
37273
  * TODO(FW-5592): Remove hasStartEndSlots condition
37865
37274
  */
37866
37275
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
37867
- return (hAsync(Host, { key: '5f4ee901b65554eacc9fa52230d06b1a5ff1247c', onClick: this.onClick, class: createColorClasses$1(this.color, {
37276
+ return (hAsync(Host, { key: '2c141ef1b6983b464118e8ed192739dfca9d095a', onClick: this.onClick, class: createColorClasses$1(this.color, {
37868
37277
  [mode]: true,
37869
37278
  'in-item': inItem,
37870
37279
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -37882,7 +37291,7 @@ class Select {
37882
37291
  [`select-justify-${justify}`]: justifyEnabled,
37883
37292
  [`select-shape-${shape}`]: shape !== undefined,
37884
37293
  [`select-label-placement-${labelPlacement}`]: true,
37885
- }) }, 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()));
37294
+ }) }, 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()));
37886
37295
  }
37887
37296
  get el() { return getElement(this); }
37888
37297
  static get watchers() { return {
@@ -38066,7 +37475,7 @@ class SelectModal {
38066
37475
  } }, option.text))));
38067
37476
  }
38068
37477
  render() {
38069
- 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()))));
37478
+ 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()))));
38070
37479
  }
38071
37480
  get el() { return getElement(this); }
38072
37481
  static get style() { return {
@@ -38101,7 +37510,7 @@ class SelectOption {
38101
37510
  this.disabled = false;
38102
37511
  }
38103
37512
  render() {
38104
- return hAsync(Host, { key: '824730b6c1e4f15b716e91b05840e890af5f1577', role: "option", id: this.inputId, class: getIonMode$1(this) });
37513
+ return hAsync(Host, { key: '1fc1737fbb29dcb62638149b21620cbdf2f00dbc', role: "option", id: this.inputId, class: getIonMode$1(this) });
38105
37514
  }
38106
37515
  get el() { return getElement(this); }
38107
37516
  static get style() { return selectOptionCss(); }
@@ -38229,7 +37638,7 @@ class SelectPopover {
38229
37638
  render() {
38230
37639
  const { header, message, options, subHeader } = this;
38231
37640
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
38232
- 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))));
37641
+ 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))));
38233
37642
  }
38234
37643
  get el() { return getElement(this); }
38235
37644
  static get style() { return {
@@ -38279,11 +37688,11 @@ class SkeletonText {
38279
37688
  const animated = this.animated && config.getBoolean('animated', true);
38280
37689
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
38281
37690
  const mode = getIonMode$1(this);
38282
- return (hAsync(Host, { key: 'cb8da9aba121811b9a4ffdae60ed88105897cb3c', class: {
37691
+ return (hAsync(Host, { key: '887d958d982345ce610730ab5c9ae35010430f75', class: {
38283
37692
  [mode]: true,
38284
37693
  'skeleton-text-animated': animated,
38285
37694
  'in-media': inMedia,
38286
- } }, hAsync("span", { key: '5379deee3c76d46d615be0cba14b4f60129ffa25' }, "\u00A0")));
37695
+ } }, hAsync("span", { key: 'a184f4b9780a2aada0a16729109ac81436e9c9e1' }, "\u00A0")));
38287
37696
  }
38288
37697
  get el() { return getElement(this); }
38289
37698
  static get style() { return skeletonTextCss(); }
@@ -38335,7 +37744,7 @@ class Spinner {
38335
37744
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
38336
37745
  }
38337
37746
  }
38338
- return (hAsync(Host, { key: 'dd1954e557fa14b943e761474e29e4316ba53938', class: createColorClasses$1(self.color, {
37747
+ return (hAsync(Host, { key: 'c35ebd01186e860acb9cac260193f0836424fdf4', class: createColorClasses$1(self.color, {
38339
37748
  [mode]: true,
38340
37749
  [`spinner-${spinnerName}`]: true,
38341
37750
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -38434,12 +37843,12 @@ class SplitPane {
38434
37843
  }
38435
37844
  render() {
38436
37845
  const mode = getIonMode$1(this);
38437
- return (hAsync(Host, { key: '05c88c009fbe2e223fd261760a2b49da1653ff62', class: {
37846
+ return (hAsync(Host, { key: '694e989fafcfe2453e0a83b3cb736efaa1eb4fec', class: {
38438
37847
  [mode]: true,
38439
37848
  // Used internally for styling
38440
37849
  [`split-pane-${mode}`]: true,
38441
37850
  'split-pane-visible': this.visible,
38442
- } }, hAsync("slot", { key: 'b35865082661253c4468520d79234fa5dab5bd35' })));
37851
+ } }, hAsync("slot", { key: 'dde7e9382b62cc11971aa233cf98c2314ae4f720' })));
38443
37852
  }
38444
37853
  get el() { return getElement(this); }
38445
37854
  static get watchers() { return {
@@ -38511,10 +37920,10 @@ class Tab {
38511
37920
  }
38512
37921
  render() {
38513
37922
  const { tab, active, component } = this;
38514
- return (hAsync(Host, { key: 'fbd837bad7a0632336d46a597ace23673b153e48', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
37923
+ return (hAsync(Host, { key: '745262368a7f45244da459f4fa1730a46dd3e257', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
38515
37924
  'ion-page': component === undefined,
38516
37925
  'tab-hidden': !active,
38517
- } }, hAsync("slot", { key: '35c218169fda826c9c1337558e0278d0c7f5f26a' })));
37926
+ } }, hAsync("slot", { key: '823d09a6f93bf7c0dc74f2b8717d1d3a62df1ad8' })));
38518
37927
  }
38519
37928
  get el() { return getElement(this); }
38520
37929
  static get watchers() { return {
@@ -38628,11 +38037,11 @@ class TabBar {
38628
38037
  const { color, translucent, keyboardVisible } = this;
38629
38038
  const mode = getIonMode$1(this);
38630
38039
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
38631
- return (hAsync(Host, { key: '24e164eaf81a0bec9237b561465618f10990806c', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
38040
+ return (hAsync(Host, { key: '148f65df0818e9d220a9b46db74cb89ab94e62d2', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
38632
38041
  [mode]: true,
38633
38042
  'tab-bar-translucent': translucent,
38634
38043
  'tab-bar-hidden': shouldHide,
38635
- }) }, hAsync("slot", { key: '0ca29a2d97a7c38bbf43f8d79e271b874b4d9be8' })));
38044
+ }) }, hAsync("slot", { key: 'a64e235f3703662e2dd7a834f752cc5b1490adbc' })));
38636
38045
  }
38637
38046
  get el() { return getElement(this); }
38638
38047
  static get watchers() { return {
@@ -38730,7 +38139,7 @@ class TabButton {
38730
38139
  rel,
38731
38140
  target,
38732
38141
  };
38733
- return (hAsync(Host, { key: '638b93ef40701ec3aefb89b1579eb91aaf6d4f8a', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
38142
+ return (hAsync(Host, { key: '1034b5a928ecec49bd8efec3730ea1b11a579cf3', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
38734
38143
  [mode]: true,
38735
38144
  'tab-selected': selected,
38736
38145
  'tab-disabled': disabled,
@@ -38742,7 +38151,7 @@ class TabButton {
38742
38151
  'ion-activatable': true,
38743
38152
  'ion-selectable': true,
38744
38153
  'ion-focusable': true,
38745
- } }, 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" }))));
38154
+ } }, 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" }))));
38746
38155
  }
38747
38156
  get el() { return getElement(this); }
38748
38157
  static get style() { return {
@@ -38933,7 +38342,7 @@ class Tabs {
38933
38342
  return Array.from(this.el.querySelectorAll('ion-tab'));
38934
38343
  }
38935
38344
  render() {
38936
- 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" })));
38345
+ 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" })));
38937
38346
  }
38938
38347
  get el() { return getElement(this); }
38939
38348
  static get style() { return tabsCss(); }
@@ -38973,9 +38382,9 @@ class Text {
38973
38382
  }
38974
38383
  render() {
38975
38384
  const mode = getIonMode$1(this);
38976
- return (hAsync(Host, { key: 'bfaa49d35f43b8036725ae8a322c716fc6e43bdf', class: createColorClasses$1(this.color, {
38385
+ return (hAsync(Host, { key: '41ed8da617ed0e07bbfe96e32a000e1c6503e24e', class: createColorClasses$1(this.color, {
38977
38386
  [mode]: true,
38978
- }) }, hAsync("slot", { key: 'c04880cd1935b42cbe60f58fd523b4d8a96072dc' })));
38387
+ }) }, hAsync("slot", { key: 'db8de04a2493537b3037f276b03abd92dfa56847' })));
38979
38388
  }
38980
38389
  static get style() { return textCss(); }
38981
38390
  static get cmpMeta() { return {
@@ -39436,7 +38845,7 @@ class Textarea {
39436
38845
  * TODO(FW-5592): Remove hasStartEndSlots condition
39437
38846
  */
39438
38847
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
39439
- return (hAsync(Host, { key: '4257e84acd46f43390fa2413d0b8f40e16a37499', class: createColorClasses$1(this.color, {
38848
+ return (hAsync(Host, { key: 'eca1dfed53189408f614661ef3902cdb73d5f5de', class: createColorClasses$1(this.color, {
39440
38849
  [mode]: true,
39441
38850
  'has-value': hasValue,
39442
38851
  'has-focus': hasFocus,
@@ -39445,7 +38854,7 @@ class Textarea {
39445
38854
  [`textarea-shape-${shape}`]: shape !== undefined,
39446
38855
  [`textarea-label-placement-${labelPlacement}`]: true,
39447
38856
  'textarea-disabled': disabled,
39448
- }) }, 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()));
38857
+ }) }, 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()));
39449
38858
  }
39450
38859
  get el() { return getElement(this); }
39451
38860
  static get watchers() { return {
@@ -39514,7 +38923,7 @@ class Thumbnail {
39514
38923
  registerInstance(this, hostRef);
39515
38924
  }
39516
38925
  render() {
39517
- return (hAsync(Host, { key: 'b250e01664238f1dca8f9757b15bc3d5d9387ffa', class: getIonMode$1(this) }, hAsync("slot", { key: '72cb568bccabc983c5186a7596ef6c6d4ebf5ad9' })));
38926
+ return (hAsync(Host, { key: '833e947c683b482a78f8f0df8c9a68e99478bbaa', class: getIonMode$1(this) }, hAsync("slot", { key: '6d1e9e686db88d91379f14121058dbf035d8ded2' })));
39518
38927
  }
39519
38928
  static get style() { return thumbnailCss(); }
39520
38929
  static get cmpMeta() { return {
@@ -40374,9 +39783,9 @@ class Toast {
40374
39783
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
40375
39784
  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);
40376
39785
  }
40377
- return (hAsync(Host, Object.assign({ key: 'b5256edcf33d0ef51e6c5080c84e1ca58abe2ae0', tabindex: "-1" }, this.htmlAttributes, { style: {
39786
+ return (hAsync(Host, Object.assign({ key: '2acb2cd2e12ea0082986495929e4a596d4da2f38', tabindex: "-1" }, this.htmlAttributes, { style: {
40378
39787
  zIndex: `${60000 + this.overlayIndex}`,
40379
- }, 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')))));
39788
+ }, 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')))));
40380
39789
  }
40381
39790
  get el() { return getElement(this); }
40382
39791
  static get watchers() { return {
@@ -40694,7 +40103,7 @@ class Toggle {
40694
40103
  const value = this.getValue();
40695
40104
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
40696
40105
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
40697
- 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, {
40106
+ 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, {
40698
40107
  [mode]: true,
40699
40108
  'in-item': hostContext('ion-item', el),
40700
40109
  'toggle-activated': activated,
@@ -40704,10 +40113,10 @@ class Toggle {
40704
40113
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
40705
40114
  [`toggle-label-placement-${labelPlacement}`]: true,
40706
40115
  [`toggle-${rtl}`]: true,
40707
- }) }, 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: {
40116
+ }) }, 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: {
40708
40117
  'label-text-wrapper': true,
40709
40118
  'label-text-wrapper-hidden': !hasLabel,
40710
- }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '006dd3558264d69ab020c07005b348adc4ecdd5b' }), this.renderHintText()), hAsync("div", { key: 'dd4e52de31caabee41ec1bc58efecd1e213368c9', class: "native-wrapper" }, this.renderToggleControl()))));
40119
+ }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: 'c480b96a0ddd926568f73291d71253d6f74438c7' }), this.renderHintText()), hAsync("div", { key: '96a2cbd1673e051a78f8b2b16535ecd3f0ed4339', class: "native-wrapper" }, this.renderToggleControl()))));
40711
40120
  }
40712
40121
  get el() { return getElement(this); }
40713
40122
  static get watchers() { return {
@@ -40819,10 +40228,10 @@ class Toolbar {
40819
40228
  this.childrenStyles.forEach((value) => {
40820
40229
  Object.assign(childStyles, value);
40821
40230
  });
40822
- return (hAsync(Host, { key: 'b849db2863778dee6c5a251bffa1b3a657aeb036', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
40231
+ return (hAsync(Host, { key: '40bad6fa7e94262438da4bbe037dcf8a5fa2df22', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
40823
40232
  [mode]: true,
40824
40233
  'in-toolbar': hostContext('ion-toolbar', this.el),
40825
- })) }, 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" }))));
40234
+ })) }, 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" }))));
40826
40235
  }
40827
40236
  get el() { return getElement(this); }
40828
40237
  static get style() { return {
@@ -40868,11 +40277,11 @@ class ToolbarTitle {
40868
40277
  render() {
40869
40278
  const mode = getIonMode$1(this);
40870
40279
  const size = this.getSize();
40871
- return (hAsync(Host, { key: '44e63f8439df64c470692904427b417e19406476', class: createColorClasses$1(this.color, {
40280
+ return (hAsync(Host, { key: 'd9317e8e66cb6112717f5a9c252658777efbd873', class: createColorClasses$1(this.color, {
40872
40281
  [mode]: true,
40873
40282
  [`title-${size}`]: true,
40874
40283
  'title-rtl': document.dir === 'rtl',
40875
- }) }, hAsync("div", { key: '784cf60a0db16045391891cc8fad0c7dbeba4039', class: "toolbar-title" }, hAsync("slot", { key: '0c720a50479ba257e8756337aeb9b0ab7516a227' }))));
40284
+ }) }, hAsync("div", { key: 'a4d011d6d409bf006d8efe33667002edb109820a', class: "toolbar-title" }, hAsync("slot", { key: '4ca3303b957a0e5387f1e9058e5adb4c6275afcc' }))));
40876
40285
  }
40877
40286
  get el() { return getElement(this); }
40878
40287
  static get watchers() { return {
@@ -40952,10 +40361,8 @@ registerComponents([
40952
40361
  Nav,
40953
40362
  NavLink,
40954
40363
  Note,
40955
- Picker$1,
40956
40364
  Picker,
40957
40365
  PickerColumn,
40958
- PickerColumnCmp,
40959
40366
  PickerColumnOption,
40960
40367
  Popover,
40961
40368
  ProgressBar,