@ionic/core 8.0.0-beta.0 → 8.0.0-beta.2

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 (653) hide show
  1. package/components/action-sheet.js +3 -3
  2. package/components/alert.js +2 -2
  3. package/components/backdrop.js +1 -1
  4. package/components/button.js +2 -2
  5. package/components/buttons.js +3 -3
  6. package/components/checkbox.js +3 -3
  7. package/components/data.js +23 -38
  8. package/components/hardware-back-button.js +3 -3
  9. package/components/helpers.js +1 -8
  10. package/components/input-shims.js +8 -1
  11. package/components/input.utils.js +12 -0
  12. package/components/ion-app.js +4 -4
  13. package/components/ion-avatar.js +1 -1
  14. package/components/ion-back-button.js +2 -2
  15. package/components/ion-badge.js +2 -2
  16. package/components/ion-breadcrumb.js +2 -2
  17. package/components/ion-breadcrumbs.js +2 -2
  18. package/components/ion-card-content.js +1 -1
  19. package/components/ion-card-header.js +2 -2
  20. package/components/ion-card-subtitle.js +2 -2
  21. package/components/ion-card-title.js +2 -2
  22. package/components/ion-card.js +1 -1
  23. package/components/ion-chip.js +2 -2
  24. package/components/ion-col.js +2 -2
  25. package/components/ion-content.js +3 -3
  26. package/components/ion-datetime-button.js +11 -10
  27. package/components/ion-datetime.js +69 -7
  28. package/components/ion-fab-button.js +2 -2
  29. package/components/ion-fab-list.js +2 -2
  30. package/components/ion-fab.js +2 -2
  31. package/components/ion-footer.js +2 -2
  32. package/components/ion-grid.js +2 -2
  33. package/components/ion-header.js +2 -2
  34. package/components/ion-img.js +1 -1
  35. package/components/ion-infinite-scroll-content.js +2 -2
  36. package/components/ion-infinite-scroll.js +1 -1
  37. package/components/ion-input.js +6 -6
  38. package/components/ion-item-divider.js +3 -3
  39. package/components/ion-item-group.js +1 -1
  40. package/components/ion-item-option.js +2 -2
  41. package/components/ion-item-options.js +1 -1
  42. package/components/ion-item-sliding.js +1 -1
  43. package/components/ion-loading.js +2 -2
  44. package/components/ion-menu-button.js +2 -2
  45. package/components/ion-menu-toggle.js +2 -2
  46. package/components/ion-menu.js +7 -28
  47. package/components/ion-modal.js +37 -5
  48. package/components/ion-nav-link.js +1 -1
  49. package/components/ion-nav.js +1 -1
  50. package/components/ion-note.js +43 -1
  51. package/components/ion-picker-legacy.js +2 -2
  52. package/components/ion-progress-bar.js +1 -1
  53. package/components/ion-range.js +129 -24
  54. package/components/ion-refresher-content.js +1 -1
  55. package/components/ion-refresher.js +1 -1
  56. package/components/ion-reorder-group.js +1 -1
  57. package/components/ion-reorder.js +1 -1
  58. package/components/ion-router-link.js +2 -2
  59. package/components/ion-router-outlet.js +1 -1
  60. package/components/ion-row.js +1 -1
  61. package/components/ion-searchbar.js +34 -5
  62. package/components/ion-segment-button.js +3 -3
  63. package/components/ion-segment.js +2 -2
  64. package/components/ion-select-option.js +1 -1
  65. package/components/ion-select.js +23 -29
  66. package/components/ion-skeleton-text.js +2 -2
  67. package/components/ion-split-pane.js +2 -2
  68. package/components/ion-tab-bar.js +2 -2
  69. package/components/ion-tab-button.js +2 -2
  70. package/components/ion-tab.js +2 -2
  71. package/components/ion-tabs.js +1 -1
  72. package/components/ion-text.js +2 -2
  73. package/components/ion-textarea.js +5 -5
  74. package/components/ion-thumbnail.js +1 -1
  75. package/components/ion-title.js +2 -2
  76. package/components/ion-toast.js +2 -2
  77. package/components/ion-toggle.js +3 -3
  78. package/components/ion-toolbar.js +2 -2
  79. package/components/item.js +30 -97
  80. package/components/label.js +5 -5
  81. package/components/list-header.js +2 -2
  82. package/components/list.js +1 -1
  83. package/components/overlays.js +140 -55
  84. package/components/picker-column-option.js +2 -2
  85. package/components/picker-column.js +20 -5
  86. package/components/picker-column2.js +2 -2
  87. package/components/picker.js +2 -2
  88. package/components/popover.js +4 -4
  89. package/components/radio-group.js +1 -1
  90. package/components/radio.js +3 -3
  91. package/components/ripple-effect.js +1 -1
  92. package/components/select-popover.js +13 -19
  93. package/components/spinner.js +1 -1
  94. package/dist/cjs/{animation-4ad55058.js → animation-3e7bb91e.js} +1 -1
  95. package/dist/cjs/{app-globals-92ad1b3d.js → app-globals-e132c781.js} +1 -1
  96. package/dist/cjs/{button-active-8f6a8e77.js → button-active-60ecf64d.js} +1 -1
  97. package/dist/cjs/{data-e2bf21de.js → data-21dc0f81.js} +22 -39
  98. package/dist/cjs/{framework-delegate-53817ef1.js → framework-delegate-0499d444.js} +1 -1
  99. package/dist/cjs/{hardware-back-button-2696acaf.js → hardware-back-button-1c67a5a2.js} +5 -5
  100. package/dist/cjs/{helpers-b71ca811.js → helpers-668b3d95.js} +1 -8
  101. package/dist/cjs/{index-7574e3d2.js → index-275cc12e.js} +1 -1
  102. package/dist/cjs/{index-0ffe376d.js → index-2d21d526.js} +443 -14
  103. package/dist/cjs/{index-16fc2c94.js → index-ba7ba0af.js} +4 -4
  104. package/dist/cjs/{index-347883f6.js → index-c49cb371.js} +1 -1
  105. package/dist/cjs/{index-88b3bd6f.js → index-e4b6c97e.js} +4 -4
  106. package/dist/cjs/index.cjs.js +11 -11
  107. package/dist/cjs/{input-shims-37843ce5.js → input-shims-b419f083.js} +10 -3
  108. package/dist/cjs/{input.utils-5175aea1.js → input.utils-32c0a14a.js} +13 -1
  109. package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
  110. package/dist/cjs/ion-action-sheet.cjs.entry.js +11 -11
  111. package/dist/cjs/ion-alert.cjs.entry.js +10 -10
  112. package/dist/cjs/ion-app_8.cjs.entry.js +29 -29
  113. package/dist/cjs/ion-avatar_3.cjs.entry.js +6 -6
  114. package/dist/cjs/ion-back-button.cjs.entry.js +5 -5
  115. package/dist/cjs/ion-backdrop.cjs.entry.js +3 -3
  116. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +7 -7
  117. package/dist/cjs/ion-button_2.cjs.entry.js +5 -5
  118. package/dist/cjs/ion-card_5.cjs.entry.js +11 -11
  119. package/dist/cjs/ion-checkbox.cjs.entry.js +6 -6
  120. package/dist/cjs/ion-chip.cjs.entry.js +4 -4
  121. package/dist/cjs/ion-col_3.cjs.entry.js +7 -7
  122. package/dist/cjs/ion-datetime-button.cjs.entry.js +14 -13
  123. package/dist/cjs/ion-datetime_3.cjs.entry.js +77 -18
  124. package/dist/cjs/ion-fab_3.cjs.entry.js +9 -9
  125. package/dist/cjs/ion-img.cjs.entry.js +4 -4
  126. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +7 -7
  127. package/dist/cjs/ion-input.cjs.entry.js +10 -10
  128. package/dist/cjs/ion-item-option_3.cjs.entry.js +8 -8
  129. package/dist/cjs/ion-item_8.cjs.entry.js +42 -97
  130. package/dist/cjs/ion-loading.cjs.entry.js +9 -9
  131. package/dist/cjs/ion-menu_3.cjs.entry.js +17 -38
  132. package/dist/cjs/ion-modal.cjs.entry.js +46 -14
  133. package/dist/cjs/ion-nav_2.cjs.entry.js +8 -8
  134. package/dist/cjs/ion-picker-column-option.cjs.entry.js +5 -5
  135. package/dist/cjs/ion-picker-column.cjs.entry.js +23 -8
  136. package/dist/cjs/ion-picker.cjs.entry.js +4 -4
  137. package/dist/cjs/ion-popover.cjs.entry.js +11 -11
  138. package/dist/cjs/ion-progress-bar.cjs.entry.js +4 -4
  139. package/dist/cjs/ion-radio_2.cjs.entry.js +7 -7
  140. package/dist/cjs/ion-range.cjs.entry.js +133 -28
  141. package/dist/cjs/ion-refresher_2.cjs.entry.js +7 -7
  142. package/dist/cjs/ion-reorder_2.cjs.entry.js +6 -6
  143. package/dist/cjs/ion-ripple-effect.cjs.entry.js +3 -3
  144. package/dist/cjs/ion-route_4.cjs.entry.js +5 -5
  145. package/dist/cjs/ion-searchbar.cjs.entry.js +31 -7
  146. package/dist/cjs/ion-segment_2.cjs.entry.js +8 -8
  147. package/dist/cjs/ion-select_3.cjs.entry.js +13 -13
  148. package/dist/cjs/ion-spinner.cjs.entry.js +3 -3
  149. package/dist/cjs/ion-split-pane.cjs.entry.js +4 -4
  150. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +7 -7
  151. package/dist/cjs/ion-tab_2.cjs.entry.js +6 -6
  152. package/dist/cjs/ion-text.cjs.entry.js +4 -4
  153. package/dist/cjs/ion-textarea.cjs.entry.js +9 -9
  154. package/dist/cjs/ion-toast.cjs.entry.js +9 -9
  155. package/dist/cjs/ion-toggle.cjs.entry.js +6 -6
  156. package/dist/cjs/{ionic-global-59a10130.js → ionic-global-5762eca9.js} +1 -1
  157. package/dist/cjs/ionic.cjs.js +28 -5
  158. package/dist/cjs/{ios.transition-b102ee38.js → ios.transition-3e119901.js} +4 -4
  159. package/dist/cjs/loader.cjs.js +4 -4
  160. package/dist/cjs/{md.transition-a5454240.js → md.transition-c1392f92.js} +4 -4
  161. package/dist/cjs/{notch-controller-8e0ae870.js → notch-controller-08a24f39.js} +1 -1
  162. package/dist/cjs/{overlays-6b7d156b.js → overlays-44b8d0e0.js} +142 -56
  163. package/dist/cjs/{status-tap-b60dcbd8.js → status-tap-32430b3e.js} +3 -3
  164. package/dist/cjs/{swipe-back-72c5c8b7.js → swipe-back-dc4dbb65.js} +1 -1
  165. package/dist/collection/collection-manifest.json +1 -1
  166. package/dist/collection/components/action-sheet/action-sheet.js +3 -3
  167. package/dist/collection/components/alert/alert.js +2 -2
  168. package/dist/collection/components/app/app.js +4 -4
  169. package/dist/collection/components/avatar/avatar.js +1 -1
  170. package/dist/collection/components/back-button/back-button.js +2 -2
  171. package/dist/collection/components/backdrop/backdrop.js +1 -1
  172. package/dist/collection/components/badge/badge.js +2 -2
  173. package/dist/collection/components/breadcrumb/breadcrumb.js +2 -2
  174. package/dist/collection/components/breadcrumbs/breadcrumbs.js +2 -2
  175. package/dist/collection/components/button/button.js +2 -2
  176. package/dist/collection/components/buttons/buttons.js +2 -2
  177. package/dist/collection/components/card/card.js +1 -1
  178. package/dist/collection/components/card-content/card-content.js +1 -1
  179. package/dist/collection/components/card-header/card-header.js +2 -2
  180. package/dist/collection/components/card-subtitle/card-subtitle.js +2 -2
  181. package/dist/collection/components/card-title/card-title.js +2 -2
  182. package/dist/collection/components/checkbox/checkbox.js +3 -3
  183. package/dist/collection/components/checkbox/test/checkbox.spec.js +12 -0
  184. package/dist/collection/components/chip/chip.js +2 -2
  185. package/dist/collection/components/col/col.js +2 -2
  186. package/dist/collection/components/content/content.js +3 -3
  187. package/dist/collection/components/datetime/datetime.js +50 -7
  188. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +80 -1
  189. package/dist/collection/components/datetime/test/format.spec.js +65 -15
  190. package/dist/collection/components/datetime/utils/format.js +24 -37
  191. package/dist/collection/components/datetime/utils/validate.js +45 -0
  192. package/dist/collection/components/datetime-button/datetime-button.js +11 -10
  193. package/dist/collection/components/datetime-button/test/basic/datetime-button.e2e.js +65 -0
  194. package/dist/collection/components/fab/fab.js +2 -2
  195. package/dist/collection/components/fab-button/fab-button.js +2 -2
  196. package/dist/collection/components/fab-list/fab-list.js +2 -2
  197. package/dist/collection/components/footer/footer.js +2 -2
  198. package/dist/collection/components/grid/grid.js +2 -2
  199. package/dist/collection/components/header/header.js +2 -2
  200. package/dist/collection/components/img/img.js +1 -1
  201. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  202. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  203. package/dist/collection/components/input/input.ios.css +2 -0
  204. package/dist/collection/components/input/input.js +3 -3
  205. package/dist/collection/components/input/input.md.css +4 -2
  206. package/dist/collection/components/input/test/highlight/input.e2e.js +144 -0
  207. package/dist/collection/components/input/test/item/input.e2e.js +21 -0
  208. package/dist/collection/components/item/item.ios.css +6 -198
  209. package/dist/collection/components/item/item.js +22 -170
  210. package/dist/collection/components/item/item.md.css +12 -375
  211. package/dist/collection/components/item/test/basic/item.e2e.js +0 -5
  212. package/dist/collection/components/item/test/item.spec.js +1 -1
  213. package/dist/collection/components/item-divider/item-divider.js +2 -2
  214. package/dist/collection/components/item-divider/item-divider.md.css +4 -14
  215. package/dist/collection/components/item-group/item-group.js +1 -1
  216. package/dist/collection/components/item-option/item-option.js +2 -2
  217. package/dist/collection/components/item-options/item-options.js +1 -1
  218. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  219. package/dist/collection/components/label/label.ios.css +0 -5
  220. package/dist/collection/components/label/label.js +2 -2
  221. package/dist/collection/components/label/label.md.css +0 -75
  222. package/dist/collection/components/list/list.js +1 -1
  223. package/dist/collection/components/list-header/list-header.js +2 -2
  224. package/dist/collection/components/loading/loading.js +2 -2
  225. package/dist/collection/components/menu/menu.js +16 -30
  226. package/dist/collection/components/menu-button/menu-button.js +2 -2
  227. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  228. package/dist/collection/components/modal/modal.js +37 -5
  229. package/dist/collection/components/modal/test/modal-attributes.spec.js +32 -0
  230. package/dist/collection/components/nav/nav.js +1 -1
  231. package/dist/collection/components/nav-link/nav-link.js +1 -1
  232. package/dist/collection/components/note/note.js +2 -2
  233. package/dist/collection/components/picker/picker.js +2 -2
  234. package/dist/collection/components/picker-column/picker-column.js +20 -5
  235. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  236. package/dist/collection/components/picker-legacy/picker.js +2 -2
  237. package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
  238. package/dist/collection/components/popover/popover.js +5 -4
  239. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  240. package/dist/collection/components/radio/radio.js +3 -3
  241. package/dist/collection/components/radio-group/radio-group.js +1 -1
  242. package/dist/collection/components/range/range.js +129 -24
  243. package/dist/collection/components/range/test/range-events.e2e.js +27 -0
  244. package/dist/collection/components/refresher/refresher.js +1 -1
  245. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  246. package/dist/collection/components/reorder/reorder.js +1 -1
  247. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  248. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  249. package/dist/collection/components/router-link/router-link.js +2 -2
  250. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  251. package/dist/collection/components/row/row.js +1 -1
  252. package/dist/collection/components/searchbar/searchbar.js +84 -5
  253. package/dist/collection/components/searchbar/test/searchbar.spec.js +20 -2
  254. package/dist/collection/components/segment/segment.js +2 -2
  255. package/dist/collection/components/segment-button/segment-button.js +3 -3
  256. package/dist/collection/components/select/select.ios.css +5 -0
  257. package/dist/collection/components/select/select.js +2 -2
  258. package/dist/collection/components/select/select.md.css +4 -27
  259. package/dist/collection/components/select/test/highlight/select.e2e.js +88 -4
  260. package/dist/collection/components/select-option/select-option.js +1 -1
  261. package/dist/collection/components/select-popover/select-popover.js +1 -1
  262. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  263. package/dist/collection/components/spinner/spinner.js +1 -1
  264. package/dist/collection/components/split-pane/split-pane.js +2 -2
  265. package/dist/collection/components/tab/tab.js +2 -2
  266. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  267. package/dist/collection/components/tab-button/tab-button.js +2 -2
  268. package/dist/collection/components/tabs/tabs.js +1 -1
  269. package/dist/collection/components/text/text.js +2 -2
  270. package/dist/collection/components/textarea/test/highlight/textarea.e2e.js +144 -0
  271. package/dist/collection/components/textarea/test/item/textarea.e2e.js +21 -0
  272. package/dist/collection/components/textarea/textarea.ios.css +2 -20
  273. package/dist/collection/components/textarea/textarea.js +2 -2
  274. package/dist/collection/components/textarea/textarea.md.css +4 -15
  275. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  276. package/dist/collection/components/title/title.js +2 -2
  277. package/dist/collection/components/toast/toast.js +2 -2
  278. package/dist/collection/components/toggle/toggle.js +3 -3
  279. package/dist/collection/components/toolbar/toolbar.js +2 -2
  280. package/dist/collection/utils/focus-trap.js +78 -0
  281. package/dist/collection/utils/forms/index.js +0 -1
  282. package/dist/collection/utils/hardware-back-button.js +2 -2
  283. package/dist/collection/utils/helpers.js +1 -8
  284. package/dist/collection/utils/input-shims/input-shims.js +8 -1
  285. package/dist/collection/utils/overlays.js +64 -53
  286. package/dist/collection/utils/slot-mutation-controller.js +12 -0
  287. package/dist/collection/utils/test/overlays/overlays.spec.js +53 -0
  288. package/dist/docs.json +158 -189
  289. package/dist/esm/{animation-a4acf150.js → animation-9a23ed8d.js} +1 -1
  290. package/dist/esm/{app-globals-5cf6195b.js → app-globals-80842d68.js} +1 -1
  291. package/dist/esm/{button-active-4407b98c.js → button-active-c6e18fac.js} +1 -1
  292. package/dist/esm/{data-691286f1.js → data-ae11fd43.js} +23 -38
  293. package/dist/esm/{framework-delegate-1eb3236c.js → framework-delegate-3fd96df8.js} +1 -1
  294. package/dist/esm/{hardware-back-button-b410a047.js → hardware-back-button-fb295e3a.js} +5 -5
  295. package/dist/esm/{helpers-ae74b3c9.js → helpers-f51cf76f.js} +1 -8
  296. package/dist/esm/{index-1f563746.js → index-1262064c.js} +1 -1
  297. package/dist/esm/{index-4c30cddd.js → index-5d6a0317.js} +443 -15
  298. package/dist/esm/{index-1eff8599.js → index-6da05eef.js} +4 -4
  299. package/dist/esm/{index-66871a1d.js → index-86688780.js} +1 -1
  300. package/dist/esm/{index-8758824c.js → index-9d7e5d3e.js} +4 -4
  301. package/dist/esm/index.js +11 -11
  302. package/dist/esm/{input-shims-91e6634c.js → input-shims-2a4ad5a1.js} +10 -3
  303. package/dist/esm/{input.utils-482fc893.js → input.utils-d2dee48e.js} +13 -1
  304. package/dist/esm/ion-accordion_2.entry.js +3 -3
  305. package/dist/esm/ion-action-sheet.entry.js +11 -11
  306. package/dist/esm/ion-alert.entry.js +10 -10
  307. package/dist/esm/ion-app_8.entry.js +29 -29
  308. package/dist/esm/ion-avatar_3.entry.js +6 -6
  309. package/dist/esm/ion-back-button.entry.js +5 -5
  310. package/dist/esm/ion-backdrop.entry.js +3 -3
  311. package/dist/esm/ion-breadcrumb_2.entry.js +7 -7
  312. package/dist/esm/ion-button_2.entry.js +5 -5
  313. package/dist/esm/ion-card_5.entry.js +11 -11
  314. package/dist/esm/ion-checkbox.entry.js +6 -6
  315. package/dist/esm/ion-chip.entry.js +4 -4
  316. package/dist/esm/ion-col_3.entry.js +7 -7
  317. package/dist/esm/ion-datetime-button.entry.js +14 -13
  318. package/dist/esm/ion-datetime_3.entry.js +77 -18
  319. package/dist/esm/ion-fab_3.entry.js +9 -9
  320. package/dist/esm/ion-img.entry.js +4 -4
  321. package/dist/esm/ion-infinite-scroll_2.entry.js +7 -7
  322. package/dist/esm/ion-input.entry.js +10 -10
  323. package/dist/esm/ion-item-option_3.entry.js +8 -8
  324. package/dist/esm/ion-item_8.entry.js +42 -97
  325. package/dist/esm/ion-loading.entry.js +9 -9
  326. package/dist/esm/ion-menu_3.entry.js +17 -38
  327. package/dist/esm/ion-modal.entry.js +46 -14
  328. package/dist/esm/ion-nav_2.entry.js +8 -8
  329. package/dist/esm/ion-picker-column-option.entry.js +5 -5
  330. package/dist/esm/ion-picker-column.entry.js +23 -8
  331. package/dist/esm/ion-picker.entry.js +4 -4
  332. package/dist/esm/ion-popover.entry.js +11 -11
  333. package/dist/esm/ion-progress-bar.entry.js +4 -4
  334. package/dist/esm/ion-radio_2.entry.js +7 -7
  335. package/dist/esm/ion-range.entry.js +133 -28
  336. package/dist/esm/ion-refresher_2.entry.js +7 -7
  337. package/dist/esm/ion-reorder_2.entry.js +6 -6
  338. package/dist/esm/ion-ripple-effect.entry.js +3 -3
  339. package/dist/esm/ion-route_4.entry.js +5 -5
  340. package/dist/esm/ion-searchbar.entry.js +31 -7
  341. package/dist/esm/ion-segment_2.entry.js +8 -8
  342. package/dist/esm/ion-select_3.entry.js +13 -13
  343. package/dist/esm/ion-spinner.entry.js +3 -3
  344. package/dist/esm/ion-split-pane.entry.js +4 -4
  345. package/dist/esm/ion-tab-bar_2.entry.js +7 -7
  346. package/dist/esm/ion-tab_2.entry.js +6 -6
  347. package/dist/esm/ion-text.entry.js +4 -4
  348. package/dist/esm/ion-textarea.entry.js +9 -9
  349. package/dist/esm/ion-toast.entry.js +9 -9
  350. package/dist/esm/ion-toggle.entry.js +6 -6
  351. package/dist/esm/{ionic-global-ad9a1810.js → ionic-global-a589c12c.js} +1 -1
  352. package/dist/esm/ionic.js +29 -6
  353. package/dist/esm/{ios.transition-189b73b7.js → ios.transition-fbde96b0.js} +4 -4
  354. package/dist/esm/loader.js +5 -5
  355. package/dist/esm/{md.transition-c9761eef.js → md.transition-76e0020b.js} +4 -4
  356. package/dist/esm/{notch-controller-18bf9f76.js → notch-controller-00572cf8.js} +1 -1
  357. package/dist/esm/{overlays-c69d2a07.js → overlays-b1ac1c63.js} +142 -57
  358. package/dist/esm/{status-tap-1d638ee6.js → status-tap-84b41f36.js} +3 -3
  359. package/dist/esm/{swipe-back-348f1971.js → swipe-back-f2bec781.js} +1 -1
  360. package/dist/esm-es5/{animation-a4acf150.js → animation-9a23ed8d.js} +1 -1
  361. package/dist/esm-es5/app-globals-80842d68.js +4 -0
  362. package/dist/esm-es5/{button-active-4407b98c.js → button-active-c6e18fac.js} +1 -1
  363. package/dist/esm-es5/data-ae11fd43.js +4 -0
  364. package/dist/esm-es5/{framework-delegate-1eb3236c.js → framework-delegate-3fd96df8.js} +1 -1
  365. package/dist/esm-es5/hardware-back-button-fb295e3a.js +4 -0
  366. package/dist/esm-es5/helpers-f51cf76f.js +4 -0
  367. package/dist/esm-es5/index-1262064c.js +4 -0
  368. package/dist/esm-es5/index-5d6a0317.js +5 -0
  369. package/dist/esm-es5/{index-1eff8599.js → index-6da05eef.js} +1 -1
  370. package/dist/esm-es5/{index-66871a1d.js → index-86688780.js} +1 -1
  371. package/dist/esm-es5/{index-8758824c.js → index-9d7e5d3e.js} +1 -1
  372. package/dist/esm-es5/index.js +1 -1
  373. package/dist/esm-es5/{input-shims-91e6634c.js → input-shims-2a4ad5a1.js} +1 -1
  374. package/dist/esm-es5/input.utils-d2dee48e.js +4 -0
  375. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  376. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  377. package/dist/esm-es5/ion-alert.entry.js +1 -1
  378. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  379. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  380. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  381. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  382. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  383. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  384. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  385. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  386. package/dist/esm-es5/ion-chip.entry.js +1 -1
  387. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  388. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  389. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  390. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  391. package/dist/esm-es5/ion-img.entry.js +1 -1
  392. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  393. package/dist/esm-es5/ion-input.entry.js +1 -1
  394. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  395. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  396. package/dist/esm-es5/ion-loading.entry.js +1 -1
  397. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  398. package/dist/esm-es5/ion-modal.entry.js +1 -1
  399. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  400. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  401. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  402. package/dist/esm-es5/ion-picker.entry.js +1 -1
  403. package/dist/esm-es5/ion-popover.entry.js +1 -1
  404. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  405. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  406. package/dist/esm-es5/ion-range.entry.js +1 -1
  407. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  408. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  409. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  410. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  411. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  412. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  413. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  414. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  415. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  416. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  417. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  418. package/dist/esm-es5/ion-text.entry.js +1 -1
  419. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  420. package/dist/esm-es5/ion-toast.entry.js +1 -1
  421. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  422. package/dist/esm-es5/{ionic-global-ad9a1810.js → ionic-global-a589c12c.js} +1 -1
  423. package/dist/esm-es5/ionic.js +1 -1
  424. package/dist/esm-es5/{ios.transition-189b73b7.js → ios.transition-fbde96b0.js} +1 -1
  425. package/dist/esm-es5/loader.js +1 -1
  426. package/dist/esm-es5/{md.transition-c9761eef.js → md.transition-76e0020b.js} +1 -1
  427. package/dist/esm-es5/{notch-controller-18bf9f76.js → notch-controller-00572cf8.js} +1 -1
  428. package/dist/esm-es5/overlays-b1ac1c63.js +4 -0
  429. package/dist/esm-es5/{status-tap-1d638ee6.js → status-tap-84b41f36.js} +1 -1
  430. package/dist/esm-es5/{swipe-back-348f1971.js → swipe-back-f2bec781.js} +1 -1
  431. package/dist/html.html-data.json +24 -26
  432. package/dist/ionic/index.esm.js +1 -1
  433. package/dist/ionic/ionic.esm.js +1 -1
  434. package/dist/ionic/ionic.js +1 -1
  435. package/dist/ionic/{p-174856b4.system.js → p-01171ead.system.js} +1 -1
  436. package/dist/ionic/{p-5d7e32ce.js → p-031c5621.js} +1 -1
  437. package/dist/ionic/{p-993da5df.entry.js → p-03f3ebd2.entry.js} +1 -1
  438. package/dist/ionic/p-04f9ce05.system.js +4 -0
  439. package/dist/ionic/p-05f10e5f.entry.js +4 -0
  440. package/dist/ionic/{p-34d0f143.system.entry.js → p-063c093d.system.entry.js} +1 -1
  441. package/dist/ionic/p-06e951a9.entry.js +4 -0
  442. package/dist/ionic/{p-1d545773.entry.js → p-070cf7c3.entry.js} +1 -1
  443. package/dist/ionic/{p-3c47c5c8.system.entry.js → p-0afaf65b.system.entry.js} +1 -1
  444. package/dist/ionic/p-0da58e53.entry.js +4 -0
  445. package/dist/ionic/p-144ae947.js +4 -0
  446. package/dist/ionic/{p-c6dbc089.system.entry.js → p-15e2ff5f.system.entry.js} +1 -1
  447. package/dist/ionic/{p-9d795c4b.entry.js → p-19243ae6.entry.js} +1 -1
  448. package/dist/ionic/p-1acaf641.entry.js +4 -0
  449. package/dist/ionic/{p-892e2567.system.entry.js → p-1d1394da.system.entry.js} +1 -1
  450. package/dist/ionic/p-1e5c0c49.js +4 -0
  451. package/dist/ionic/{p-6e14d3ca.system.entry.js → p-2028668d.system.entry.js} +1 -1
  452. package/dist/ionic/{p-f7d802e1.entry.js → p-2070f8d8.entry.js} +1 -1
  453. package/dist/ionic/{p-3d77b300.system.entry.js → p-219c17cf.system.entry.js} +1 -1
  454. package/dist/ionic/p-21e88629.entry.js +4 -0
  455. package/dist/ionic/{p-cefbb7b7.entry.js → p-234dc736.entry.js} +1 -1
  456. package/dist/ionic/{p-5e70f800.system.entry.js → p-237b1791.system.entry.js} +1 -1
  457. package/dist/ionic/{p-ceceac26.js → p-239906f1.js} +1 -1
  458. package/dist/ionic/{p-1a4db355.system.entry.js → p-25648922.system.entry.js} +1 -1
  459. package/dist/ionic/{p-d84c9fc4.entry.js → p-29ecf879.entry.js} +1 -1
  460. package/dist/ionic/{p-c9e21694.system.entry.js → p-2e2635b4.system.entry.js} +1 -1
  461. package/dist/ionic/p-2f53f47a.entry.js +4 -0
  462. package/dist/ionic/{p-98e6b3b8.system.js → p-30dfa360.system.js} +1 -1
  463. package/dist/ionic/p-314ae72a.js +4 -0
  464. package/dist/ionic/{p-2d7624d4.system.js → p-33e39575.system.js} +1 -1
  465. package/dist/ionic/p-373e757d.entry.js +4 -0
  466. package/dist/ionic/{p-8a50f8d6.system.js → p-3944820a.system.js} +1 -1
  467. package/dist/ionic/p-39483fc9.js +4 -0
  468. package/dist/ionic/{p-e311af42.entry.js → p-39860681.entry.js} +1 -1
  469. package/dist/ionic/{p-e1819aee.js → p-3a572692.js} +1 -1
  470. package/dist/ionic/p-42d9f81e.entry.js +4 -0
  471. package/dist/ionic/{p-dd7c79ce.system.entry.js → p-45a2b1ee.system.entry.js} +1 -1
  472. package/dist/ionic/{p-15708968.js → p-46a4e4e8.js} +1 -1
  473. package/dist/ionic/{p-6dbea874.system.entry.js → p-47974116.system.entry.js} +1 -1
  474. package/dist/ionic/p-489eb5c6.js +4 -0
  475. package/dist/ionic/{p-2b3544ad.entry.js → p-48fef2f1.entry.js} +1 -1
  476. package/dist/ionic/p-493bce1f.entry.js +4 -0
  477. package/dist/ionic/p-4997d7dc.system.js +4 -0
  478. package/dist/ionic/{p-cb944b1a.system.js → p-49a205d0.system.js} +1 -1
  479. package/dist/ionic/{p-c880c809.js → p-4ba6d7d1.js} +1 -1
  480. package/dist/ionic/p-4d6ec139.entry.js +4 -0
  481. package/dist/ionic/{p-8d4d902b.js → p-4da2ae44.js} +1 -1
  482. package/dist/ionic/{p-5d64e680.entry.js → p-5054b3db.entry.js} +1 -1
  483. package/dist/ionic/{p-3c51cf97.system.entry.js → p-50d19fc7.system.entry.js} +1 -1
  484. package/dist/ionic/p-513abaf6.system.entry.js +4 -0
  485. package/dist/ionic/p-517b76cb.entry.js +4 -0
  486. package/dist/ionic/{p-a6cc38d4.js → p-51b1a6be.js} +1 -1
  487. package/dist/ionic/p-53c592ec.system.js +4 -0
  488. package/dist/ionic/{p-12b55b00.system.entry.js → p-566818dd.system.entry.js} +1 -1
  489. package/dist/ionic/p-59e86adb.js +4 -0
  490. package/dist/ionic/{p-1e07fdb2.system.entry.js → p-5f9abba8.system.entry.js} +2 -2
  491. package/dist/ionic/{p-d8643420.system.entry.js → p-6042920d.system.entry.js} +2 -2
  492. package/dist/ionic/{p-9f84474d.entry.js → p-65374504.entry.js} +1 -1
  493. package/dist/ionic/{p-df6a1571.entry.js → p-66596659.entry.js} +1 -1
  494. package/dist/ionic/p-667290b0.system.js +4 -0
  495. package/dist/ionic/{p-5d530ae5.entry.js → p-66e50777.entry.js} +1 -1
  496. package/dist/ionic/{p-4a8f173c.system.js → p-67dbcd3b.system.js} +1 -1
  497. package/dist/ionic/{p-916a4e14.entry.js → p-68fbfcd5.entry.js} +1 -1
  498. package/dist/ionic/{p-eb9803e9.system.js → p-696db6f4.system.js} +1 -1
  499. package/dist/ionic/p-69df28fd.entry.js +4 -0
  500. package/dist/ionic/p-6d0e7669.system.entry.js +4 -0
  501. package/dist/ionic/p-6d1f5de9.system.entry.js +4 -0
  502. package/dist/ionic/{p-4dfe0487.system.entry.js → p-6d75fbe8.system.entry.js} +1 -1
  503. package/dist/ionic/{p-174b0d50.system.entry.js → p-7162350a.system.entry.js} +1 -1
  504. package/dist/ionic/p-7200f2da.entry.js +4 -0
  505. package/dist/ionic/{p-b434ded7.system.entry.js → p-739f8b95.system.entry.js} +1 -1
  506. package/dist/ionic/{p-415ccddd.entry.js → p-75addf49.entry.js} +1 -1
  507. package/dist/ionic/{p-de55ec45.js → p-78b3da77.js} +1 -1
  508. package/dist/ionic/p-7c7e495d.system.js +4 -0
  509. package/dist/ionic/{p-8ab308e9.js → p-7d4f6f18.js} +1 -1
  510. package/dist/ionic/{p-5797981d.system.entry.js → p-824d44c5.system.entry.js} +1 -1
  511. package/dist/ionic/{p-d7dc29c5.entry.js → p-8c0b08db.entry.js} +1 -1
  512. package/dist/ionic/p-8dfe436d.system.js +4 -0
  513. package/dist/ionic/{p-0dca0eee.system.entry.js → p-91567c90.system.entry.js} +1 -1
  514. package/dist/ionic/{p-00a762c9.entry.js → p-95648db9.entry.js} +1 -1
  515. package/dist/ionic/{p-ef9736b9.entry.js → p-9c970454.entry.js} +1 -1
  516. package/dist/ionic/{p-e46adaf1.system.entry.js → p-9ddbed2f.system.entry.js} +1 -1
  517. package/dist/ionic/{p-6525a8cd.system.js → p-9e3177a5.system.js} +1 -1
  518. package/dist/ionic/p-a03c993e.entry.js +4 -0
  519. package/dist/ionic/{p-d7c78a97.system.entry.js → p-a37d4fe9.system.entry.js} +1 -1
  520. package/dist/ionic/{p-973c7550.system.entry.js → p-a43fbe0a.system.entry.js} +1 -1
  521. package/dist/ionic/{p-de0a7606.system.entry.js → p-a5c33d6b.system.entry.js} +1 -1
  522. package/dist/ionic/p-a7f788ec.entry.js +4 -0
  523. package/dist/ionic/{p-5133c4a3.system.entry.js → p-acd64713.system.entry.js} +1 -1
  524. package/dist/ionic/{p-89ca4c4b.system.js → p-af9256a0.system.js} +1 -1
  525. package/dist/ionic/p-afe27188.system.js +4 -0
  526. package/dist/ionic/{p-acf70e64.system.entry.js → p-b0850af6.system.entry.js} +1 -1
  527. package/dist/ionic/p-b0d35de4.system.js +4 -0
  528. package/dist/ionic/p-b996756b.entry.js +4 -0
  529. package/dist/ionic/p-ba9120fe.system.entry.js +4 -0
  530. package/dist/ionic/p-bb78b64e.entry.js +4 -0
  531. package/dist/ionic/{p-80704be1.entry.js → p-bbc4f653.entry.js} +1 -1
  532. package/dist/ionic/p-c34d1515.js +4 -0
  533. package/dist/ionic/{p-97248203.system.entry.js → p-c4390f10.system.entry.js} +1 -1
  534. package/dist/ionic/p-c629d22b.system.js +5 -0
  535. package/dist/ionic/p-c834c535.system.entry.js +4 -0
  536. package/dist/ionic/{p-2dcf2ec2.system.entry.js → p-c8675b7b.system.entry.js} +1 -1
  537. package/dist/ionic/p-c962e9ea.entry.js +4 -0
  538. package/dist/ionic/p-cbb753d4.entry.js +4 -0
  539. package/dist/ionic/p-cc19ecba.system.entry.js +4 -0
  540. package/dist/ionic/{p-1ea88de9.system.js → p-ce36d285.system.js} +1 -1
  541. package/dist/ionic/{p-f7c3d736.system.entry.js → p-d09c9468.system.entry.js} +1 -1
  542. package/dist/ionic/p-d10bbab7.entry.js +4 -0
  543. package/dist/ionic/p-d268f7e2.system.entry.js +4 -0
  544. package/dist/ionic/{p-1df25966.entry.js → p-d3c1c23f.entry.js} +1 -1
  545. package/dist/ionic/{p-0a8a78db.system.entry.js → p-d4be0d81.system.entry.js} +1 -1
  546. package/dist/ionic/p-d5ef3a0a.entry.js +4 -0
  547. package/dist/ionic/p-d60342e3.js +4 -0
  548. package/dist/ionic/{p-8fe3c4ef.entry.js → p-d85eebc3.entry.js} +1 -1
  549. package/dist/ionic/{p-0612cdcc.system.entry.js → p-d9dfdbb5.system.entry.js} +1 -1
  550. package/dist/ionic/{p-385f66bc.entry.js → p-da5bbd4f.entry.js} +1 -1
  551. package/dist/ionic/p-dad515dc.js +4 -0
  552. package/dist/ionic/{p-ab427719.entry.js → p-de39f314.entry.js} +1 -1
  553. package/dist/ionic/{p-5f9fbad0.entry.js → p-de4c700f.entry.js} +1 -1
  554. package/dist/ionic/{p-19f6ac6c.system.js → p-e01ebeba.system.js} +1 -1
  555. package/dist/ionic/{p-1f79e54a.entry.js → p-e222fdd1.entry.js} +1 -1
  556. package/dist/ionic/{p-ef636601.entry.js → p-e5e492d8.entry.js} +1 -1
  557. package/dist/ionic/{p-fd783a38.system.entry.js → p-e9412fe7.system.entry.js} +1 -1
  558. package/dist/ionic/{p-16e06393.system.js → p-ea5173f9.system.js} +1 -1
  559. package/dist/ionic/{p-717c4b72.entry.js → p-eb546888.entry.js} +1 -1
  560. package/dist/ionic/{p-f0a7e80b.js → p-eee87ebb.js} +1 -1
  561. package/dist/ionic/p-f012e8f2.system.entry.js +4 -0
  562. package/dist/ionic/{p-c8d61b6c.system.entry.js → p-f15b0bbc.system.entry.js} +1 -1
  563. package/dist/ionic/{p-ec77b7ad.system.entry.js → p-f15f8140.system.entry.js} +1 -1
  564. package/dist/ionic/{p-31e02742.system.js → p-f3e8c505.system.js} +1 -1
  565. package/dist/ionic/{p-760dbd5e.js → p-f5cb9689.js} +1 -1
  566. package/dist/ionic/p-f687573e.system.js +4 -0
  567. package/dist/ionic/{p-3807cd45.system.entry.js → p-f6db2e96.system.entry.js} +2 -2
  568. package/dist/ionic/p-f8502e85.js +5 -0
  569. package/dist/ionic/{p-4bbc949f.system.entry.js → p-f8dfae89.system.entry.js} +1 -1
  570. package/dist/ionic/p-fcec3b7a.system.entry.js +4 -0
  571. package/dist/ionic/{p-b2d58604.system.entry.js → p-ff740d68.system.entry.js} +1 -1
  572. package/dist/ionic/p-ffaeba0a.system.entry.js +4 -0
  573. package/dist/types/components/datetime/datetime-interface.d.ts +10 -0
  574. package/dist/types/components/datetime/datetime.d.ts +9 -1
  575. package/dist/types/components/datetime/utils/format.d.ts +7 -13
  576. package/dist/types/components/datetime/utils/validate.d.ts +8 -0
  577. package/dist/types/components/item/item.d.ts +0 -32
  578. package/dist/types/components/menu/menu-interface.d.ts +1 -0
  579. package/dist/types/components/menu/menu.d.ts +2 -4
  580. package/dist/types/components/range/range.d.ts +29 -0
  581. package/dist/types/components/searchbar/searchbar.d.ts +38 -0
  582. package/dist/types/components.d.ts +38 -46
  583. package/dist/types/utils/focus-trap.d.ts +35 -0
  584. package/dist/types/utils/forms/index.d.ts +0 -1
  585. package/dist/types/utils/hardware-back-button.d.ts +1 -1
  586. package/dist/types/utils/helpers.d.ts +0 -1
  587. package/dist/types/utils/overlays.d.ts +0 -6
  588. package/hydrate/index.js +707 -448
  589. package/package.json +1 -1
  590. package/components/note.js +0 -48
  591. package/dist/collection/components/item/test/legacy/disabled/item.e2e.js +0 -14
  592. package/dist/collection/components/modal/test/a11y/modal.spec.js +0 -22
  593. package/dist/collection/utils/forms/form-controller.js +0 -61
  594. package/dist/esm-es5/app-globals-5cf6195b.js +0 -4
  595. package/dist/esm-es5/data-691286f1.js +0 -4
  596. package/dist/esm-es5/hardware-back-button-b410a047.js +0 -4
  597. package/dist/esm-es5/helpers-ae74b3c9.js +0 -4
  598. package/dist/esm-es5/index-1f563746.js +0 -4
  599. package/dist/esm-es5/index-4c30cddd.js +0 -5
  600. package/dist/esm-es5/input.utils-482fc893.js +0 -4
  601. package/dist/esm-es5/overlays-c69d2a07.js +0 -4
  602. package/dist/ionic/p-069388dd.system.js +0 -4
  603. package/dist/ionic/p-0b34d3a7.system.js +0 -4
  604. package/dist/ionic/p-0dfbbdbe.entry.js +0 -4
  605. package/dist/ionic/p-0f25a7bb.system.js +0 -4
  606. package/dist/ionic/p-0f81df5e.entry.js +0 -4
  607. package/dist/ionic/p-11bb459e.system.entry.js +0 -4
  608. package/dist/ionic/p-13e8ad2e.entry.js +0 -4
  609. package/dist/ionic/p-17082c91.system.js +0 -4
  610. package/dist/ionic/p-1deadb7f.system.js +0 -4
  611. package/dist/ionic/p-2c768965.entry.js +0 -4
  612. package/dist/ionic/p-3209217f.entry.js +0 -4
  613. package/dist/ionic/p-32fb7d95.entry.js +0 -4
  614. package/dist/ionic/p-446f3909.system.entry.js +0 -4
  615. package/dist/ionic/p-4b3a4938.entry.js +0 -4
  616. package/dist/ionic/p-4e7abe76.js +0 -4
  617. package/dist/ionic/p-5289aade.js +0 -4
  618. package/dist/ionic/p-5dbf7222.entry.js +0 -4
  619. package/dist/ionic/p-5eabaa80.js +0 -4
  620. package/dist/ionic/p-60a92a48.system.entry.js +0 -4
  621. package/dist/ionic/p-640fac4a.system.entry.js +0 -4
  622. package/dist/ionic/p-66e6860f.system.js +0 -4
  623. package/dist/ionic/p-6ad90d41.entry.js +0 -4
  624. package/dist/ionic/p-6aeb0272.entry.js +0 -4
  625. package/dist/ionic/p-6d659d62.entry.js +0 -4
  626. package/dist/ionic/p-7292add8.entry.js +0 -4
  627. package/dist/ionic/p-72fa96bf.system.js +0 -5
  628. package/dist/ionic/p-75861cd3.entry.js +0 -4
  629. package/dist/ionic/p-7e185a31.entry.js +0 -4
  630. package/dist/ionic/p-8b8b900d.entry.js +0 -4
  631. package/dist/ionic/p-90b3e3b0.system.entry.js +0 -4
  632. package/dist/ionic/p-93e79b55.js +0 -4
  633. package/dist/ionic/p-94f85e19.system.entry.js +0 -4
  634. package/dist/ionic/p-96107183.js +0 -4
  635. package/dist/ionic/p-986a47ee.system.entry.js +0 -4
  636. package/dist/ionic/p-9c93fdcd.js +0 -4
  637. package/dist/ionic/p-9d6f351e.js +0 -4
  638. package/dist/ionic/p-9e3b3f15.system.js +0 -4
  639. package/dist/ionic/p-9ecc1e42.entry.js +0 -4
  640. package/dist/ionic/p-bca27ea7.entry.js +0 -4
  641. package/dist/ionic/p-c68e75ea.system.js +0 -4
  642. package/dist/ionic/p-cd0ffc8c.entry.js +0 -4
  643. package/dist/ionic/p-d13689a6.entry.js +0 -4
  644. package/dist/ionic/p-d3f79a49.js +0 -4
  645. package/dist/ionic/p-d47a1a78.system.entry.js +0 -4
  646. package/dist/ionic/p-d9b6b588.entry.js +0 -4
  647. package/dist/ionic/p-df504a37.system.js +0 -4
  648. package/dist/ionic/p-e755046f.system.entry.js +0 -4
  649. package/dist/ionic/p-eb506d19.system.entry.js +0 -4
  650. package/dist/ionic/p-ed7a529f.js +0 -5
  651. package/dist/ionic/p-f2473724.js +0 -4
  652. package/dist/ionic/p-f7ccf8d9.entry.js +0 -4
  653. package/dist/types/utils/forms/form-controller.d.ts +0 -15
