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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (288) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-action-sheet.js +1 -1
  3. package/components/ion-alert.js +1 -1
  4. package/components/ion-back-button.js +1 -1
  5. package/components/ion-button.js +1 -1
  6. package/components/ion-card.js +1 -1
  7. package/components/ion-chip.js +1 -1
  8. package/components/ion-datetime-button.js +1 -1
  9. package/components/ion-datetime.js +1 -1
  10. package/components/ion-fab-button.js +1 -1
  11. package/components/ion-infinite-scroll-content.js +1 -1
  12. package/components/ion-input-password-toggle.js +1 -1
  13. package/components/ion-input.js +1 -1
  14. package/components/ion-item-option.js +1 -1
  15. package/components/ion-item.js +1 -1
  16. package/components/ion-loading.js +1 -1
  17. package/components/ion-menu-button.js +1 -1
  18. package/components/ion-menu.js +1 -1
  19. package/components/ion-modal.js +1 -1
  20. package/components/ion-popover.js +1 -1
  21. package/components/ion-progress-bar.js +1 -1
  22. package/components/ion-radio.js +1 -1
  23. package/components/ion-range.js +1 -1
  24. package/components/ion-refresher-content.js +1 -1
  25. package/components/ion-refresher.js +1 -1
  26. package/components/ion-reorder-group.js +1 -1
  27. package/components/ion-reorder.js +1 -1
  28. package/components/ion-ripple-effect.js +1 -1
  29. package/components/ion-router-link.js +1 -1
  30. package/components/ion-router-outlet.js +1 -1
  31. package/components/ion-row.js +1 -1
  32. package/components/ion-searchbar.js +1 -1
  33. package/components/ion-segment-button.js +1 -1
  34. package/components/ion-segment-content.js +1 -1
  35. package/components/ion-segment-view.js +1 -1
  36. package/components/ion-segment.js +1 -1
  37. package/components/ion-select-modal.js +1 -1
  38. package/components/ion-select-option.js +1 -1
  39. package/components/ion-select-popover.js +1 -1
  40. package/components/ion-select.js +1 -1
  41. package/components/ion-skeleton-text.js +1 -1
  42. package/components/ion-spinner.js +1 -1
  43. package/components/ion-split-pane.js +1 -1
  44. package/components/ion-tab-bar.js +1 -1
  45. package/components/ion-tab-button.js +1 -1
  46. package/components/ion-tab.js +1 -1
  47. package/components/ion-tabs.js +1 -1
  48. package/components/ion-text.js +1 -1
  49. package/components/ion-textarea.js +1 -1
  50. package/components/ion-thumbnail.js +1 -1
  51. package/components/ion-title.js +1 -1
  52. package/components/ion-toast.js +1 -1
  53. package/components/ion-toggle.js +1 -1
  54. package/components/ion-toolbar.js +1 -1
  55. package/components/{p-nQi4oKcG.js → p-B8U2xbtx.js} +1 -1
  56. package/components/p-BpCi7xHq.js +4 -0
  57. package/components/p-CHzfYZbv.js +4 -0
  58. package/components/{p-DDWp95gH.js → p-Ck2wcXbv.js} +1 -1
  59. package/components/{p-C2lKgrXx.js → p-DEBD4LvH.js} +1 -1
  60. package/components/p-DH50pr9O.js +4 -0
  61. package/components/{p-BSEgsdFI.js → p-DhkITZ-y.js} +1 -1
  62. package/components/p-DmpBvltk.js +4 -0
  63. package/components/{p-5bE_Wz4Y.js → p-DpV-p5Xs.js} +1 -1
  64. package/components/{p-Cfx4M1Bn.js → p-Dz74mwlk.js} +1 -1
  65. package/components/{p-BLmJ0zRm.js → p-XJWMAP8m.js} +1 -1
  66. package/components/p-djQLE88P.js +4 -0
  67. package/components/{p-B60hm8Qv.js → p-r0aq7dpt.js} +1 -1
  68. package/components/{p-rCa2eL0j.js → p-wk2QqrAo.js} +1 -1
  69. package/dist/cjs/index.cjs.js +1 -2
  70. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -4
  71. package/dist/cjs/ion-alert.cjs.entry.js +7 -3
  72. package/dist/cjs/ion-app_8.cjs.entry.js +23 -9
  73. package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
  74. package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
  75. package/dist/cjs/{ion-datetime_3.cjs.entry.js → ion-datetime.cjs.entry.js} +1 -639
  76. package/dist/cjs/ion-input.cjs.entry.js +4 -4
  77. package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
  78. package/dist/cjs/ion-loading.cjs.entry.js +7 -3
  79. package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
  80. package/dist/cjs/ion-modal.cjs.entry.js +9 -5
  81. package/dist/cjs/ion-popover.cjs.entry.js +7 -3
  82. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  83. package/dist/cjs/ion-radio_2.cjs.entry.js +3 -3
  84. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  85. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  86. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  87. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  88. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  89. package/dist/cjs/ion-searchbar.cjs.entry.js +5 -5
  90. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  91. package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
  92. package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
  93. package/dist/cjs/ion-select-modal.cjs.entry.js +2 -2
  94. package/dist/cjs/ion-select_3.cjs.entry.js +36 -5
  95. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  96. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  97. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  98. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  99. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  100. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  101. package/dist/cjs/ion-toast.cjs.entry.js +3 -3
  102. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  103. package/dist/cjs/ionic.cjs.js +1 -1
  104. package/dist/cjs/loader.cjs.js +1 -1
  105. package/dist/cjs/{overlays-TbKsuC-K.js → overlays-DSmSrd_4.js} +26 -7
  106. package/dist/collection/collection-manifest.json +5 -9
  107. package/dist/collection/components/action-sheet/action-sheet.js +8 -4
  108. package/dist/collection/components/alert/alert.js +7 -3
  109. package/dist/collection/components/input/input.js +8 -8
  110. package/dist/collection/components/loading/loading.js +7 -3
  111. package/dist/collection/components/modal/modal.js +9 -5
  112. package/dist/collection/components/popover/popover.js +7 -3
  113. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  114. package/dist/collection/components/radio/radio.js +4 -4
  115. package/dist/collection/components/range/range.js +3 -3
  116. package/dist/collection/components/refresher/refresher.js +1 -1
  117. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  118. package/dist/collection/components/reorder/reorder.js +1 -1
  119. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  120. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  121. package/dist/collection/components/router-link/router-link.js +2 -2
  122. package/dist/collection/components/router-outlet/router-outlet.js +38 -5
  123. package/dist/collection/components/row/row.js +1 -1
  124. package/dist/collection/components/searchbar/searchbar.js +9 -9
  125. package/dist/collection/components/segment/segment.js +2 -2
  126. package/dist/collection/components/segment-button/segment-button.js +2 -2
  127. package/dist/collection/components/segment-content/segment-content.js +1 -1
  128. package/dist/collection/components/segment-view/segment-view.js +2 -2
  129. package/dist/collection/components/select/select.js +33 -2
  130. package/dist/collection/components/select-modal/select-modal.js +1 -1
  131. package/dist/collection/components/select-option/select-option.js +1 -1
  132. package/dist/collection/components/select-popover/select-popover.js +1 -1
  133. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  134. package/dist/collection/components/spinner/spinner.js +1 -1
  135. package/dist/collection/components/split-pane/split-pane.js +2 -2
  136. package/dist/collection/components/tab/tab.js +2 -2
  137. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  138. package/dist/collection/components/tab-button/tab-button.js +2 -2
  139. package/dist/collection/components/tabs/tabs.js +1 -1
  140. package/dist/collection/components/text/text.js +2 -2
  141. package/dist/collection/components/textarea/textarea.js +2 -2
  142. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  143. package/dist/collection/components/title/title.js +2 -2
  144. package/dist/collection/components/toast/toast.js +2 -2
  145. package/dist/collection/components/toggle/toggle.js +3 -3
  146. package/dist/collection/components/toolbar/toolbar.js +2 -2
  147. package/dist/collection/index.js +1 -1
  148. package/dist/collection/utils/overlays.js +25 -6
  149. package/dist/docs.json +247 -1170
  150. package/dist/esm/{index-DV3sJJW8.js → index-AlrZKoWR.js} +1 -1
  151. package/dist/esm/index.js +1 -1
  152. package/dist/esm/ion-accordion_2.entry.js +1 -1
  153. package/dist/esm/ion-action-sheet.entry.js +8 -4
  154. package/dist/esm/ion-alert.entry.js +7 -3
  155. package/dist/esm/ion-app_8.entry.js +23 -9
  156. package/dist/esm/ion-avatar_3.entry.js +1 -1
  157. package/dist/esm/ion-back-button.entry.js +1 -1
  158. package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
  159. package/dist/esm/ion-col_3.entry.js +1 -1
  160. package/dist/esm/{ion-datetime_3.entry.js → ion-datetime.entry.js} +5 -641
  161. package/dist/esm/ion-fab_3.entry.js +1 -1
  162. package/dist/esm/ion-input-password-toggle.entry.js +1 -1
  163. package/dist/esm/ion-input.entry.js +5 -5
  164. package/dist/esm/ion-item_8.entry.js +3 -3
  165. package/dist/esm/ion-loading.entry.js +7 -3
  166. package/dist/esm/ion-menu_3.entry.js +2 -2
  167. package/dist/esm/ion-modal.entry.js +9 -5
  168. package/dist/esm/ion-popover.entry.js +7 -3
  169. package/dist/esm/ion-progress-bar.entry.js +1 -1
  170. package/dist/esm/ion-radio_2.entry.js +3 -3
  171. package/dist/esm/ion-range.entry.js +3 -3
  172. package/dist/esm/ion-refresher_2.entry.js +3 -3
  173. package/dist/esm/ion-reorder_2.entry.js +3 -3
  174. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  175. package/dist/esm/ion-route_4.entry.js +2 -2
  176. package/dist/esm/ion-searchbar.entry.js +6 -6
  177. package/dist/esm/ion-segment-content.entry.js +1 -1
  178. package/dist/esm/ion-segment-view.entry.js +2 -2
  179. package/dist/esm/ion-segment_2.entry.js +4 -4
  180. package/dist/esm/ion-select-modal.entry.js +2 -2
  181. package/dist/esm/ion-select_3.entry.js +38 -7
  182. package/dist/esm/ion-spinner.entry.js +1 -1
  183. package/dist/esm/ion-split-pane.entry.js +2 -2
  184. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  185. package/dist/esm/ion-tab_2.entry.js +3 -3
  186. package/dist/esm/ion-text.entry.js +2 -2
  187. package/dist/esm/ion-textarea.entry.js +2 -2
  188. package/dist/esm/ion-toast.entry.js +3 -3
  189. package/dist/esm/ion-toggle.entry.js +4 -4
  190. package/dist/esm/ionic.js +1 -1
  191. package/dist/esm/loader.js +1 -1
  192. package/dist/esm/{overlays-TbiM4mdr.js → overlays-DLNOHWNc.js} +26 -7
  193. package/dist/html.html-data.json +6 -77
  194. package/dist/ionic/index.esm.js +1 -1
  195. package/dist/ionic/ionic.esm.js +1 -1
  196. package/dist/ionic/{p-aa5d6b8f.entry.js → p-03aa786d.entry.js} +1 -1
  197. package/dist/ionic/{p-8fce95d5.entry.js → p-14095ba5.entry.js} +1 -1
  198. package/dist/ionic/{p-3a126bca.entry.js → p-259d0d98.entry.js} +1 -1
  199. package/dist/ionic/{p-e847a888.entry.js → p-2a6d6565.entry.js} +1 -1
  200. package/dist/ionic/{p-fabcce6c.entry.js → p-341032b3.entry.js} +1 -1
  201. package/dist/ionic/{p-a21add2f.entry.js → p-441fbb13.entry.js} +1 -1
  202. package/dist/ionic/{p-3a7d1e91.entry.js → p-4502a274.entry.js} +1 -1
  203. package/dist/ionic/p-4621c387.entry.js +4 -0
  204. package/dist/ionic/p-4bb3eb60.entry.js +4 -0
  205. package/dist/ionic/{p-874b4bd8.entry.js → p-51cd1643.entry.js} +1 -1
  206. package/dist/ionic/p-5c3ec490.entry.js +4 -0
  207. package/dist/ionic/{p-3ae5f277.entry.js → p-627fabd9.entry.js} +1 -1
  208. package/dist/ionic/{p-e0be05c5.entry.js → p-629e4703.entry.js} +1 -1
  209. package/dist/ionic/{p-5d1da0a2.entry.js → p-76e92a84.entry.js} +1 -1
  210. package/dist/ionic/{p-9f1103ce.entry.js → p-7a37b3ce.entry.js} +1 -1
  211. package/dist/ionic/p-7aed7726.entry.js +4 -0
  212. package/dist/ionic/p-7ebd980c.entry.js +4 -0
  213. package/dist/ionic/{p-3353c229.entry.js → p-80b44b3c.entry.js} +1 -1
  214. package/dist/ionic/p-8d624ee5.entry.js +4 -0
  215. package/dist/ionic/{p-390ca786.entry.js → p-9177f4ac.entry.js} +1 -1
  216. package/dist/ionic/p-944c8939.entry.js +4 -0
  217. package/dist/ionic/p-9c6a5a8d.entry.js +4 -0
  218. package/dist/ionic/{p-DV3sJJW8.js → p-AlrZKoWR.js} +1 -1
  219. package/dist/ionic/p-Cg5-OQYy.js +4 -0
  220. package/dist/ionic/p-a2e51c5d.entry.js +4 -0
  221. package/dist/ionic/{p-4858af1f.entry.js → p-a5213260.entry.js} +1 -1
  222. package/dist/ionic/{p-37e720da.entry.js → p-a7628bc7.entry.js} +1 -1
  223. package/dist/ionic/{p-ef4c3bee.entry.js → p-b1599fca.entry.js} +1 -1
  224. package/dist/ionic/p-b16be471.entry.js +4 -0
  225. package/dist/ionic/{p-84d5ce05.entry.js → p-b9ac1fe0.entry.js} +1 -1
  226. package/dist/ionic/{p-94f2a736.entry.js → p-c93553d2.entry.js} +1 -1
  227. package/dist/ionic/{p-75dc25ba.entry.js → p-d2c7f046.entry.js} +1 -1
  228. package/dist/ionic/{p-c4d8641b.entry.js → p-d8387b99.entry.js} +1 -1
  229. package/dist/ionic/p-d8ac9eea.entry.js +4 -0
  230. package/dist/ionic/{p-9a65ac7f.entry.js → p-db1b6738.entry.js} +1 -1
  231. package/dist/ionic/p-ed797c72.entry.js +4 -0
  232. package/dist/ionic/{p-8eb8ee76.entry.js → p-ef93ca92.entry.js} +1 -1
  233. package/dist/ionic/p-f09f9642.entry.js +4 -0
  234. package/dist/ionic/p-f1c06f82.entry.js +4 -0
  235. package/dist/ionic/{p-0fa9c382.entry.js → p-fe4aa1db.entry.js} +1 -1
  236. package/dist/types/components/input/input.d.ts +1 -1
  237. package/dist/types/components/router-outlet/router-outlet.d.ts +7 -0
  238. package/dist/types/components/searchbar/searchbar.d.ts +1 -1
  239. package/dist/types/components/select/select.d.ts +1 -0
  240. package/dist/types/components.d.ts +19 -282
  241. package/dist/types/index.d.ts +1 -1
  242. package/dist/types/interface.d.ts +0 -1
  243. package/dist/types/utils/config.d.ts +0 -8
  244. package/dist/types/utils/overlays.d.ts +11 -9
  245. package/hydrate/index.js +202 -795
  246. package/hydrate/index.mjs +202 -795
  247. package/package.json +37 -5
  248. package/components/ion-picker-legacy-column.d.ts +0 -11
  249. package/components/ion-picker-legacy-column.js +0 -4
  250. package/components/ion-picker-legacy.d.ts +0 -11
  251. package/components/ion-picker-legacy.js +0 -4
  252. package/components/p-0NRupjzW.js +0 -4
  253. package/components/p-Bth-EzJ0.js +0 -4
  254. package/components/p-CU5rbWAW.js +0 -4
  255. package/components/p-W9CZ2mWX.js +0 -4
  256. package/components/p-dhLYXa7A.js +0 -4
  257. package/components/p-uVRyUM3z.js +0 -4
  258. package/dist/collection/components/picker-legacy/animations/ios.enter.js +0 -27
  259. package/dist/collection/components/picker-legacy/animations/ios.leave.js +0 -23
  260. package/dist/collection/components/picker-legacy/picker-interface.js +0 -1
  261. package/dist/collection/components/picker-legacy/picker.ios.css +0 -300
  262. package/dist/collection/components/picker-legacy/picker.js +0 -890
  263. package/dist/collection/components/picker-legacy/picker.md.css +0 -287
  264. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -231
  265. package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
  266. package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -222
  267. package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
  268. package/dist/ionic/p-00dbb17e.entry.js +0 -4
  269. package/dist/ionic/p-01f81ea5.entry.js +0 -4
  270. package/dist/ionic/p-0d005398.entry.js +0 -4
  271. package/dist/ionic/p-27d30585.entry.js +0 -4
  272. package/dist/ionic/p-2bb2cb18.entry.js +0 -4
  273. package/dist/ionic/p-2f55dc1a.entry.js +0 -4
  274. package/dist/ionic/p-30bf9737.entry.js +0 -4
  275. package/dist/ionic/p-3a541154.entry.js +0 -4
  276. package/dist/ionic/p-485fda23.entry.js +0 -4
  277. package/dist/ionic/p-4baa5b82.entry.js +0 -4
  278. package/dist/ionic/p-4dc1c33c.entry.js +0 -4
  279. package/dist/ionic/p-5fc7e542.entry.js +0 -4
  280. package/dist/ionic/p-e686695b.entry.js +0 -4
  281. package/dist/ionic/p-ec090e0a.entry.js +0 -4
  282. package/dist/ionic/p-xOfi7-Zn.js +0 -4
  283. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +0 -5
  284. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +0 -5
  285. package/dist/types/components/picker-legacy/picker-interface.d.ts +0 -52
  286. package/dist/types/components/picker-legacy/picker.d.ts +0 -158
  287. package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
  288. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +0 -9
