@ionic/core 8.8.11-dev.11781639886.140139f2 → 8.8.11-dev.11782911278.11f0315e

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 (289) 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-CHzfYZbv.js +4 -0
  57. package/components/{p-DDWp95gH.js → p-Ck2wcXbv.js} +1 -1
  58. package/components/p-D4h1H_hh.js +4 -0
  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 +21 -10
  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 +23 -12
  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 +250 -1173
  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 +21 -10
  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 +7 -78
  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-79a36078.entry.js +4 -0
  211. package/dist/ionic/{p-9f1103ce.entry.js → p-7a37b3ce.entry.js} +1 -1
  212. package/dist/ionic/p-7aed7726.entry.js +4 -0
  213. package/dist/ionic/p-7ebd980c.entry.js +4 -0
  214. package/dist/ionic/{p-3353c229.entry.js → p-80b44b3c.entry.js} +1 -1
  215. package/dist/ionic/p-8d624ee5.entry.js +4 -0
  216. package/dist/ionic/{p-390ca786.entry.js → p-9177f4ac.entry.js} +1 -1
  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/modal/modal.d.ts +11 -4
  238. package/dist/types/components/router-outlet/router-outlet.d.ts +7 -0
  239. package/dist/types/components/searchbar/searchbar.d.ts +1 -1
  240. package/dist/types/components/select/select.d.ts +1 -0
  241. package/dist/types/components.d.ts +23 -286
  242. package/dist/types/index.d.ts +1 -1
  243. package/dist/types/interface.d.ts +0 -1
  244. package/dist/types/utils/config.d.ts +0 -8
  245. package/dist/types/utils/overlays.d.ts +11 -9
  246. package/hydrate/index.js +214 -800
  247. package/hydrate/index.mjs +214 -800
  248. package/package.json +37 -5
  249. package/components/ion-picker-legacy-column.d.ts +0 -11
  250. package/components/ion-picker-legacy-column.js +0 -4
  251. package/components/ion-picker-legacy.d.ts +0 -11
  252. package/components/ion-picker-legacy.js +0 -4
  253. package/components/p-0NRupjzW.js +0 -4
  254. package/components/p-Bth-EzJ0.js +0 -4
  255. package/components/p-CU5rbWAW.js +0 -4
  256. package/components/p-W9CZ2mWX.js +0 -4
  257. package/components/p-dhLYXa7A.js +0 -4
  258. package/components/p-uVRyUM3z.js +0 -4
  259. package/dist/collection/components/picker-legacy/animations/ios.enter.js +0 -27
  260. package/dist/collection/components/picker-legacy/animations/ios.leave.js +0 -23
  261. package/dist/collection/components/picker-legacy/picker-interface.js +0 -1
  262. package/dist/collection/components/picker-legacy/picker.ios.css +0 -300
  263. package/dist/collection/components/picker-legacy/picker.js +0 -890
  264. package/dist/collection/components/picker-legacy/picker.md.css +0 -287
  265. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -231
  266. package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
  267. package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -222
  268. package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
  269. package/dist/ionic/p-00dbb17e.entry.js +0 -4
  270. package/dist/ionic/p-01f81ea5.entry.js +0 -4
  271. package/dist/ionic/p-0d005398.entry.js +0 -4
  272. package/dist/ionic/p-27d30585.entry.js +0 -4
  273. package/dist/ionic/p-2bb2cb18.entry.js +0 -4
  274. package/dist/ionic/p-2f55dc1a.entry.js +0 -4
  275. package/dist/ionic/p-30bf9737.entry.js +0 -4
  276. package/dist/ionic/p-3a541154.entry.js +0 -4
  277. package/dist/ionic/p-485fda23.entry.js +0 -4
  278. package/dist/ionic/p-4baa5b82.entry.js +0 -4
  279. package/dist/ionic/p-4dc1c33c.entry.js +0 -4
  280. package/dist/ionic/p-5fc7e542.entry.js +0 -4
  281. package/dist/ionic/p-e686695b.entry.js +0 -4
  282. package/dist/ionic/p-ec090e0a.entry.js +0 -4
  283. package/dist/ionic/p-xOfi7-Zn.js +0 -4
  284. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +0 -5
  285. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +0 -5
  286. package/dist/types/components/picker-legacy/picker-interface.d.ts +0 -52
  287. package/dist/types/components/picker-legacy/picker.d.ts +0 -158
  288. package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
  289. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +0 -9