@@ -2,13 +2,88 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { d as doc } from './index5.js';
5
- import { OVERLAY_BACK_BUTTON_PRIORITY, shoudUseCloseWatcher } from './hardware-back-button.js';
5
+ import { f as focusVisibleElement, c as componentOnReady, a as addEventListener, b as removeEventListener, g as getElementRoot } from './helpers.js';
6
+ import { OVERLAY_BACK_BUTTON_PRIORITY, shouldUseCloseWatcher } from './hardware-back-button.js';
6
7
  import { b as getIonMode, c as config } from './ionic-global.js';
7
8
  import { C as CoreDelegate } from './framework-delegate.js';
8
9
  import { B as BACKDROP_NO_SCROLL } from './gesture-controller.js';
9
- import { c as componentOnReady, f as focusVisibleElement, a as addEventListener, b as removeEventListener, g as getElementRoot } from './helpers.js';
10
10
  import { p as printIonWarning } from './index6.js';
11
11
 
12
+ /**
13
+ * This query string selects elements that
14
+ * are eligible to receive focus. We select
15
+ * interactive elements that meet the following
16
+ * criteria:
17
+ * 1. Element does not have a negative tabindex
18
+ * 2. Element does not have `hidden`
19
+ * 3. Element does not have `disabled` for non-Ionic components.
20
+ * 4. Element does not have `disabled` or `disabled="true"` for Ionic components.
21
+ * Note: We need this distinction because `disabled="false"` is
22
+ * valid usage for the disabled property on ion-button.
23
+ */
24
+ const focusableQueryString = '[tabindex]:not([tabindex^="-"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^="-"]):not([hidden]):not([disabled]), textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), button:not([tabindex^="-"]):not([hidden]):not([disabled]), select:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable[disabled="false"]:not([tabindex^="-"]):not([hidden])';
25
+ /**
26
+ * Focuses the first descendant in a context
27
+ * that can receive focus. If none exists,
28
+ * a fallback element will be focused.
29
+ * This fallback is typically an ancestor
30
+ * container such as a menu or overlay so focus does not
31
+ * leave the container we are trying to trap focus in.
32
+ *
33
+ * If no fallback is specified then we focus the container itself.
34
+ */
35
+ const focusFirstDescendant = (ref, fallbackElement) => {
36
+ const firstInput = ref.querySelector(focusableQueryString);
37
+ focusElementInContext(firstInput, fallbackElement !== null && fallbackElement !== void 0 ? fallbackElement : ref);
38
+ };
39
+ /**
40
+ * Focuses the last descendant in a context
41
+ * that can receive focus. If none exists,
42
+ * a fallback element will be focused.
43
+ * This fallback is typically an ancestor
44
+ * container such as a menu or overlay so focus does not
45
+ * leave the container we are trying to trap focus in.
46
+ *
47
+ * If no fallback is specified then we focus the container itself.
48
+ */
49
+ const focusLastDescendant = (ref, fallbackElement) => {
50
+ const inputs = Array.from(ref.querySelectorAll(focusableQueryString));
51
+ const lastInput = inputs.length > 0 ? inputs[inputs.length - 1] : null;
52
+ focusElementInContext(lastInput, fallbackElement !== null && fallbackElement !== void 0 ? fallbackElement : ref);
53
+ };
54
+ /**
55
+ * Focuses a particular element in a context. If the element
56
+ * doesn't have anything focusable associated with it then
57
+ * a fallback element will be focused.
58
+ *
59
+ * This fallback is typically an ancestor
60
+ * container such as a menu or overlay so focus does not
61
+ * leave the container we are trying to trap focus in.
62
+ * This should be used instead of the focus() method
63
+ * on most elements because the focusable element
64
+ * may not be the host element.
65
+ *
66
+ * For example, if an ion-button should be focused
67
+ * then we should actually focus the native <button>
68
+ * element inside of ion-button's shadow root, not
69
+ * the host element itself.
70
+ */
71
+ const focusElementInContext = (hostToFocus, fallbackElement) => {
72
+ let elementToFocus = hostToFocus;
73
+ const shadowRoot = hostToFocus === null || hostToFocus === void 0 ? void 0 : hostToFocus.shadowRoot;
74
+ if (shadowRoot) {
75
+ // If there are no inner focusable elements, just focus the host element.
76
+ elementToFocus = shadowRoot.querySelector(focusableQueryString) || hostToFocus;
77
+ }
78
+ if (elementToFocus) {
79
+ focusVisibleElement(elementToFocus);
80
+ }
81
+ else {
82
+ // Focus fallback element instead of letting focus escape
83
+ fallbackElement.focus();
84
+ }
85
+ };
86
+
12
87
  let lastOverlayIndex = 0;