package/hydrate/index.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();
@@ -25777,6 +25812,10 @@ class Modal {
25777
25812
  // Also called in dismiss() — intentional dual cleanup covers both
25778
25813
  // dismiss-then-remove and direct DOM removal without dismiss.
25779
25814
  this.cleanupSafeAreaOverrides();
25815
+ // Clean up aria-hidden if removed without dismiss() being called
25816
+ if (this.presented) {
25817
+ cleanupRootFocusTrapAccessibility();
25818
+ }
25780
25819
  }
25781
25820
  componentWillLoad() {
25782
25821
  var _a;
@@ -25953,7 +25992,7 @@ class Modal {
25953
25992
  this.statusBarStyle = await StatusBar.getStyle();
25954
25993
  setCardStatusBarDark();
25955
25994
  }
25956
- await present(this, 'modalEnter', iosEnterAnimation$3, mdEnterAnimation$2, {
25995
+ await present(this, 'modalEnter', iosEnterAnimation$2, mdEnterAnimation$2, {
25957
25996
  presentingEl: presentingElement,
25958
25997
  currentBreakpoint: this.initialBreakpoint,
25959
25998
  backdropBreakpoint: this.backdropBreakpoint,
@@ -26015,7 +26054,7 @@ class Modal {
26015
26054
  // All of the elements needed for the swipe gesture
26016
26055
  // should be in the DOM and referenced by now, except
26017
26056
  // for the presenting el
26018
- const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$3);
26057
+ const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$2);
26019
26058
  const ani = (this.animation = animationBuilder(el, {
26020
26059
  presentingEl: this.presentingElement,
26021
26060
  expandToScroll: this.expandToScroll,
@@ -26034,7 +26073,7 @@ class Modal {
26034
26073
  if (!wrapperEl || initialBreakpoint === undefined) {
26035
26074
  return;
26036
26075
  }
26037
- const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$3);
26076
+ const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$2);
26038
26077
  const ani = (this.animation = animationBuilder(this.el, {
26039
26078
  presentingEl: this.presentingElement,
26040
26079
  currentBreakpoint: initialBreakpoint,
@@ -26224,7 +26263,7 @@ class Modal {
26224
26263
  window.removeEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
26225
26264
  this.keyboardOpenCallback = undefined;
26226
26265
  }
26227
- const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$3, mdLeaveAnimation$2, {
26266
+ const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$2, mdLeaveAnimation$2, {
26228
26267
  presentingEl: presentingElement,
26229
26268
  currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
26230
26269
  backdropBreakpoint: this.backdropBreakpoint,
@@ -26656,20 +26695,20 @@ class Modal {
26656
26695
  const isCardModal = presentingElement !== undefined && mode === 'ios';
26657
26696
  const isHandleCycle = handleBehavior === 'cycle';
26658
26697
  const isSheetModalWithHandle = isSheetModal && showHandle;
26659
- return (hAsync(Host, Object.assign({ key: 'ab93657f4a5b4c97168d292b398d975e4b5b4af4', "no-router": true,
26698
+ return (hAsync(Host, Object.assign({ key: '1a8350cc8389b167ba9dadd2e629d531af5698cf', "no-router": true,
26660
26699
  // Allow the modal to be navigable when the handle is focusable
26661
26700
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
26662
26701
  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',
26702
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: 'f757adb2407482cf567dbbf689b5d3c44c59d9fb', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '960517dded3129f74f146b652e55d7fd21a163ae', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '590f49003dda88fee559d08dd844a666731f438f',
26664
26703
  /*
26665
26704
  role and aria-modal must be used on the
26666
26705
  same element. They must also be set inside the
26667
26706
  shadow DOM otherwise ion-button will not be highlighted
26668
26707
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
26669
26708
  */
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",
26709
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '6b4e133da9d8bfbaa50158fcd5635e9868941072', class: "modal-handle",
26671
26710
  // 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 }))));
26711
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: 'dbacacb0f285c4a712a65cb1597d3a332056d954', onSlotchange: this.onSlotChange }))));
26673
26712
  }
26674
26713
  get el() { return getElement(this); }
26675
26714
  static get watchers() { return {
@@ -27752,14 +27791,14 @@ class Note {
27752
27791
  }; }
27753
27792
  }
27754
27793
 
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)))}`;
27794
+ const pickerIosCss = () => `:host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:200px;direction:ltr;z-index:0}:host .picker-before,:host .picker-after{position:absolute;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:1;pointer-events:none}:host .picker-before{top:0;height:83px}:host .picker-before{inset-inline-start:0}:host .picker-after{top:116px;height:84px}:host .picker-after{inset-inline-start:0}:host .picker-highlight{border-radius:var(--highlight-border-radius, 8px);left:0;right:0;top:50%;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;position:absolute;width:calc(100% - 16px);height:34px;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:var(--highlight-background);z-index:-1}:host input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}:host ::slotted(ion-picker-column:first-of-type){text-align:start}:host ::slotted(ion-picker-column:last-of-type){text-align:end}:host ::slotted(ion-picker-column:only-child){text-align:center}:host .picker-before{background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), to(rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8)));background:linear-gradient(to bottom, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8) 100%)}:host .picker-after{background:-webkit-gradient(linear, left bottom, left top, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), to(rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8)));background:linear-gradient(to top, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8) 100%)}:host .picker-highlight{background:var(--highlight-background, var(--ion-color-step-150, var(--ion-background-color-step-150, #eeeeef)))}`;
27756
27795
 
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%)}`;
27796
+ const pickerMdCss = () => `:host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:200px;direction:ltr;z-index:0}:host .picker-before,:host .picker-after{position:absolute;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:1;pointer-events:none}:host .picker-before{top:0;height:83px}:host .picker-before{inset-inline-start:0}:host .picker-after{top:116px;height:84px}:host .picker-after{inset-inline-start:0}:host .picker-highlight{border-radius:var(--highlight-border-radius, 8px);left:0;right:0;top:50%;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;position:absolute;width:calc(100% - 16px);height:34px;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:var(--highlight-background);z-index:-1}:host input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}:host ::slotted(ion-picker-column:first-of-type){text-align:start}:host ::slotted(ion-picker-column:last-of-type){text-align:end}:host ::slotted(ion-picker-column:only-child){text-align:center}:host .picker-before{background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), color-stop(90%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0)));background:linear-gradient(to bottom, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0) 90%)}:host .picker-after{background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), color-stop(90%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0)));background:linear-gradient(to top, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 30%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0) 90%)}`;
27758
27797
 
27759
27798
  /**
27760
27799
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
27761
27800
  */
27762
- let Picker$1 = class Picker {
27801
+ class Picker {
27763
27802
  constructor(hostRef) {
27764
27803
  registerInstance(this, hostRef);
27765
27804
  this.ionInputModeChange = createEvent(this, "ionInputModeChange", 7);
@@ -28225,8 +28264,8 @@ let Picker$1 = class Picker {
28225
28264
  }
28226
28265
  get el() { return getElement(this); }
28227
28266
  static get style() { return {
28228
- ios: pickerIosCss$1(),
28229
- md: pickerMdCss$1()
28267
+ ios: pickerIosCss(),
28268
+ md: pickerMdCss()
28230
28269
  }; }
28231
28270
  static get cmpMeta() { return {
28232
28271
  "$flags$": 297,
@@ -28238,322 +28277,7 @@ let Picker$1 = class Picker {
28238
28277
  "$lazyBundleId$": "-",
28239
28278
  "$attrsToReflect$": []
28240
28279
  }; }
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
28280
  }
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
28281
 
28558
28282
  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
28283
 
@@ -29140,371 +28864,6 @@ class PickerColumn {
29140
28864
  }
29141
28865
  const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
29142
28866
 
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
28867
  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
28868
 
29510
28869
  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 +30285,10 @@ class Popover {
30926
30285
  this.headerResizeObserver.disconnect();
30927
30286
  this.headerResizeObserver = undefined;
30928
30287
  }
30288
+ // Clean up aria-hidden if removed without dismiss() being called
30289
+ if (this.presented) {
30290
+ cleanupRootFocusTrapAccessibility();
30291
+ }
30929
30292
  }
30930
30293
  componentWillLoad() {
30931
30294
  var _a, _b;
@@ -31164,9 +30527,9 @@ class Popover {
31164
30527
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
31165
30528
  const desktop = isPlatform('desktop');
31166
30529
  const enableArrow = arrow && !parentPopover;
31167
- return (hAsync(Host, Object.assign({ key: '2edd8333c630efbce59071f8a383e4326e928dbc', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
30530
+ return (hAsync(Host, Object.assign({ key: 'd7f3aa2c2fa93a93585e3eda9e4a6d0daaa541be', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
31168
30531
  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' })))));
30532
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && hAsync("ion-backdrop", { key: 'b87be2ef14219997b9c47dcbaf904eb770d0e057', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: 'e6243572faf1b871ae2b34923410b2a6638469f0', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { key: '3d4938c9d0764a644398e0e7a4361106da1bd926', class: "popover-arrow", part: "arrow" }), hAsync("div", { key: '24ad6d777828aad2881d56595693e6022fc9cb8e', class: "popover-content", part: "content" }, hAsync("slot", { key: '79f83df74a5c5e3dd7650f15c1aa50795b90a345' })))));
31170
30533
  }
31171
30534
  get el() { return getElement(this); }
31172
30535
  static get watchers() { return {
@@ -31277,7 +30640,7 @@ class ProgressBar {
31277
30640
  const mode = getIonMode$1(this);
31278
30641
  // If the progress is displayed as a solid bar.
31279
30642
  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, {
30643
+ return (hAsync(Host, { key: 'd7476268ce53b6a4f425b7bc9f01d6935eb411c3', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
31281
30644
  [mode]: true,
31282
30645
  [`progress-bar-${type}`]: true,
31283
30646
  'progress-paused': paused,
@@ -31462,7 +30825,7 @@ class Radio {
31462
30825
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
31463
30826
  const mode = getIonMode$1(this);
31464
30827
  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, {
30828
+ return (hAsync(Host, { key: 'd9425b252ed38086420d91d5c680421d121c99f4', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
31466
30829
  [mode]: true,
31467
30830
  'in-item': inItem,
31468
30831
  'radio-checked': checked,
@@ -31473,10 +30836,10 @@ class Radio {
31473
30836
  // Focus and active styling should not apply when the radio is in an item
31474
30837
  'ion-activatable': !inItem,
31475
30838
  '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: {
30839
+ }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: 'de391fca2aa0b681af5c1d089121596c46e68271', class: "radio-wrapper" }, hAsync("div", { key: '44e4c71645f86a9e73ad58c0e8b41c0558b920f6', class: {
31477
30840
  'label-text-wrapper': true,
31478
30841
  'label-text-wrapper-hidden': !hasLabel,
31479
- }, part: "label" }, hAsync("slot", { key: '0a4613d29aa783d1882cf889377f7e4fd4fea51d' })), hAsync("div", { key: '191faea79dc4cd8befc4b873f5bd9f5af8ca2acc', class: "native-wrapper" }, this.renderRadioControl()))));
30842
+ }, part: "label" }, hAsync("slot", { key: '589d7c1b45a1918b5811663daa8f30788e7729f8' })), hAsync("div", { key: '0f61a17b195582d6c9a0c597cd40e6629256e479', class: "native-wrapper" }, this.renderRadioControl()))));
31480
30843
  }
31481
30844
  get el() { return getElement(this); }
31482
30845
  static get watchers() { return {
@@ -31495,7 +30858,7 @@ class Radio {
31495
30858
  "color": [513],
31496
30859
  "name": [1],
31497
30860
  "disabled": [4],
31498
- "value": [8],
30861
+ "value": [520],
31499
30862
  "labelPlacement": [1, "label-placement"],
31500
30863
  "justify": [1],
31501
30864
  "alignment": [1],
@@ -31506,7 +30869,7 @@ class Radio {
31506
30869
  },
31507
30870
  "$listeners$": undefined,
31508
30871
  "$lazyBundleId$": "-",
31509
- "$attrsToReflect$": [["color", "color"]]
30872
+ "$attrsToReflect$": [["color", "color"], ["value", "value"]]
31510
30873
  }; }
31511
30874
  }
31512
30875
  let radioButtonIds = 0;
@@ -32571,7 +31934,7 @@ class Range {
32571
31934
  const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
32572
31935
  const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
32573
31936
  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, {
31937
+ return (hAsync(Host, { key: 'cd26f0187c0d37c7eb9df923f75c8a0f57c19ab6', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
32575
31938
  [mode]: true,
32576
31939
  'in-item': inItem,
32577
31940
  'range-disabled': disabled,
@@ -32585,10 +31948,10 @@ class Range {
32585
31948
  'range-item-end-adjustment': needsEndAdjustment,
32586
31949
  'range-value-min': valueAtMin,
32587
31950
  'range-value-max': valueAtMax,
32588
- }) }, hAsync("label", { key: 'beead65ab01e3b18e4be59c0ee8ac6ebf32aad7c', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '03633c689d9d2e4c50a2131bcd560329df49e314', class: {
31951
+ }) }, hAsync("label", { key: '90224fd24b0e625a17e7972feff73a0ac31e093d', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'e07b9fa10983249c425eec26b741f0f628daf2b2', class: {
32589
31952
  'label-text-wrapper': true,
32590
31953
  '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" })))));
31954
+ }, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '9e252f1190838fbae46e724bf665f9b1943600a4', class: "native-wrapper" }, hAsync("slot", { key: '950697dd9636da340de659812daa91fff50e5345', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: 'd3fce46b29db275af71e6149e725967839ec12b0', name: "end" })))));
32592
31955
  }
32593
31956
  get el() { return getElement(this); }
32594
31957
  static get watchers() { return {
@@ -33659,7 +33022,7 @@ class Refresher {
33659
33022
  }
33660
33023
  render() {
33661
33024
  const mode = getIonMode$1(this);
33662
- return (hAsync(Host, { key: '80fa313b0d77161680836bdd6aa334d02c549b41', slot: "fixed", class: {
33025
+ return (hAsync(Host, { key: '1dd475095f76491206644828cf89fc6d2ec276d1', slot: "fixed", class: {
33663
33026
  [mode]: true,
33664
33027
  // Used internally for styling
33665
33028
  [`refresher-${mode}`]: true,
@@ -33885,7 +33248,7 @@ class RefresherContent {
33885
33248
  const pullingIcon = this.pullingIcon;
33886
33249
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
33887
33250
  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())));
33251
+ return (hAsync(Host, { key: 'ec378d6a302be697c12c4f973a57c6ad2ada070f', class: mode }, hAsync("div", { key: '0055f98f8c5a1ed7979dc8146ec1f82a575860c7', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (hAsync("div", { key: '4f88468e26370df6889e72aa54ebb395ebf3757d', class: "refresher-pulling-icon" }, hAsync("div", { key: '05b3f8679576aaa6c2d84d60df6629a392df29e2', class: "spinner-arrow-container" }, hAsync("ion-spinner", { key: '0bf6ceea416ce1140c0f10a5bede063cae7054f4', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (hAsync("div", { key: 'b71ede8455837968218edae28504e5e14bbc1f5c', class: "arrow-container" }, hAsync("ion-icon", { key: '30b808288d23d3eac681b1225cd8392fdacfefe1', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (hAsync("div", { key: 'fee1ae7e57ef8a02f5654808dff9dca3002b6702', class: "refresher-pulling-icon" }, hAsync("ion-icon", { key: '55b34a98028adb497fbc2ac66bdb3d5ae5b1705b', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), hAsync("div", { key: 'ef8f987daa8060cb6f8fd83c0864095042b9eecf', class: "refresher-refreshing" }, this.refreshingSpinner && (hAsync("div", { key: 'cd6fe0e81b34eeae11478fcc8a42044bff6f7a52', class: "refresher-refreshing-icon" }, hAsync("ion-spinner", { key: '9cd778229582b538d54589c4d8e4d470efb64aad', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
33889
33252
  }
33890
33253
  get el() { return getElement(this); }
33891
33254
  static get cmpMeta() { return {
@@ -33926,7 +33289,7 @@ class Reorder {
33926
33289
  render() {
33927
33290
  const mode = getIonMode$1(this);
33928
33291
  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" }))));
33292
+ return (hAsync(Host, { key: '4d35db30b5b3df2020d2212abb3cfac94f9bc2b8', class: mode }, hAsync("slot", { key: '68a565ae4a47f6a9f5d6ba845b596fdfa629ece8' }, hAsync("ion-icon", { key: '168fb0f8eb9c02329274488900fcdb05d44cb895', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
33930
33293
  }
33931
33294
  get el() { return getElement(this); }
33932
33295
  static get style() { return {
@@ -34197,7 +33560,7 @@ class ReorderGroup {
34197
33560
  }
34198
33561
  render() {
34199
33562
  const mode = getIonMode$1(this);
34200
- return (hAsync(Host, { key: '9527bbdedaab63d31f562c874a7332ea60c4b47b', class: {
33563
+ return (hAsync(Host, { key: '3afdc6a6c81bba2f88ea523d4b73c6fccff1b9ec', class: {
34201
33564
  [mode]: true,
34202
33565
  'reorder-enabled': !this.disabled,
34203
33566
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -34315,7 +33678,7 @@ class RippleEffect {
34315
33678
  }
34316
33679
  render() {
34317
33680
  const mode = getIonMode$1(this);
34318
- return (hAsync(Host, { key: '3b59cbb44741569a7350f9638b4392add673b6f1', role: "presentation", class: {
33681
+ return (hAsync(Host, { key: '5e88b5225414e29883256c86f111ded5bdf2ef91', role: "presentation", class: {
34319
33682
  [mode]: true,
34320
33683
  unbounded: this.unbounded,
34321
33684
  } }));
@@ -35449,10 +34812,10 @@ class RouterLink {
35449
34812
  rel: this.rel,
35450
34813
  target: this.target,
35451
34814
  };
35452
- return (hAsync(Host, { key: '8372835161d507c7b821b7536c55f912eb6ce704', onClick: this.onClick, class: createColorClasses$1(this.color, {
34815
+ return (hAsync(Host, { key: '6d5fdfa0dcf1eb216173bcc53f1f4d625f3ec551', onClick: this.onClick, class: createColorClasses$1(this.color, {
35453
34816
  [mode]: true,
35454
34817
  'ion-activatable': true,
35455
- }) }, hAsync("a", Object.assign({ key: '315966e14a17760f3f64197e8315200039787897' }, attrs), hAsync("slot", { key: '95fc1697b884225e85e647dddcaa8f4af8b9a979' }))));
34818
+ }) }, hAsync("a", Object.assign({ key: '85796b7b48581fe9830ba1102dad7d1069de4e17' }, attrs), hAsync("slot", { key: '0f93b0da3ec4ae8f50f624f9e7bed87d13d712d0' }))));
35456
34819
  }
35457
34820
  static get style() { return routerLinkCss(); }
35458
34821
  static get cmpMeta() { return {
@@ -35491,10 +34854,11 @@ class RouterOutlet {
35491
34854
  */
35492
34855
  this.animated = true;
35493
34856
  }
34857
+ swipeGestureChanged() {
34858
+ this.updateGestureEnabled();
34859
+ }
35494
34860
  swipeHandlerChanged() {
35495
- if (this.gesture) {
35496
- this.gesture.enable(this.swipeHandler !== undefined);
35497
- }
34861
+ this.updateGestureEnabled();
35498
34862
  }
35499
34863
  async connectedCallback() {
35500
34864
  const onStart = () => {
@@ -35534,11 +34898,21 @@ class RouterOutlet {
35534
34898
  this.gestureOrAnimationInProgress = false;
35535
34899
  }
35536
34900
  });
35537
- this.swipeHandlerChanged();
34901
+ if (this.swipeGesture === undefined) {
34902
+ this.swipeGesture = config.getBoolean('swipeBackEnabled', this.mode === 'ios');
34903
+ }
34904
+ else {
34905
+ this.updateGestureEnabled();
34906
+ }
35538
34907
  }
35539
34908
  componentWillLoad() {
35540
34909
  this.ionNavWillLoad.emit();
35541
34910
  }
34911
+ updateGestureEnabled() {
34912
+ if (this.gesture) {
34913
+ this.gesture.enable(this.swipeHandler !== undefined && this.swipeGesture === true);
34914
+ }
34915
+ }
35542
34916
  disconnectedCallback() {
35543
34917
  if (this.gesture) {
35544
34918
  this.gesture.destroy();
@@ -35649,10 +35023,13 @@ class RouterOutlet {
35649
35023
  return true;
35650
35024
  }
35651
35025
  render() {
35652
- return hAsync("slot", { key: '386c41745b61daba161cf75063da97fe29ba36cb' });
35026
+ return hAsync("slot", { key: 'ce09e6fbba7b0a2276cdde5245bb37c9a162c1c7' });
35653
35027
  }
35654
35028
  get el() { return getElement(this); }
35655
35029
  static get watchers() { return {
35030
+ "swipeGesture": [{
35031
+ "swipeGestureChanged": 0
35032
+ }],
35656
35033
  "swipeHandler": [{
35657
35034
  "swipeHandlerChanged": 0
35658
35035
  }]
@@ -35666,6 +35043,7 @@ class RouterOutlet {
35666
35043
  "delegate": [16],
35667
35044
  "animated": [4],
35668
35045
  "animation": [16],
35046
+ "swipeGesture": [1028, "swipe-gesture"],
35669
35047
  "swipeHandler": [16],
35670
35048
  "commit": [64],
35671
35049
  "setRouteId": [64],
@@ -35684,7 +35062,7 @@ class Row {
35684
35062
  registerInstance(this, hostRef);
35685
35063
  }
35686
35064
  render() {
35687
- return (hAsync(Host, { key: '8ba906a8cbea060a79ed658c9bf34906f0c11d38', class: getIonMode$1(this) }, hAsync("slot", { key: 'd1009176f45b588fa52c7d9eb336f3c6d3214bb8' })));
35065
+ return (hAsync(Host, { key: 'a9066661fff12baaf3e80b2e8c08591af72fe5b8', class: getIonMode$1(this) }, hAsync("slot", { key: '62b103af46d3a5ec9c146019ae300b68a4ae867a' })));
35688
35066
  }
35689
35067
  static get style() { return rowCss(); }
35690
35068
  static get cmpMeta() { return {
@@ -35736,7 +35114,7 @@ class Searchbar {
35736
35114
  /**
35737
35115
  * Set the input's autocorrect property.
35738
35116
  */
35739
- this.autocorrect = 'off';
35117
+ this.autocorrect = false;
35740
35118
  /**
35741
35119
  * Set the cancel button icon. Only applies to `md` mode.
35742
35120
  * Defaults to `arrow-back-sharp`.
@@ -36136,8 +35514,8 @@ class Searchbar {
36136
35514
  const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
36137
35515
  const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
36138
35516
  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, {
35517
+ const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '870c9284441fdf431056ac944ac93afa7cb1ee96', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, hAsync("div", { key: '730e33f44c5ec6eee898ea6612fdba337de354e3', "aria-hidden": "true" }, mode === 'md' ? (hAsync("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
35518
+ return (hAsync(Host, { key: 'd898b9f9768ec7119a3ad4be8350d8a3cfb32ba6', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
36141
35519
  [mode]: true,
36142
35520
  'searchbar-animated': animated,
36143
35521
  'searchbar-disabled': this.disabled,
@@ -36147,14 +35525,14 @@ class Searchbar {
36147
35525
  'searchbar-has-focus': this.focused,
36148
35526
  'searchbar-should-show-clear': this.shouldShowClearButton(),
36149
35527
  '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) => {
35528
+ }) }, hAsync("div", { key: 'a0b49cce6241b7e79834de7cbb1d1076f9d42a21', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: '8ad5e659f8ed675fa5559f9e5dfcdf99cfcb8bcf', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect ? 'on' : 'off', spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, hAsync("ion-icon", { key: '09f26831a519bb6639115f827b2b8985ae51e4b9', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: 'd70ccda51cb79e51577648fcca3b274c6fa20a4f', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
36151
35529
  /**
36152
35530
  * This prevents mobile browsers from
36153
35531
  * blurring the input when the clear
36154
35532
  * button is activated.
36155
35533
  */
36156
35534
  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));
35535
+ }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '428dcb1c0ffef947e24771b060288da47e67b6bd', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
36158
35536
  }
36159
35537
  get el() { return getElement(this); }
36160
35538
  static get watchers() { return {
@@ -36186,7 +35564,7 @@ class Searchbar {
36186
35564
  "animated": [4],
36187
35565
  "autocapitalize": [1],
36188
35566
  "autocomplete": [1],
36189
- "autocorrect": [1],
35567
+ "autocorrect": [4],
36190
35568
  "cancelButtonIcon": [1, "cancel-button-icon"],
36191
35569
  "cancelButtonText": [1, "cancel-button-text"],
36192
35570
  "clearIcon": [1, "clear-icon"],
@@ -36763,14 +36141,14 @@ class Segment {
36763
36141
  }
36764
36142
  render() {
36765
36143
  const mode = getIonMode$1(this);
36766
- return (hAsync(Host, { key: 'eda6b7b88b7967b55cf9098c59b655b348a42224', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
36144
+ return (hAsync(Host, { key: 'bb626072e73f09c3433e1a769e09789a00822d8f', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
36767
36145
  [mode]: true,
36768
36146
  'in-toolbar': hostContext('ion-toolbar', this.el),
36769
36147
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
36770
36148
  'segment-activated': this.activated,
36771
36149
  'segment-disabled': this.disabled,
36772
36150
  'segment-scrollable': this.scrollable,
36773
- }) }, hAsync("slot", { key: 'fdb451f235ce59c5bb50c61a13c69160ece2d5df', onSlotchange: this.onSlottedItemsChange })));
36151
+ }) }, hAsync("slot", { key: '652d5037c2c2dee4d47a5710b1d150e691202d25', onSlotchange: this.onSlottedItemsChange })));
36774
36152
  }
36775
36153
  get el() { return getElement(this); }
36776
36154
  static get watchers() { return {
@@ -36918,7 +36296,7 @@ class SegmentButton {
36918
36296
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
36919
36297
  const mode = getIonMode$1(this);
36920
36298
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
36921
- return (hAsync(Host, { key: 'f69e2a24198a7c57543dbe66902da039a6569c64', class: {
36299
+ return (hAsync(Host, { key: '792f621c36260b1fceff2b4ec4fa95d98d51d46b', class: {
36922
36300
  [mode]: true,
36923
36301
  'in-toolbar': hostContext('ion-toolbar', this.el),
36924
36302
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -36934,7 +36312,7 @@ class SegmentButton {
36934
36312
  'ion-activatable': true,
36935
36313
  'ion-activatable-instant': true,
36936
36314
  '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" }))));
36315
+ } }, hAsync("button", Object.assign({ key: '860698be6ceb8f08c0ce3d16ba82d4bb56adf030', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), hAsync("span", { key: 'e903a2642ff46797878a941887b5c596d52fd3a3', class: "button-inner" }, hAsync("slot", { key: '5fc6b842ecb7f0ab8df23b344bf6714f38dda89a' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '710aaf6e4fa2b6cb15897a883e88dec17ef3829f' })), hAsync("div", { key: 'a7b036cba32420e9eb3f2d16487df0519ecc5289', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, hAsync("div", { key: 'a0a5f49ea7f2ecab8014f4f9ca473a27db8348b6', part: "indicator-background", class: "segment-button-indicator-background" }))));
36938
36316
  }
36939
36317
  get el() { return getElement(this); }
36940
36318
  static get watchers() { return {
@@ -36971,7 +36349,7 @@ class SegmentContent {
36971
36349
  registerInstance(this, hostRef);
36972
36350
  }
36973
36351
  render() {
36974
- return (hAsync(Host, { key: '665f41a854621f898eaf7ba9a49e77cc9326501e' }, hAsync("slot", { key: '635aa57fbf6167dcd36fe8dc5dfc1c313637ac04' })));
36352
+ return (hAsync(Host, { key: 'ef39f29c444177c3b083cd35680ba891e4bb6a2a' }, hAsync("slot", { key: '51f9dd9ca084ddd928b376aa9d716509669c32b2' })));
36975
36353
  }
36976
36354
  static get style() { return segmentContentCss(); }
36977
36355
  static get cmpMeta() { return {
@@ -37090,11 +36468,11 @@ class SegmentView {
37090
36468
  }
37091
36469
  render() {
37092
36470
  const { disabled, isManualScroll, swipeGesture } = this;
37093
- return (hAsync(Host, { key: '2a6e0a1046af75b1fa0eed20a5fbbb4634480297', class: {
36471
+ return (hAsync(Host, { key: 'a6c6ac0232c4bb6f2a954b3de7993019d71f423a', class: {
37094
36472
  'segment-view-disabled': disabled,
37095
36473
  'segment-view-scroll-disabled': isManualScroll === false,
37096
36474
  'segment-view-swipe-disabled': swipeGesture === false,
37097
- } }, hAsync("slot", { key: '644b60d179d0de3fa204e3bef26a3503ceeaf1d6' })));
36475
+ } }, hAsync("slot", { key: '386305be2a75069c79def12005d9f6b49276763f' })));
37098
36476
  }
37099
36477
  get el() { return getElement(this); }
37100
36478
  static get style() { return {
@@ -37278,9 +36656,40 @@ class Select {
37278
36656
  this.emitStyle();
37279
36657
  }
37280
36658
  setValue(value) {
36659
+ if (this.isValueEqual(this.value, value)) {
36660
+ return;
36661
+ }
37281
36662
  this.value = value;
37282
36663
  this.ionChange.emit({ value });
37283
36664
  }
36665
+ isValueEqual(currentValue, newValue) {
36666
+ if (this.multiple) {
36667
+ const currentArr = Array.isArray(currentValue) ? currentValue : [];
36668
+ const newArr = Array.isArray(newValue) ? newValue : [];
36669
+ if (currentArr.length !== newArr.length) {
36670
+ return false;
36671
+ }
36672
+ // Multiset compare: each new value must match a distinct current value.
36673
+ // A plain `every(isOptionSelected)` would accept ['a','a'] as equal to
36674
+ // ['a','b'] when both 'a' and 'b' map to options whose values overlap.
36675
+ const remaining = currentArr.slice();
36676
+ return newArr.every((val) => {
36677
+ const idx = remaining.findIndex((c) => compareOptions(c, val, this.compareWith));
36678
+ if (idx === -1) {
36679
+ return false;
36680
+ }
36681
+ remaining.splice(idx, 1);
36682
+ return true;
36683
+ });
36684
+ }
36685
+ if (currentValue == null && newValue == null) {
36686
+ return true;
36687
+ }
36688
+ if (currentValue == null || newValue == null) {
36689
+ return false;
36690
+ }
36691
+ return compareOptions(currentValue, newValue, this.compareWith);
36692
+ }
37284
36693
  async connectedCallback() {
37285
36694
  const { el } = this;
37286
36695
  this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
@@ -37866,7 +37275,7 @@ class Select {
37866
37275
  * TODO(FW-5592): Remove hasStartEndSlots condition
37867
37276
  */
37868
37277
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
37869
- return (hAsync(Host, { key: '5f4ee901b65554eacc9fa52230d06b1a5ff1247c', onClick: this.onClick, class: createColorClasses$1(this.color, {
37278
+ return (hAsync(Host, { key: '2c141ef1b6983b464118e8ed192739dfca9d095a', onClick: this.onClick, class: createColorClasses$1(this.color, {
37870
37279
  [mode]: true,
37871
37280
  'in-item': inItem,
37872
37281
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -37884,7 +37293,7 @@ class Select {
37884
37293
  [`select-justify-${justify}`]: justifyEnabled,
37885
37294
  [`select-shape-${shape}`]: shape !== undefined,
37886
37295
  [`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()));