package/hydrate/index.js CHANGED
@@ -8041,7 +8041,7 @@ const focusElementInOverlay = (hostToFocus, overlay) => {
8041
8041
  * Should NOT include: Toast
8042
8042
  */
8043
8043
  const trapKeyboardFocus = (ev, doc) => {
8044
- const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover');
8044
+ const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover');
8045
8045
  const target = ev.target;
8046
8046
  /**
8047
8047
  * If no active overlay, ignore this event.
@@ -8275,7 +8275,7 @@ const dismissOverlay = (doc, data, role, overlayTag, id) => {
8275
8275
  */
8276
8276
  const getOverlays = (doc, selector) => {
8277
8277
  if (selector === undefined) {
8278
- selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover,ion-toast';
8278
+ selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover,ion-toast';
8279
8279
  }
8280
8280
  return Array.from(doc.querySelectorAll(selector)).filter((c) => c.overlayIndex > 0);
8281
8281
  };
@@ -8337,6 +8337,29 @@ const setRootAriaHidden = (hidden = false) => {
8337
8337
  viewContainer.removeAttribute('aria-hidden');
8338
8338
  }
8339
8339
  };
8340
+ /**
8341
+ * Cleans up root `aria-hidden` and `backdrop-no-scroll` when
8342
+ * an overlay is removed from the DOM without going through
8343
+ * the `dismiss()` flow (e.g., when a framework unmounts the
8344
+ * overlay during a route change).
8345
+ *
8346
+ * Should be called from an overlay's `disconnectedCallback`
8347
+ * when the overlay was still presented at the time of removal.
8348
+ */
8349
+ const cleanupRootFocusTrapAccessibility = () => {
8350
+ if (typeof document === 'undefined') {
8351
+ return;
8352
+ }
8353
+ const remainingOverlays = getPresentedOverlays(document);
8354
+ const hasRemainingLocking = remainingOverlays.some((o) => {
8355
+ const el = o;
8356
+ return el.tagName !== 'ION-TOAST' && el.focusTrap !== false && isBackdropAlwaysBlocking(el);
8357
+ });
8358
+ if (!hasRemainingLocking) {
8359
+ setRootAriaHidden(false);
8360
+ document.body.classList.remove(BACKDROP_NO_SCROLL);
8361
+ }
8362
+ };
8340
8363
  const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts) => {
8341
8364
  var _a, _b;
8342
8365
  if (overlay.presented) {
@@ -9593,7 +9616,7 @@ const createAnimation = (animationId) => {
9593
9616
  /**
9594
9617
  * iOS Action Sheet Enter Animation
9595
9618
  */
9596
- const iosEnterAnimation$6 = (baseEl) => {
9619
+ const iosEnterAnimation$5 = (baseEl) => {
9597
9620
  const baseAnimation = createAnimation();
9598
9621
  const backdropAnimation = createAnimation();
9599
9622
  const wrapperAnimation = createAnimation();
@@ -9617,7 +9640,7 @@ const iosEnterAnimation$6 = (baseEl) => {
9617
9640
  /**
9618
9641
  * iOS Action Sheet Leave Animation
9619
9642
  */
9620
- const iosLeaveAnimation$6 = (baseEl) => {
9643
+ const iosLeaveAnimation$5 = (baseEl) => {
9621
9644
  const baseAnimation = createAnimation();
9622
9645
  const backdropAnimation = createAnimation();
9623
9646
  const wrapperAnimation = createAnimation();
@@ -9773,7 +9796,7 @@ class ActionSheet {
9773
9796
  async present() {
9774
9797
  const unlock = await this.lockController.lock();
9775
9798
  await this.delegateController.attachViewToDom();
9776
- await present(this, 'actionSheetEnter', iosEnterAnimation$6, mdEnterAnimation$5);
9799
+ await present(this, 'actionSheetEnter', iosEnterAnimation$5, mdEnterAnimation$5);
9777
9800
  unlock();
9778
9801
  }
9779
9802
  /**
@@ -9790,7 +9813,7 @@ class ActionSheet {
9790
9813
  */
9791
9814
  async dismiss(data, role) {
9792
9815
  const unlock = await this.lockController.lock();
9793
- const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$6, mdLeaveAnimation$5);
9816
+ const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$5, mdLeaveAnimation$5);
9794
9817
  if (dismissed) {
9795
9818
  this.delegateController.removeViewFromDom();
9796
9819
  }
@@ -9959,6 +9982,10 @@ class ActionSheet {
9959
9982
  this.gesture = undefined;
9960
9983
  }
9961
9984
  this.triggerController.removeClickListener();
9985
+ // Clean up aria-hidden if removed without dismiss() being called
9986
+ if (this.presented) {
9987
+ cleanupRootFocusTrapAccessibility();
9988
+ }
9962
9989
  }
9963
9990
  componentWillLoad() {
9964
9991
  var _a;
@@ -10047,7 +10074,7 @@ class ActionSheet {
10047
10074
  if (isRadio) {
10048
10075
  htmlAttrs['aria-checked'] = isActiveRadio ? 'true' : 'false';
10049
10076
  }
10050
- return (hAsync("button", Object.assign({}, htmlAttrs, { role: isRadio ? 'radio' : undefined, type: "button", id: buttonId, class: Object.assign(Object.assign({}, buttonClass$3(b)), (isRadio && { 'action-sheet-selected': isActiveRadio })), onClick: () => {
10077
+ return (hAsync("button", Object.assign({}, htmlAttrs, { role: isRadio ? 'radio' : undefined, type: "button", id: buttonId, class: Object.assign(Object.assign({}, buttonClass$2(b)), (isRadio && { 'action-sheet-selected': isActiveRadio })), onClick: () => {
10051
10078
  if (isRadio) {
10052
10079
  this.selectRadioButton(b);
10053
10080
  }
@@ -10062,12 +10089,12 @@ class ActionSheet {
10062
10089
  const cancelButton = allButtons.find((b) => b.role === 'cancel');
10063
10090
  const buttons = allButtons.filter((b) => b.role !== 'cancel');
10064
10091
  const headerID = `action-sheet-${overlayIndex}-header`;
10065
- return (hAsync(Host, Object.assign({ key: '48b63b870f2816b4cad3c606f3d9956854cee79a', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
10092
+ return (hAsync(Host, Object.assign({ key: '572ea2b7b7ffd902186a17f8063e46f4e7360633', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
10066
10093
  zIndex: `${20000 + this.overlayIndex}`,
10067
- }, class: Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: '41dd5781f139d26b3feea33ab387451aeafacd51', tappable: this.backdropDismiss }), hAsync("div", { key: 'f797c2657782e4e83adf90d2d796108e857a1fc0', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '8e74209321fc5e8712e3e293c91a6fa036ea45ab', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: 'c811860be2eed0b6c73fc2cc5a59cb94db2e8912', class: "action-sheet-container" }, hAsync("div", { key: 'd36ee14b70d73eb5cd69e0c57bc5cc31daf86ab3', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (hAsync("div", { key: '922695de191edc86451eed2552acc4f54993ea52', id: headerID, class: {
10094
+ }, class: Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: '065f29ec2021e25fdde59707a42cbacd4f9319c6', tappable: this.backdropDismiss }), hAsync("div", { key: 'c92615ae5b292bfd223cee644c07f144f5f1d974', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'd4b30e289503203048420c35ac447dfff72c9183', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: '7fc9bcc2f32666e170cd2052ce2b359b3915da60', class: "action-sheet-container" }, hAsync("div", { key: 'd85ff13a6029bbe081053e818eeaa115327abdc1', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (hAsync("div", { key: 'c743f928302e20007219fbcdd1e5c2efa662d3d9', id: headerID, class: {
10068
10095
  'action-sheet-title': true,
10069
10096
  'action-sheet-has-sub-title': this.subHeader !== undefined,
10070
- } }, header, this.subHeader && hAsync("div", { key: 'a119d4a93668e829f7106f11cbbdd437310f3e80', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (hAsync("div", { key: '1d27f36d09bedd2e4c61fea9dd9d05f8f9271aef', class: "action-sheet-group action-sheet-group-cancel" }, hAsync("button", Object.assign({ key: 'ed13658176c54cc45808a54a0331c297430d9bc6' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass$3(cancelButton), onClick: () => this.buttonClick(cancelButton) }), hAsync("span", { key: '5208e3e3535b775a443cef6fb1decd790db69b0c', class: "action-sheet-button-inner" }, cancelButton.icon && (hAsync("ion-icon", { key: 'b7ba489e1ee50524a5b4af670eef787844a16286', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && hAsync("ion-ripple-effect", { key: 'b3f88898114855853259f0001def26b4bd6e4a98' })))))), hAsync("div", { key: '0dfd0fcdc633bf565990eaa06679608e749cf8f9', tabindex: "0", "aria-hidden": "true" })));
10097
+ } }, header, this.subHeader && hAsync("div", { key: '2cce9ba82989d893052cb6acf88677058a7b26ce', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (hAsync("div", { key: 'cf91d8a47838570e4c533694614bb6ad46f20ac7', class: "action-sheet-group action-sheet-group-cancel" }, hAsync("button", Object.assign({ key: '5ffc9e3d9f4db002a1112ed71977a407edb9f86e' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass$2(cancelButton), onClick: () => this.buttonClick(cancelButton) }), hAsync("span", { key: 'e0802b849fef77fd8158cbfee23adf7fc6e08d62', class: "action-sheet-button-inner" }, cancelButton.icon && (hAsync("ion-icon", { key: '991a60ebf6966e5815f849325c4e9c571a31fdeb', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && hAsync("ion-ripple-effect", { key: 'af533882239ba0d4e98691e38d517fbcee858a6d' })))))), hAsync("div", { key: '7107a8b235b00bf48486db95f66ac3ba53faf157', tabindex: "0", "aria-hidden": "true" })));
10071
10098
  }
10072
10099
  get el() { return getElement(this); }
10073
10100
  static get watchers() { return {
@@ -10116,7 +10143,7 @@ class ActionSheet {
10116
10143
  "$attrsToReflect$": []
10117
10144
  }; }
10118
10145
  }
10119
- const buttonClass$3 = (button) => {
10146
+ const buttonClass$2 = (button) => {
10120
10147
  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));
10121
10148
  };
10122
10149
 
@@ -10287,7 +10314,7 @@ class IonicSafeString {
10287
10314
  /**
10288
10315
  * iOS Alert Enter Animation
10289
10316
  */
10290
- const iosEnterAnimation$5 = (baseEl) => {
10317
+ const iosEnterAnimation$4 = (baseEl) => {
10291
10318
  const baseAnimation = createAnimation();
10292
10319
  const backdropAnimation = createAnimation();
10293
10320
  const wrapperAnimation = createAnimation();
@@ -10312,7 +10339,7 @@ const iosEnterAnimation$5 = (baseEl) => {
10312
10339
  /**
10313
10340
  * iOS Alert Leave Animation
10314
10341
  */
10315
- const iosLeaveAnimation$5 = (baseEl) => {
10342
+ const iosLeaveAnimation$4 = (baseEl) => {
10316
10343
  const baseAnimation = createAnimation();
10317
10344
  const backdropAnimation = createAnimation();
10318
10345
  const wrapperAnimation = createAnimation();
@@ -10588,6 +10615,10 @@ class Alert {
10588
10615
  this.gesture.destroy();
10589
10616
  this.gesture = undefined;
10590
10617
  }
10618
+ // Clean up aria-hidden if removed without dismiss() being called
10619
+ if (this.presented) {
10620
+ cleanupRootFocusTrapAccessibility();
10621
+ }
10591
10622
  (_a = this.buttonGroupResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
10592
10623
  this.buttonGroupResizeObserver = undefined;
10593
10624
  }
@@ -10627,7 +10658,7 @@ class Alert {
10627
10658
  async present() {
10628
10659
  const unlock = await this.lockController.lock();
10629
10660
  await this.delegateController.attachViewToDom();
10630
- await present(this, 'alertEnter', iosEnterAnimation$5, mdEnterAnimation$4).then(() => {
10661
+ await present(this, 'alertEnter', iosEnterAnimation$4, mdEnterAnimation$4).then(() => {
10631
10662
  var _a, _b;
10632
10663
  /**
10633
10664
  * Check if alert has only one button and no inputs.
@@ -10658,7 +10689,7 @@ class Alert {
10658
10689
  */
10659
10690
  async dismiss(data, role) {
10660
10691
  const unlock = await this.lockController.lock();
10661
- const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$5, mdLeaveAnimation$4);
10692
+ const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$4, mdLeaveAnimation$4);
10662
10693
  if (dismissed) {
10663
10694
  this.delegateController.removeViewFromDom();
10664
10695
  }
@@ -10843,7 +10874,7 @@ class Alert {
10843
10874
  'alert-button-group': true,
10844
10875
  'alert-button-group-vertical': buttons.length > 2 || this.isButtonGroupWrapped,
10845
10876
  };
10846
- return (hAsync("div", { class: alertButtonGroupClass, ref: (el) => (this.buttonGroupEl = el) }, buttons.map((button) => (hAsync("button", Object.assign({}, button.htmlAttributes, { type: "button", id: button.id, class: buttonClass$2(button), tabIndex: 0, onClick: () => this.buttonClick(button) }), hAsync("span", { class: "alert-button-inner" }, button.text), mode === 'md' && hAsync("ion-ripple-effect", null))))));
10877
+ return (hAsync("div", { class: alertButtonGroupClass, ref: (el) => (this.buttonGroupEl = el) }, buttons.map((button) => (hAsync("button", Object.assign({}, button.htmlAttributes, { type: "button", id: button.id, class: buttonClass$1(button), tabIndex: 0, onClick: () => this.buttonClick(button) }), hAsync("span", { class: "alert-button-inner" }, button.text), mode === 'md' && hAsync("ion-ripple-effect", null))))));
10847
10878
  }
10848
10879
  renderAlertMessage(msgId) {
10849
10880
  const { customHTMLEnabled, message } = this;
@@ -10866,9 +10897,9 @@ class Alert {
10866
10897
  * If neither are defined, do not set aria-labelledby.
10867
10898
  */
10868
10899
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
10869
- return (hAsync(Host, { key: '8d54ccd725ea634be080e67b56fa5efe498f496c', tabindex: "-1", style: {
10900
+ return (hAsync(Host, { key: '80642b44e08bcbe73f7a217578f89716827e2f7d', tabindex: "-1", style: {
10870
10901
  zIndex: `${20000 + overlayIndex}`,
10871
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: '05a238583342285545587de9dce144a82d779193', tappable: this.backdropDismiss }), hAsync("div", { key: 'e52c53fd9845e66781af01b2a788a291b45a927c', tabindex: "0", "aria-hidden": "true" }), hAsync("div", Object.assign({ key: '8417e52eebca24ff436fab0703666db51072f980', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), hAsync("div", { key: '5c560d4800b24d41961423718108b54be6cd6f91', class: "alert-head" }, header && (hAsync("h2", { key: '8637b64cd5125b2258115d1c11f3743113658608', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '7a4e61a02c29b16b336d8acaf6569b30de6fe71e', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: '30844b6a0a7e3dab46514cd548ecffa86dcd59cb', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: '39c824fee1e60ad8d6234c79d22ceb8bba8004af', tabindex: "0", "aria-hidden": "true" })));
10902
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: 'f7777dfd624d4a6253681bf36ab3b66389617fb5', tappable: this.backdropDismiss }), hAsync("div", { key: '2a3a03bae54ff66d7d182d41eda7158b5228fdbc', tabindex: "0", "aria-hidden": "true" }), hAsync("div", Object.assign({ key: '255051adf9deeb3d9b872906b8eaa4a93075325c', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), hAsync("div", { key: '3039e1a0f37617b9cba644b259b62097401cf84b', class: "alert-head" }, header && (hAsync("h2", { key: 'b65dc3fa312a520d893d0710a28d72dfad17d020', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: 'e1f9bd496f2baaa28c7c0c6efb7b84591d1548de', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: 'ffa52291e21ee6a56bf11abbef87c698512ae477', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: '5db1dce6054f16ea8da7830754c740ace31eb9d1', tabindex: "0", "aria-hidden": "true" })));
10872
10903
  }
10873
10904
  get el() { return getElement(this); }
10874
10905
  static get watchers() { return {
@@ -10926,7 +10957,7 @@ const inputClass = (input) => {
10926
10957
  var _a, _b, _c;
10927
10958
  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() : ''));
10928
10959
  };
10929
- const buttonClass$2 = (button) => {
10960
+ const buttonClass$1 = (button) => {
10930
10961
  return Object.assign({ 'alert-button': true, 'ion-focusable': true, 'ion-activatable': true, [`alert-button-role-${button.role}`]: button.role !== undefined }, getClassMap(button.cssClass));
10931
10962
  };
10932
10963
 
@@ -19265,7 +19296,7 @@ class Input {
19265
19296
  /**
19266
19297
  * Whether auto correction should be enabled when the user is entering/editing the text value.
19267
19298
  */
19268
- this.autocorrect = 'off';
19299
+ this.autocorrect = false;
19269
19300
  /**
19270
19301
  * Sets the [`autofocus` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus) on the native input element.
19271
19302
  *
@@ -19722,7 +19753,7 @@ class Input {
19722
19753
  * TODO(FW-5592): Remove hasStartEndSlots condition
19723
19754
  */
19724
19755
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
19725
- return (hAsync(Host, { key: '9ba9cf425b573d2ca9ac34455a0e6b8474c4de6d', class: createColorClasses$1(this.color, {
19756
+ return (hAsync(Host, { key: '6a05f61339d8045285d5820c2508296cc842c210', class: createColorClasses$1(this.color, {
19726
19757
  [mode]: true,
19727
19758
  'has-value': hasValue,
19728
19759
  'has-focus': hasFocus,
@@ -19733,14 +19764,14 @@ class Input {
19733
19764
  'in-item': inItem,
19734
19765
  'in-item-color': hostContext('ion-item.ion-color', this.el),
19735
19766
  'input-disabled': disabled,
19736
- }) }, hAsync("label", { key: '74b989d0aa5ab38f29f952519868f05119df6005', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '47f2b42e2f74ea866b4f871026e08ab375d7a726', class: "native-wrapper", onClick: this.onLabelClick }, hAsync("slot", { key: 'eaabe5a4a329a356cac3294d15c087d0d131fff2', name: "start" }), hAsync("input", Object.assign({ key: 'c821a984a8a9b7f96f30892c06d8deda093ff24b', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-labelledby": this.getLabelledById() }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (hAsync("button", { key: '62069c11016ee190dc46ab941372e1c4ad8a36ed', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
19767
+ }) }, hAsync("label", { key: 'b546d66f53ea25082494e3a4cb0ce7532ee649d7', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '6af832f2b25fadee7a49adb999166dbc97565e2d', class: "native-wrapper", onClick: this.onLabelClick }, hAsync("slot", { key: 'e7a8895038a8d2503f646acfda20c6c1a99c2839', name: "start" }), hAsync("input", Object.assign({ key: 'ce85703e0434a6322bb4275a924e3cd91c79fa20', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect ? 'on' : 'off', autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-labelledby": this.getLabelledById() }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (hAsync("button", { key: '1e59589fc89a37d7830dc915b4c19d26a8f568c7', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
19737
19768
  /**
19738
19769
  * This prevents mobile browsers from
19739
19770
  * blurring the input when the clear
19740
19771
  * button is activated.
19741
19772
  */
19742
19773
  ev.preventDefault();
19743
- }, onClick: this.clearTextInput }, hAsync("ion-icon", { key: 'dd75a516d32110d85382b664c663bd41f177ce12', "aria-hidden": "true", icon: clearIconData }))), hAsync("slot", { key: '330d4b9389f2c62223a5ee24003e96ef3e6b2473', name: "end" })), shouldRenderHighlight && hAsync("div", { key: '8e442bed130ddc84976ab70fd3f8578d6bcc6316', class: "input-highlight" })), this.renderBottomContent()));
19774
+ }, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '7d443c5061bf6436d3b77a2444676c679b3e62e4', "aria-hidden": "true", icon: clearIconData }))), hAsync("slot", { key: '5516f88d46886348217570ec1fadda0b79b63c01', name: "end" })), shouldRenderHighlight && hAsync("div", { key: '2a1fdb7e7c974654dfbb3afb4fbfd9204e9d9092', class: "input-highlight" })), this.renderBottomContent()));
19744
19775
  }
19745
19776
  get el() { return getElement(this); }
19746
19777
  static get watchers() { return {
@@ -19768,7 +19799,7 @@ class Input {
19768
19799
  "color": [513],
19769
19800
  "autocapitalize": [1],
19770
19801
  "autocomplete": [1],
19771
- "autocorrect": [1],
19802
+ "autocorrect": [4],
19772
19803
  "autofocus": [4],
19773
19804
  "clearInput": [4, "clear-input"],
19774
19805
  "clearInputIcon": [1, "clear-input-icon"],
@@ -21772,7 +21803,7 @@ class ListHeader {
21772
21803
  /**
21773
21804
  * iOS Loading Enter Animation
21774
21805
  */
21775
- const iosEnterAnimation$4 = (baseEl) => {
21806
+ const iosEnterAnimation$3 = (baseEl) => {
21776
21807
  const baseAnimation = createAnimation();
21777
21808
  const backdropAnimation = createAnimation();
21778
21809
  const wrapperAnimation = createAnimation();
@@ -21797,7 +21828,7 @@ const iosEnterAnimation$4 = (baseEl) => {
21797
21828
  /**
21798
21829
  * iOS Loading Leave Animation
21799
21830
  */
21800
- const iosLeaveAnimation$4 = (baseEl) => {
21831
+ const iosLeaveAnimation$3 = (baseEl) => {
21801
21832
  const baseAnimation = createAnimation();
21802
21833
  const backdropAnimation = createAnimation();
21803
21834
  const wrapperAnimation = createAnimation();
@@ -21970,6 +22001,10 @@ class Loading {
21970
22001
  }
21971
22002
  disconnectedCallback() {
21972
22003
  this.triggerController.removeClickListener();
22004
+ // Clean up aria-hidden if removed without dismiss() being called
22005
+ if (this.presented) {
22006
+ cleanupRootFocusTrapAccessibility();
22007
+ }
21973
22008
  }
21974
22009
  /**
21975
22010
  * Present the loading overlay after it has been created.
@@ -21977,7 +22012,7 @@ class Loading {
21977
22012
  async present() {
21978
22013
  const unlock = await this.lockController.lock();
21979
22014
  await this.delegateController.attachViewToDom();
21980
- await present(this, 'loadingEnter', iosEnterAnimation$4, mdEnterAnimation$3);
22015
+ await present(this, 'loadingEnter', iosEnterAnimation$3, mdEnterAnimation$3);
21981
22016
  if (this.duration > 0) {
21982
22017
  this.durationTimeout = setTimeout(() => this.dismiss(), this.duration + 10);
21983
22018
  }
@@ -22000,7 +22035,7 @@ class Loading {
22000
22035
  if (this.durationTimeout) {
22001
22036
  clearTimeout(this.durationTimeout);
22002
22037
  }
22003
- const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$4, mdLeaveAnimation$3);
22038
+ const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$3, mdLeaveAnimation$3);
22004
22039
  if (dismissed) {
22005
22040
  this.delegateController.removeViewFromDom();
22006
22041
  }
@@ -22035,9 +22070,9 @@ class Loading {
22035
22070
  * Otherwise, don't set aria-labelledby.
22036
22071
  */
22037
22072
  const ariaLabelledBy = message !== undefined ? msgId : null;
22038
- return (hAsync(Host, Object.assign({ key: 'f86ddbc600cb5c396b7de38fb5f49625388c3c3f', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
22073
+ return (hAsync(Host, Object.assign({ key: 'ab48bfcee8f7e3e33847a2f262fdc08b9ea804ca', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
22039
22074
  zIndex: `${40000 + this.overlayIndex}`,
22040
- }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: 'b53727aaddc37ef3c685fcc150c6d5193290a847', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '4c61bede8e0a4e47daa6f1f9d0f364ef6aec0bc3', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '84e51ceb07118f1eaeb757df28801c255496931b', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: 'fc97f1912e0fc558b7c309a5bc084415f5f620b2', class: "loading-spinner" }, hAsync("ion-spinner", { key: '6e186d856cd3f10f22c3e317ef00f31b4216459c', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: 'dcbe9d9a619daa1c08174e73827bdabeb59dde92', tabindex: "0", "aria-hidden": "true" })));
22075
+ }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: '41baccc7fb6474389a3a3431c208e829ef738b75', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '7b7290974abbe8db8739b19835aca9f8b5c271c2', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'e32466abfcc92aaad47ea03b1dcb49f66abe4b63', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: 'c5e6e6f9e3f39dba0225d08d7dd2c1b96a1d83c7', class: "loading-spinner" }, hAsync("ion-spinner", { key: 'f428038959d879404ea898011363aac0b807ad11', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: '490e531367b86c319fa4260722dcff4dd631fa88', tabindex: "0", "aria-hidden": "true" })));
22041
22076
  }
22042
22077
  get el() { return getElement(this); }
22043
22078
  static get watchers() { return {
@@ -24311,7 +24346,7 @@ const createEnterAnimation$1 = () => {
24311
24346
  /**
24312
24347
  * iOS Modal Enter Animation for the Card presentation style
24313
24348
  */
24314
- const iosEnterAnimation$3 = (baseEl, opts) => {
24349
+ const iosEnterAnimation$2 = (baseEl, opts) => {
24315
24350
  const { presentingEl, currentBreakpoint, expandToScroll } = opts;
24316
24351
  const root = getElementRoot(baseEl);
24317
24352
  const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
@@ -24404,7 +24439,7 @@ const createLeaveAnimation$1 = () => {
24404
24439
  /**
24405
24440
  * iOS Modal Leave Animation
24406
24441
  */
24407
- const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
24442
+ const iosLeaveAnimation$2 = (baseEl, opts, duration = 500) => {
24408
24443
  const { presentingEl, currentBreakpoint } = opts;
24409
24444
  const root = getElementRoot(baseEl);
24410
24445
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
@@ -25579,13 +25614,20 @@ class Modal {
25579
25614
  /**
25580
25615
  * The interaction behavior for the sheet modal when the handle is pressed.
25581
25616
  *
25582
- * Defaults to `"none"`, which means the modal will not change size or position when the handle is pressed.
25583
- * Set to `"cycle"` to let the modal cycle between available breakpoints when pressed.
25617
+ * Handle behavior is unavailable when the `handle` property is set to
25618
+ * `false` or when the `breakpoints` property is not set (using a
25619
+ * fullscreen or card modal).
25620
+ *
25621
+ * Set to `"cycle"` to make the handle focusable and let the sheet modal
25622
+ * cycle between available breakpoints when pressed. This keeps the sheet
25623
+ * operable with assistive technology.
25584
25624
  *
25585
- * Handle behavior is unavailable when the `handle` property is set to `false` or
25586
- * when the `breakpoints` property is not set (using a fullscreen or card modal).
25625
+ * Set to `"none"` to make the handle purely decorative when pressed and
25626
+ * removed from the tab order.
25627
+ *
25628
+ * Defaults to `"cycle"`.
25587
25629
  */
25588
- this.handleBehavior = 'none';
25630
+ this.handleBehavior = 'cycle';
25589
25631
  /**
25590
25632
  * If `true`, the modal will be dismissed when the backdrop is clicked.
25591
25633
  */
@@ -25777,6 +25819,10 @@ class Modal {
25777
25819
  // Also called in dismiss() — intentional dual cleanup covers both
25778
25820
  // dismiss-then-remove and direct DOM removal without dismiss.
25779
25821
  this.cleanupSafeAreaOverrides();
25822
+ // Clean up aria-hidden if removed without dismiss() being called
25823
+ if (this.presented) {
25824
+ cleanupRootFocusTrapAccessibility();
25825
+ }
25780
25826
  }
25781
25827
  componentWillLoad() {
25782
25828
  var _a;
@@ -25953,7 +25999,7 @@ class Modal {
25953
25999
  this.statusBarStyle = await StatusBar.getStyle();
25954
26000
  setCardStatusBarDark();
25955
26001
  }
25956
- await present(this, 'modalEnter', iosEnterAnimation$3, mdEnterAnimation$2, {
26002
+ await present(this, 'modalEnter', iosEnterAnimation$2, mdEnterAnimation$2, {
25957
26003
  presentingEl: presentingElement,
25958
26004
  currentBreakpoint: this.initialBreakpoint,
25959
26005
  backdropBreakpoint: this.backdropBreakpoint,
@@ -26015,7 +26061,7 @@ class Modal {
26015
26061
  // All of the elements needed for the swipe gesture
26016
26062
  // should be in the DOM and referenced by now, except
26017
26063
  // for the presenting el
26018
- const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$3);
26064
+ const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$2);
26019
26065
  const ani = (this.animation = animationBuilder(el, {
26020
26066
  presentingEl: this.presentingElement,
26021
26067
  expandToScroll: this.expandToScroll,
@@ -26034,7 +26080,7 @@ class Modal {
26034
26080
  if (!wrapperEl || initialBreakpoint === undefined) {
26035
26081
  return;
26036
26082
  }
26037
- const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$3);
26083
+ const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$2);
26038
26084
  const ani = (this.animation = animationBuilder(this.el, {
26039
26085
  presentingEl: this.presentingElement,
26040
26086
  currentBreakpoint: initialBreakpoint,
@@ -26224,7 +26270,7 @@ class Modal {
26224
26270
  window.removeEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
26225
26271
  this.keyboardOpenCallback = undefined;
26226
26272
  }
26227
- const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$3, mdLeaveAnimation$2, {
26273
+ const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$2, mdLeaveAnimation$2, {
26228
26274
  presentingEl: presentingElement,
26229
26275
  currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
26230
26276
  backdropBreakpoint: this.backdropBreakpoint,
@@ -26656,20 +26702,20 @@ class Modal {
26656
26702
  const isCardModal = presentingElement !== undefined && mode === 'ios';
26657
26703
  const isHandleCycle = handleBehavior === 'cycle';
26658
26704
  const isSheetModalWithHandle = isSheetModal && showHandle;
26659
- return (hAsync(Host, Object.assign({ key: 'ab93657f4a5b4c97168d292b398d975e4b5b4af4', "no-router": true,
26705
+ return (hAsync(Host, Object.assign({ key: '528f9e354f470e22563938e7531e3f23a97e4200', "no-router": true,
26660
26706
  // Allow the modal to be navigable when the handle is focusable
26661
26707
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
26662
26708
  zIndex: `${20000 + this.overlayIndex}`,
26663
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: '5ba6315c7c8c64fa04c62f85fd493da5275b2cbd', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: 'a76c48d41c67f86c18a7481e980e6925e614f85d', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '3f6c61ba60b063592784d76a9594073b3bf210a9',
26709
+ }, 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: '53983c96bc6b30df89986c8d9c978a8e6f78fe80', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '34288a7343b7c47fed00d3abc73957f45f06d2fd', class: "modal-shadow" }), hAsync("div", Object.assign({ key: 'f9b37f547bd5c61037bbad1a71bfed80ba8c630b',
26664
26710
  /*
26665
26711
  role and aria-modal must be used on the
26666
26712
  same element. They must also be set inside the
26667
26713
  shadow DOM otherwise ion-button will not be highlighted
26668
26714
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
26669
26715
  */
26670
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '7f66b4fdb3dec61a2b9aec4e9dbacf5d013d637c', class: "modal-handle",
26716
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: 'b8741594108d3ea681ff41ff8f2241a4119578b1', class: "modal-handle",
26671
26717
  // Prevents the handle from receiving keyboard focus when it does not cycle
26672
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: '2dfaaebe3d0b2a46be1224c25f9ab89bf1744332', onSlotchange: this.onSlotChange }))));
26718
+ 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: 'bcc7960fae3fed09076c704d08c3afc46caa0738', onSlotchange: this.onSlotChange }))));
26673
26719
  }
26674
26720
  get el() { return getElement(this); }
26675
26721
  static get watchers() { return {
@@ -27752,14 +27798,14 @@ class Note {
27752
27798
  }; }
27753
27799
  }
27754
27800
 
27755
- const pickerIosCss$1 = () => `:host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:200px;direction:ltr;z-index:0}:host .picker-before,:host .picker-after{position:absolute;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:1;pointer-events:none}:host .picker-before{top:0;height:83px}:host .picker-before{inset-inline-start:0}:host .picker-after{top:116px;height:84px}:host .picker-after{inset-inline-start:0}:host .picker-highlight{border-radius:var(--highlight-border-radius, 8px);left:0;right:0;top:50%;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;position:absolute;width:calc(100% - 16px);height:34px;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:var(--highlight-background);z-index:-1}:host input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}:host ::slotted(ion-picker-column:first-of-type){text-align:start}:host ::slotted(ion-picker-column:last-of-type){text-align:end}:host ::slotted(ion-picker-column:only-child){text-align:center}:host .picker-before{background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), to(rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8)));background:linear-gradient(to bottom, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8) 100%)}:host .picker-after{background:-webkit-gradient(linear, left bottom, left top, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), to(rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8)));background:linear-gradient(to top, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8) 100%)}:host .picker-highlight{background:var(--highlight-background, var(--ion-color-step-150, var(--ion-background-color-step-150, #eeeeef)))}`;
27801
+ 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)))}`;
27756
27802
 
27757
- const pickerMdCss$1 = () => `:host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:200px;direction:ltr;z-index:0}:host .picker-before,:host .picker-after{position:absolute;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:1;pointer-events:none}:host .picker-before{top:0;height:83px}:host .picker-before{inset-inline-start:0}:host .picker-after{top:116px;height:84px}:host .picker-after{inset-inline-start:0}:host .picker-highlight{border-radius:var(--highlight-border-radius, 8px);left:0;right:0;top:50%;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;position:absolute;width:calc(100% - 16px);height:34px;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:var(--highlight-background);z-index:-1}:host input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}:host ::slotted(ion-picker-column:first-of-type){text-align:start}:host ::slotted(ion-picker-column:last-of-type){text-align:end}:host ::slotted(ion-picker-column:only-child){text-align:center}:host .picker-before{background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), color-stop(90%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0)));background:linear-gradient(to bottom, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0) 90%)}:host .picker-after{background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), color-stop(90%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0)));background:linear-gradient(to top, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 30%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0) 90%)}`;
27803
+ 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%)}`;
27758
27804
 
27759
27805
  /**
27760
27806
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
27761
27807
  */
27762
- let Picker$1 = class Picker {
27808
+ class Picker {
27763
27809
  constructor(hostRef) {
27764
27810
  registerInstance(this, hostRef);
27765
27811
  this.ionInputModeChange = createEvent(this, "ionInputModeChange", 7);
@@ -28225,8 +28271,8 @@ let Picker$1 = class Picker {
28225
28271
  }
28226
28272
  get el() { return getElement(this); }
28227
28273
  static get style() { return {
28228
- ios: pickerIosCss$1(),
28229
- md: pickerMdCss$1()
28274
+ ios: pickerIosCss(),
28275
+ md: pickerMdCss()
28230
28276
  }; }
28231
28277
  static get cmpMeta() { return {
28232
28278
  "$flags$": 297,
@@ -28238,322 +28284,7 @@ let Picker$1 = class Picker {
28238
28284
  "$lazyBundleId$": "-",
28239
28285
  "$attrsToReflect$": []
28240
28286
  }; }
28241
- };
28242
-
28243
- /**
28244
- * iOS Picker Enter Animation
28245
- */
28246
- const iosEnterAnimation$2 = (baseEl) => {
28247
- const baseAnimation = createAnimation();
28248
- const backdropAnimation = createAnimation();
28249
- const wrapperAnimation = createAnimation();
28250
- backdropAnimation
28251
- .addElement(baseEl.querySelector('ion-backdrop'))
28252
- .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
28253
- .beforeStyles({
28254
- 'pointer-events': 'none',
28255
- })
28256
- .afterClearStyles(['pointer-events']);
28257
- wrapperAnimation
28258
- .addElement(baseEl.querySelector('.picker-wrapper'))
28259
- .fromTo('transform', 'translateY(100%)', 'translateY(0%)');
28260
- return baseAnimation
28261
- .addElement(baseEl)
28262
- .easing('cubic-bezier(.36,.66,.04,1)')
28263
- .duration(400)
28264
- .addAnimation([backdropAnimation, wrapperAnimation]);
28265
- };
28266
-
28267
- /**
28268
- * iOS Picker Leave Animation
28269
- */
28270
- const iosLeaveAnimation$2 = (baseEl) => {
28271
- const baseAnimation = createAnimation();
28272
- const backdropAnimation = createAnimation();
28273
- const wrapperAnimation = createAnimation();
28274
- backdropAnimation
28275
- .addElement(baseEl.querySelector('ion-backdrop'))
28276
- .fromTo('opacity', 'var(--backdrop-opacity)', 0.01);
28277
- wrapperAnimation
28278
- .addElement(baseEl.querySelector('.picker-wrapper'))
28279
- .fromTo('transform', 'translateY(0%)', 'translateY(100%)');
28280
- return baseAnimation
28281
- .addElement(baseEl)
28282
- .easing('cubic-bezier(.36,.66,.04,1)')
28283
- .duration(400)
28284
- .addAnimation([backdropAnimation, wrapperAnimation]);
28285
- };
28286
-
28287
- const pickerIosCss = () => `.sc-ion-picker-legacy-ios-h{--border-radius:0;--border-style:solid;--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--max-height:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.sc-ion-picker-legacy-ios-h{inset-inline-start:0}.overlay-hidden.sc-ion-picker-legacy-ios-h{display:none}.picker-wrapper.sc-ion-picker-legacy-ios{border-radius:var(--border-radius);left:0;right:0;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;overflow:hidden;z-index:10}.picker-toolbar.sc-ion-picker-legacy-ios{width:100%;background:transparent;contain:strict;z-index:1}.picker-button.sc-ion-picker-legacy-ios{border:0;font-family:inherit}.picker-button.sc-ion-picker-legacy-ios:active,.picker-button.sc-ion-picker-legacy-ios:focus{outline:none}.picker-columns.sc-ion-picker-legacy-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-pack:center;justify-content:center;margin-bottom:var(--ion-safe-area-bottom, 0);contain:strict;overflow:hidden}.picker-above-highlight.sc-ion-picker-legacy-ios,.picker-below-highlight.sc-ion-picker-legacy-ios{display:none;pointer-events:none}.sc-ion-picker-legacy-ios-h{--background:var(--ion-background-color, #fff);--border-width:1px 0 0;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));--height:260px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.26);color:var(--ion-item-color, var(--ion-text-color, #000))}.picker-toolbar.sc-ion-picker-legacy-ios{display:-ms-flexbox;display:flex;height:44px;border-bottom:0.55px solid var(--border-color)}.picker-toolbar-button.sc-ion-picker-legacy-ios{-ms-flex:1;flex:1;text-align:end}.picker-toolbar-button.sc-ion-picker-legacy-ios:last-child .picker-button.sc-ion-picker-legacy-ios{font-weight:600}.picker-toolbar-button.sc-ion-picker-legacy-ios:first-child{font-weight:normal;text-align:start}.picker-button.sc-ion-picker-legacy-ios,.picker-button.ion-activated.sc-ion-picker-legacy-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:1em;padding-inline-start:1em;-webkit-padding-end:1em;padding-inline-end:1em;padding-top:0;padding-bottom:0;height:44px;background:transparent;color:var(--ion-color-primary, #0054e9);font-size:16px}.picker-columns.sc-ion-picker-legacy-ios{height:215px;-webkit-perspective:1000px;perspective:1000px}.picker-above-highlight.sc-ion-picker-legacy-ios{top:0;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);display:block;position:absolute;width:100%;height:81px;border-bottom:1px solid var(--border-color);background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, var(--background, var(--ion-background-color, #fff))), to(rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8)));background:linear-gradient(to bottom, var(--background, var(--ion-background-color, #fff)) 20%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8) 100%);z-index:10}.picker-above-highlight.sc-ion-picker-legacy-ios{inset-inline-start:0}.picker-below-highlight.sc-ion-picker-legacy-ios{top:115px;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);display:block;position:absolute;width:100%;height:119px;border-top:1px solid var(--border-color);background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, var(--background, var(--ion-background-color, #fff))), to(rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8)));background:linear-gradient(to top, var(--background, var(--ion-background-color, #fff)) 30%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8) 100%);z-index:11}.picker-below-highlight.sc-ion-picker-legacy-ios{inset-inline-start:0}`;
28288
-
28289
- const pickerMdCss = () => `.sc-ion-picker-legacy-md-h{--border-radius:0;--border-style:solid;--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--max-height:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.sc-ion-picker-legacy-md-h{inset-inline-start:0}.overlay-hidden.sc-ion-picker-legacy-md-h{display:none}.picker-wrapper.sc-ion-picker-legacy-md{border-radius:var(--border-radius);left:0;right:0;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;overflow:hidden;z-index:10}.picker-toolbar.sc-ion-picker-legacy-md{width:100%;background:transparent;contain:strict;z-index:1}.picker-button.sc-ion-picker-legacy-md{border:0;font-family:inherit}.picker-button.sc-ion-picker-legacy-md:active,.picker-button.sc-ion-picker-legacy-md:focus{outline:none}.picker-columns.sc-ion-picker-legacy-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-pack:center;justify-content:center;margin-bottom:var(--ion-safe-area-bottom, 0);contain:strict;overflow:hidden}.picker-above-highlight.sc-ion-picker-legacy-md,.picker-below-highlight.sc-ion-picker-legacy-md{display:none;pointer-events:none}.sc-ion-picker-legacy-md-h{--background:var(--ion-background-color, #fff);--border-width:0.55px 0 0;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));--height:260px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.26);color:var(--ion-item-color, var(--ion-text-color, #000))}.picker-toolbar.sc-ion-picker-legacy-md{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;height:44px}.picker-button.sc-ion-picker-legacy-md,.picker-button.ion-activated.sc-ion-picker-legacy-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:1.1em;padding-inline-start:1.1em;-webkit-padding-end:1.1em;padding-inline-end:1.1em;padding-top:0;padding-bottom:0;height:44px;background:transparent;color:var(--ion-color-primary, #0054e9);font-size:14px;font-weight:500;text-transform:uppercase;-webkit-box-shadow:none;box-shadow:none}.picker-columns.sc-ion-picker-legacy-md{height:216px;-webkit-perspective:1800px;perspective:1800px}.picker-above-highlight.sc-ion-picker-legacy-md{top:0;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);position:absolute;width:100%;height:81px;border-bottom:1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, var(--ion-background-color, #fff)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background:linear-gradient(to bottom, var(--ion-background-color, #fff) 20%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%);z-index:10}.picker-above-highlight.sc-ion-picker-legacy-md{inset-inline-start:0}.picker-below-highlight.sc-ion-picker-legacy-md{top:115px;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);position:absolute;width:100%;height:119px;border-top:1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, var(--ion-background-color, #fff)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background:linear-gradient(to top, var(--ion-background-color, #fff) 30%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%);z-index:11}.picker-below-highlight.sc-ion-picker-legacy-md{inset-inline-start:0}`;
28290
-
28291
- // TODO(FW-2832): types
28292
- /**
28293
- * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
28294
- */
28295
- class Picker {
28296
- constructor(hostRef) {
28297
- registerInstance(this, hostRef);
28298
- this.didPresent = createEvent(this, "ionPickerDidPresent", 7);
28299
- this.willPresent = createEvent(this, "ionPickerWillPresent", 7);
28300
- this.willDismiss = createEvent(this, "ionPickerWillDismiss", 7);
28301
- this.didDismiss = createEvent(this, "ionPickerDidDismiss", 7);
28302
- this.didPresentShorthand = createEvent(this, "didPresent", 7);
28303
- this.willPresentShorthand = createEvent(this, "willPresent", 7);
28304
- this.willDismissShorthand = createEvent(this, "willDismiss", 7);
28305
- this.didDismissShorthand = createEvent(this, "didDismiss", 7);
28306
- this.delegateController = createDelegateController(this);
28307
- this.lockController = createLockController();
28308
- this.triggerController = createTriggerController();
28309
- this.presented = false;
28310
- /** @internal */
28311
- this.hasController = false;
28312
- /**
28313
- * If `true`, the keyboard will be automatically dismissed when the overlay is presented.
28314
- */
28315
- this.keyboardClose = true;
28316
- /**
28317
- * Array of buttons to be displayed at the top of the picker.
28318
- */
28319
- this.buttons = [];
28320
- /**
28321
- * Array of columns to be displayed in the picker.
28322
- */
28323
- this.columns = [];
28324
- /**
28325
- * Number of milliseconds to wait before dismissing the picker.
28326
- */
28327
- this.duration = 0;
28328
- /**
28329
- * If `true`, a backdrop will be displayed behind the picker.
28330
- */
28331
- this.showBackdrop = true;
28332
- /**
28333
- * If `true`, the picker will be dismissed when the backdrop is clicked.
28334
- */
28335
- this.backdropDismiss = true;
28336
- /**
28337
- * If `true`, the picker will animate.
28338
- */
28339
- this.animated = true;
28340
- /**
28341
- * If `true`, the picker will open. If `false`, the picker will close.
28342
- * Use this if you need finer grained control over presentation, otherwise
28343
- * just use the pickerController or the `trigger` property.
28344
- * Note: `isOpen` will not automatically be set back to `false` when
28345
- * the picker dismisses. You will need to do that in your code.
28346
- */
28347
- this.isOpen = false;
28348
- this.onBackdropTap = () => {
28349
- this.dismiss(undefined, BACKDROP);
28350
- };
28351
- this.dispatchCancelHandler = (ev) => {
28352
- const role = ev.detail.role;
28353
- if (isCancel(role)) {
28354
- const cancelButton = this.buttons.find((b) => b.role === 'cancel');
28355
- this.callButtonHandler(cancelButton);
28356
- }
28357
- };
28358
- }
28359
- onIsOpenChange(newValue, oldValue) {
28360
- if (newValue === true && oldValue === false) {
28361
- this.present();
28362
- }
28363
- else if (newValue === false && oldValue === true) {
28364
- this.dismiss();
28365
- }
28366
- }
28367
- triggerChanged() {
28368
- const { trigger, el, triggerController } = this;
28369
- if (trigger) {
28370
- triggerController.addClickListener(el, trigger);
28371
- }
28372
- }
28373
- connectedCallback() {
28374
- prepareOverlay(this.el);
28375
- this.triggerChanged();
28376
- }
28377
- disconnectedCallback() {
28378
- this.triggerController.removeClickListener();
28379
- }
28380
- componentWillLoad() {
28381
- var _a;
28382
- if (!((_a = this.htmlAttributes) === null || _a === void 0 ? void 0 : _a.id)) {
28383
- setOverlayId(this.el);
28384
- }
28385
- }
28386
- componentDidLoad() {
28387
- printIonWarning('[ion-picker-legacy] - ion-picker-legacy and ion-picker-legacy-column have been deprecated in favor of new versions of the ion-picker and ion-picker-column components. These new components display inline with your page content allowing for more presentation flexibility than before.', this.el);
28388
- /**
28389
- * If picker was rendered with isOpen="true"
28390
- * then we should open picker immediately.
28391
- */
28392
- if (this.isOpen === true) {
28393
- raf(() => this.present());
28394
- }
28395
- /**
28396
- * When binding values in frameworks such as Angular
28397
- * it is possible for the value to be set after the Web Component
28398
- * initializes but before the value watcher is set up in Stencil.
28399
- * As a result, the watcher callback may not be fired.
28400
- * We work around this by manually calling the watcher
28401
- * callback when the component has loaded and the watcher
28402
- * is configured.
28403
- */
28404
- this.triggerChanged();
28405
- }
28406
- /**
28407
- * Present the picker overlay after it has been created.
28408
- */
28409
- async present() {
28410
- const unlock = await this.lockController.lock();
28411
- await this.delegateController.attachViewToDom();
28412
- await present(this, 'pickerEnter', iosEnterAnimation$2, iosEnterAnimation$2, undefined);
28413
- if (this.duration > 0) {
28414
- this.durationTimeout = setTimeout(() => this.dismiss(), this.duration);
28415
- }
28416
- unlock();
28417
- }
28418
- /**
28419
- * Dismiss the picker overlay after it has been presented.
28420
- *
28421
- * @param data Any data to emit in the dismiss events.
28422
- * @param role The role of the element that is dismissing the picker.
28423
- * This can be useful in a button handler for determining which button was
28424
- * clicked to dismiss the picker.
28425
- * Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
28426
- */
28427
- async dismiss(data, role) {
28428
- const unlock = await this.lockController.lock();
28429
- if (this.durationTimeout) {
28430
- clearTimeout(this.durationTimeout);
28431
- }
28432
- const dismissed = await dismiss(this, data, role, 'pickerLeave', iosLeaveAnimation$2, iosLeaveAnimation$2);
28433
- if (dismissed) {
28434
- this.delegateController.removeViewFromDom();
28435
- }
28436
- unlock();
28437
- return dismissed;
28438
- }
28439
- /**
28440
- * Returns a promise that resolves when the picker did dismiss.
28441
- */
28442
- onDidDismiss() {
28443
- return eventMethod(this.el, 'ionPickerDidDismiss');
28444
- }
28445
- /**
28446
- * Returns a promise that resolves when the picker will dismiss.
28447
- */
28448
- onWillDismiss() {
28449
- return eventMethod(this.el, 'ionPickerWillDismiss');
28450
- }
28451
- /**
28452
- * Get the column that matches the specified name.
28453
- *
28454
- * @param name The name of the column.
28455
- */
28456
- getColumn(name) {
28457
- return Promise.resolve(this.columns.find((column) => column.name === name));
28458
- }
28459
- async buttonClick(button) {
28460
- const role = button.role;
28461
- if (isCancel(role)) {
28462
- return this.dismiss(undefined, role);
28463
- }
28464
- const shouldDismiss = await this.callButtonHandler(button);
28465
- if (shouldDismiss) {
28466
- return this.dismiss(this.getSelected(), button.role);
28467
- }
28468
- return Promise.resolve();
28469
- }
28470
- async callButtonHandler(button) {
28471
- if (button) {
28472
- // a handler has been provided, execute it
28473
- // pass the handler the values from the inputs
28474
- const rtn = await safeCall(button.handler, this.getSelected());
28475
- if (rtn === false) {
28476
- // if the return value of the handler is false then do not dismiss
28477
- return false;
28478
- }
28479
- }
28480
- return true;
28481
- }
28482
- getSelected() {
28483
- const selected = {};
28484
- this.columns.forEach((col, index) => {
28485
- const selectedColumn = col.selectedIndex !== undefined ? col.options[col.selectedIndex] : undefined;
28486
- selected[col.name] = {
28487
- text: selectedColumn ? selectedColumn.text : undefined,
28488
- value: selectedColumn ? selectedColumn.value : undefined,
28489
- columnIndex: index,
28490
- };
28491
- });
28492
- return selected;
28493
- }
28494
- render() {
28495
- const { htmlAttributes } = this;
28496
- const mode = getIonMode$1(this);
28497
- return (hAsync(Host, Object.assign({ key: '80f66d33780d8a1352d24be9cb63a0cc03d01ab5', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
28498
- zIndex: `${20000 + this.overlayIndex}`,
28499
- }, class: Object.assign({ [mode]: true,
28500
- // Used internally for styling
28501
- [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { key: '97fb8e10ba08b197610cb8c0cdea61103883d55f', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: 'b3969cb6fbf7153623d14e3ca1493d3370efb211', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '299268483c3727e698d9135bfdf40349a7050ac1', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, hAsync("div", { key: '95394de3ef691899b7dbf416f56fd3e86bbdce3f', class: "picker-toolbar" }, this.buttons.map((b) => (hAsync("div", { class: buttonWrapperClass(b) }, hAsync("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass$1(b) }, b.text))))), hAsync("div", { key: '05f18bb8d00dc0e22f691b7e41f90f729a6c66d7', class: "picker-columns" }, hAsync("div", { key: '4a8fdf224effc0af67fd413e2e6aca8a78d1cf43', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => hAsync("ion-picker-legacy-column", { col: c })), hAsync("div", { key: 'e50a31db45e3f39e9d0fed36a21be9257eec09bf', class: "picker-below-highlight" }))), hAsync("div", { key: '5a78cb2176ac807ea0c195c6b76cd0e8eef9d4c0', tabindex: "0", "aria-hidden": "true" })));
28502
- }
28503
- get el() { return getElement(this); }
28504
- static get watchers() { return {
28505
- "isOpen": [{
28506
- "onIsOpenChange": 0
28507
- }],
28508
- "trigger": [{
28509
- "triggerChanged": 0
28510
- }]
28511
- }; }
28512
- static get style() { return {
28513
- ios: pickerIosCss(),
28514
- md: pickerMdCss()
28515
- }; }
28516
- static get cmpMeta() { return {
28517
- "$flags$": 34,
28518
- "$tagName$": "ion-picker-legacy",
28519
- "$members$": {
28520
- "overlayIndex": [2, "overlay-index"],
28521
- "delegate": [16],
28522
- "hasController": [4, "has-controller"],
28523
- "keyboardClose": [4, "keyboard-close"],
28524
- "enterAnimation": [16],
28525
- "leaveAnimation": [16],
28526
- "buttons": [16],
28527
- "columns": [16],
28528
- "cssClass": [1, "css-class"],
28529
- "duration": [2],
28530
- "showBackdrop": [4, "show-backdrop"],
28531
- "backdropDismiss": [4, "backdrop-dismiss"],
28532
- "animated": [4],
28533
- "htmlAttributes": [16],
28534
- "isOpen": [4, "is-open"],
28535
- "trigger": [1],
28536
- "presented": [32],
28537
- "present": [64],
28538
- "dismiss": [64],
28539
- "onDidDismiss": [64],
28540
- "onWillDismiss": [64],
28541
- "getColumn": [64]
28542
- },
28543
- "$listeners$": undefined,
28544
- "$lazyBundleId$": "-",
28545
- "$attrsToReflect$": []
28546
- }; }
28547
28287
  }
28548
- const buttonWrapperClass = (button) => {
28549
- return {
28550
- [`picker-toolbar-${button.role}`]: button.role !== undefined,
28551
- 'picker-toolbar-button': true,
28552
- };
28553
- };
28554
- const buttonClass$1 = (button) => {
28555
- return Object.assign({ 'picker-button': true, 'ion-activatable': true }, getClassMap(button.cssClass));
28556
- };
28557
28288
 
28558
28289
  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)}}`;
28559
28290
 
@@ -29140,371 +28871,6 @@ class PickerColumn {
29140
28871
  }
29141
28872
  const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
29142
28873
 
29143
- const pickerColumnIosCss = () => `.picker-col{display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-pack:center;justify-content:center;height:100%;-webkit-box-sizing:content-box;box-sizing:content-box;contain:content}.picker-opts{position:relative;-ms-flex:1;flex:1;max-width:100%}.picker-opt{top:0;display:block;position:absolute;width:100%;border:0;text-align:center;text-overflow:ellipsis;white-space:nowrap;contain:strict;overflow:hidden;will-change:transform}.picker-opt{inset-inline-start:0}.picker-opt.picker-opt-disabled{pointer-events:none}.picker-opt-disabled{opacity:0}.picker-opts-left{-ms-flex-pack:start;justify-content:flex-start}.picker-opts-right{-ms-flex-pack:end;justify-content:flex-end}.picker-opt:active,.picker-opt:focus{outline:none}.picker-prefix{position:relative;-ms-flex:1;flex:1;text-align:end;white-space:nowrap}.picker-suffix{position:relative;-ms-flex:1;flex:1;text-align:start;white-space:nowrap}.picker-col{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:0;padding-bottom:0;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.picker-prefix,.picker-suffix,.picker-opts{top:77px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;color:inherit;font-size:20px;line-height:42px;pointer-events:none}.picker-opt{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-transform-origin:center center;transform-origin:center center;height:46px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;background:transparent;color:inherit;font-size:20px;line-height:42px;-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:auto}:host-context([dir=rtl]) .picker-opt{-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}[dir=rtl] .picker-opt{-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}@supports selector(:dir(rtl)){.picker-opt:dir(rtl){-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}}`;
29144
-
29145
- const pickerColumnMdCss = () => `.picker-col{display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-pack:center;justify-content:center;height:100%;-webkit-box-sizing:content-box;box-sizing:content-box;contain:content}.picker-opts{position:relative;-ms-flex:1;flex:1;max-width:100%}.picker-opt{top:0;display:block;position:absolute;width:100%;border:0;text-align:center;text-overflow:ellipsis;white-space:nowrap;contain:strict;overflow:hidden;will-change:transform}.picker-opt{inset-inline-start:0}.picker-opt.picker-opt-disabled{pointer-events:none}.picker-opt-disabled{opacity:0}.picker-opts-left{-ms-flex-pack:start;justify-content:flex-start}.picker-opts-right{-ms-flex-pack:end;justify-content:flex-end}.picker-opt:active,.picker-opt:focus{outline:none}.picker-prefix{position:relative;-ms-flex:1;flex:1;text-align:end;white-space:nowrap}.picker-suffix{position:relative;-ms-flex:1;flex:1;text-align:start;white-space:nowrap}.picker-col{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.picker-prefix,.picker-suffix,.picker-opts{top:77px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;color:inherit;font-size:22px;line-height:42px;pointer-events:none}.picker-opt{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;height:43px;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;background:transparent;color:inherit;font-size:22px;line-height:42px;-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:auto}.picker-prefix,.picker-suffix,.picker-opt.picker-opt-selected{color:var(--ion-color-primary, #0054e9)}`;
29146
-
29147
- /**
29148
- * @internal
29149
- */
29150
- class PickerColumnCmp {
29151
- constructor(hostRef) {
29152
- registerInstance(this, hostRef);
29153
- this.ionPickerColChange = createEvent(this, "ionPickerColChange", 7);
29154
- this.optHeight = 0;
29155
- this.rotateFactor = 0;
29156
- this.scaleFactor = 1;
29157
- this.velocity = 0;
29158
- this.y = 0;
29159
- this.noAnimate = true;
29160
- // `colDidChange` is a flag that gets set when the column is changed
29161
- // dynamically. When this flag is set, the column will refresh
29162
- // after the component re-renders to incorporate the new column data.
29163
- // This is necessary because `this.refresh` queries for the option elements,
29164
- // so it needs to wait for the latest elements to be available in the DOM.
29165
- // Ex: column is created with 3 options. User updates the column data
29166
- // to have 5 options. The column will still think it only has 3 options.
29167
- this.colDidChange = false;
29168
- }
29169
- colChanged() {
29170
- this.colDidChange = true;
29171
- }
29172
- async connectedCallback() {
29173
- let pickerRotateFactor = 0;
29174
- let pickerScaleFactor = 0.81;
29175
- const mode = getIonMode$1(this);
29176
- if (mode === 'ios') {
29177
- pickerRotateFactor = -0.46;
29178
- pickerScaleFactor = 1;
29179
- }
29180
- this.rotateFactor = pickerRotateFactor;
29181
- this.scaleFactor = pickerScaleFactor;
29182
- this.gesture = (await Promise.resolve().then(function () { return index; })).createGesture({
29183
- el: this.el,
29184
- gestureName: 'picker-swipe',
29185
- gesturePriority: 100,
29186
- threshold: 0,
29187
- passive: false,
29188
- onStart: (ev) => this.onStart(ev),
29189
- onMove: (ev) => this.onMove(ev),
29190
- onEnd: (ev) => this.onEnd(ev),
29191
- });
29192
- this.gesture.enable();
29193
- // Options have not been initialized yet
29194
- // Animation must be disabled through the `noAnimate` flag
29195
- // Otherwise, the options will render
29196
- // at the top of the column and transition down
29197
- this.tmrId = setTimeout(() => {
29198
- this.noAnimate = false;
29199
- // After initialization, `refresh()` will be called
29200
- // At this point, animation will be enabled. The options will
29201
- // animate as they are being selected.
29202
- this.refresh(true);
29203
- }, 250);
29204
- }
29205
- componentDidLoad() {
29206
- this.onDomChange();
29207
- }
29208
- componentDidUpdate() {
29209
- // Options may have changed since last update.
29210
- if (this.colDidChange) {
29211
- // Animation must be disabled through the `onDomChange` parameter.
29212
- // Otherwise, the recently added options will render
29213
- // at the top of the column and transition down
29214
- this.onDomChange(true, false);
29215
- this.colDidChange = false;
29216
- }
29217
- }
29218
- disconnectedCallback() {
29219
- if (this.rafId !== undefined)
29220
- cancelAnimationFrame(this.rafId);
29221
- if (this.tmrId)
29222
- clearTimeout(this.tmrId);
29223
- if (this.gesture) {
29224
- this.gesture.destroy();
29225
- this.gesture = undefined;
29226
- }
29227
- }
29228
- emitColChange() {
29229
- this.ionPickerColChange.emit(this.col);
29230
- }
29231
- setSelected(selectedIndex, duration) {
29232
- // if there is a selected index, then figure out it's y position
29233
- // if there isn't a selected index, then just use the top y position
29234
- const y = selectedIndex > -1 ? -(selectedIndex * this.optHeight) : 0;
29235
- this.velocity = 0;
29236
- // set what y position we're at
29237
- if (this.rafId !== undefined)
29238
- cancelAnimationFrame(this.rafId);
29239
- this.update(y, duration, true);
29240
- this.emitColChange();
29241
- }
29242
- update(y, duration, saveY) {
29243
- if (!this.optsEl) {
29244
- return;
29245
- }
29246
- // ensure we've got a good round number :)
29247
- let translateY = 0;
29248
- let translateZ = 0;
29249
- const { col, rotateFactor } = this;
29250
- const prevSelected = col.selectedIndex;
29251
- const selectedIndex = (col.selectedIndex = this.indexForY(-y));
29252
- const durationStr = duration === 0 ? '' : duration + 'ms';
29253
- const scaleStr = `scale(${this.scaleFactor})`;
29254
- const children = this.optsEl.children;
29255
- for (let i = 0; i < children.length; i++) {
29256
- const button = children[i];
29257
- const opt = col.options[i];
29258
- const optOffset = i * this.optHeight + y;
29259
- let transform = '';
29260
- if (rotateFactor !== 0) {
29261
- const rotateX = optOffset * rotateFactor;
29262
- if (Math.abs(rotateX) <= 90) {
29263
- translateY = 0;
29264
- translateZ = 90;
29265
- transform = `rotateX(${rotateX}deg) `;
29266
- }
29267
- else {
29268
- translateY = -9999;
29269
- }
29270
- }
29271
- else {
29272
- translateZ = 0;
29273
- translateY = optOffset;
29274
- }
29275
- const selected = selectedIndex === i;
29276
- transform += `translate3d(0px,${translateY}px,${translateZ}px) `;
29277
- if (this.scaleFactor !== 1 && !selected) {
29278
- transform += scaleStr;
29279
- }
29280
- // Update transition duration
29281
- if (this.noAnimate) {
29282
- opt.duration = 0;
29283
- button.style.transitionDuration = '';
29284
- }
29285
- else if (duration !== opt.duration) {
29286
- opt.duration = duration;
29287
- button.style.transitionDuration = durationStr;
29288
- }
29289
- // Update transform
29290
- if (transform !== opt.transform) {
29291
- opt.transform = transform;
29292
- }
29293
- button.style.transform = transform;
29294
- /**
29295
- * Ensure that the select column
29296
- * item has the selected class
29297
- */
29298
- opt.selected = selected;
29299
- if (selected) {
29300
- button.classList.add(PICKER_OPT_SELECTED);
29301
- }
29302
- else {
29303
- button.classList.remove(PICKER_OPT_SELECTED);
29304
- }
29305
- }
29306
- this.col.prevSelected = prevSelected;
29307
- if (saveY) {
29308
- this.y = y;
29309
- }
29310
- if (this.lastIndex !== selectedIndex) {
29311
- // have not set a last index yet
29312
- hapticSelectionChanged();
29313
- this.lastIndex = selectedIndex;
29314
- }
29315
- }
29316
- decelerate() {
29317
- if (this.velocity !== 0) {
29318
- // still decelerating
29319
- this.velocity *= DECELERATION_FRICTION;
29320
- // do not let it go slower than a velocity of 1
29321
- this.velocity = this.velocity > 0 ? Math.max(this.velocity, 1) : Math.min(this.velocity, -1);
29322
- let y = this.y + this.velocity;
29323
- if (y > this.minY) {
29324
- // whoops, it's trying to scroll up farther than the options we have!
29325
- y = this.minY;
29326
- this.velocity = 0;
29327
- }
29328
- else if (y < this.maxY) {
29329
- // gahh, it's trying to scroll down farther than we can!
29330
- y = this.maxY;
29331
- this.velocity = 0;
29332
- }
29333
- this.update(y, 0, true);
29334
- const notLockedIn = Math.round(y) % this.optHeight !== 0 || Math.abs(this.velocity) > 1;
29335
- if (notLockedIn) {
29336
- // isn't locked in yet, keep decelerating until it is
29337
- this.rafId = requestAnimationFrame(() => this.decelerate());
29338
- }
29339
- else {
29340
- this.velocity = 0;
29341
- this.emitColChange();
29342
- hapticSelectionEnd();
29343
- }
29344
- }
29345
- else if (this.y % this.optHeight !== 0) {
29346
- // needs to still get locked into a position so options line up
29347
- const currentPos = Math.abs(this.y % this.optHeight);
29348
- // create a velocity in the direction it needs to scroll
29349
- this.velocity = currentPos > this.optHeight / 2 ? 1 : -1;
29350
- this.decelerate();
29351
- }
29352
- }
29353
- indexForY(y) {
29354
- return Math.min(Math.max(Math.abs(Math.round(y / this.optHeight)), 0), this.col.options.length - 1);
29355
- }
29356
- onStart(detail) {
29357
- // We have to prevent default in order to block scrolling under the picker
29358
- // but we DO NOT have to stop propagation, since we still want
29359
- // some "click" events to capture
29360
- if (detail.event.cancelable) {
29361
- detail.event.preventDefault();
29362
- }
29363
- detail.event.stopPropagation();
29364
- hapticSelectionStart();
29365
- // reset everything
29366
- if (this.rafId !== undefined)
29367
- cancelAnimationFrame(this.rafId);
29368
- const options = this.col.options;
29369
- let minY = options.length - 1;
29370
- let maxY = 0;
29371
- for (let i = 0; i < options.length; i++) {
29372
- if (!options[i].disabled) {
29373
- minY = Math.min(minY, i);
29374
- maxY = Math.max(maxY, i);
29375
- }
29376
- }
29377
- this.minY = -(minY * this.optHeight);
29378
- this.maxY = -(maxY * this.optHeight);
29379
- }
29380
- onMove(detail) {
29381
- if (detail.event.cancelable) {
29382
- detail.event.preventDefault();
29383
- }
29384
- detail.event.stopPropagation();
29385
- // update the scroll position relative to pointer start position
29386
- let y = this.y + detail.deltaY;
29387
- if (y > this.minY) {
29388
- // scrolling up higher than scroll area
29389
- y = Math.pow(y, 0.8);
29390
- this.bounceFrom = y;
29391
- }
29392
- else if (y < this.maxY) {
29393
- // scrolling down below scroll area
29394
- y += Math.pow(this.maxY - y, 0.9);
29395
- this.bounceFrom = y;
29396
- }
29397
- else {
29398
- this.bounceFrom = 0;
29399
- }
29400
- this.update(y, 0, false);
29401
- }
29402
- onEnd(detail) {
29403
- if (this.bounceFrom > 0) {
29404
- // bounce back up
29405
- this.update(this.minY, 100, true);
29406
- this.emitColChange();
29407
- return;
29408
- }
29409
- else if (this.bounceFrom < 0) {
29410
- // bounce back down
29411
- this.update(this.maxY, 100, true);
29412
- this.emitColChange();
29413
- return;
29414
- }
29415
- this.velocity = clamp(-MAX_PICKER_SPEED, detail.velocityY * 23, MAX_PICKER_SPEED);
29416
- if (this.velocity === 0 && detail.deltaY === 0) {
29417
- const opt = detail.event.target.closest('.picker-opt');
29418
- if (opt === null || opt === void 0 ? void 0 : opt.hasAttribute('opt-index')) {
29419
- this.setSelected(parseInt(opt.getAttribute('opt-index'), 10), TRANSITION_DURATION);
29420
- }
29421
- }
29422
- else {
29423
- this.y += detail.deltaY;
29424
- if (Math.abs(detail.velocityY) < 0.05) {
29425
- const isScrollingUp = detail.deltaY > 0;
29426
- const optHeightFraction = (Math.abs(this.y) % this.optHeight) / this.optHeight;
29427
- if (isScrollingUp && optHeightFraction > 0.5) {
29428
- this.velocity = Math.abs(this.velocity) * -1;
29429
- }
29430
- else if (!isScrollingUp && optHeightFraction <= 0.5) {
29431
- this.velocity = Math.abs(this.velocity);
29432
- }
29433
- }
29434
- this.decelerate();
29435
- }
29436
- }
29437
- refresh(forceRefresh, animated) {
29438
- var _a;
29439
- let min = this.col.options.length - 1;
29440
- let max = 0;
29441
- const options = this.col.options;
29442
- for (let i = 0; i < options.length; i++) {
29443
- if (!options[i].disabled) {
29444
- min = Math.min(min, i);
29445
- max = Math.max(max, i);
29446
- }
29447
- }
29448
- /**
29449
- * Only update selected value if column has a
29450
- * velocity of 0. If it does not, then the
29451
- * column is animating might land on
29452
- * a value different than the value at
29453
- * selectedIndex
29454
- */
29455
- if (this.velocity !== 0) {
29456
- return;
29457
- }
29458
- const selectedIndex = clamp(min, (_a = this.col.selectedIndex) !== null && _a !== void 0 ? _a : 0, max);
29459
- if (this.col.prevSelected !== selectedIndex || forceRefresh) {
29460
- const y = selectedIndex * this.optHeight * -1;
29461
- const duration = animated ? TRANSITION_DURATION : 0;
29462
- this.velocity = 0;
29463
- this.update(y, duration, true);
29464
- }
29465
- }
29466
- onDomChange(forceRefresh, animated) {
29467
- const colEl = this.optsEl;
29468
- if (colEl) {
29469
- // DOM READ
29470
- // We perfom a DOM read over a rendered item, this needs to happen after the first render or after the column has changed
29471
- this.optHeight = colEl.firstElementChild ? colEl.firstElementChild.clientHeight : 0;
29472
- }
29473
- this.refresh(forceRefresh, animated);
29474
- }
29475
- render() {
29476
- const col = this.col;
29477
- const mode = getIonMode$1(this);
29478
- return (hAsync(Host, { key: '86125e95f18837dfd021db01777d72a1562d8ee3', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
29479
- 'max-width': this.col.columnWidth,
29480
- } }, col.prefix && (hAsync("div", { key: 'b0f3d39e0bd128781066ffefb7a1e40d12a9e76d', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), hAsync("div", { key: '0b106ac4d56916eaaa7f09d1b68348b3754b7bba', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (hAsync("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (hAsync("div", { key: '00ff2f9dbb4561787e5a5223327c6a2a33f8362e', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
29481
- }
29482
- get el() { return getElement(this); }
29483
- static get watchers() { return {
29484
- "col": [{
29485
- "colChanged": 0
29486
- }]
29487
- }; }
29488
- static get style() { return {
29489
- ios: pickerColumnIosCss(),
29490
- md: pickerColumnMdCss()
29491
- }; }
29492
- static get cmpMeta() { return {
29493
- "$flags$": 32,
29494
- "$tagName$": "ion-picker-legacy-column",
29495
- "$members$": {
29496
- "col": [16]
29497
- },
29498
- "$listeners$": undefined,
29499
- "$lazyBundleId$": "-",
29500
- "$attrsToReflect$": []
29501
- }; }
29502
- }
29503
- const PICKER_OPT_SELECTED = 'picker-opt-selected';
29504
- const DECELERATION_FRICTION = 0.97;
29505
- const MAX_PICKER_SPEED = 90;
29506
- const TRANSITION_DURATION = 150;
29507
-
29508
28874
  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}`;
29509
28875
 
29510
28876
  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)}`;
@@ -30926,6 +30292,10 @@ class Popover {
30926
30292
  this.headerResizeObserver.disconnect();
30927
30293
  this.headerResizeObserver = undefined;
30928
30294
  }
30295
+ // Clean up aria-hidden if removed without dismiss() being called
30296
+ if (this.presented) {
30297
+ cleanupRootFocusTrapAccessibility();
30298
+ }
30929
30299
  }
30930
30300
  componentWillLoad() {
30931
30301
  var _a, _b;
@@ -31164,9 +30534,9 @@ class Popover {
31164
30534
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
31165
30535
  const desktop = isPlatform('desktop');
31166
30536
  const enableArrow = arrow && !parentPopover;
31167
- return (hAsync(Host, Object.assign({ key: '2edd8333c630efbce59071f8a383e4326e928dbc', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
30537
+ return (hAsync(Host, Object.assign({ key: 'd7f3aa2c2fa93a93585e3eda9e4a6d0daaa541be', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
31168
30538
  zIndex: `${20000 + this.overlayIndex}`,
31169
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && hAsync("ion-backdrop", { key: 'aac4e68b08197534375e8ea3f8c9ea0c10ab2af4', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: 'b7f4ebf57d4148b32856b0075d286f454be8de5d', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { key: '607d94c28d73e8e957175a7c0f6e8a99ec4dcd53', class: "popover-arrow", part: "arrow" }), hAsync("div", { key: '4366a5a5de550c09895e923f345583508e1ec30c', class: "popover-content", part: "content" }, hAsync("slot", { key: 'eb7886fbc99c15b667b7d825d24f1c12d9380f03' })))));
30539
+ }, 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' })))));
31170
30540
  }
31171
30541
  get el() { return getElement(this); }
31172
30542
  static get watchers() { return {
@@ -31277,7 +30647,7 @@ class ProgressBar {
31277
30647
  const mode = getIonMode$1(this);
31278
30648
  // If the progress is displayed as a solid bar.
31279
30649
  const progressSolid = buffer === 1;
31280
- return (hAsync(Host, { key: 'c859e48f3d24a458239e36d925e5dc003ed07c6b', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
30650
+ return (hAsync(Host, { key: 'd7476268ce53b6a4f425b7bc9f01d6935eb411c3', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
31281
30651
  [mode]: true,
31282
30652
  [`progress-bar-${type}`]: true,
31283
30653
  'progress-paused': paused,
@@ -31462,7 +30832,7 @@ class Radio {
31462
30832
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
31463
30833
  const mode = getIonMode$1(this);
31464
30834
  const inItem = hostContext('ion-item', el);
31465
- return (hAsync(Host, { key: 'af5dc59ed528150872e907ed1036e3e2decba939', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
30835
+ return (hAsync(Host, { key: 'd9425b252ed38086420d91d5c680421d121c99f4', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
31466
30836
  [mode]: true,
31467
30837
  'in-item': inItem,
31468
30838
  'radio-checked': checked,
@@ -31473,10 +30843,10 @@ class Radio {
31473
30843
  // Focus and active styling should not apply when the radio is in an item
31474
30844
  'ion-activatable': !inItem,
31475
30845
  'ion-focusable': !inItem,
31476
- }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: '1312aba3259a87fe23a6911cdfa477e309469c8b', class: "radio-wrapper" }, hAsync("div", { key: 'b342aa27e240a300836d2a135658d346b95daf09', class: {
30846
+ }), 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: {
31477
30847
  'label-text-wrapper': true,
31478
30848
  'label-text-wrapper-hidden': !hasLabel,
31479
- }, part: "label" }, hAsync("slot", { key: '0a4613d29aa783d1882cf889377f7e4fd4fea51d' })), hAsync("div", { key: '191faea79dc4cd8befc4b873f5bd9f5af8ca2acc', class: "native-wrapper" }, this.renderRadioControl()))));
30849
+ }, part: "label" }, hAsync("slot", { key: '589d7c1b45a1918b5811663daa8f30788e7729f8' })), hAsync("div", { key: '0f61a17b195582d6c9a0c597cd40e6629256e479', class: "native-wrapper" }, this.renderRadioControl()))));
31480
30850
  }
31481
30851
  get el() { return getElement(this); }
31482
30852
  static get watchers() { return {
@@ -31495,7 +30865,7 @@ class Radio {
31495
30865
  "color": [513],
31496
30866
  "name": [1],
31497
30867
  "disabled": [4],
31498
- "value": [8],
30868
+ "value": [520],
31499
30869
  "labelPlacement": [1, "label-placement"],
31500
30870
  "justify": [1],
31501
30871
  "alignment": [1],
@@ -31506,7 +30876,7 @@ class Radio {
31506
30876
  },
31507
30877
  "$listeners$": undefined,
31508
30878
  "$lazyBundleId$": "-",
31509
- "$attrsToReflect$": [["color", "color"]]
30879
+ "$attrsToReflect$": [["color", "color"], ["value", "value"]]
31510
30880
  }; }
31511
30881
  }
31512
30882
  let radioButtonIds = 0;
@@ -32571,7 +31941,7 @@ class Range {
32571
31941
  const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
32572
31942
  const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
32573
31943
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
32574
- return (hAsync(Host, { key: 'f8063d1234fb113fe55a7902845dd4b4da8b1edb', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
31944
+ return (hAsync(Host, { key: 'cd26f0187c0d37c7eb9df923f75c8a0f57c19ab6', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
32575
31945
  [mode]: true,
32576
31946
  'in-item': inItem,
32577
31947
  'range-disabled': disabled,
@@ -32585,10 +31955,10 @@ class Range {
32585
31955
  'range-item-end-adjustment': needsEndAdjustment,
32586
31956
  'range-value-min': valueAtMin,
32587
31957
  'range-value-max': valueAtMax,
32588
- }) }, hAsync("label", { key: 'beead65ab01e3b18e4be59c0ee8ac6ebf32aad7c', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '03633c689d9d2e4c50a2131bcd560329df49e314', class: {
31958
+ }) }, hAsync("label", { key: '90224fd24b0e625a17e7972feff73a0ac31e093d', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'e07b9fa10983249c425eec26b741f0f628daf2b2', class: {
32589
31959
  'label-text-wrapper': true,
32590
31960
  'label-text-wrapper-hidden': !hasLabel,
32591
- }, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: 'c066804263ab6ae7393f8dcc51184b7198844ffa', class: "native-wrapper" }, hAsync("slot", { key: '7e8ea224d72b3e965dd948bee7e45c1a096b6899', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: '21f242f6f60ff3adce6a2d90b2d4dac1ceaf6624', name: "end" })))));
31961
+ }, 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" })))));
32592
31962
  }
32593
31963
  get el() { return getElement(this); }
32594
31964
  static get watchers() { return {
@@ -33659,7 +33029,7 @@ class Refresher {
33659
33029
  }
33660
33030
  render() {
33661
33031
  const mode = getIonMode$1(this);
33662
- return (hAsync(Host, { key: '80fa313b0d77161680836bdd6aa334d02c549b41', slot: "fixed", class: {
33032
+ return (hAsync(Host, { key: '1dd475095f76491206644828cf89fc6d2ec276d1', slot: "fixed", class: {
33663
33033
  [mode]: true,
33664
33034
  // Used internally for styling
33665
33035
  [`refresher-${mode}`]: true,
@@ -33885,7 +33255,7 @@ class RefresherContent {
33885
33255
  const pullingIcon = this.pullingIcon;
33886
33256
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
33887
33257
  const mode = getIonMode$1(this);
33888
- return (hAsync(Host, { key: '4add42b9fdfded359d1b054d04c2c6ff48e028c8', class: mode }, hAsync("div", { key: '45d4e4e0adfed7f96dd1849767aa2cde947de044', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (hAsync("div", { key: '6bd6c8ef5bf6e10699eec3bd8646431bfe1077a0', class: "refresher-pulling-icon" }, hAsync("div", { key: '852d20414da53352c8e58bc627e0fda38eff97cb', class: "spinner-arrow-container" }, hAsync("ion-spinner", { key: '0dde3578a80cc4b77a07c4d1db1af80c7eb10c27', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (hAsync("div", { key: 'c71dbfcf416a19c30fed38f722ebf0358c2181dd', class: "arrow-container" }, hAsync("ion-icon", { key: 'fa7c2cf624e7a9c41964e66cabc88c594da6d1fd', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (hAsync("div", { key: '3dd68c9968b421c379d1c4349ba619ee0a189c6d', class: "refresher-pulling-icon" }, hAsync("ion-icon", { key: 'f83bceceae4fa8245f91939fb6db589a595e975b', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), hAsync("div", { key: '98e22ceb0f7883e871f815f6199f5cb313e2e086', class: "refresher-refreshing" }, this.refreshingSpinner && (hAsync("div", { key: 'faabe8a9b61c02a00994ef978bb82b9ba4537214', class: "refresher-refreshing-icon" }, hAsync("ion-spinner", { key: '029a0c073ee1a07f01211e12ba2abc985cf21ed7', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
33258
+ 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())));
33889
33259
  }
33890
33260
  get el() { return getElement(this); }
33891
33261
  static get cmpMeta() { return {
@@ -33926,7 +33296,7 @@ class Reorder {
33926
33296
  render() {
33927
33297
  const mode = getIonMode$1(this);
33928
33298
  const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
33929
- return (hAsync(Host, { key: 'b869db61ca6393cf1476f2111a66b387b567c6d1', class: mode }, hAsync("slot", { key: 'a78edd1776835282b8b5c841377018f36c83296c' }, hAsync("ion-icon", { key: '7fb067c47bbb9a7258e5063f028282cc097d0f94', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
33299
+ 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" }))));
33930
33300
  }
33931
33301
  get el() { return getElement(this); }
33932
33302
  static get style() { return {
@@ -34197,7 +33567,7 @@ class ReorderGroup {
34197
33567
  }
34198
33568
  render() {
34199
33569
  const mode = getIonMode$1(this);
34200
- return (hAsync(Host, { key: '9527bbdedaab63d31f562c874a7332ea60c4b47b', class: {
33570
+ return (hAsync(Host, { key: '3afdc6a6c81bba2f88ea523d4b73c6fccff1b9ec', class: {
34201
33571
  [mode]: true,
34202
33572
  'reorder-enabled': !this.disabled,
34203
33573
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -34315,7 +33685,7 @@ class RippleEffect {
34315
33685
  }
34316
33686
  render() {
34317
33687
  const mode = getIonMode$1(this);
34318
- return (hAsync(Host, { key: '3b59cbb44741569a7350f9638b4392add673b6f1', role: "presentation", class: {
33688
+ return (hAsync(Host, { key: '5e88b5225414e29883256c86f111ded5bdf2ef91', role: "presentation", class: {
34319
33689
  [mode]: true,
34320
33690
  unbounded: this.unbounded,
34321
33691
  } }));
@@ -35449,10 +34819,10 @@ class RouterLink {
35449
34819
  rel: this.rel,
35450
34820
  target: this.target,
35451
34821
  };
35452
- return (hAsync(Host, { key: '8372835161d507c7b821b7536c55f912eb6ce704', onClick: this.onClick, class: createColorClasses$1(this.color, {
34822
+ return (hAsync(Host, { key: '6d5fdfa0dcf1eb216173bcc53f1f4d625f3ec551', onClick: this.onClick, class: createColorClasses$1(this.color, {
35453
34823
  [mode]: true,
35454
34824
  'ion-activatable': true,
35455
- }) }, hAsync("a", Object.assign({ key: '315966e14a17760f3f64197e8315200039787897' }, attrs), hAsync("slot", { key: '95fc1697b884225e85e647dddcaa8f4af8b9a979' }))));
34825
+ }) }, hAsync("a", Object.assign({ key: '85796b7b48581fe9830ba1102dad7d1069de4e17' }, attrs), hAsync("slot", { key: '0f93b0da3ec4ae8f50f624f9e7bed87d13d712d0' }))));
35456
34826
  }
35457
34827
  static get style() { return routerLinkCss(); }
35458
34828
  static get cmpMeta() { return {
@@ -35491,10 +34861,11 @@ class RouterOutlet {
35491
34861
  */
35492
34862
  this.animated = true;
35493
34863
  }
34864
+ swipeGestureChanged() {
34865
+ this.updateGestureEnabled();
34866
+ }
35494
34867
  swipeHandlerChanged() {
35495
- if (this.gesture) {
35496
- this.gesture.enable(this.swipeHandler !== undefined);
35497
- }
34868
+ this.updateGestureEnabled();
35498
34869
  }
35499
34870
  async connectedCallback() {
35500
34871
  const onStart = () => {
@@ -35534,11 +34905,21 @@ class RouterOutlet {
35534
34905
  this.gestureOrAnimationInProgress = false;
35535
34906
  }
35536
34907
  });
35537
- this.swipeHandlerChanged();
34908
+ if (this.swipeGesture === undefined) {
34909
+ this.swipeGesture = config.getBoolean('swipeBackEnabled', this.mode === 'ios');
34910
+ }
34911
+ else {
34912
+ this.updateGestureEnabled();
34913
+ }
35538
34914
  }
35539
34915
  componentWillLoad() {
35540
34916
  this.ionNavWillLoad.emit();
35541
34917
  }
34918
+ updateGestureEnabled() {
34919
+ if (this.gesture) {
34920
+ this.gesture.enable(this.swipeHandler !== undefined && this.swipeGesture === true);
34921
+ }
34922
+ }
35542
34923
  disconnectedCallback() {
35543
34924
  if (this.gesture) {
35544
34925
  this.gesture.destroy();
@@ -35649,10 +35030,13 @@ class RouterOutlet {
35649
35030
  return true;
35650
35031
  }
35651
35032
  render() {
35652
- return hAsync("slot", { key: '386c41745b61daba161cf75063da97fe29ba36cb' });
35033
+ return hAsync("slot", { key: 'ce09e6fbba7b0a2276cdde5245bb37c9a162c1c7' });
35653
35034
  }
35654
35035
  get el() { return getElement(this); }
35655
35036
  static get watchers() { return {
35037
+ "swipeGesture": [{
35038
+ "swipeGestureChanged": 0
35039
+ }],
35656
35040
  "swipeHandler": [{
35657
35041
  "swipeHandlerChanged": 0
35658
35042
  }]
@@ -35666,6 +35050,7 @@ class RouterOutlet {
35666
35050
  "delegate": [16],
35667
35051
  "animated": [4],
35668
35052
  "animation": [16],
35053
+ "swipeGesture": [1028, "swipe-gesture"],
35669
35054
  "swipeHandler": [16],
35670
35055
  "commit": [64],
35671
35056
  "setRouteId": [64],
@@ -35684,7 +35069,7 @@ class Row {
35684
35069
  registerInstance(this, hostRef);
35685
35070
  }
35686
35071
  render() {
35687
- return (hAsync(Host, { key: '8ba906a8cbea060a79ed658c9bf34906f0c11d38', class: getIonMode$1(this) }, hAsync("slot", { key: 'd1009176f45b588fa52c7d9eb336f3c6d3214bb8' })));
35072
+ return (hAsync(Host, { key: 'a9066661fff12baaf3e80b2e8c08591af72fe5b8', class: getIonMode$1(this) }, hAsync("slot", { key: '62b103af46d3a5ec9c146019ae300b68a4ae867a' })));
35688
35073
  }
35689
35074
  static get style() { return rowCss(); }
35690
35075
  static get cmpMeta() { return {
@@ -35736,7 +35121,7 @@ class Searchbar {
35736
35121
  /**
35737
35122
  * Set the input's autocorrect property.
35738
35123
  */
35739
- this.autocorrect = 'off';
35124
+ this.autocorrect = false;
35740
35125
  /**
35741
35126
  * Set the cancel button icon. Only applies to `md` mode.
35742
35127
  * Defaults to `arrow-back-sharp`.
@@ -36136,8 +35521,8 @@ class Searchbar {
36136
35521
  const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
36137
35522
  const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
36138
35523
  const shouldShowCancelButton = this.shouldShowCancelButton();
36139
- 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))));
36140
- return (hAsync(Host, { key: '219c263c1f3cc63e18bc2d2ba5d672b7806eddd0', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
35524
+ 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))));
35525
+ return (hAsync(Host, { key: 'd898b9f9768ec7119a3ad4be8350d8a3cfb32ba6', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
36141
35526
  [mode]: true,
36142
35527
  'searchbar-animated': animated,
36143
35528
  'searchbar-disabled': this.disabled,
@@ -36147,14 +35532,14 @@ class Searchbar {
36147
35532
  'searchbar-has-focus': this.focused,
36148
35533
  'searchbar-should-show-clear': this.shouldShowClearButton(),
36149
35534
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
36150
- }) }, 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) => {
35535
+ }) }, 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) => {
36151
35536
  /**
36152
35537
  * This prevents mobile browsers from
36153
35538
  * blurring the input when the clear
36154
35539
  * button is activated.
36155
35540
  */
36156
35541
  ev.preventDefault();
36157
- }, 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));
35542
+ }, 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));
36158
35543
  }
36159
35544
  get el() { return getElement(this); }
36160
35545
  static get watchers() { return {
@@ -36186,7 +35571,7 @@ class Searchbar {
36186
35571
  "animated": [4],
36187
35572
  "autocapitalize": [1],
36188
35573
  "autocomplete": [1],
36189
- "autocorrect": [1],
35574
+ "autocorrect": [4],
36190
35575
  "cancelButtonIcon": [1, "cancel-button-icon"],
36191
35576
  "cancelButtonText": [1, "cancel-button-text"],
36192
35577
  "clearIcon": [1, "clear-icon"],
@@ -36763,14 +36148,14 @@ class Segment {
36763
36148
  }
36764
36149
  render() {
36765
36150
  const mode = getIonMode$1(this);
36766
- return (hAsync(Host, { key: 'eda6b7b88b7967b55cf9098c59b655b348a42224', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
36151
+ return (hAsync(Host, { key: 'bb626072e73f09c3433e1a769e09789a00822d8f', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
36767
36152
  [mode]: true,
36768
36153
  'in-toolbar': hostContext('ion-toolbar', this.el),
36769
36154
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
36770
36155
  'segment-activated': this.activated,
36771
36156
  'segment-disabled': this.disabled,
36772
36157
  'segment-scrollable': this.scrollable,
36773
- }) }, hAsync("slot", { key: 'fdb451f235ce59c5bb50c61a13c69160ece2d5df', onSlotchange: this.onSlottedItemsChange })));
36158
+ }) }, hAsync("slot", { key: '652d5037c2c2dee4d47a5710b1d150e691202d25', onSlotchange: this.onSlottedItemsChange })));
36774
36159
  }
36775
36160
  get el() { return getElement(this); }
36776
36161
  static get watchers() { return {
@@ -36918,7 +36303,7 @@ class SegmentButton {
36918
36303
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
36919
36304
  const mode = getIonMode$1(this);
36920
36305
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
36921
- return (hAsync(Host, { key: 'f69e2a24198a7c57543dbe66902da039a6569c64', class: {
36306
+ return (hAsync(Host, { key: '792f621c36260b1fceff2b4ec4fa95d98d51d46b', class: {
36922
36307
  [mode]: true,
36923
36308
  'in-toolbar': hostContext('ion-toolbar', this.el),
36924
36309
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -36934,7 +36319,7 @@ class SegmentButton {
36934
36319
  'ion-activatable': true,
36935
36320
  'ion-activatable-instant': true,
36936
36321
  'ion-focusable': true,
36937
- } }, 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" }))));
36322
+ } }, 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" }))));
36938
36323
  }
36939
36324
  get el() { return getElement(this); }
36940
36325
  static get watchers() { return {
@@ -36971,7 +36356,7 @@ class SegmentContent {
36971
36356
  registerInstance(this, hostRef);
36972
36357
  }
36973
36358
  render() {
36974
- return (hAsync(Host, { key: '665f41a854621f898eaf7ba9a49e77cc9326501e' }, hAsync("slot", { key: '635aa57fbf6167dcd36fe8dc5dfc1c313637ac04' })));
36359
+ return (hAsync(Host, { key: 'ef39f29c444177c3b083cd35680ba891e4bb6a2a' }, hAsync("slot", { key: '51f9dd9ca084ddd928b376aa9d716509669c32b2' })));
36975
36360
  }
36976
36361
  static get style() { return segmentContentCss(); }
36977
36362
  static get cmpMeta() { return {
@@ -37090,11 +36475,11 @@ class SegmentView {
37090
36475
  }
37091
36476
  render() {
37092
36477
  const { disabled, isManualScroll, swipeGesture } = this;
37093
- return (hAsync(Host, { key: '2a6e0a1046af75b1fa0eed20a5fbbb4634480297', class: {
36478
+ return (hAsync(Host, { key: 'a6c6ac0232c4bb6f2a954b3de7993019d71f423a', class: {
37094
36479
  'segment-view-disabled': disabled,
37095
36480
  'segment-view-scroll-disabled': isManualScroll === false,
37096
36481
  'segment-view-swipe-disabled': swipeGesture === false,
37097
- } }, hAsync("slot", { key: '644b60d179d0de3fa204e3bef26a3503ceeaf1d6' })));
36482
+ } }, hAsync("slot", { key: '386305be2a75069c79def12005d9f6b49276763f' })));
37098
36483
  }
37099
36484
  get el() { return getElement(this); }
37100
36485
  static get style() { return {
@@ -37278,9 +36663,40 @@ class Select {
37278
36663
  this.emitStyle();
37279
36664
  }
37280
36665
  setValue(value) {
36666
+ if (this.isValueEqual(this.value, value)) {
36667
+ return;
36668
+ }
37281
36669
  this.value = value;
37282
36670
  this.ionChange.emit({ value });
37283
36671
  }
36672
+ isValueEqual(currentValue, newValue) {
36673
+ if (this.multiple) {
36674
+ const currentArr = Array.isArray(currentValue) ? currentValue : [];
36675
+ const newArr = Array.isArray(newValue) ? newValue : [];
36676
+ if (currentArr.length !== newArr.length) {
36677
+ return false;
36678
+ }
36679
+ // Multiset compare: each new value must match a distinct current value.
36680
+ // A plain `every(isOptionSelected)` would accept ['a','a'] as equal to
36681
+ // ['a','b'] when both 'a' and 'b' map to options whose values overlap.
36682
+ const remaining = currentArr.slice();
36683
+ return newArr.every((val) => {
36684
+ const idx = remaining.findIndex((c) => compareOptions(c, val, this.compareWith));
36685
+ if (idx === -1) {
36686
+ return false;
36687
+ }
36688
+ remaining.splice(idx, 1);
36689
+ return true;
36690
+ });
36691
+ }
36692
+ if (currentValue == null && newValue == null) {
36693
+ return true;
36694
+ }
36695
+ if (currentValue == null || newValue == null) {
36696
+ return false;
36697
+ }
36698
+ return compareOptions(currentValue, newValue, this.compareWith);
36699
+ }
37284
36700
  async connectedCallback() {
37285
36701
  const { el } = this;
37286
36702
  this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
@@ -37866,7 +37282,7 @@ class Select {
37866
37282
  * TODO(FW-5592): Remove hasStartEndSlots condition
37867
37283
  */
37868
37284
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
37869
- return (hAsync(Host, { key: '5f4ee901b65554eacc9fa52230d06b1a5ff1247c', onClick: this.onClick, class: createColorClasses$1(this.color, {
37285
+ return (hAsync(Host, { key: '2c141ef1b6983b464118e8ed192739dfca9d095a', onClick: this.onClick, class: createColorClasses$1(this.color, {
37870
37286
  [mode]: true,
37871
37287
  'in-item': inItem,
37872
37288
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -37884,7 +37300,7 @@ class Select {
37884
37300
  [`select-justify-${justify}`]: justifyEnabled,
37885
37301
  [`select-shape-${shape}`]: shape !== undefined,
37886
37302
  [`select-label-placement-${labelPlacement}`]: true,
37887
- }) }, 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()));
37303
+ }) }, 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()));
37888
37304
  }
37889
37305
  get el() { return getElement(this); }
37890
37306
  static get watchers() { return {
@@ -38068,7 +37484,7 @@ class SelectModal {
38068
37484
  } }, option.text))));
38069
37485
  }
38070
37486
  render() {
38071
- 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()))));
37487
+ 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()))));
38072
37488
  }
38073
37489
  get el() { return getElement(this); }
38074
37490
  static get style() { return {
@@ -38103,7 +37519,7 @@ class SelectOption {
38103
37519
  this.disabled = false;
38104
37520
  }
38105
37521
  render() {
38106
- return hAsync(Host, { key: '824730b6c1e4f15b716e91b05840e890af5f1577', role: "option", id: this.inputId, class: getIonMode$1(this) });
37522
+ return hAsync(Host, { key: '1fc1737fbb29dcb62638149b21620cbdf2f00dbc', role: "option", id: this.inputId, class: getIonMode$1(this) });
38107
37523
  }
38108
37524
  get el() { return getElement(this); }
38109
37525
  static get style() { return selectOptionCss(); }
@@ -38231,7 +37647,7 @@ class SelectPopover {
38231
37647
  render() {
38232
37648
  const { header, message, options, subHeader } = this;
38233
37649
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
38234
- 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))));
37650
+ 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))));
38235
37651
  }
38236
37652
  get el() { return getElement(this); }
38237
37653
  static get style() { return {
@@ -38281,11 +37697,11 @@ class SkeletonText {
38281
37697
  const animated = this.animated && config.getBoolean('animated', true);
38282
37698
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
38283
37699
  const mode = getIonMode$1(this);
38284
- return (hAsync(Host, { key: 'cb8da9aba121811b9a4ffdae60ed88105897cb3c', class: {
37700
+ return (hAsync(Host, { key: '887d958d982345ce610730ab5c9ae35010430f75', class: {
38285
37701
  [mode]: true,
38286
37702
  'skeleton-text-animated': animated,
38287
37703
  'in-media': inMedia,
38288
- } }, hAsync("span", { key: '5379deee3c76d46d615be0cba14b4f60129ffa25' }, "\u00A0")));
37704
+ } }, hAsync("span", { key: 'a184f4b9780a2aada0a16729109ac81436e9c9e1' }, "\u00A0")));
38289
37705
  }
38290
37706
  get el() { return getElement(this); }
38291
37707
  static get style() { return skeletonTextCss(); }
@@ -38337,7 +37753,7 @@ class Spinner {
38337
37753
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
38338
37754
  }
38339
37755
  }
38340
- return (hAsync(Host, { key: 'dd1954e557fa14b943e761474e29e4316ba53938', class: createColorClasses$1(self.color, {
37756
+ return (hAsync(Host, { key: 'c35ebd01186e860acb9cac260193f0836424fdf4', class: createColorClasses$1(self.color, {
38341
37757
  [mode]: true,
38342
37758
  [`spinner-${spinnerName}`]: true,
38343
37759
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -38436,12 +37852,12 @@ class SplitPane {
38436
37852
  }
38437
37853
  render() {
38438
37854
  const mode = getIonMode$1(this);
38439
- return (hAsync(Host, { key: '05c88c009fbe2e223fd261760a2b49da1653ff62', class: {
37855
+ return (hAsync(Host, { key: '694e989fafcfe2453e0a83b3cb736efaa1eb4fec', class: {
38440
37856
  [mode]: true,
38441
37857
  // Used internally for styling
38442
37858
  [`split-pane-${mode}`]: true,
38443
37859
  'split-pane-visible': this.visible,
38444
- } }, hAsync("slot", { key: 'b35865082661253c4468520d79234fa5dab5bd35' })));
37860
+ } }, hAsync("slot", { key: 'dde7e9382b62cc11971aa233cf98c2314ae4f720' })));
38445
37861
  }
38446
37862
  get el() { return getElement(this); }
38447
37863
  static get watchers() { return {
@@ -38513,10 +37929,10 @@ class Tab {
38513
37929
  }
38514
37930
  render() {
38515
37931
  const { tab, active, component } = this;
38516
- return (hAsync(Host, { key: 'fbd837bad7a0632336d46a597ace23673b153e48', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
37932
+ return (hAsync(Host, { key: '745262368a7f45244da459f4fa1730a46dd3e257', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
38517
37933
  'ion-page': component === undefined,
38518
37934
  'tab-hidden': !active,
38519
- } }, hAsync("slot", { key: '35c218169fda826c9c1337558e0278d0c7f5f26a' })));
37935
+ } }, hAsync("slot", { key: '823d09a6f93bf7c0dc74f2b8717d1d3a62df1ad8' })));
38520
37936
  }
38521
37937
  get el() { return getElement(this); }
38522
37938
  static get watchers() { return {
@@ -38630,11 +38046,11 @@ class TabBar {
38630
38046
  const { color, translucent, keyboardVisible } = this;
38631
38047
  const mode = getIonMode$1(this);
38632
38048
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
38633
- return (hAsync(Host, { key: '24e164eaf81a0bec9237b561465618f10990806c', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
38049
+ return (hAsync(Host, { key: '148f65df0818e9d220a9b46db74cb89ab94e62d2', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
38634
38050
  [mode]: true,
38635
38051
  'tab-bar-translucent': translucent,
38636
38052
  'tab-bar-hidden': shouldHide,
38637
- }) }, hAsync("slot", { key: '0ca29a2d97a7c38bbf43f8d79e271b874b4d9be8' })));
38053
+ }) }, hAsync("slot", { key: 'a64e235f3703662e2dd7a834f752cc5b1490adbc' })));
38638
38054
  }
38639
38055
  get el() { return getElement(this); }
38640
38056
  static get watchers() { return {
@@ -38732,7 +38148,7 @@ class TabButton {
38732
38148
  rel,
38733
38149
  target,
38734
38150
  };
38735
- return (hAsync(Host, { key: '638b93ef40701ec3aefb89b1579eb91aaf6d4f8a', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
38151
+ return (hAsync(Host, { key: '1034b5a928ecec49bd8efec3730ea1b11a579cf3', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
38736
38152
  [mode]: true,
38737
38153
  'tab-selected': selected,
38738
38154
  'tab-disabled': disabled,
@@ -38744,7 +38160,7 @@ class TabButton {
38744
38160
  'ion-activatable': true,
38745
38161
  'ion-selectable': true,
38746
38162
  'ion-focusable': true,
38747
- } }, 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" }))));
38163
+ } }, 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" }))));
38748
38164
  }
38749
38165
  get el() { return getElement(this); }
38750
38166
  static get style() { return {
@@ -38935,7 +38351,7 @@ class Tabs {
38935
38351
  return Array.from(this.el.querySelectorAll('ion-tab'));
38936
38352
  }
38937
38353
  render() {
38938
- 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" })));
38354
+ 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" })));
38939
38355
  }
38940
38356
  get el() { return getElement(this); }
38941
38357
  static get style() { return tabsCss(); }
@@ -38975,9 +38391,9 @@ class Text {
38975
38391
  }
38976
38392
  render() {
38977
38393
  const mode = getIonMode$1(this);
38978
- return (hAsync(Host, { key: 'bfaa49d35f43b8036725ae8a322c716fc6e43bdf', class: createColorClasses$1(this.color, {
38394
+ return (hAsync(Host, { key: '41ed8da617ed0e07bbfe96e32a000e1c6503e24e', class: createColorClasses$1(this.color, {
38979
38395
  [mode]: true,
38980
- }) }, hAsync("slot", { key: 'c04880cd1935b42cbe60f58fd523b4d8a96072dc' })));
38396
+ }) }, hAsync("slot", { key: 'db8de04a2493537b3037f276b03abd92dfa56847' })));
38981
38397
  }
38982
38398
  static get style() { return textCss(); }
38983
38399
  static get cmpMeta() { return {
@@ -39438,7 +38854,7 @@ class Textarea {
39438
38854
  * TODO(FW-5592): Remove hasStartEndSlots condition
39439
38855
  */
39440
38856
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
39441
- return (hAsync(Host, { key: '4257e84acd46f43390fa2413d0b8f40e16a37499', class: createColorClasses$1(this.color, {
38857
+ return (hAsync(Host, { key: 'eca1dfed53189408f614661ef3902cdb73d5f5de', class: createColorClasses$1(this.color, {
39442
38858
  [mode]: true,
39443
38859
  'has-value': hasValue,
39444
38860
  'has-focus': hasFocus,
@@ -39447,7 +38863,7 @@ class Textarea {
39447
38863
  [`textarea-shape-${shape}`]: shape !== undefined,
39448
38864
  [`textarea-label-placement-${labelPlacement}`]: true,
39449
38865
  'textarea-disabled': disabled,
39450
- }) }, 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()));
38866
+ }) }, 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()));
39451
38867
  }
39452
38868
  get el() { return getElement(this); }
39453
38869
  static get watchers() { return {
@@ -39516,7 +38932,7 @@ class Thumbnail {
39516
38932
  registerInstance(this, hostRef);
39517
38933
  }
39518
38934
  render() {
39519
- return (hAsync(Host, { key: 'b250e01664238f1dca8f9757b15bc3d5d9387ffa', class: getIonMode$1(this) }, hAsync("slot", { key: '72cb568bccabc983c5186a7596ef6c6d4ebf5ad9' })));
38935
+ return (hAsync(Host, { key: '833e947c683b482a78f8f0df8c9a68e99478bbaa', class: getIonMode$1(this) }, hAsync("slot", { key: '6d1e9e686db88d91379f14121058dbf035d8ded2' })));
39520
38936
  }
39521
38937
  static get style() { return thumbnailCss(); }
39522
38938
  static get cmpMeta() { return {
@@ -40376,9 +39792,9 @@ class Toast {
40376
39792
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
40377
39793
  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);
40378
39794
  }
40379
- return (hAsync(Host, Object.assign({ key: 'b5256edcf33d0ef51e6c5080c84e1ca58abe2ae0', tabindex: "-1" }, this.htmlAttributes, { style: {
39795
+ return (hAsync(Host, Object.assign({ key: '2acb2cd2e12ea0082986495929e4a596d4da2f38', tabindex: "-1" }, this.htmlAttributes, { style: {
40380
39796
  zIndex: `${60000 + this.overlayIndex}`,
40381
- }, 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')))));
39797
+ }, 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')))));
40382
39798
  }
40383
39799
  get el() { return getElement(this); }
40384
39800
  static get watchers() { return {
@@ -40696,7 +40112,7 @@ class Toggle {
40696
40112
  const value = this.getValue();
40697
40113
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
40698
40114
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
40699
- 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, {
40115
+ 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, {
40700
40116
  [mode]: true,
40701
40117
  'in-item': hostContext('ion-item', el),
40702
40118
  'toggle-activated': activated,
@@ -40706,10 +40122,10 @@ class Toggle {
40706
40122
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
40707
40123
  [`toggle-label-placement-${labelPlacement}`]: true,
40708
40124
  [`toggle-${rtl}`]: true,
40709
- }) }, 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: {
40125
+ }) }, 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: {
40710
40126
  'label-text-wrapper': true,
40711
40127
  'label-text-wrapper-hidden': !hasLabel,
40712
- }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '006dd3558264d69ab020c07005b348adc4ecdd5b' }), this.renderHintText()), hAsync("div", { key: 'dd4e52de31caabee41ec1bc58efecd1e213368c9', class: "native-wrapper" }, this.renderToggleControl()))));
40128
+ }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: 'c480b96a0ddd926568f73291d71253d6f74438c7' }), this.renderHintText()), hAsync("div", { key: '96a2cbd1673e051a78f8b2b16535ecd3f0ed4339', class: "native-wrapper" }, this.renderToggleControl()))));
40713
40129
  }
40714
40130
  get el() { return getElement(this); }
40715
40131
  static get watchers() { return {
@@ -40821,10 +40237,10 @@ class Toolbar {
40821
40237
  this.childrenStyles.forEach((value) => {
40822
40238
  Object.assign(childStyles, value);
40823
40239
  });
40824
- return (hAsync(Host, { key: 'b849db2863778dee6c5a251bffa1b3a657aeb036', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
40240
+ return (hAsync(Host, { key: '40bad6fa7e94262438da4bbe037dcf8a5fa2df22', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
40825
40241
  [mode]: true,
40826
40242
  'in-toolbar': hostContext('ion-toolbar', this.el),
40827
- })) }, 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" }))));
40243
+ })) }, 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" }))));
40828
40244
  }
40829
40245
  get el() { return getElement(this); }
40830
40246
  static get style() { return {
@@ -40870,11 +40286,11 @@ class ToolbarTitle {
40870
40286
  render() {
40871
40287
  const mode = getIonMode$1(this);
40872
40288
  const size = this.getSize();
40873
- return (hAsync(Host, { key: '44e63f8439df64c470692904427b417e19406476', class: createColorClasses$1(this.color, {
40289
+ return (hAsync(Host, { key: 'd9317e8e66cb6112717f5a9c252658777efbd873', class: createColorClasses$1(this.color, {
40874
40290
  [mode]: true,
40875
40291
  [`title-${size}`]: true,
40876
40292
  'title-rtl': document.dir === 'rtl',
40877
- }) }, hAsync("div", { key: '784cf60a0db16045391891cc8fad0c7dbeba4039', class: "toolbar-title" }, hAsync("slot", { key: '0c720a50479ba257e8756337aeb9b0ab7516a227' }))));
40293
+ }) }, hAsync("div", { key: 'a4d011d6d409bf006d8efe33667002edb109820a', class: "toolbar-title" }, hAsync("slot", { key: '4ca3303b957a0e5387f1e9058e5adb4c6275afcc' }))));
40878
40294
  }
40879
40295
  get el() { return getElement(this); }
40880
40296
  static get watchers() { return {
@@ -40954,10 +40370,8 @@ registerComponents([
40954
40370
  Nav,
40955
40371
  NavLink,
40956
40372
  Note,
40957
- Picker$1,
40958
40373
  Picker,
40959
40374
  PickerColumn,
40960
- PickerColumnCmp,
40961
40375
  PickerColumnOption,
40962
40376
  Popover,
40963
40377
  ProgressBar,