13
88
  let lastId = 0;
14
89
  const activeAnimations = new WeakMap();
@@ -89,39 +164,7 @@ const createOverlay = (tagName, opts) => {
89
164
  }
90
165
  return Promise.resolve();
91
166
  };
92
- /**
93
- * This query string selects elements that
94
- * are eligible to receive focus. We select
95
- * interactive elements that meet the following
96
- * criteria:
97
- * 1. Element does not have a negative tabindex
98
- * 2. Element does not have `hidden`
99
- * 3. Element does not have `disabled` for non-Ionic components.
100
- * 4. Element does not have `disabled` or `disabled="true"` for Ionic components.
101
- * Note: We need this distinction because `disabled="false"` is
102
- * valid usage for the disabled property on ion-button.
103
- */
104
- const focusableQueryString = '[tabindex]:not([tabindex^="-"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^="-"]):not([hidden]):not([disabled]), textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), button:not([tabindex^="-"]):not([hidden]):not([disabled]), select:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable[disabled="false"]:not([tabindex^="-"]):not([hidden])';
105
167
  const isOverlayHidden = (overlay) => overlay.classList.contains('overlay-hidden');
106
- /**
107
- * Focuses the first descendant in an overlay
108
- * that can receive focus. If none exists,
109
- * the entire overlay will be focused.
110
- */
111
- const focusFirstDescendant = (ref, overlay) => {
112
- const firstInput = ref.querySelector(focusableQueryString);
113
- focusElementInOverlay(firstInput, overlay);
114
- };
115
- /**
116
- * Focuses the last descendant in an overlay
117
- * that can receive focus. If none exists,
118
- * the entire overlay will be focused.
119
- */
120
- const focusLastDescendant = (ref, overlay) => {
121
- const inputs = Array.from(ref.querySelectorAll(focusableQueryString));
122
- const lastInput = inputs.length > 0 ? inputs[inputs.length - 1] : null;
123
- focusElementInOverlay(lastInput, overlay);
124
- };
125
168
  /**
126
169
  * Focuses a particular element in an overlay. If the element
127
170
  * doesn't have anything focusable associated with it then
@@ -312,7 +355,7 @@ const trapKeyboardFocus = (ev, doc) => {
312
355
  */