37296
+ }) }, hAsync("label", { key: 'fa1889b325387da10d1e5fa865aef128bc31aee6', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: 'e31f4ae38af01dbe3a7551e9e5dca2650ae42ef5', class: "select-wrapper-inner", part: "inner" }, hAsync("slot", { key: '623916631f44446fcf2c1df64788ce530964afea', name: "start" }), hAsync("div", { key: 'cbd2298a7c6666ce6b4443b3967195f96558861c', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: 'ee8c2a236c7f120988f5bab17397204f1b374b57', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: '951566d0da3aea0be4921b2951207765b089a7f3', class: "select-highlight" })), this.renderBottomContent()));
37888
37297
  }
37889
37298
  get el() { return getElement(this); }
37890
37299
  static get watchers() { return {
@@ -38068,7 +37477,7 @@ class SelectModal {
38068
37477
  } }, option.text))));
38069
37478
  }
38070
37479
  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()))));
37480
+ return (hAsync(Host, { key: '36fe925fe98356858630325abc9ab71ef25dfb46', class: getIonMode$1(this) }, hAsync("ion-header", { key: '16d89db1284d7080b4ead5f4a4a0bac57f264f62' }, hAsync("ion-toolbar", { key: 'e16c889d9c7b5edf3b26a7cca1443ec5520e69e0' }, this.header !== undefined && hAsync("ion-title", { key: '269df2e45a3abf3fe7518e8a34b0bab749bdea14' }, this.header), hAsync("ion-buttons", { key: 'd8e218821e085424e52f86ef6ede2c5fb568dc82', slot: "end" }, hAsync("ion-button", { key: '26c99660d4f5ec6334da56ad5712bfc79f80d0e2', onClick: () => this.closeModal() }, this.cancelText)))), hAsync("ion-content", { key: '455fb684edae7d6754ef4882c1221956f7b4d29b' }, hAsync("ion-list", { key: '3817a9deb1881a8c0d165b21940890bd628b3614' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
38072
37481
  }
38073
37482
  get el() { return getElement(this); }
38074
37483
  static get style() { return {
@@ -38103,7 +37512,7 @@ class SelectOption {
38103
37512
  this.disabled = false;
38104
37513
  }
38105
37514
  render() {
38106
- return hAsync(Host, { key: '824730b6c1e4f15b716e91b05840e890af5f1577', role: "option", id: this.inputId, class: getIonMode$1(this) });
37515
+ return hAsync(Host, { key: '1fc1737fbb29dcb62638149b21620cbdf2f00dbc', role: "option", id: this.inputId, class: getIonMode$1(this) });
38107
37516
  }
38108
37517
  get el() { return getElement(this); }
38109
37518
  static get style() { return selectOptionCss(); }
@@ -38231,7 +37640,7 @@ class SelectPopover {
38231
37640
  render() {
38232
37641
  const { header, message, options, subHeader } = this;
38233
37642
  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))));
37643
+ return (hAsync(Host, { key: '81783ad099ad52b3e035efa18e5a23be766faf7b', class: getIonMode$1(this) }, hAsync("ion-list", { key: '319171787e9c2228d1d5a0133b2f5e0998644516' }, header !== undefined && hAsync("ion-list-header", { key: '09a0fdbe2807c270b9abdb908965f72c4838030c' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: 'ede19cb8e121fd14a2335fcb81cc59b9a102eac5' }, hAsync("ion-label", { key: '6b98c0f132bc6161299b22c0e56092f85b7b0095', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: '8053e175eb36d7b8f52df1f93cee48ee0794857e' }, subHeader), message !== undefined && hAsync("p", { key: '508673abcda7444ed8f8c828b5418dd48ef86b8e' }, message)))), this.renderOptions(options))));
38235
37644
  }
38236
37645
  get el() { return getElement(this); }
38237
37646
  static get style() { return {
@@ -38281,11 +37690,11 @@ class SkeletonText {
38281
37690
  const animated = this.animated && config.getBoolean('animated', true);
38282
37691
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
38283
37692
  const mode = getIonMode$1(this);
38284
- return (hAsync(Host, { key: 'cb8da9aba121811b9a4ffdae60ed88105897cb3c', class: {
37693
+ return (hAsync(Host, { key: '887d958d982345ce610730ab5c9ae35010430f75', class: {
38285
37694
  [mode]: true,
38286
37695
  'skeleton-text-animated': animated,
38287
37696
  'in-media': inMedia,
38288
- } }, hAsync("span", { key: '5379deee3c76d46d615be0cba14b4f60129ffa25' }, "\u00A0")));
37697
+ } }, hAsync("span", { key: 'a184f4b9780a2aada0a16729109ac81436e9c9e1' }, "\u00A0")));
38289
37698
  }
38290
37699
  get el() { return getElement(this); }
38291
37700
  static get style() { return skeletonTextCss(); }
@@ -38337,7 +37746,7 @@ class Spinner {
38337
37746
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
38338
37747
  }
38339
37748
  }
38340
- return (hAsync(Host, { key: 'dd1954e557fa14b943e761474e29e4316ba53938', class: createColorClasses$1(self.color, {
37749
+ return (hAsync(Host, { key: 'c35ebd01186e860acb9cac260193f0836424fdf4', class: createColorClasses$1(self.color, {
38341
37750
  [mode]: true,
38342
37751
  [`spinner-${spinnerName}`]: true,
38343
37752
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -38436,12 +37845,12 @@ class SplitPane {
38436
37845
  }
38437
37846
  render() {
38438
37847
  const mode = getIonMode$1(this);
38439
- return (hAsync(Host, { key: '05c88c009fbe2e223fd261760a2b49da1653ff62', class: {
37848
+ return (hAsync(Host, { key: '694e989fafcfe2453e0a83b3cb736efaa1eb4fec', class: {
38440
37849
  [mode]: true,
38441
37850
  // Used internally for styling
38442
37851
  [`split-pane-${mode}`]: true,
38443
37852
  'split-pane-visible': this.visible,
38444
- } }, hAsync("slot", { key: 'b35865082661253c4468520d79234fa5dab5bd35' })));
37853
+ } }, hAsync("slot", { key: 'dde7e9382b62cc11971aa233cf98c2314ae4f720' })));
38445
37854
  }
38446
37855
  get el() { return getElement(this); }
38447
37856
  static get watchers() { return {
@@ -38513,10 +37922,10 @@ class Tab {
38513
37922
  }
38514
37923
  render() {
38515
37924
  const { tab, active, component } = this;
38516
- return (hAsync(Host, { key: 'fbd837bad7a0632336d46a597ace23673b153e48', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
37925
+ return (hAsync(Host, { key: '745262368a7f45244da459f4fa1730a46dd3e257', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
38517
37926
  'ion-page': component === undefined,
38518
37927
  'tab-hidden': !active,
38519
- } }, hAsync("slot", { key: '35c218169fda826c9c1337558e0278d0c7f5f26a' })));
37928
+ } }, hAsync("slot", { key: '823d09a6f93bf7c0dc74f2b8717d1d3a62df1ad8' })));
38520
37929
  }
38521
37930
  get el() { return getElement(this); }
38522
37931
  static get watchers() { return {
@@ -38630,11 +38039,11 @@ class TabBar {
38630
38039
  const { color, translucent, keyboardVisible } = this;
38631
38040
  const mode = getIonMode$1(this);
38632
38041
  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, {
38042
+ return (hAsync(Host, { key: '148f65df0818e9d220a9b46db74cb89ab94e62d2', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
38634
38043
  [mode]: true,
38635
38044
  'tab-bar-translucent': translucent,
38636
38045
  'tab-bar-hidden': shouldHide,
38637
- }) }, hAsync("slot", { key: '0ca29a2d97a7c38bbf43f8d79e271b874b4d9be8' })));
38046
+ }) }, hAsync("slot", { key: 'a64e235f3703662e2dd7a834f752cc5b1490adbc' })));
38638
38047
  }
38639
38048
  get el() { return getElement(this); }
38640
38049
  static get watchers() { return {
@@ -38732,7 +38141,7 @@ class TabButton {
38732
38141
  rel,
38733
38142
  target,
38734
38143
  };
38735
- return (hAsync(Host, { key: '638b93ef40701ec3aefb89b1579eb91aaf6d4f8a', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
38144
+ return (hAsync(Host, { key: '1034b5a928ecec49bd8efec3730ea1b11a579cf3', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
38736
38145
  [mode]: true,
38737
38146
  'tab-selected': selected,
38738
38147
  'tab-disabled': disabled,
@@ -38744,7 +38153,7 @@ class TabButton {
38744
38153
  'ion-activatable': true,
38745
38154
  'ion-selectable': true,
38746
38155
  '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" }))));
38156
+ } }, hAsync("a", Object.assign({ key: '4cc8e695425956ffc7622af27c1b88a45f8a0c68' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), hAsync("span", { key: 'c529c166f557e1a5c744873c075b564c49786a2c', class: "button-inner" }, hAsync("slot", { key: 'f832355934d80267cd6e81e58b9c5afce0b42907' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '90e79bdf38ba1cd89fca9ce63465e26a29b49316', type: "unbounded" }))));
38748
38157
  }
38749
38158
  get el() { return getElement(this); }
38750
38159
  static get style() { return {
@@ -38935,7 +38344,7 @@ class Tabs {
38935
38344
  return Array.from(this.el.querySelectorAll('ion-tab'));
38936
38345
  }
38937
38346
  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" })));
38347
+ return (hAsync(Host, { key: 'ba04a29fdd02d7c758cbaa98cfc589949872d832', onIonTabButtonClick: this.onTabClicked }, hAsync("slot", { key: 'd5794140152e2c251e567eeb06afc392af74749d', name: "top" }), hAsync("div", { key: '26fb83786637fe7288901fbbdb3694b8bc94329f', class: "tabs-inner" }, hAsync("slot", { key: '60c663a8647e684455b533eaf5fa3908f9333ae9' })), hAsync("slot", { key: '2d9f7d07c8cdc72f5df200fa71fa56a9dd822c4c', name: "bottom" })));
38939
38348
  }
38940
38349
  get el() { return getElement(this); }
38941
38350
  static get style() { return tabsCss(); }
@@ -38975,9 +38384,9 @@ class Text {
38975
38384
  }
38976
38385
  render() {
38977
38386
  const mode = getIonMode$1(this);
38978
- return (hAsync(Host, { key: 'bfaa49d35f43b8036725ae8a322c716fc6e43bdf', class: createColorClasses$1(this.color, {
38387
+ return (hAsync(Host, { key: '41ed8da617ed0e07bbfe96e32a000e1c6503e24e', class: createColorClasses$1(this.color, {
38979
38388
  [mode]: true,
38980
- }) }, hAsync("slot", { key: 'c04880cd1935b42cbe60f58fd523b4d8a96072dc' })));
38389
+ }) }, hAsync("slot", { key: 'db8de04a2493537b3037f276b03abd92dfa56847' })));
38981
38390
  }
38982
38391
  static get style() { return textCss(); }
38983
38392
  static get cmpMeta() { return {
@@ -39438,7 +38847,7 @@ class Textarea {
39438
38847
  * TODO(FW-5592): Remove hasStartEndSlots condition
39439
38848
  */
39440
38849
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
39441
- return (hAsync(Host, { key: '4257e84acd46f43390fa2413d0b8f40e16a37499', class: createColorClasses$1(this.color, {
38850
+ return (hAsync(Host, { key: 'eca1dfed53189408f614661ef3902cdb73d5f5de', class: createColorClasses$1(this.color, {
39442
38851
  [mode]: true,
39443
38852
  'has-value': hasValue,
39444
38853
  'has-focus': hasFocus,
@@ -39447,7 +38856,7 @@ class Textarea {
39447
38856
  [`textarea-shape-${shape}`]: shape !== undefined,
39448
38857
  [`textarea-label-placement-${labelPlacement}`]: true,
39449
38858
  '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()));
38859
+ }) }, hAsync("label", { key: 'd4d835ffedbf8b6de192096e21167ec4f7e01d30', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '39b03e26c23473de31a0237543eaf1e0875e6ed9', class: "textarea-wrapper-inner" }, hAsync("div", { key: 'e9e0997e7dc6d25f09e8439d81e138590c33a151', class: "start-slot-wrapper" }, hAsync("slot", { key: '2d88aace11d74196758e40af27a777eebb270019', name: "start" })), hAsync("div", { key: '8434424404f9fe707f9209ac6495a33bae060538', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, hAsync("textarea", Object.assign({ key: '5bb8eaeba76c39bccadb7c041a10fb077c422dcc', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined }, this.inheritedAttributes), value)), hAsync("div", { key: '107707676552f8faca3e708285cc3266061a0394', class: "end-slot-wrapper" }, hAsync("slot", { key: 'dc890ffdce898f3d39a315e7bc432840559be466', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: '4554ad09ac0908cea2e90bfa2301b4cd80ac7242', class: "textarea-highlight" })), this.renderBottomContent()));
39451
38860
  }
39452
38861
  get el() { return getElement(this); }
39453
38862
  static get watchers() { return {
@@ -39516,7 +38925,7 @@ class Thumbnail {
39516
38925
  registerInstance(this, hostRef);
39517
38926
  }
39518
38927
  render() {
39519
- return (hAsync(Host, { key: 'b250e01664238f1dca8f9757b15bc3d5d9387ffa', class: getIonMode$1(this) }, hAsync("slot", { key: '72cb568bccabc983c5186a7596ef6c6d4ebf5ad9' })));
38928
+ return (hAsync(Host, { key: '833e947c683b482a78f8f0df8c9a68e99478bbaa', class: getIonMode$1(this) }, hAsync("slot", { key: '6d1e9e686db88d91379f14121058dbf035d8ded2' })));
39520
38929
  }
39521
38930
  static get style() { return thumbnailCss(); }
39522
38931
  static get cmpMeta() { return {
@@ -40376,9 +39785,9 @@ class Toast {
40376
39785
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
40377
39786
  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
39787
  }
40379
- return (hAsync(Host, Object.assign({ key: 'b5256edcf33d0ef51e6c5080c84e1ca58abe2ae0', tabindex: "-1" }, this.htmlAttributes, { style: {
39788
+ return (hAsync(Host, Object.assign({ key: '2acb2cd2e12ea0082986495929e4a596d4da2f38', tabindex: "-1" }, this.htmlAttributes, { style: {
40380
39789
  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')))));
39790
+ }, class: createColorClasses$1(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), hAsync("div", { key: '8b24ba5d3d51d1ab94b9bf6bb5d6e4b8bb3248a7', class: wrapperClass, part: "wrapper" }, hAsync("div", { key: 'e1ebdf4f0425cc7b1e2688667ee9a2b3c545804a', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (hAsync("ion-icon", { key: '552b1ab8f4e72882cc8e878579c7a594119677e1', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), hAsync("div", { key: '8ac8d64f632fbedadb180132c83043474466bee0', class: "toast-content", part: "content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
40382
39791
  }
40383
39792
  get el() { return getElement(this); }
40384
39793
  static get watchers() { return {
@@ -40696,7 +40105,7 @@ class Toggle {
40696
40105
  const value = this.getValue();
40697
40106
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
40698
40107
  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, {
40108
+ return (hAsync(Host, { key: 'ab093ddb505af61685cbb8571af1e765fc0292f8', role: "switch", "aria-checked": `${checked}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, "aria-labelledby": hasLabel ? inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, "aria-required": required ? 'true' : undefined, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, class: createColorClasses$1(color, {
40700
40109
  [mode]: true,
40701
40110
  'in-item': hostContext('ion-item', el),
40702
40111
  'toggle-activated': activated,
@@ -40706,10 +40115,10 @@ class Toggle {
40706
40115
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
40707
40116
  [`toggle-label-placement-${labelPlacement}`]: true,
40708
40117
  [`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: {
40118
+ }) }, hAsync("label", { key: 'b4b05e458fcbc767e4392ae43e647b075780cad0', class: "toggle-wrapper", htmlFor: inputId }, hAsync("input", Object.assign({ key: 'c09100447011c51d5b49b4400ec7d72012e3bc6f', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, required: required }, inheritedAttributes)), hAsync("div", { key: '71cf059a999ae572a20127b76907e010ace486ad', class: {
40710
40119
  'label-text-wrapper': true,
40711
40120
  '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()))));
40121
+ }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: 'c480b96a0ddd926568f73291d71253d6f74438c7' }), this.renderHintText()), hAsync("div", { key: '96a2cbd1673e051a78f8b2b16535ecd3f0ed4339', class: "native-wrapper" }, this.renderToggleControl()))));
40713
40122
  }
40714
40123
  get el() { return getElement(this); }
40715
40124
  static get watchers() { return {
@@ -40821,10 +40230,10 @@ class Toolbar {
40821
40230
  this.childrenStyles.forEach((value) => {
40822
40231
  Object.assign(childStyles, value);
40823
40232
  });
40824
- return (hAsync(Host, { key: 'b849db2863778dee6c5a251bffa1b3a657aeb036', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
40233
+ return (hAsync(Host, { key: '40bad6fa7e94262438da4bbe037dcf8a5fa2df22', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
40825
40234
  [mode]: true,
40826
40235
  '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" }))));
40236
+ })) }, hAsync("div", { key: 'df44c9f0fe3958116ab860b0dad79c53b89f6c59', class: "toolbar-background", part: "background" }), hAsync("div", { key: '2169ffa576875b8d5624211cc0b4bf86191562bc', class: "toolbar-container", part: "container" }, hAsync("slot", { key: 'c8910dcf1ce98ab427fd89c3396a67c2a75bdd07', name: "start" }), hAsync("slot", { key: '05da24d5ef96b9eebd83b534ce02c1f7bcd06680', name: "secondary" }), hAsync("div", { key: '090fea1541e7e2b6ad74a6ded4eadffdb471ccce', class: "toolbar-content", part: "content" }, hAsync("slot", { key: '507e143f92f6fa59ff23d94026411fa2c74f2f8e' })), hAsync("slot", { key: 'f79fdee472e657e26a910cb89d7551943e40e440', name: "primary" }), hAsync("slot", { key: 'dd40fe9ed490cf4346c642e195fdb524dc6cc4f5', name: "end" }))));
40828
40237
  }
40829
40238
  get el() { return getElement(this); }
40830
40239
  static get style() { return {
@@ -40870,11 +40279,11 @@ class ToolbarTitle {
40870
40279
  render() {
40871
40280
  const mode = getIonMode$1(this);
40872
40281
  const size = this.getSize();
40873
- return (hAsync(Host, { key: '44e63f8439df64c470692904427b417e19406476', class: createColorClasses$1(this.color, {
40282
+ return (hAsync(Host, { key: 'd9317e8e66cb6112717f5a9c252658777efbd873', class: createColorClasses$1(this.color, {
40874
40283
  [mode]: true,
40875
40284
  [`title-${size}`]: true,
40876
40285
  'title-rtl': document.dir === 'rtl',
40877
- }) }, hAsync("div", { key: '784cf60a0db16045391891cc8fad0c7dbeba4039', class: "toolbar-title" }, hAsync("slot", { key: '0c720a50479ba257e8756337aeb9b0ab7516a227' }))));
40286
+ }) }, hAsync("div", { key: 'a4d011d6d409bf006d8efe33667002edb109820a', class: "toolbar-title" }, hAsync("slot", { key: '4ca3303b957a0e5387f1e9058e5adb4c6275afcc' }))));
40878
40287
  }
40879
40288
  get el() { return getElement(this); }
40880
40289
  static get watchers() { return {
@@ -40954,10 +40363,8 @@ registerComponents([
40954
40363
  Nav,
40955
40364
  NavLink,
40956
40365
  Note,
40957
- Picker$1,
40958
40366
  Picker,
40959
40367
  PickerColumn,
40960
- PickerColumnCmp,
40961
40368
  PickerColumnOption,
40962
40369
  Popover,
40963
40370
  ProgressBar,