313
356
  const lastFocus = lastOverlay.lastFocus;
314
357
  // Focus the first element in the overlay wrapper
315
- focusFirstDescendant(lastOverlay, lastOverlay);
358
+ focusFirstDescendant(lastOverlay);
316
359
  /**
317
360
  * If the cached last focused element is the
318
361
  * same as the active element, then we need
@@ -323,7 +366,7 @@ const trapKeyboardFocus = (ev, doc) => {
323
366
  * last focus to equal the active element.
324
367
  */
325
368
  if (lastFocus === doc.activeElement) {
326
- focusLastDescendant(lastOverlay, lastOverlay);
369
+ focusLastDescendant(lastOverlay);
327
370
  }
328
371
  lastOverlay.lastFocus = doc.activeElement;
329
372
  }
@@ -368,7 +411,7 @@ const connectListeners = (doc) => {
368
411
  * this behavior will be handled via the ionBackButton
369
412
  * event.
370
413
  */
371
- if (!shoudUseCloseWatcher()) {
414
+ if (!shouldUseCloseWatcher()) {
372
415
  doc.addEventListener('keydown', (ev) => {
373
416
  if (ev.key === 'Escape') {
374
417
  const lastOverlay = getPresentedOverlay(doc);
@@ -459,15 +502,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
459
502
  }
460
503
  setRootAriaHidden(true);
461
504
  document.body.classList.add(BACKDROP_NO_SCROLL);
462
- /**
463
- * Hide all other overlays from screen readers so only this one
464
- * can be read. Note that presenting an overlay always makes
465
- * it the topmost one.
466
- */
467
- if (doc !== undefined) {
468
- const presentedOverlays = getPresentedOverlays(doc);
469
- presentedOverlays.forEach((o) => o.setAttribute('aria-hidden', 'true'));
470
- }
505
+ hideOverlaysFromScreenReaders(overlay.el);
471
506
  overlay.presented = true;
472
507
  overlay.willPresent.emit();
473
508
  (_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
@@ -560,7 +595,7 @@ const restoreElementFocus = async (overlayEl) => {
560
595
  }
561
596
  };
562
597
  const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnimation, opts) => {
563
- var _a, _b, _c;
598
+ var _a, _b;
564
599
  if (!overlay.presented) {
565
600
  return false;
566
601
  }
@@ -613,13 +648,7 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
613
648
  console.error(err);
614
649
  }
615
650
  overlay.el.remove();
616
- /**
617
- * If there are other overlays presented, unhide the new
618
- * topmost one from screen readers.
619
- */
620
- if (doc !== undefined) {
621
- (_c = getPresentedOverlay(doc)) === null || _c === void 0 ? void 0 : _c.removeAttribute('aria-hidden');
622
- }
651
+ revealOverlaysToScreenReaders();
623
652
  return true;
624
653
  };
625
654
  const getAppRoot = (doc) => {
@@ -815,5 +844,61 @@ const createTriggerController = () => {
815
844
  removeClickListener,
816
845
  };
817
846
  };
847
+ /**
848
+ * Ensure that underlying overlays have aria-hidden if necessary so that screen readers
849
+ * cannot move focus to these elements. Note that we cannot rely on focus/focusin/focusout
850
+ * events here because those events do not fire when the screen readers moves to a non-focusable
851
+ * element such as text.
852
+ * Without this logic screen readers would be able to move focus outside of the top focus-trapped overlay.
853
+ *
854
+ * @param newTopMostOverlay - The overlay that is being presented. Since the overlay has not been
855
+ * fully presented yet at the time this function is called it will not be included in the getPresentedOverlays result.
856
+ */
857
+ const hideOverlaysFromScreenReaders = (newTopMostOverlay) => {
858
+ var _a;
859
+ if (doc === undefined)
860
+ return;
861
+ const overlays = getPresentedOverlays(doc);
862
+ for (let i = overlays.length - 1; i >= 0; i--) {
863
+ const presentedOverlay = overlays[i];
864
+ const nextPresentedOverlay = (_a = overlays[i + 1]) !== null && _a !== void 0 ? _a : newTopMostOverlay;
865
+ /**
866
+ * If next overlay has aria-hidden then all remaining overlays will have it too.
867
+ * Or, if the next overlay is a Toast that does not have aria-hidden then current overlay
868
+ * should not have aria-hidden either so focus can remain in the current overlay.
869
+ */
870
+ if (nextPresentedOverlay.hasAttribute('aria-hidden') || nextPresentedOverlay.tagName !== 'ION-TOAST') {
871
+ presentedOverlay.setAttribute('aria-hidden', 'true');
872
+ }
873
+ }
874
+ };
875
+ /**
876
+ * When dismissing an overlay we need to reveal the new top-most overlay to screen readers.
877
+ * If the top-most overlay is a Toast we potentially need to reveal more overlays since
878
+ * focus is never automatically moved to the Toast.
879
+ */
880
+ const revealOverlaysToScreenReaders = () => {
881
+ if (doc === undefined)
882
+ return;
883
+ const overlays = getPresentedOverlays(doc);
884
+ for (let i = overlays.length - 1; i >= 0; i--) {
885
+ const currentOverlay = overlays[i];
886
+ /**
887
+ * If the current we are looking at is a Toast then we can remove aria-hidden.
888
+ * However, we potentially need to keep looking at the overlay stack because there
889
+ * could be more Toasts underneath. Additionally, we need to unhide the closest non-Toast
890
+ * overlay too so focus can move there since focus is never automatically moved to the Toast.
891
+ */
892
+ currentOverlay.removeAttribute('aria-hidden');
893
+ /**
894
+ * If we found a non-Toast element then we can just remove aria-hidden and stop searching entirely
895
+ * since this overlay should always receive focus. As a result, all underlying overlays should still
896
+ * be hidden from screen readers.
897
+ */
898
+ if (currentOverlay.tagName !== 'ION-TOAST') {
899
+ break;
900
+ }
901
+ }
902
+ };
818
903
 
819
- export { BACKDROP as B, GESTURE as G, OVERLAY_GESTURE_PRIORITY as O, alertController as a, actionSheetController as b, popoverController as c, createDelegateController as d, createTriggerController as e, present as f, dismiss as g, eventMethod as h, isCancel as i, prepareOverlay as j, setOverlayId as k, loadingController as l, modalController as m, focusFirstDescendant as n, getPresentedOverlay as o, pickerController as p, safeCall as s, toastController as t };
904
+ export { BACKDROP as B, GESTURE as G, OVERLAY_GESTURE_PRIORITY as O, alertController as a, actionSheetController as b, popoverController as c, createDelegateController as d, createTriggerController as e, present as f, dismiss as g, eventMethod as h, isCancel as i, prepareOverlay as j, setOverlayId as k, loadingController as l, modalController as m, focusFirstDescendant as n, getPresentedOverlay as o, pickerController as p, focusLastDescendant as q, safeCall as s, toastController as t };
@@ -86,10 +86,10 @@ const PickerColumnOption = /*@__PURE__*/ proxyCustomElement(class PickerColumnOp
86
86
  render() {
87
87
  const { color, disabled, ariaLabel } = this;
88
88
  const mode = getIonMode(this);
89
- return (h(Host, { key: '1d5358c019c01ca429ddb514b9f9b67a3c89f652', class: createColorClasses(color, {
89
+ return (h(Host, { key: '8307a2917395b704ca995c64b5e84b828a8f3946', class: createColorClasses(color, {
90
90
  [mode]: true,
91
91
  ['option-disabled']: disabled,
92
- }) }, h("button", { key: 'c86794a15b61062a886c6f5113723ccd98238e9f', tabindex: "-1", "aria-label": ariaLabel, disabled: disabled, onClick: () => this.onClick() }, h("slot", { key: 'ab7f80cacdd39b5aedf7d2cc8eddc6288093629a' }))));
92
+ }) }, h("button", { key: '2112f812b169e1fa67ab08ccb1d63c8e14e30872', tabindex: "-1", "aria-label": ariaLabel, disabled: disabled, onClick: () => this.onClick() }, h("slot", { key: '571b4724e055765891db30405488ae368f110dc1' }))));
93
93
  }
94
94
  get el() { return this; }
95
95
  static get watchers() { return {
@@ -268,6 +268,13 @@ const PickerColumn = /*@__PURE__*/ proxyCustomElement(class PickerColumn extends
268
268
  * height of 0px.
269
269
  */
270
270
  componentWillLoad() {
271
+ /**
272
+ * We cache parentEl in a local variable
273
+ * so we don't need to keep accessing
274
+ * the class variable (which comes with
275
+ * a small performance hit)
276
+ */
277
+ const parentEl = (this.parentEl = this.el.closest('ion-picker'));
271
278
  const visibleCallback = (entries) => {
272
279
  const ev = entries[0];
273
280
  if (ev.isIntersecting) {
@@ -295,8 +302,16 @@ const PickerColumn = /*@__PURE__*/ proxyCustomElement(class PickerColumn extends
295
302
  }
296
303
  }
297
304
  };
298
- new IntersectionObserver(visibleCallback, { threshold: 0.001 }).observe(this.el);
299
- const parentEl = (this.parentEl = this.el.closest('ion-picker'));
305
+ /**
306
+ * Set the root to be the parent picker element
307
+ * This causes the IO callback
308
+ * to be fired in WebKit as soon as the element
309
+ * is visible. If we used the default root value
310
+ * then WebKit would only fire the IO callback
311
+ * after any animations (such as a modal transition)
312
+ * finished, and there would potentially be a flicker.
313
+ */
314
+ new IntersectionObserver(visibleCallback, { threshold: 0.001, root: this.parentEl }).observe(this.el);
300
315
  if (parentEl !== null) {
301
316
  // TODO(FW-2832): type
302
317
  parentEl.addEventListener('ionInputModeChange', (ev) => this.inputModeChange(ev));
@@ -365,14 +380,14 @@ const PickerColumn = /*@__PURE__*/ proxyCustomElement(class PickerColumn extends
365
380
  render() {
366
381
  const { color, disabled, isActive, numericInput } = this;
367
382
  const mode = getIonMode(this);
368
- return (h(Host, { key: '22dcc8dc9bc8c6035cba9f8825f231797464c652', class: createColorClasses(color, {
383
+ return (h(Host, { key: '6658bfcf04d2e16e5a1acdb82c7b99fba27a6e36', class: createColorClasses(color, {
369
384
  [mode]: true,
370
385
  ['picker-column-active']: isActive,
371
386
  ['picker-column-numeric-input']: numericInput,
372
387
  ['picker-column-disabled']: disabled,
373
- }) }, h("slot", { key: 'e93c2d8ea862e2d84ae9338ad2cbec0eea2230f8', name: "prefix" }), h("div", { key: 'a981c29b3cd9456b7f2523d1daa4d1797d389f03', class: "picker-opts", tabindex: disabled ? undefined : 0, ref: (el) => {
388
+ }) }, h("slot", { key: 'a763810ee7cdb6757a6b769edc7b22d0e5d31300', name: "prefix" }), h("div", { key: 'b782e731803faa9afddbd7ecf117cf13b7fed392', class: "picker-opts", tabindex: disabled ? undefined : 0, ref: (el) => {
374
389
  this.scrollEl = el;
375
- } }, h("div", { key: 'd80da940ecb2d8cea236ef9c74da1871a7ab6248', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '2b05ef9d4116ca7940c3b61454517c02ee40bf9e', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'a557a7fb595d3bec5e0bd76b10f73cdc93b17bff', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("slot", { key: '4934b827a0b11dfcb2cb9a49740076609ab86f59' }), h("div", { key: 'f89592da27eb54e88e9a977aa4ecd9dc4d8e211d', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '87c0cf79ce3b88c2328256ee6895612327653009', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '24e96271c3e7468cc3cc5a6f3e384740c4fd9988', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), h("slot", { key: '2ed210e571787a88c06d7538cb7082875e85fb28', name: "suffix" })));
390
+ } }, h("div", { key: '1ad66da148e1b68654fb239e5b0378b6588952ec', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '40d9a15a9387fd6505cf2089dc0bd025c1d024ef', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '6594be21a3dea1668cc90488d0b9b611ca8f65a8', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("slot", { key: '3e848b150f81d6283e5a04876f9b7cd61ba8079e' }), h("div", { key: 'e1e4ccb1cd80e937aee528f99fa969cf45228db3', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '1cc415a51d3f525777f2dfcc0ff0fea670307f9e', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'aa247ca6aa986648a5b2822a8eb648d246de695c', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), h("slot", { key: '712e32d320c95cf293eb71ec395988414a3aea11', name: "suffix" })));
376
391
  }
377
392
  get el() { return this; }
378
393
  static get watchers() { return {
@@ -343,9 +343,9 @@ const PickerColumnCmp = /*@__PURE__*/ proxyCustomElement(class PickerColumnCmp e
343
343
  render() {
344
344
  const col = this.col;
345
345
  const mode = getIonMode(this);
346
- return (h(Host, { key: '0337ac8379be177501b8d61f0ac0f68ecbb8344d', 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: {
346
+ return (h(Host, { key: 'b7342219fdfcf106d905e3badefe021fd46ad12b', 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: {
347
347
  'max-width': this.col.columnWidth,
348
- } }, col.prefix && (h("div", { class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), h("div", { key: '013ba8ea1c2fe4fe717386b9cc87484913c234f7', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (h("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (h("div", { class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
348
+ } }, col.prefix && (h("div", { class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), h("div", { key: 'c87f5f3f1efca050c20bcd697aae905f0f370afc', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (h("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (h("div", { class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
349
349
  }
350
350
  get el() { return this; }
351
351
  static get watchers() { return {
@@ -482,7 +482,7 @@ const Picker = /*@__PURE__*/ proxyCustomElement(class Picker extends HTMLElement
482
482
  this.emitInputModeChange();
483
483
  }
484
484
  render() {
485
- return (h(Host, { key: '56b1421dee69c5aa7521b70199f047f4033c0a94', onPointerDown: (ev) => this.onPointerDown(ev), onClick: () => this.onClick() }, h("input", { key: '6956b6ee5debbad88e90d8b307833a4c112cabfb', "aria-hidden": "true", tabindex: -1, inputmode: "numeric", type: "number", onKeyDown: (ev) => {
485
+ return (h(Host, { key: '6d9d2f8427c722ac1e4ad401e3091f86b95af503', onPointerDown: (ev) => this.onPointerDown(ev), onClick: () => this.onClick() }, h("input", { key: 'b885e06c95ad966d477d873154627766ecf5f5f9', "aria-hidden": "true", tabindex: -1, inputmode: "numeric", type: "number", onKeyDown: (ev) => {
486
486
  var _a;
487
487
  /**
488
488
  * The "Enter" key represents
@@ -497,7 +497,7 @@ const Picker = /*@__PURE__*/ proxyCustomElement(class Picker extends HTMLElement
497
497
  if (ev.key === 'Enter') {
498
498
  (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.blur();
499
499
  }
500
- }, ref: (el) => (this.inputEl = el), onInput: () => this.onInputChange(), onBlur: () => this.exitInputMode() }), h("div", { key: 'b6acaac9ed883ab1db90a09f7ef3c15feb8fa38b', class: "picker-before" }), h("div", { key: '76a49ca1b135f5fdd31a6230053af1f58d0d7dd1', class: "picker-after" }), h("div", { key: '1e265527d12ffd6dc005133ac7fcfc2a1e02c7c3', class: "picker-highlight", ref: (el) => (this.highlightEl = el) }), h("slot", { key: '828077cb8f6a8061d3509aca018d7b06d3e98130' })));
500
+ }, ref: (el) => (this.inputEl = el), onInput: () => this.onInputChange(), onBlur: () => this.exitInputMode() }), h("div", { key: '91e060f4dd634ebaca072dbe7726a84f6f2c7040', class: "picker-before" }), h("div", { key: '2e06c9db12040c5a7af48c79ce3e1c32ce7a6ae4', class: "picker-after" }), h("div", { key: '791a934f6886ca89b370f71cd5c848ee6dac5b90', class: "picker-highlight", ref: (el) => (this.highlightEl = el) }), h("slot", { key: 'aed4fe303f87b804ce00f2633b0af4905600670a' })));
501
501
  }
502
502
  get el() { return this; }
503
503
  static get style() { return {
@@ -2,11 +2,11 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
5
+ import { B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, n as focusFirstDescendant, g as dismiss, h as eventMethod } from './overlays.js';
5
6
  import { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate.js';
6
7
  import { r as raf, g as getElementRoot, a as addEventListener, j as hasLazyBuild } from './helpers.js';
7
8
  import { c as createLockController } from './lock-controller.js';
8
9
  import { p as printIonWarning } from './index6.js';
9
- import { B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, n as focusFirstDescendant, g as dismiss, h as eventMethod } from './overlays.js';
10
10
  import { b as getIonMode, a as isPlatform } from './ionic-global.js';
11
11
  import { g as getClassMap } from './theme.js';
12
12
  import { e as deepReady, w as waitForMount } from './index2.js';
@@ -1226,7 +1226,7 @@ const Popover = /*@__PURE__*/ proxyCustomElement(class Popover extends HTMLEleme
1226
1226
  * descendant inside of the popover.
1227
1227
  */
1228
1228
  if (this.focusDescendantOnPresent) {
1229
- focusFirstDescendant(this.el, this.el);
1229
+ focusFirstDescendant(el);
1230
1230
  }
1231
1231
  unlock();
1232
1232
  }
@@ -1292,9 +1292,9 @@ const Popover = /*@__PURE__*/ proxyCustomElement(class Popover extends HTMLEleme
1292
1292
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes } = this;
1293
1293
  const desktop = isPlatform('desktop');
1294
1294
  const enableArrow = arrow && !parentPopover;
1295
- return (h(Host, Object.assign({ key: '71557e45cb839792d51f44786a3e8c1f92fd070c', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
1295
+ return (h(Host, Object.assign({ key: 'fb58b5b3124ea4b0ced6d73558844121245a0951', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
1296
1296
  zIndex: `${20000 + this.overlayIndex}`,
1297
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: '6b829c9938f208c55fe2ac749875e7acc3b95b93', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { class: "popover-arrow", part: "arrow" }), h("div", { key: '29f3706a787a4eae20b12c9589272f0b8026d0b2', class: "popover-content", part: "content" }, h("slot", { key: '51c20057566904cbfe4cc5e199180bd144b65ca6' })))));
1297
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: 'a7b6a76eeeb840b806434cf5c9beaaf43a975867', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { class: "popover-arrow", part: "arrow" }), h("div", { key: '9c59d1a567f66fb939aa194e452b46fd1dbef27c', class: "popover-content", part: "content" }, h("slot", { key: 'a8e260ace3d487c9e9c861725488a4bef7aeeb02' })))));
1298
1298
  }
1299
1299
  get el() { return this; }
1300
1300
  static get watchers() { return {
@@ -158,7 +158,7 @@ const RadioGroup = /*@__PURE__*/ proxyCustomElement(class RadioGroup extends HTM
158
158
  const { label, labelId, el, name, value } = this;
159
159
  const mode = getIonMode(this);
160
160
  renderHiddenInput(true, el, name, value, false);
161
- return h(Host, { key: '3d43aa6696c5293b49fc44cf91e3e41c4f4d12df', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
161
+ return h(Host, { key: 'db2e1c69be545dcb95fa7c7bd0c36a1fd3423294', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
162
162
  }
163
163
  get el() { return this; }
164
164
  static get watchers() { return {
@@ -146,7 +146,7 @@ const Radio = /*@__PURE__*/ proxyCustomElement(class Radio extends HTMLElement {
146
146
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
147
147
  const mode = getIonMode(this);
148
148
  const inItem = hostContext('ion-item', el);
149
- return (h(Host, { key: '46bb0202f75b6cc81df10de71fbe971dc4dcaa68', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses(color, {
149
+ return (h(Host, { key: 'dace1b39a24a928486fa73031277db04c0f437c0', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses(color, {
150
150
  [mode]: true,
151
151
  'in-item': inItem,
152
152
  'radio-checked': checked,
@@ -157,10 +157,10 @@ const Radio = /*@__PURE__*/ proxyCustomElement(class Radio extends HTMLElement {
157
157
  // Focus and active styling should not apply when the radio is in an item
158
158
  'ion-activatable': !inItem,
159
159
  'ion-focusable': !inItem,
160
- }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, h("label", { key: '55061e8cc857752d963c9e4a65f46727f5c2cd9d', class: "radio-wrapper" }, h("div", { key: '589fd41fccd0e6d007e7bc502067f3f2447e4b80', class: {
160
+ }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, h("label", { key: '4a9ab56b16003ea5fe2a737adf2bc1f4be02d2c7', class: "radio-wrapper" }, h("div", { key: '4545fc8a73dc428c20f521de02e0d65b4d365dc1', class: {
161
161
  'label-text-wrapper': true,
162
162
  'label-text-wrapper-hidden': !hasLabel,
163
- }, part: "label" }, h("slot", { key: '0076f1f3b64c1a0cf2bc511424956a63d6cf2db9' })), h("div", { key: '1505a84e6dc8715f8fcb19ce94fab79e624a0622', class: "native-wrapper" }, this.renderRadioControl()))));
163
+ }, part: "label" }, h("slot", { key: '6c0ab29c0a724314c0591915a72ec004d66532e3' })), h("div", { key: '03ce5e87635fdbe5c0b3455e7dc2cbcb0ce189b6', class: "native-wrapper" }, this.renderRadioControl()))));
164
164
  }
165
165
  get el() { return this; }
166
166
  static get watchers() { return {
@@ -66,7 +66,7 @@ const RippleEffect = /*@__PURE__*/ proxyCustomElement(class RippleEffect extends
66
66
  }
67
67
  render() {
68
68
  const mode = getIonMode(this);
69
- return (h(Host, { key: '42d95cc2382286e3bc5d68603f8292eb57ba10f5', role: "presentation", class: {
69
+ return (h(Host, { key: '97bc96ca8dc4bf162302d0cf6980f45534495a3d', role: "presentation", class: {
70
70
  [mode]: true,
71
71
  unbounded: this.unbounded,
72
72
  } }));
@@ -5,13 +5,12 @@ import { proxyCustomElement, HTMLElement, h, forceUpdate, Host } from '@stencil/
5
5
  import { s as safeCall } from './overlays.js';
6
6
  import { g as getClassMap } from './theme.js';
7
7
  import { b as getIonMode } from './ionic-global.js';
8
- import { d as defineCustomElement$a } from './checkbox.js';
9
- import { d as defineCustomElement$9 } from './icon.js';
10
- import { d as defineCustomElement$8 } from './item.js';
11
- import { d as defineCustomElement$7 } from './label.js';
12
- import { d as defineCustomElement$6 } from './list.js';
13
- import { d as defineCustomElement$5 } from './list-header.js';
14
- import { d as defineCustomElement$4 } from './note.js';
8
+ import { d as defineCustomElement$9 } from './checkbox.js';
9
+ import { d as defineCustomElement$8 } from './icon.js';
10
+ import { d as defineCustomElement$7 } from './item.js';
11
+ import { d as defineCustomElement$6 } from './label.js';
12
+ import { d as defineCustomElement$5 } from './list.js';
13
+ import { d as defineCustomElement$4 } from './list-header.js';
15
14
  import { d as defineCustomElement$3 } from './radio.js';
16
15
  import { d as defineCustomElement$2 } from './radio-group.js';
17
16
  import { d as defineCustomElement$1 } from './ripple-effect.js';
@@ -118,7 +117,7 @@ const SelectPopover = /*@__PURE__*/ proxyCustomElement(class SelectPopover exten
118
117
  render() {
119
118
  const { header, message, options, subHeader } = this;
120
119
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
121
- return (h(Host, { key: '07c094ea0b8ba353f6147a912eedc3c75719fd4e', class: getIonMode(this) }, h("ion-list", { key: '4d110e3e036bbfecc418d0e37fc9bc4ec0c18674' }, header !== undefined && h("ion-list-header", null, header), hasSubHeaderOrMessage && (h("ion-item", null, h("ion-label", { class: "ion-text-wrap" }, subHeader !== undefined && h("h3", null, subHeader), message !== undefined && h("p", null, message)))), this.renderOptions(options))));
120
+ return (h(Host, { key: '7b93c55895f66fc6431862b7b47eeb60eaa8c292', class: getIonMode(this) }, h("ion-list", { key: '3a74ec35ec9b627a192d8ad3a206f81df838342b' }, header !== undefined && h("ion-list-header", null, header), hasSubHeaderOrMessage && (h("ion-item", null, h("ion-label", { class: "ion-text-wrap" }, subHeader !== undefined && h("h3", null, subHeader), message !== undefined && h("p", null, message)))), this.renderOptions(options))));
122
121
  }
123
122
  get el() { return this; }
124
123
  static get style() { return {
@@ -136,7 +135,7 @@ function defineCustomElement() {
136
135
  if (typeof customElements === "undefined") {
137
136
  return;
138
137
  }
139
- const components = ["ion-select-popover", "ion-checkbox", "ion-icon", "ion-item", "ion-label", "ion-list", "ion-list-header", "ion-note", "ion-radio", "ion-radio-group", "ion-ripple-effect"];
138
+ const components = ["ion-select-popover", "ion-checkbox", "ion-icon", "ion-item", "ion-label", "ion-list", "ion-list-header", "ion-radio", "ion-radio-group", "ion-ripple-effect"];
140
139
  components.forEach(tagName => { switch (tagName) {
141
140
  case "ion-select-popover":
142
141
  if (!customElements.get(tagName)) {
@@ -144,36 +143,31 @@ function defineCustomElement() {
144
143
  }
145
144
  break;
146
145
  case "ion-checkbox":
147
- if (!customElements.get(tagName)) {
148
- defineCustomElement$a();
149
- }
150
- break;
151
- case "ion-icon":
152
146
  if (!customElements.get(tagName)) {
153
147
  defineCustomElement$9();
154
148
  }
155
149
  break;
156
- case "ion-item":
150
+ case "ion-icon":
157
151
  if (!customElements.get(tagName)) {
158
152
  defineCustomElement$8();
159
153
  }
160
154
  break;
161
- case "ion-label":
155
+ case "ion-item":
162
156
  if (!customElements.get(tagName)) {
163
157
  defineCustomElement$7();
164
158
  }
165
159
  break;
166
- case "ion-list":
160
+ case "ion-label":
167
161
  if (!customElements.get(tagName)) {
168
162
  defineCustomElement$6();
169
163
  }
170
164
  break;
171
- case "ion-list-header":
165
+ case "ion-list":
172
166
  if (!customElements.get(tagName)) {
173
167
  defineCustomElement$5();
174
168
  }
175
169
  break;
176
- case "ion-note":
170
+ case "ion-list-header":
177
171
  if (!customElements.get(tagName)) {
178
172
  defineCustomElement$4();
179
173
  }
@@ -185,7 +185,7 @@ const Spinner = /*@__PURE__*/ proxyCustomElement(class Spinner extends HTMLEleme
185
185
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
186
186
  }
187
187
  }
188
- return (h(Host, { key: 'bfb8b93a58da60686f6a1e6b8a5e0d1b7dea1f5d', class: createColorClasses(self.color, {
188
+ return (h(Host, { key: 'd33d08486ee9d9069abbe37b17e58fc2c321a414', class: createColorClasses(self.color, {
189
189
  [mode]: true,
190
190
  [`spinner-${spinnerName}`]: true,
191
191
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -4,7 +4,7 @@
4
4
  'use strict';
5
5
 
6
6
  const index = require('./index-c8d52405.js');
7
- const helpers = require('./helpers-b71ca811.js');
7
+ const helpers = require('./helpers-668b3d95.js');
8
8
 
9
9
  let animationPrefix;
10
10
  /**
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const ionicGlobal = require('./ionic-global-59a10130.js');
6
+ const ionicGlobal = require('./ionic-global-5762eca9.js');
7
7
 
8
8
  const globalScripts = ionicGlobal.initialize;
9
9
 
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const index$1 = require('./index-0ffe376d.js');
6
+ const index$1 = require('./index-2d21d526.js');
7
7
  const haptic = require('./haptic-b882e0bb.js');
8
8
  const index = require('./index-ee07ed59.js');
9
9