voyager-ionic-core 7.6.5 → 7.7.0

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 (704) hide show
  1. package/components/action-sheet.js +7 -5
  2. package/components/alert.js +7 -5
  3. package/components/backdrop.js +5 -3
  4. package/components/button.js +6 -4
  5. package/components/buttons.js +5 -3
  6. package/components/checkbox.js +4 -2
  7. package/components/data.js +1 -1
  8. package/components/hardware-back-button.js +47 -3
  9. package/components/helpers.js +1 -1
  10. package/components/icon.js +2 -1
  11. package/components/ion-accordion-group.js +6 -4
  12. package/components/ion-accordion.js +9 -5
  13. package/components/ion-app.js +14 -3
  14. package/components/ion-avatar.js +5 -3
  15. package/components/ion-back-button.js +6 -4
  16. package/components/ion-badge.js +6 -4
  17. package/components/ion-breadcrumb.js +6 -4
  18. package/components/ion-breadcrumbs.js +6 -4
  19. package/components/ion-card-content.js +5 -3
  20. package/components/ion-card-header.js +6 -4
  21. package/components/ion-card-subtitle.js +6 -4
  22. package/components/ion-card-title.js +6 -4
  23. package/components/ion-card.js +5 -3
  24. package/components/ion-chip.js +6 -4
  25. package/components/ion-col.js +4 -3
  26. package/components/ion-content.js +5 -4
  27. package/components/ion-datetime-button.js +6 -4
  28. package/components/ion-datetime.js +40 -19
  29. package/components/ion-fab-button.js +6 -4
  30. package/components/ion-fab-list.js +4 -3
  31. package/components/ion-fab.js +4 -3
  32. package/components/ion-footer.js +6 -4
  33. package/components/ion-grid.js +4 -3
  34. package/components/ion-header.js +6 -4
  35. package/components/ion-img.js +3 -2
  36. package/components/ion-infinite-scroll-content.js +6 -4
  37. package/components/ion-infinite-scroll.js +3 -2
  38. package/components/ion-input.js +4 -2
  39. package/components/ion-item-divider.js +6 -4
  40. package/components/ion-item-group.js +5 -3
  41. package/components/ion-item-option.js +6 -4
  42. package/components/ion-item-options.js +5 -3
  43. package/components/ion-item-sliding.js +3 -2
  44. package/components/ion-loading.js +6 -4
  45. package/components/ion-menu-button.js +6 -4
  46. package/components/ion-menu-toggle.js +4 -3
  47. package/components/ion-menu.js +13 -5
  48. package/components/ion-modal.js +8 -7
  49. package/components/ion-nav-link.js +1 -1
  50. package/components/ion-nav.js +3 -2
  51. package/components/ion-picker.js +6 -4
  52. package/components/ion-progress-bar.js +5 -3
  53. package/components/ion-range.js +4 -2
  54. package/components/ion-refresher-content.js +1 -1
  55. package/components/ion-refresher.js +5 -3
  56. package/components/ion-reorder-group.js +3 -2
  57. package/components/ion-reorder.js +5 -3
  58. package/components/ion-router-link.js +4 -3
  59. package/components/ion-router-outlet.js +3 -2
  60. package/components/ion-row.js +3 -2
  61. package/components/ion-searchbar.js +8 -6
  62. package/components/ion-segment-button.js +7 -5
  63. package/components/ion-segment.js +13 -4
  64. package/components/ion-select-option.js +3 -2
  65. package/components/ion-select.js +24 -3
  66. package/components/ion-skeleton-text.js +4 -3
  67. package/components/ion-split-pane.js +15 -14
  68. package/components/ion-tab-bar.js +6 -4
  69. package/components/ion-tab-button.js +6 -4
  70. package/components/ion-tab.js +4 -3
  71. package/components/ion-tabs.js +3 -2
  72. package/components/ion-text.js +4 -3
  73. package/components/ion-textarea.js +4 -2
  74. package/components/ion-thumbnail.js +3 -2
  75. package/components/ion-title.js +6 -4
  76. package/components/ion-toast.js +6 -4
  77. package/components/ion-toggle.js +4 -2
  78. package/components/ion-toolbar.js +6 -4
  79. package/components/item.js +14 -6
  80. package/components/label.js +5 -3
  81. package/components/list-header.js +6 -4
  82. package/components/list.js +5 -3
  83. package/components/note.js +6 -4
  84. package/components/overlays.js +29 -10
  85. package/components/picker-column-internal.js +7 -5
  86. package/components/picker-column.js +6 -4
  87. package/components/picker-internal.js +21 -3
  88. package/components/popover.js +8 -6
  89. package/components/radio-group.js +1 -1
  90. package/components/radio.js +4 -2
  91. package/components/ripple-effect.js +3 -2
  92. package/components/select-popover.js +5 -3
  93. package/components/spinner.js +3 -2
  94. package/css/core.css +28 -0
  95. package/css/core.css.map +1 -1
  96. package/css/ionic.bundle.css +1 -1
  97. package/css/ionic.bundle.css.map +1 -1
  98. package/dist/cjs/{animation-9b401d39.js → animation-fdab9de5.js} +1 -1
  99. package/dist/cjs/{app-globals-07127773.js → app-globals-5a17c5e1.js} +1 -1
  100. package/dist/cjs/{button-active-85665616.js → button-active-b8c3f603.js} +1 -1
  101. package/dist/cjs/{form-controller-7d42a722.js → form-controller-7b90d7b7.js} +1 -1
  102. package/dist/cjs/{framework-delegate-1c29b14a.js → framework-delegate-a3e6d060.js} +1 -1
  103. package/dist/cjs/{hardware-back-button-76833cac.js → hardware-back-button-d23873bb.js} +48 -2
  104. package/dist/cjs/{helpers-76bb7efb.js → helpers-2e1028fa.js} +1 -1
  105. package/dist/cjs/{index-b4f986cd.js → index-10da82ce.js} +1 -1
  106. package/dist/cjs/{index-da15e99c.js → index-53d162b2.js} +1 -1
  107. package/dist/cjs/{index-71f41461.js → index-5a471146.js} +32 -2
  108. package/dist/cjs/{index-6bb6b651.js → index-84351d21.js} +4 -4
  109. package/dist/cjs/{index-96a721a7.js → index-8c679cbf.js} +4 -4
  110. package/dist/cjs/index.cjs.js +11 -11
  111. package/dist/cjs/{input-shims-a23bb0f4.js → input-shims-6f804705.js} +2 -2
  112. package/dist/cjs/{input.utils-3d0166a2.js → input.utils-d693d18a.js} +1 -1
  113. package/dist/cjs/ion-accordion_2.cjs.entry.js +18 -12
  114. package/dist/cjs/ion-action-sheet.cjs.entry.js +15 -13
  115. package/dist/cjs/ion-alert.cjs.entry.js +15 -13
  116. package/dist/cjs/ion-app_8.cjs.entry.js +72 -50
  117. package/dist/cjs/ion-avatar_3.cjs.entry.js +16 -11
  118. package/dist/cjs/ion-back-button.cjs.entry.js +9 -7
  119. package/dist/cjs/ion-backdrop.cjs.entry.js +7 -5
  120. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +15 -11
  121. package/dist/cjs/ion-button_2.cjs.entry.js +11 -8
  122. package/dist/cjs/ion-card_5.cjs.entry.js +31 -21
  123. package/dist/cjs/ion-checkbox.cjs.entry.js +8 -6
  124. package/dist/cjs/ion-chip.cjs.entry.js +8 -6
  125. package/dist/cjs/ion-col_3.cjs.entry.js +13 -10
  126. package/dist/cjs/ion-datetime-button.cjs.entry.js +8 -6
  127. package/dist/cjs/ion-datetime_3.cjs.entry.js +58 -33
  128. package/dist/cjs/ion-fab_3.cjs.entry.js +17 -13
  129. package/dist/cjs/ion-img.cjs.entry.js +6 -5
  130. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +13 -10
  131. package/dist/cjs/ion-input.cjs.entry.js +10 -8
  132. package/dist/cjs/ion-item-option_3.cjs.entry.js +18 -13
  133. package/dist/cjs/ion-item_8.cjs.entry.js +53 -33
  134. package/dist/cjs/ion-loading.cjs.entry.js +13 -11
  135. package/dist/cjs/ion-menu_3.cjs.entry.js +29 -19
  136. package/dist/cjs/ion-modal.cjs.entry.js +17 -16
  137. package/dist/cjs/ion-nav_2.cjs.entry.js +10 -9
  138. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +10 -8
  139. package/dist/cjs/ion-picker-internal.cjs.entry.js +23 -5
  140. package/dist/cjs/ion-popover.cjs.entry.js +16 -14
  141. package/dist/cjs/ion-progress-bar.cjs.entry.js +8 -6
  142. package/dist/cjs/ion-radio_2.cjs.entry.js +9 -7
  143. package/dist/cjs/ion-range.cjs.entry.js +9 -7
  144. package/dist/cjs/ion-refresher_2.cjs.entry.js +11 -9
  145. package/dist/cjs/ion-reorder_2.cjs.entry.js +12 -9
  146. package/dist/cjs/ion-ripple-effect.cjs.entry.js +5 -4
  147. package/dist/cjs/ion-route_4.cjs.entry.js +7 -6
  148. package/dist/cjs/ion-searchbar.cjs.entry.js +11 -9
  149. package/dist/cjs/ion-segment_2.cjs.entry.js +23 -12
  150. package/dist/cjs/ion-select_3.cjs.entry.js +40 -16
  151. package/dist/cjs/ion-spinner.cjs.entry.js +5 -4
  152. package/dist/cjs/ion-split-pane.cjs.entry.js +17 -16
  153. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +15 -11
  154. package/dist/cjs/ion-tab_2.cjs.entry.js +10 -8
  155. package/dist/cjs/ion-text.cjs.entry.js +6 -5
  156. package/dist/cjs/ion-textarea.cjs.entry.js +10 -8
  157. package/dist/cjs/ion-toast.cjs.entry.js +13 -11
  158. package/dist/cjs/ion-toggle.cjs.entry.js +8 -6
  159. package/dist/cjs/{ionic-global-c70c3fb5.js → ionic-global-7358c23e.js} +1 -1
  160. package/dist/cjs/ionic.cjs.js +5 -5
  161. package/dist/cjs/{ios.transition-9624a175.js → ios.transition-8e40c54e.js} +4 -4
  162. package/dist/cjs/loader.cjs.js +4 -4
  163. package/dist/cjs/{md.transition-786baf9a.js → md.transition-597a2479.js} +4 -4
  164. package/dist/cjs/{notch-controller-9735e7ac.js → notch-controller-db0127c4.js} +1 -1
  165. package/dist/cjs/{overlays-4c97edb0.js → overlays-eaf2075f.js} +32 -13
  166. package/dist/cjs/{status-tap-66296dcb.js → status-tap-b0bfea34.js} +3 -3
  167. package/dist/cjs/{swipe-back-e37a1a5c.js → swipe-back-7a848bb8.js} +1 -1
  168. package/dist/collection/collection-manifest.json +1 -1
  169. package/dist/collection/components/accordion/accordion.js +5 -3
  170. package/dist/collection/components/accordion/test/disabled/accordion.e2e.js +94 -0
  171. package/dist/collection/components/accordion/test/readonly/accordion.e2e.js +94 -0
  172. package/dist/collection/components/accordion-group/accordion-group.js +2 -2
  173. package/dist/collection/components/action-sheet/action-sheet.js +3 -3
  174. package/dist/collection/components/alert/alert.ios.css +23 -0
  175. package/dist/collection/components/alert/alert.js +2 -2
  176. package/dist/collection/components/alert/test/basic/alert.e2e.js +29 -4
  177. package/dist/collection/components/app/app.js +12 -2
  178. package/dist/collection/components/avatar/avatar.js +1 -1
  179. package/dist/collection/components/back-button/back-button.js +2 -2
  180. package/dist/collection/components/backdrop/backdrop.js +1 -1
  181. package/dist/collection/components/badge/badge.js +2 -2
  182. package/dist/collection/components/breadcrumb/breadcrumb.js +2 -2
  183. package/dist/collection/components/breadcrumbs/breadcrumbs.js +2 -2
  184. package/dist/collection/components/button/button.js +2 -2
  185. package/dist/collection/components/button/test/basic/button.e2e.js +1 -1
  186. package/dist/collection/components/buttons/buttons.js +1 -1
  187. package/dist/collection/components/card/card.js +1 -1
  188. package/dist/collection/components/card-content/card-content.js +1 -1
  189. package/dist/collection/components/card-header/card-header.js +2 -2
  190. package/dist/collection/components/card-subtitle/card-subtitle.js +2 -2
  191. package/dist/collection/components/card-title/card-title.js +2 -2
  192. package/dist/collection/components/chip/chip.js +2 -2
  193. package/dist/collection/components/col/col.js +2 -2
  194. package/dist/collection/components/content/content.js +3 -3
  195. package/dist/collection/components/datetime/datetime.js +35 -16
  196. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +3 -3
  197. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +12 -12
  198. package/dist/collection/components/datetime/test/datetime.e2e.js +1 -1
  199. package/dist/collection/components/datetime/test/disable-dates/datetime.e2e.js +1 -1
  200. package/dist/collection/components/datetime/test/disabled/datetime.e2e.js +4 -4
  201. package/dist/collection/components/datetime/test/display/datetime.e2e.js +9 -9
  202. package/dist/collection/components/datetime/test/locale/datetime.e2e.js +3 -3
  203. package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +11 -11
  204. package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +1 -1
  205. package/dist/collection/components/datetime/test/multiple/datetime.e2e.js +22 -5
  206. package/dist/collection/components/datetime/test/position/datetime.e2e.js +1 -1
  207. package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +32 -32
  208. package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +3 -3
  209. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +4 -4
  210. package/dist/collection/components/datetime/test/set-value/datetime.e2e.js +4 -4
  211. package/dist/collection/components/datetime/test/time-label/datetime.e2e.js +2 -2
  212. package/dist/collection/components/datetime/test/values/datetime.e2e.js +4 -4
  213. package/dist/collection/components/datetime-button/datetime-button.js +1 -1
  214. package/dist/collection/components/datetime-button/test/basic/datetime-button.e2e.js +14 -14
  215. package/dist/collection/components/datetime-button/test/disabled/datetime-button.e2e.js +2 -2
  216. package/dist/collection/components/datetime-button/test/multiple/datetime-button.e2e.js +6 -6
  217. package/dist/collection/components/fab/fab.js +2 -2
  218. package/dist/collection/components/fab-button/fab-button.js +2 -2
  219. package/dist/collection/components/fab-list/fab-list.js +2 -2
  220. package/dist/collection/components/footer/footer.js +2 -2
  221. package/dist/collection/components/grid/grid.js +2 -2
  222. package/dist/collection/components/header/header.js +2 -2
  223. package/dist/collection/components/header/test/condense/header.e2e.js +2 -2
  224. package/dist/collection/components/img/img.js +1 -1
  225. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  226. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  227. package/dist/collection/components/item/item.ios.css +2 -39
  228. package/dist/collection/components/item/item.js +9 -2
  229. package/dist/collection/components/item/item.md.css +2 -39
  230. package/dist/collection/components/item/test/item.spec.js +20 -0
  231. package/dist/collection/components/item-divider/item-divider.js +2 -2
  232. package/dist/collection/components/item-group/item-group.js +1 -1
  233. package/dist/collection/components/item-option/item-option.js +2 -2
  234. package/dist/collection/components/item-options/item-options.js +1 -1
  235. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  236. package/dist/collection/components/label/label.js +1 -1
  237. package/dist/collection/components/label/test/basic/label.e2e.js +2 -2
  238. package/dist/collection/components/list/list.js +1 -1
  239. package/dist/collection/components/list-header/list-header.js +2 -2
  240. package/dist/collection/components/loading/loading.js +2 -2
  241. package/dist/collection/components/menu/menu.js +8 -8
  242. package/dist/collection/components/menu-button/menu-button.js +2 -2
  243. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  244. package/dist/collection/components/modal/modal.js +4 -5
  245. package/dist/collection/components/modal/test/sheet/modal.e2e.js +1 -1
  246. package/dist/collection/components/modal/test/standalone/modal.e2e.js +1 -1
  247. package/dist/collection/components/nav/nav.js +1 -1
  248. package/dist/collection/components/nav-link/nav-link.js +1 -1
  249. package/dist/collection/components/note/note.js +2 -2
  250. package/dist/collection/components/note/test/a11y/note.e2e.js +6 -6
  251. package/dist/collection/components/picker/picker.js +2 -2
  252. package/dist/collection/components/picker-column/picker-column.js +2 -2
  253. package/dist/collection/components/picker-column-internal/picker-column-internal.js +3 -3
  254. package/dist/collection/components/picker-internal/picker-internal.js +17 -1
  255. package/dist/collection/components/picker-internal/test/keyboard-entry/picker-internal.e2e.js +32 -0
  256. package/dist/collection/components/popover/popover.ios.css +1 -1
  257. package/dist/collection/components/popover/popover.js +2 -2
  258. package/dist/collection/components/popover/popover.md.css +1 -1
  259. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  260. package/dist/collection/components/radio-group/radio-group.js +1 -1
  261. package/dist/collection/components/radio-group/test/radio-group-events.e2e.js +15 -15
  262. package/dist/collection/components/range/test/label/range.e2e.js +2 -2
  263. package/dist/collection/components/range/test/range-events.e2e.js +2 -2
  264. package/dist/collection/components/refresher/refresher.js +1 -1
  265. package/dist/collection/components/refresher/test/test.utils.js +1 -1
  266. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  267. package/dist/collection/components/reorder/reorder.js +1 -1
  268. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  269. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  270. package/dist/collection/components/ripple-effect/test/basic/ripple-effect.e2e.js +2 -2
  271. package/dist/collection/components/router-link/router-link.js +2 -2
  272. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  273. package/dist/collection/components/row/row.js +1 -1
  274. package/dist/collection/components/searchbar/searchbar.js +4 -4
  275. package/dist/collection/components/segment/segment.js +9 -2
  276. package/dist/collection/components/segment-button/segment-button.js +3 -3
  277. package/dist/collection/components/select/select.js +20 -1
  278. package/dist/collection/components/select/test/disabled/select.e2e.js +1 -1
  279. package/dist/collection/components/select/test/select.spec.js +15 -0
  280. package/dist/collection/components/select-option/select-option.js +1 -1
  281. package/dist/collection/components/select-popover/select-popover.js +1 -1
  282. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  283. package/dist/collection/components/spinner/spinner.js +1 -1
  284. package/dist/collection/components/split-pane/split-pane.js +11 -12
  285. package/dist/collection/components/tab/tab.js +2 -2
  286. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  287. package/dist/collection/components/tab-button/tab-button.js +2 -2
  288. package/dist/collection/components/tabs/tabs.js +1 -1
  289. package/dist/collection/components/text/text.js +2 -2
  290. package/dist/collection/components/textarea/test/textarea-events.e2e.js +4 -4
  291. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  292. package/dist/collection/components/title/title.js +2 -2
  293. package/dist/collection/components/toast/toast.js +2 -2
  294. package/dist/collection/components/toolbar/toolbar.js +2 -2
  295. package/dist/collection/utils/hardware-back-button.js +45 -2
  296. package/dist/collection/utils/helpers.js +1 -1
  297. package/dist/collection/utils/overlays.js +29 -9
  298. package/dist/collection/utils/test/hardware-back-button.spec.js +38 -0
  299. package/dist/docs.json +5 -10
  300. package/dist/esm/{animation-dde8cc0d.js → animation-60dbdd13.js} +1 -1
  301. package/dist/esm/{app-globals-52c78291.js → app-globals-47226a12.js} +1 -1
  302. package/dist/esm/{button-active-b62776db.js → button-active-4bee452c.js} +1 -1
  303. package/dist/esm/{data-775093f5.js → data-0f3ab200.js} +1 -1
  304. package/dist/esm/{form-controller-548aa79c.js → form-controller-014aa89f.js} +1 -1
  305. package/dist/esm/{framework-delegate-bc1fd82a.js → framework-delegate-fed7fe7c.js} +1 -1
  306. package/dist/esm/{hardware-back-button-b2bc76db.js → hardware-back-button-f42b9c80.js} +48 -3
  307. package/dist/esm/{helpers-ae653409.js → helpers-c0b9ca37.js} +1 -1
  308. package/dist/esm/{index-01cb9192.js → index-48209844.js} +4 -4
  309. package/dist/esm/{index-a97c95a7.js → index-4b98143d.js} +4 -4
  310. package/dist/esm/{index-27668d5b.js → index-73881b51.js} +32 -2
  311. package/dist/esm/{index-82eeb47f.js → index-d64f34ea.js} +1 -1
  312. package/dist/esm/{index-b9e742e5.js → index-eb12ef92.js} +1 -1
  313. package/dist/esm/index.js +11 -11
  314. package/dist/esm/{input-shims-6539ce13.js → input-shims-b90ca55f.js} +2 -2
  315. package/dist/esm/{input.utils-a5a2d164.js → input.utils-6e9b0046.js} +1 -1
  316. package/dist/esm/ion-accordion_2.entry.js +18 -12
  317. package/dist/esm/ion-action-sheet.entry.js +15 -13
  318. package/dist/esm/ion-alert.entry.js +15 -13
  319. package/dist/esm/ion-app_8.entry.js +62 -40
  320. package/dist/esm/ion-avatar_3.entry.js +16 -11
  321. package/dist/esm/ion-back-button.entry.js +9 -7
  322. package/dist/esm/ion-backdrop.entry.js +7 -5
  323. package/dist/esm/ion-breadcrumb_2.entry.js +15 -11
  324. package/dist/esm/ion-button_2.entry.js +11 -8
  325. package/dist/esm/ion-card_5.entry.js +31 -21
  326. package/dist/esm/ion-checkbox.entry.js +8 -6
  327. package/dist/esm/ion-chip.entry.js +8 -6
  328. package/dist/esm/ion-col_3.entry.js +13 -10
  329. package/dist/esm/ion-datetime-button.entry.js +9 -7
  330. package/dist/esm/ion-datetime_3.entry.js +59 -34
  331. package/dist/esm/ion-fab_3.entry.js +17 -13
  332. package/dist/esm/ion-img.entry.js +6 -5
  333. package/dist/esm/ion-infinite-scroll_2.entry.js +13 -10
  334. package/dist/esm/ion-input.entry.js +10 -8
  335. package/dist/esm/ion-item-option_3.entry.js +18 -13
  336. package/dist/esm/ion-item_8.entry.js +53 -33
  337. package/dist/esm/ion-loading.entry.js +13 -11
  338. package/dist/esm/ion-menu_3.entry.js +29 -19
  339. package/dist/esm/ion-modal.entry.js +17 -16
  340. package/dist/esm/ion-nav_2.entry.js +10 -9
  341. package/dist/esm/ion-picker-column-internal.entry.js +10 -8
  342. package/dist/esm/ion-picker-internal.entry.js +23 -5
  343. package/dist/esm/ion-popover.entry.js +16 -14
  344. package/dist/esm/ion-progress-bar.entry.js +8 -6
  345. package/dist/esm/ion-radio_2.entry.js +9 -7
  346. package/dist/esm/ion-range.entry.js +9 -7
  347. package/dist/esm/ion-refresher_2.entry.js +11 -9
  348. package/dist/esm/ion-reorder_2.entry.js +12 -9
  349. package/dist/esm/ion-ripple-effect.entry.js +5 -4
  350. package/dist/esm/ion-route_4.entry.js +7 -6
  351. package/dist/esm/ion-searchbar.entry.js +11 -9
  352. package/dist/esm/ion-segment_2.entry.js +23 -12
  353. package/dist/esm/ion-select_3.entry.js +40 -16
  354. package/dist/esm/ion-spinner.entry.js +5 -4
  355. package/dist/esm/ion-split-pane.entry.js +17 -16
  356. package/dist/esm/ion-tab-bar_2.entry.js +15 -11
  357. package/dist/esm/ion-tab_2.entry.js +10 -8
  358. package/dist/esm/ion-text.entry.js +6 -5
  359. package/dist/esm/ion-textarea.entry.js +10 -8
  360. package/dist/esm/ion-toast.entry.js +13 -11
  361. package/dist/esm/ion-toggle.entry.js +8 -6
  362. package/dist/esm/{ionic-global-8fa0f940.js → ionic-global-778b7863.js} +1 -1
  363. package/dist/esm/ionic.js +6 -6
  364. package/dist/esm/{ios.transition-62fd50ab.js → ios.transition-7ff7381d.js} +4 -4
  365. package/dist/esm/loader.js +5 -5
  366. package/dist/esm/{md.transition-7e56966a.js → md.transition-28a9a26b.js} +4 -4
  367. package/dist/esm/{notch-controller-fea7f9c5.js → notch-controller-15d281a4.js} +1 -1
  368. package/dist/esm/{overlays-8414359b.js → overlays-fad5fe01.js} +32 -13
  369. package/dist/esm/{status-tap-129c01cf.js → status-tap-2b335fb7.js} +3 -3
  370. package/dist/esm/{swipe-back-18cb49f7.js → swipe-back-fa0ec5cd.js} +1 -1
  371. package/dist/esm-es5/{animation-dde8cc0d.js → animation-60dbdd13.js} +1 -1
  372. package/dist/esm-es5/app-globals-47226a12.js +4 -0
  373. package/dist/esm-es5/{button-active-b62776db.js → button-active-4bee452c.js} +1 -1
  374. package/dist/esm-es5/{data-775093f5.js → data-0f3ab200.js} +1 -1
  375. package/dist/esm-es5/{form-controller-548aa79c.js → form-controller-014aa89f.js} +1 -1
  376. package/dist/esm-es5/{framework-delegate-bc1fd82a.js → framework-delegate-fed7fe7c.js} +1 -1
  377. package/dist/esm-es5/hardware-back-button-f42b9c80.js +4 -0
  378. package/dist/esm-es5/helpers-c0b9ca37.js +4 -0
  379. package/dist/esm-es5/{index-01cb9192.js → index-48209844.js} +1 -1
  380. package/dist/esm-es5/{index-a97c95a7.js → index-4b98143d.js} +1 -1
  381. package/dist/esm-es5/{index-27668d5b.js → index-73881b51.js} +2 -2
  382. package/dist/esm-es5/index-d64f34ea.js +4 -0
  383. package/dist/esm-es5/{index-b9e742e5.js → index-eb12ef92.js} +1 -1
  384. package/dist/esm-es5/index.js +1 -1
  385. package/dist/esm-es5/{input-shims-6539ce13.js → input-shims-b90ca55f.js} +1 -1
  386. package/dist/esm-es5/{input.utils-a5a2d164.js → input.utils-6e9b0046.js} +1 -1
  387. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  388. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  389. package/dist/esm-es5/ion-alert.entry.js +1 -1
  390. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  391. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  392. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  393. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  394. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  395. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  396. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  397. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  398. package/dist/esm-es5/ion-chip.entry.js +1 -1
  399. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  400. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  401. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  402. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  403. package/dist/esm-es5/ion-img.entry.js +1 -1
  404. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  405. package/dist/esm-es5/ion-input.entry.js +1 -1
  406. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  407. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  408. package/dist/esm-es5/ion-loading.entry.js +1 -1
  409. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  410. package/dist/esm-es5/ion-modal.entry.js +1 -1
  411. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  412. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  413. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  414. package/dist/esm-es5/ion-popover.entry.js +1 -1
  415. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  416. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  417. package/dist/esm-es5/ion-range.entry.js +1 -1
  418. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  419. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  420. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  421. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  422. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  423. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  424. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  425. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  426. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  427. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  428. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  429. package/dist/esm-es5/ion-text.entry.js +1 -1
  430. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  431. package/dist/esm-es5/ion-toast.entry.js +1 -1
  432. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  433. package/dist/esm-es5/{ionic-global-8fa0f940.js → ionic-global-778b7863.js} +1 -1
  434. package/dist/esm-es5/ionic.js +1 -1
  435. package/dist/esm-es5/{ios.transition-62fd50ab.js → ios.transition-7ff7381d.js} +1 -1
  436. package/dist/esm-es5/loader.js +1 -1
  437. package/dist/esm-es5/md.transition-28a9a26b.js +4 -0
  438. package/dist/esm-es5/{notch-controller-fea7f9c5.js → notch-controller-15d281a4.js} +1 -1
  439. package/dist/esm-es5/overlays-fad5fe01.js +4 -0
  440. package/dist/esm-es5/{status-tap-129c01cf.js → status-tap-2b335fb7.js} +1 -1
  441. package/dist/esm-es5/{swipe-back-18cb49f7.js → swipe-back-fa0ec5cd.js} +1 -1
  442. package/dist/ionic/index.esm.js +1 -1
  443. package/dist/ionic/ionic.esm.js +1 -1
  444. package/dist/ionic/ionic.js +1 -1
  445. package/dist/ionic/p-001010b6.system.js +4 -0
  446. package/dist/ionic/p-044ad008.system.entry.js +4 -0
  447. package/dist/ionic/p-078fd095.system.entry.js +4 -0
  448. package/dist/ionic/p-0ae25399.system.entry.js +4 -0
  449. package/dist/ionic/p-0b955124.system.js +4 -0
  450. package/dist/ionic/p-0e29919c.system.entry.js +4 -0
  451. package/dist/ionic/p-0eef8b34.system.entry.js +4 -0
  452. package/dist/ionic/p-0fd295ef.system.entry.js +4 -0
  453. package/dist/ionic/{p-436bd99a.entry.js → p-108f730a.entry.js} +1 -1
  454. package/dist/ionic/p-1375f21f.js +4 -0
  455. package/dist/ionic/{p-fd41bd8a.js → p-1aa7c019.js} +1 -1
  456. package/dist/ionic/{p-13387c28.entry.js → p-1c531ca2.entry.js} +1 -1
  457. package/dist/ionic/p-1d8c2cfc.system.entry.js +4 -0
  458. package/dist/ionic/{p-53ec4f1c.system.js → p-1dfc11b3.system.js} +1 -1
  459. package/dist/ionic/p-1f6cdf2c.system.entry.js +4 -0
  460. package/dist/ionic/p-20a6513f.system.entry.js +4 -0
  461. package/dist/ionic/p-20f7a91e.system.entry.js +4 -0
  462. package/dist/ionic/{p-ae638cb5.system.js → p-25b08bc4.system.js} +1 -1
  463. package/dist/ionic/p-2da0a76c.entry.js +4 -0
  464. package/dist/ionic/p-2f66e177.system.entry.js +4 -0
  465. package/dist/ionic/p-30c9e049.system.entry.js +4 -0
  466. package/dist/ionic/p-30d77a91.system.js +4 -0
  467. package/dist/ionic/{p-376a6063.js → p-31c495c2.js} +1 -1
  468. package/dist/ionic/p-333f06ed.entry.js +4 -0
  469. package/dist/ionic/{p-23ce95e8.js → p-341b4519.js} +1 -1
  470. package/dist/ionic/p-34947dff.system.entry.js +4 -0
  471. package/dist/ionic/{p-cabad15b.system.js → p-37c33319.system.js} +1 -1
  472. package/dist/ionic/p-38a6fee7.entry.js +4 -0
  473. package/dist/ionic/p-396c1a55.entry.js +4 -0
  474. package/dist/ionic/p-3a54c070.system.entry.js +4 -0
  475. package/dist/ionic/p-3a98f8db.entry.js +4 -0
  476. package/dist/ionic/{p-d51674c5.system.js → p-3c6f02cf.system.js} +1 -1
  477. package/dist/ionic/{p-249633a4.entry.js → p-3cdbaa49.entry.js} +1 -1
  478. package/dist/ionic/p-3eb2da31.js +4 -0
  479. package/dist/ionic/{p-ef3a6b51.system.js → p-3f028207.system.js} +1 -1
  480. package/dist/ionic/p-400574bf.entry.js +4 -0
  481. package/dist/ionic/p-41fde260.entry.js +4 -0
  482. package/dist/ionic/{p-8aa1d0b7.system.js → p-49543c9c.system.js} +1 -1
  483. package/dist/ionic/p-4b2d5b9c.js +4 -0
  484. package/dist/ionic/{p-88d5fbd3.js → p-4f777b5e.js} +1 -1
  485. package/dist/ionic/p-4fc40349.system.entry.js +4 -0
  486. package/dist/ionic/p-51f08a9f.entry.js +4 -0
  487. package/dist/ionic/p-52e02877.entry.js +4 -0
  488. package/dist/ionic/{p-43afd001.system.js → p-55d5cd00.system.js} +1 -1
  489. package/dist/ionic/p-5615cf3f.system.entry.js +4 -0
  490. package/dist/ionic/p-58e3ae88.system.entry.js +4 -0
  491. package/dist/ionic/p-594ead2f.entry.js +4 -0
  492. package/dist/ionic/{p-7bae84aa.entry.js → p-5a0c301f.entry.js} +1 -1
  493. package/dist/ionic/p-5e60dbc8.entry.js +4 -0
  494. package/dist/ionic/{p-d2707f9d.system.js → p-5eea8b4c.system.js} +1 -1
  495. package/dist/ionic/p-5f456b3c.system.entry.js +4 -0
  496. package/dist/ionic/p-61ba2137.system.js +4 -0
  497. package/dist/ionic/{p-be04fcd8.system.entry.js → p-62067818.system.entry.js} +1 -1
  498. package/dist/ionic/{p-4a4bbcc5.system.js → p-62a3c609.system.js} +2 -2
  499. package/dist/ionic/p-680f96e8.system.entry.js +4 -0
  500. package/dist/ionic/p-6871553b.system.js +4 -0
  501. package/dist/ionic/p-6b02edd6.js +4 -0
  502. package/dist/ionic/p-6f38d0c5.system.entry.js +4 -0
  503. package/dist/ionic/p-70026e8f.system.entry.js +4 -0
  504. package/dist/ionic/{p-87bb3735.system.js → p-7330c044.system.js} +1 -1
  505. package/dist/ionic/p-76893257.system.js +5 -0
  506. package/dist/ionic/p-78edc0cd.system.entry.js +4 -0
  507. package/dist/ionic/p-7c32fb95.system.entry.js +4 -0
  508. package/dist/ionic/p-84879f61.system.entry.js +4 -0
  509. package/dist/ionic/p-84f589e1.entry.js +4 -0
  510. package/dist/ionic/p-8569d759.system.entry.js +4 -0
  511. package/dist/ionic/p-86670b91.system.js +4 -0
  512. package/dist/ionic/p-88ca4854.entry.js +4 -0
  513. package/dist/ionic/{p-803ad1e3.entry.js → p-89b5aff2.entry.js} +1 -1
  514. package/dist/ionic/p-8a671f16.entry.js +4 -0
  515. package/dist/ionic/{p-25221a73.js → p-8ddc00f7.js} +1 -1
  516. package/dist/ionic/{p-005e0ad0.js → p-8f1ce253.js} +1 -1
  517. package/dist/ionic/p-92c2178e.system.entry.js +4 -0
  518. package/dist/ionic/{p-29d03b3a.js → p-9393a49f.js} +1 -1
  519. package/dist/ionic/{p-3a75d7fd.js → p-94be3ad7.js} +1 -1
  520. package/dist/ionic/p-95c44e02.system.js +4 -0
  521. package/dist/ionic/p-97eca294.entry.js +4 -0
  522. package/dist/ionic/{p-bb41c476.system.entry.js → p-9a6ab80a.system.entry.js} +1 -1
  523. package/dist/ionic/p-9db1e4c5.entry.js +4 -0
  524. package/dist/ionic/p-9eb4ea47.system.entry.js +4 -0
  525. package/dist/ionic/p-9f5b40c0.system.entry.js +4 -0
  526. package/dist/ionic/p-9f6397ce.entry.js +4 -0
  527. package/dist/ionic/p-a02b2d75.entry.js +4 -0
  528. package/dist/ionic/p-a051c371.entry.js +4 -0
  529. package/dist/ionic/{p-ed60d571.entry.js → p-a114530c.entry.js} +1 -1
  530. package/dist/ionic/p-a19f5ae1.entry.js +4 -0
  531. package/dist/ionic/p-a1bfaa5c.system.entry.js +4 -0
  532. package/dist/ionic/p-a2ad515b.entry.js +4 -0
  533. package/dist/ionic/{p-4180a747.js → p-a3f572a7.js} +1 -1
  534. package/dist/ionic/p-aa7ae6aa.entry.js +4 -0
  535. package/dist/ionic/{p-0bd51c34.system.js → p-abe101da.system.js} +1 -1
  536. package/dist/ionic/p-ac20160b.system.entry.js +4 -0
  537. package/dist/ionic/p-b06ac4a5.system.js +4 -0
  538. package/dist/ionic/p-b1f0c48e.system.entry.js +4 -0
  539. package/dist/ionic/{p-66d633fb.js → p-b253ad7f.js} +1 -1
  540. package/dist/ionic/p-b4a95b80.system.entry.js +4 -0
  541. package/dist/ionic/{p-03e00f90.js → p-b4d8fe47.js} +1 -1
  542. package/dist/ionic/p-b5839dc2.js +4 -0
  543. package/dist/ionic/p-b8c4df21.entry.js +4 -0
  544. package/dist/ionic/p-b8c685a7.system.js +4 -0
  545. package/dist/ionic/{p-3c33dc30.system.js → p-b94882a9.system.js} +1 -1
  546. package/dist/ionic/{p-c1c57873.system.entry.js → p-bc2c03d7.system.entry.js} +1 -1
  547. package/dist/ionic/{p-36d187af.js → p-c2289cd1.js} +1 -1
  548. package/dist/ionic/p-c3d041af.entry.js +4 -0
  549. package/dist/ionic/p-c569d1c8.entry.js +4 -0
  550. package/dist/ionic/p-c5c3710c.js +4 -0
  551. package/dist/ionic/{p-32b8e50d.system.js → p-c6fef62b.system.js} +1 -1
  552. package/dist/ionic/{p-7798c78a.system.js → p-c80c7e90.system.js} +1 -1
  553. package/dist/ionic/{p-013013a3.js → p-c858f685.js} +1 -1
  554. package/dist/ionic/p-c995da88.system.js +4 -0
  555. package/dist/ionic/p-cd055d60.system.entry.js +4 -0
  556. package/dist/ionic/p-ce2eabd5.entry.js +4 -0
  557. package/dist/ionic/p-d181166c.system.entry.js +4 -0
  558. package/dist/ionic/p-d7260b87.entry.js +4 -0
  559. package/dist/ionic/p-d74ca358.entry.js +4 -0
  560. package/dist/ionic/p-d8607ede.entry.js +4 -0
  561. package/dist/ionic/p-d95c8e90.entry.js +4 -0
  562. package/dist/ionic/p-dbb4c012.entry.js +4 -0
  563. package/dist/ionic/p-dce9bc53.entry.js +4 -0
  564. package/dist/ionic/p-dd60faa5.system.entry.js +4 -0
  565. package/dist/ionic/p-df281664.system.entry.js +4 -0
  566. package/dist/ionic/p-df468a8f.entry.js +4 -0
  567. package/dist/ionic/{p-d6129c6e.js → p-e1271366.js} +1 -1
  568. package/dist/ionic/{p-38f2c6bb.system.js → p-e2bb92ed.system.js} +1 -1
  569. package/dist/ionic/p-e68980ff.system.entry.js +4 -0
  570. package/dist/ionic/p-e6aaff14.system.entry.js +4 -0
  571. package/dist/ionic/p-e6cfaa07.system.entry.js +4 -0
  572. package/dist/ionic/{p-1052ef2b.entry.js → p-ea8fbf09.entry.js} +1 -1
  573. package/dist/ionic/p-eb1fdf9f.system.entry.js +4 -0
  574. package/dist/ionic/p-eda7a1db.system.entry.js +4 -0
  575. package/dist/ionic/p-ef441122.entry.js +4 -0
  576. package/dist/ionic/p-efe9180b.entry.js +4 -0
  577. package/dist/ionic/p-f46775e4.entry.js +4 -0
  578. package/dist/ionic/p-f7b43141.system.entry.js +4 -0
  579. package/dist/ionic/{p-18cae04f.js → p-f7dce541.js} +1 -1
  580. package/dist/ionic/{p-e814f9c0.entry.js → p-f88dd429.entry.js} +1 -1
  581. package/dist/ionic/p-f97b9cdd.system.entry.js +4 -0
  582. package/dist/ionic/p-fd2aa50c.js +4 -0
  583. package/dist/ionic/p-fd36799d.system.js +4 -0
  584. package/dist/ionic/{p-b6f6f00e.entry.js → p-fd3f475f.entry.js} +1 -1
  585. package/dist/ionic/p-fd8ced99.system.js +4 -0
  586. package/dist/ionic/p-fe92da17.entry.js +4 -0
  587. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +2 -2
  588. package/dist/types/components/alert/alert-interface.d.ts +2 -2
  589. package/dist/types/components/item/item.d.ts +1 -0
  590. package/dist/types/components/toast/toast-interface.d.ts +2 -2
  591. package/dist/types/interface.d.ts +1 -1
  592. package/dist/types/utils/browser/index.d.ts +22 -1
  593. package/dist/types/utils/config.d.ts +7 -0
  594. package/dist/types/utils/hardware-back-button.d.ts +13 -0
  595. package/hydrate/index.d.ts +1 -1
  596. package/hydrate/index.js +592 -349
  597. package/package.json +6 -6
  598. package/dist/collection/components/accordion/test/accordion.e2e.js +0 -39
  599. package/dist/esm-es5/app-globals-52c78291.js +0 -4
  600. package/dist/esm-es5/hardware-back-button-b2bc76db.js +0 -4
  601. package/dist/esm-es5/helpers-ae653409.js +0 -4
  602. package/dist/esm-es5/index-82eeb47f.js +0 -4
  603. package/dist/esm-es5/md.transition-7e56966a.js +0 -4
  604. package/dist/esm-es5/overlays-8414359b.js +0 -4
  605. package/dist/ionic/p-01438d78.entry.js +0 -4
  606. package/dist/ionic/p-02e530f5.system.js +0 -4
  607. package/dist/ionic/p-0abedd22.entry.js +0 -4
  608. package/dist/ionic/p-0d2b6901.entry.js +0 -4
  609. package/dist/ionic/p-127ff448.entry.js +0 -4
  610. package/dist/ionic/p-1a0bf247.system.entry.js +0 -4
  611. package/dist/ionic/p-1a5f0313.system.js +0 -4
  612. package/dist/ionic/p-1cca10d6.system.js +0 -4
  613. package/dist/ionic/p-1f7fc88d.entry.js +0 -4
  614. package/dist/ionic/p-1ffb40d0.system.entry.js +0 -4
  615. package/dist/ionic/p-23a9d086.js +0 -4
  616. package/dist/ionic/p-25553eba.system.entry.js +0 -4
  617. package/dist/ionic/p-2a496995.js +0 -4
  618. package/dist/ionic/p-3197dbf7.entry.js +0 -4
  619. package/dist/ionic/p-32ad210f.system.js +0 -4
  620. package/dist/ionic/p-35e1a80f.system.entry.js +0 -4
  621. package/dist/ionic/p-38c337e7.system.js +0 -4
  622. package/dist/ionic/p-3b83e483.system.entry.js +0 -4
  623. package/dist/ionic/p-3bcbbf43.system.entry.js +0 -4
  624. package/dist/ionic/p-3f0afc6f.entry.js +0 -4
  625. package/dist/ionic/p-40f68333.system.js +0 -4
  626. package/dist/ionic/p-41040a92.system.entry.js +0 -4
  627. package/dist/ionic/p-41aa2662.entry.js +0 -4
  628. package/dist/ionic/p-48f7e8cc.system.entry.js +0 -4
  629. package/dist/ionic/p-4b3623da.js +0 -4
  630. package/dist/ionic/p-4cd6a04c.system.entry.js +0 -4
  631. package/dist/ionic/p-525b6ac4.system.entry.js +0 -4
  632. package/dist/ionic/p-54c92c77.entry.js +0 -4
  633. package/dist/ionic/p-5a85d71d.entry.js +0 -4
  634. package/dist/ionic/p-5aecd304.system.entry.js +0 -4
  635. package/dist/ionic/p-5c2da581.system.entry.js +0 -4
  636. package/dist/ionic/p-619fafe3.system.entry.js +0 -4
  637. package/dist/ionic/p-61bf9f6f.system.entry.js +0 -4
  638. package/dist/ionic/p-677cb2f7.js +0 -4
  639. package/dist/ionic/p-67c3a2a8.system.js +0 -5
  640. package/dist/ionic/p-688a36c7.entry.js +0 -4
  641. package/dist/ionic/p-6a257379.entry.js +0 -4
  642. package/dist/ionic/p-6b9eee40.system.entry.js +0 -4
  643. package/dist/ionic/p-6ba863b1.system.entry.js +0 -4
  644. package/dist/ionic/p-6e165986.system.entry.js +0 -4
  645. package/dist/ionic/p-7510e462.entry.js +0 -4
  646. package/dist/ionic/p-76b6b42e.system.entry.js +0 -4
  647. package/dist/ionic/p-770f5b43.system.js +0 -4
  648. package/dist/ionic/p-7751def0.system.entry.js +0 -4
  649. package/dist/ionic/p-788942c8.system.entry.js +0 -4
  650. package/dist/ionic/p-790220fd.system.js +0 -4
  651. package/dist/ionic/p-7de774dd.entry.js +0 -4
  652. package/dist/ionic/p-8084e9cb.entry.js +0 -4
  653. package/dist/ionic/p-80ddd0c1.entry.js +0 -4
  654. package/dist/ionic/p-85e04029.entry.js +0 -4
  655. package/dist/ionic/p-87e10168.system.entry.js +0 -4
  656. package/dist/ionic/p-888db766.system.js +0 -4
  657. package/dist/ionic/p-88d99112.system.entry.js +0 -4
  658. package/dist/ionic/p-89c28901.system.entry.js +0 -4
  659. package/dist/ionic/p-928e945d.system.entry.js +0 -4
  660. package/dist/ionic/p-978c6799.system.entry.js +0 -4
  661. package/dist/ionic/p-9a0b9b64.entry.js +0 -4
  662. package/dist/ionic/p-a2d75455.entry.js +0 -4
  663. package/dist/ionic/p-a706cf11.system.entry.js +0 -4
  664. package/dist/ionic/p-a78d17e2.entry.js +0 -4
  665. package/dist/ionic/p-aca77953.entry.js +0 -4
  666. package/dist/ionic/p-b09c8228.entry.js +0 -4
  667. package/dist/ionic/p-b2205a7c.system.entry.js +0 -4
  668. package/dist/ionic/p-b43cf55f.entry.js +0 -4
  669. package/dist/ionic/p-bc59962f.system.entry.js +0 -4
  670. package/dist/ionic/p-bf595ef8.system.entry.js +0 -4
  671. package/dist/ionic/p-bf80f9d1.entry.js +0 -4
  672. package/dist/ionic/p-c0f62b42.system.js +0 -4
  673. package/dist/ionic/p-c16d9f2c.system.entry.js +0 -4
  674. package/dist/ionic/p-c48a9ef3.system.entry.js +0 -4
  675. package/dist/ionic/p-c9219299.entry.js +0 -4
  676. package/dist/ionic/p-cae77add.system.entry.js +0 -4
  677. package/dist/ionic/p-cd6bb7f5.system.entry.js +0 -4
  678. package/dist/ionic/p-cdce5ba3.system.entry.js +0 -4
  679. package/dist/ionic/p-d5216086.entry.js +0 -4
  680. package/dist/ionic/p-d6beb1c9.system.entry.js +0 -4
  681. package/dist/ionic/p-db798370.system.entry.js +0 -4
  682. package/dist/ionic/p-dc1d883c.system.entry.js +0 -4
  683. package/dist/ionic/p-dd9dff11.entry.js +0 -4
  684. package/dist/ionic/p-ddbb2d5b.system.js +0 -4
  685. package/dist/ionic/p-de6f8b28.system.js +0 -4
  686. package/dist/ionic/p-df62accd.entry.js +0 -4
  687. package/dist/ionic/p-e1e05489.system.entry.js +0 -4
  688. package/dist/ionic/p-e3ff3cde.system.entry.js +0 -4
  689. package/dist/ionic/p-e8294cc1.entry.js +0 -4
  690. package/dist/ionic/p-e87564bc.entry.js +0 -4
  691. package/dist/ionic/p-ea7f77e7.entry.js +0 -4
  692. package/dist/ionic/p-eb210b21.system.entry.js +0 -4
  693. package/dist/ionic/p-eb80ca40.entry.js +0 -4
  694. package/dist/ionic/p-eba17ff5.system.entry.js +0 -4
  695. package/dist/ionic/p-eef72e06.js +0 -4
  696. package/dist/ionic/p-efcc4b66.entry.js +0 -4
  697. package/dist/ionic/p-f08d8865.js +0 -4
  698. package/dist/ionic/p-f3478ed6.system.entry.js +0 -4
  699. package/dist/ionic/p-f4bf2448.entry.js +0 -4
  700. package/dist/ionic/p-f4e37ba7.entry.js +0 -4
  701. package/dist/ionic/p-f56d53bd.entry.js +0 -4
  702. package/dist/ionic/p-f8564a9b.system.entry.js +0 -4
  703. package/dist/ionic/p-f865bc9a.entry.js +0 -4
  704. package/dist/ionic/p-fd1a0431.js +0 -4
@@ -27,11 +27,11 @@ export class ToolbarTitle {
27
27
  render() {
28
28
  const mode = getIonMode(this);
29
29
  const size = this.getSize();
30
- return (h(Host, { class: createColorClasses(this.color, {
30
+ return (h(Host, { key: 'b68a272a33ec81d282629a569676f64d3215a0c7', class: createColorClasses(this.color, {
31
31
  [mode]: true,
32
32
  [`title-${size}`]: true,
33
33
  'title-rtl': document.dir === 'rtl',
34
- }) }, h("div", { class: "toolbar-title" }, h("slot", null))));
34
+ }) }, h("div", { key: '9069816a14e6e358695c5bd465787cf297c761bc', class: "toolbar-title" }, h("slot", { key: '8894bd04f2292b54050ee864abb5396deadf9874' }))));
35
35
  }
36
36
  static get is() { return "ion-title"; }
37
37
  static get encapsulation() { return "shadow"; }
@@ -384,9 +384,9 @@ export class Toast {
384
384
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
385
385
  printIonWarning('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);
386
386
  }
387
- return (h(Host, Object.assign({ tabindex: "-1" }, this.htmlAttributes, { style: {
387
+ return (h(Host, Object.assign({ key: '15a5c3e8d475435c838b70c55ef2e7cc12d6abfb', tabindex: "-1" }, this.htmlAttributes, { style: {
388
388
  zIndex: `${60000 + this.overlayIndex}`,
389
- }, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { class: wrapperClass }, h("div", { class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h("ion-icon", { class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), h("div", { class: "toast-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')))));
389
+ }, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { key: 'a6ed7fb75ab098dc632d1a546b4d5298675c14c1', class: wrapperClass }, h("div", { key: '68ff7219e9abae0b7c2030369ebffd2fe0edf7de', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h("ion-icon", { class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), h("div", { key: '6b45ca5e283d3507c682cbe733e27a94460a7f69', class: "toast-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')))));
390
390
  }
391
391
  static get is() { return "ion-toast"; }
392
392
  static get encapsulation() { return "shadow"; }
@@ -62,10 +62,10 @@ export class Toolbar {
62
62
  this.childrenStyles.forEach((value) => {
63
63
  Object.assign(childStyles, value);
64
64
  });
65
- return (h(Host, { class: Object.assign(Object.assign({}, childStyles), createColorClasses(this.color, {
65
+ return (h(Host, { key: 'afac0f08f3981483c072984ce047df5dc9cc1e99', class: Object.assign(Object.assign({}, childStyles), createColorClasses(this.color, {
66
66
  [mode]: true,
67
67
  'in-toolbar': hostContext('ion-toolbar', this.el),
68
- })) }, h("div", { class: "toolbar-background" }), h("div", { class: "toolbar-container" }, h("slot", { name: "start" }), h("slot", { name: "secondary" }), h("div", { class: "toolbar-content" }, h("slot", null)), h("slot", { name: "primary" }), h("slot", { name: "end" }))));
68
+ })) }, h("div", { key: '30d4f1d0ec01cc646398301b5f7d469391eb35d2', class: "toolbar-background" }), h("div", { key: '175d1f283e670b57a9bf8fd2a8c5e7d0da749aa8', class: "toolbar-container" }, h("slot", { key: '4853b18092737b32b5995457536fa5a7fc2816ef', name: "start" }), h("slot", { key: '6eb4921200aad02d7977d134edad6cff2aad91ad', name: "secondary" }), h("div", { key: '024e0339c74c4b9a886d49e96723243719643dc2', class: "toolbar-content" }, h("slot", { key: 'b6452c84692fedd6efe33ac67907d01253b76f8f' })), h("slot", { key: '636e56eeaa318ce45a9c3854a30b8eb2819a33e0', name: "primary" }), h("slot", { key: 'a45c19b93dca3719d75bd4d99acc49de87137a7d', name: "end" }))));
69
69
  }
70
70
  static get is() { return "ion-toolbar"; }
71
71
  static get encapsulation() { return "shadow"; }
@@ -1,6 +1,21 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
+ import { win } from "./browser/index";
5
+ import { config } from "../global/config";
6
+ /**
7
+ * CloseWatcher is a newer API that lets
8
+ * use detect the hardware back button event
9
+ * in a web browser: https://caniuse.com/?search=closewatcher
10
+ * However, not every browser supports it yet.
11
+ *
12
+ * This needs to be a function so that we can
13
+ * check the config once it has been set.
14
+ * Otherwise, this code would be evaluated the
15
+ * moment this file is evaluated which could be
16
+ * before the config is set.
17
+ */
18
+ export const shoudUseCloseWatcher = () => config.get('experimentalCloseWatcher', false) && win !== undefined && 'CloseWatcher' in win;
4
19
  /**
5
20
  * When hardwareBackButton: false in config,
6
21
  * we need to make sure we also block the default
@@ -17,7 +32,7 @@ export const blockHardwareBackButton = () => {
17
32
  export const startHardwareBackButton = () => {
18
33
  const doc = document;
19
34
  let busy = false;
20
- doc.addEventListener('backbutton', () => {
35
+ const backButtonCallback = () => {
21
36
  if (busy) {
22
37
  return;
23
38
  }
@@ -63,7 +78,35 @@ export const startHardwareBackButton = () => {
63
78
  }
64
79
  };
65
80
  processHandlers();
66
- });
81
+ };
82
+ /**
83
+ * If the CloseWatcher is defined then
84
+ * we don't want to also listen for the native
85
+ * backbutton event otherwise we may get duplicate
86
+ * events firing.
87
+ */
88
+ if (shoudUseCloseWatcher()) {
89
+ let watcher;
90
+ const configureWatcher = () => {
91
+ watcher === null || watcher === void 0 ? void 0 : watcher.destroy();
92
+ watcher = new win.CloseWatcher();
93
+ /**
94
+ * Once a close request happens
95
+ * the watcher gets destroyed.
96
+ * As a result, we need to re-configure
97
+ * the watcher so we can respond to other
98
+ * close requests.
99
+ */
100
+ watcher.onclose = () => {
101
+ backButtonCallback();
102
+ configureWatcher();
103
+ };
104
+ };
105
+ configureWatcher();
106
+ }
107
+ else {
108
+ doc.addEventListener('backbutton', backButtonCallback);
109
+ }
67
110
  };
68
111
  export const OVERLAY_BACK_BUTTON_PRIORITY = 100;
69
112
  export const MENU_BACK_BUTTON_PRIORITY = 99; // 1 less than overlay priority since menu is displayed behind overlays
@@ -34,7 +34,7 @@ const transitionEnd = (el, expectedDuration = 0, callback) => {
34
34
  el.addEventListener('transitionend', onTransitionEnd, opts);
35
35
  animationTimeout = setTimeout(onTransitionEnd, expectedDuration + ANIMATION_FALLBACK_TIMEOUT);
36
36
  unRegTrans = () => {
37
- if (animationTimeout) {
37
+ if (animationTimeout !== undefined) {
38
38
  clearTimeout(animationTimeout);
39
39
  animationTimeout = undefined;
40
40
  }
@@ -2,6 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { doc } from "./browser/index";
5
+ import { shoudUseCloseWatcher } from "./hardware-back-button";
5
6
  import { config } from "../global/config";
6
7
  import { getIonMode } from "../global/ionic-global";
7
8
  import { CoreDelegate } from "./framework-delegate";
@@ -296,19 +297,38 @@ const connectListeners = (doc) => {
296
297
  const lastOverlay = getPresentedOverlay(doc);
297
298
  if (lastOverlay === null || lastOverlay === void 0 ? void 0 : lastOverlay.backdropDismiss) {
298
299
  ev.detail.register(OVERLAY_BACK_BUTTON_PRIORITY, () => {
299
- return lastOverlay.dismiss(undefined, BACKDROP);
300
+ /**
301
+ * Do not return this promise otherwise
302
+ * the hardware back button utility will
303
+ * be blocked until the overlay dismisses.
304
+ * This is important for a modal with canDismiss.
305
+ * If the application presents a confirmation alert
306
+ * in the "canDismiss" callback, then it will be impossible
307
+ * to use the hardware back button to dismiss the alert
308
+ * dialog because the hardware back button utility
309
+ * is blocked on waiting for the modal to dismiss.
310
+ */
311
+ lastOverlay.dismiss(undefined, BACKDROP);
300
312
  });
301
313
  }
302
314
  });
303
- // handle ESC to close overlay
304
- doc.addEventListener('keydown', (ev) => {
305
- if (ev.key === 'Escape') {
306
- const lastOverlay = getPresentedOverlay(doc);
307
- if (lastOverlay === null || lastOverlay === void 0 ? void 0 : lastOverlay.backdropDismiss) {
308
- lastOverlay.dismiss(undefined, BACKDROP);
315
+ /**
316
+ * Handle ESC to close overlay.
317
+ * CloseWatcher also handles pressing the Esc
318
+ * key, so if a browser supports CloseWatcher then
319
+ * this behavior will be handled via the ionBackButton
320
+ * event.
321
+ */
322
+ if (!shoudUseCloseWatcher()) {
323
+ doc.addEventListener('keydown', (ev) => {
324
+ if (ev.key === 'Escape') {
325
+ const lastOverlay = getPresentedOverlay(doc);
326
+ if (lastOverlay === null || lastOverlay === void 0 ? void 0 : lastOverlay.backdropDismiss) {
327
+ lastOverlay.dismiss(undefined, BACKDROP);
328
+ }
309
329
  }
310
- }
311
- });
330
+ });
331
+ }
312
332
  }
313
333
  };
314
334
  export const dismissOverlay = (doc, data, role, overlayTag, id) => {
@@ -2,6 +2,8 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { startHardwareBackButton } from "../hardware-back-button";
5
+ import { config } from "../../global/config";
6
+ import { win } from "../browser/index";
5
7
  describe('Hardware Back Button', () => {
6
8
  beforeEach(() => startHardwareBackButton());
7
9
  it('should call handler', () => {
@@ -47,6 +49,42 @@ describe('Hardware Back Button', () => {
47
49
  expect(cbSpyTwo).toHaveBeenCalled();
48
50
  });
49
51
  });
52
+ describe('Experimental Close Watcher', () => {
53
+ test('should not use the Close Watcher API when available', () => {
54
+ const mockAPI = mockCloseWatcher();
55
+ config.reset({ experimentalCloseWatcher: false });
56
+ startHardwareBackButton();
57
+ expect(mockAPI.mock.calls).toHaveLength(0);
58
+ });
59
+ test('should use the Close Watcher API when available', () => {
60
+ const mockAPI = mockCloseWatcher();
61
+ config.reset({ experimentalCloseWatcher: true });
62
+ startHardwareBackButton();
63
+ expect(mockAPI.mock.calls).toHaveLength(1);
64
+ });
65
+ test('Close Watcher should dispatch ionBackButton events', () => {
66
+ const mockAPI = mockCloseWatcher();
67
+ config.reset({ experimentalCloseWatcher: true });
68
+ startHardwareBackButton();
69
+ const cbSpy = jest.fn();
70
+ document.addEventListener('ionBackButton', cbSpy);
71
+ // Call onclose on Ionic's instance of CloseWatcher
72
+ mockAPI.getMockImplementation()().onclose();
73
+ expect(cbSpy).toHaveBeenCalled();
74
+ });
75
+ });
76
+ const mockCloseWatcher = () => {
77
+ const mockCloseWatcher = jest.fn();
78
+ mockCloseWatcher.mockReturnValue({
79
+ requestClose: () => null,
80
+ close: () => null,
81
+ destroy: () => null,
82
+ oncancel: () => null,
83
+ onclose: () => null,
84
+ });
85
+ win.CloseWatcher = mockCloseWatcher;
86
+ return mockCloseWatcher;
87
+ };
50
88
  const dispatchBackButtonEvent = () => {
51
89
  const ev = new Event('backbutton');
52
90
  document.dispatchEvent(ev);
package/dist/docs.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
- "timestamp": "2024-01-18T18:29:03",
2
+ "timestamp": "2024-02-02T00:56:23",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
- "version": "4.10.0",
5
+ "version": "4.12.0",
6
6
  "typescriptVersion": "5.3.3"
7
7
  },
8
8
  "components": [
@@ -14568,11 +14568,6 @@
14568
14568
  "event": "click",
14569
14569
  "capture": true,
14570
14570
  "passive": false
14571
- },
14572
- {
14573
- "event": "keydown",
14574
- "capture": false,
14575
- "passive": false
14576
14571
  }
14577
14572
  ],
14578
14573
  "styles": [
@@ -29325,7 +29320,7 @@
29325
29320
  "path": "src/interface.d.ts"
29326
29321
  },
29327
29322
  "src/components/action-sheet/action-sheet-interface.ts::ActionSheetButton": {
29328
- "declaration": "export interface ActionSheetButton<T = any> {\n text?: string;\n role?: 'cancel' | 'destructive' | 'selected' | string;\n icon?: string;\n cssClass?: string | string[];\n id?: string;\n htmlAttributes?: { [key: string]: any };\n handler?: () => boolean | void | Promise<boolean | void>;\n data?: T;\n}",
29323
+ "declaration": "export interface ActionSheetButton<T = any> {\n text?: string;\n role?: LiteralUnion<'cancel' | 'destructive' | 'selected', string>;\n icon?: string;\n cssClass?: string | string[];\n id?: string;\n htmlAttributes?: { [key: string]: any };\n handler?: () => boolean | void | Promise<boolean | void>;\n data?: T;\n}",
29329
29324
  "docstring": "",
29330
29325
  "path": "src/components/action-sheet/action-sheet-interface.ts"
29331
29326
  },
@@ -29340,7 +29335,7 @@
29340
29335
  "path": "src/utils/sanitization/index.ts"
29341
29336
  },
29342
29337
  "src/components/alert/alert-interface.ts::AlertButton": {
29343
- "declaration": "export interface AlertButton {\n text: string;\n role?: 'cancel' | 'destructive' | string;\n cssClass?: string | string[];\n id?: string;\n htmlAttributes?: { [key: string]: any };\n // TODO(FW-2832): type\n handler?: (value: any) => AlertButtonOverlayHandler | Promise<AlertButtonOverlayHandler>;\n}",
29338
+ "declaration": "export interface AlertButton {\n text: string;\n role?: LiteralUnion<'cancel' | 'destructive', string>;\n cssClass?: string | string[];\n id?: string;\n htmlAttributes?: { [key: string]: any };\n // TODO(FW-2832): type\n handler?: (value: any) => AlertButtonOverlayHandler | Promise<AlertButtonOverlayHandler>;\n}",
29344
29339
  "docstring": "",
29345
29340
  "path": "src/components/alert/alert-interface.ts"
29346
29341
  },
@@ -29690,7 +29685,7 @@
29690
29685
  "path": "src/components/toast/toast-interface.ts"
29691
29686
  },
29692
29687
  "src/components/toast/toast-interface.ts::ToastButton": {
29693
- "declaration": "export interface ToastButton {\n text?: string;\n icon?: string;\n side?: 'start' | 'end';\n role?: 'cancel' | string;\n\n /**\n * @deprecated Use the toast button's CSS Shadow Parts instead.\n */\n cssClass?: string | string[];\n htmlAttributes?: { [key: string]: any };\n handler?: () => boolean | void | Promise<boolean | void>;\n}",
29688
+ "declaration": "export interface ToastButton {\n text?: string;\n icon?: string;\n side?: 'start' | 'end';\n role?: LiteralUnion<'cancel', string>;\n /**\n * @deprecated Use the toast button's CSS Shadow Parts instead.\n */\n cssClass?: string | string[];\n htmlAttributes?: { [key: string]: any };\n handler?: () => boolean | void | Promise<boolean | void>;\n}",
29694
29689
  "docstring": "",
29695
29690
  "path": "src/components/toast/toast-interface.ts"
29696
29691
  },
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { w as win } from './index-a5d50daf.js';
5
- import { r as raf } from './helpers-ae653409.js';
5
+ import { r as raf } from './helpers-c0b9ca37.js';
6
6
 
7
7
  let animationPrefix;
8
8
  /**
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { i as initialize } from './ionic-global-8fa0f940.js';
4
+ import { i as initialize } from './ionic-global-778b7863.js';
5
5
 
6
6
  const globalScripts = initialize;
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { w as writeTask } from './index-27668d5b.js';
4
+ import { w as writeTask } from './index-73881b51.js';
5
5
  import { h as hapticSelectionEnd, a as hapticSelectionStart, b as hapticSelectionChanged } from './haptic-554688a5.js';
6
6
  import { createGesture } from './index-2cf77112.js';
7
7
 
@@ -1622,4 +1622,4 @@ const getTimeColumnsData = (locale, refParts, hourCycle, minParts, maxParts, all
1622
1622
  };
1623
1623
  };
1624
1624
 
1625
- export { getDayColumnData as A, getYearColumnData as B, isMonthFirstLocale as C, getTimeColumnsData as D, isLocaleDayPeriodRTL as E, getDaysOfWeek as F, getMonthAndYear as G, getDaysOfMonth as H, generateMonths as I, getHourCycle as J, getLocalizedTime as K, getMonthAndDay as L, formatValue as M, getNextYear as N, getPreviousYear as O, clampDate as P, parseAmPm as Q, calculateHourFromAMPM as R, getLocalizedDateTime as S, getMonthDayAndYear as T, getDay as a, isAfter as b, isSameDay as c, getPreviousMonth as d, getNextMonth as e, getPartsFromCalendarDay as f, generateDayAriaLabel as g, getEndOfWeek as h, isBefore as i, getStartOfWeek as j, getPreviousDay as k, getNextDay as l, getPreviousWeek as m, getNextWeek as n, parseMaxParts as o, parseMinParts as p, parseDate as q, convertToArrayOfNumbers as r, convertDataToISO as s, getToday as t, getClosestValidDate as u, validateParts as v, warnIfValueOutOfBounds as w, getNumDaysInMonth as x, getCombinedDateColumnData as y, getMonthColumnData as z };
1625
+ export { getNumDaysInMonth as A, getCombinedDateColumnData as B, getMonthColumnData as C, getDayColumnData as D, getYearColumnData as E, isMonthFirstLocale as F, getTimeColumnsData as G, isLocaleDayPeriodRTL as H, getDaysOfWeek as I, getMonthAndYear as J, getDaysOfMonth as K, getHourCycle as L, getLocalizedTime as M, getMonthAndDay as N, formatValue as O, clampDate as P, parseAmPm as Q, calculateHourFromAMPM as R, getLocalizedDateTime as S, getMonthDayAndYear as T, getDay as a, isAfter as b, isSameDay as c, getPreviousMonth as d, getNextMonth as e, getPartsFromCalendarDay as f, generateDayAriaLabel as g, getNextYear as h, isBefore as i, getPreviousYear as j, getEndOfWeek as k, getStartOfWeek as l, getPreviousDay as m, getNextDay as n, getPreviousWeek as o, getNextWeek as p, parseMinParts as q, parseMaxParts as r, parseDate as s, convertToArrayOfNumbers as t, convertDataToISO as u, validateParts as v, warnIfValueOutOfBounds as w, getToday as x, getClosestValidDate as y, generateMonths as z };
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { h as findItemLabel } from './helpers-ae653409.js';
4
+ import { h as findItemLabel } from './helpers-c0b9ca37.js';
5
5
 
6
6
  /**
7
7
  * Creates a controller that tracks whether a form control is using the legacy or modern syntax. This should be removed when the legacy form control syntax is removed.
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { c as componentOnReady } from './helpers-ae653409.js';
4
+ import { c as componentOnReady } from './helpers-c0b9ca37.js';
5
5
 
6
6
  // TODO(FW-2832): types
7
7
  const attachComponent = async (delegate, container, component, cssClasses, componentProps, inline) => {
@@ -1,6 +1,23 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
+ import { w as win } from './index-a5d50daf.js';
5
+ import { c as config } from './ionic-global-778b7863.js';
6
+ import './index-73881b51.js';
7
+
8
+ /**
9
+ * CloseWatcher is a newer API that lets
10
+ * use detect the hardware back button event
11
+ * in a web browser: https://caniuse.com/?search=closewatcher
12
+ * However, not every browser supports it yet.
13
+ *
14
+ * This needs to be a function so that we can
15
+ * check the config once it has been set.
16
+ * Otherwise, this code would be evaluated the
17
+ * moment this file is evaluated which could be
18
+ * before the config is set.
19
+ */
20
+ const shoudUseCloseWatcher = () => config.get('experimentalCloseWatcher', false) && win !== undefined && 'CloseWatcher' in win;
4
21
  /**
5
22
  * When hardwareBackButton: false in config,
6
23
  * we need to make sure we also block the default
@@ -17,7 +34,7 @@ const blockHardwareBackButton = () => {
17
34
  const startHardwareBackButton = () => {
18
35
  const doc = document;
19
36
  let busy = false;
20
- doc.addEventListener('backbutton', () => {
37
+ const backButtonCallback = () => {
21
38
  if (busy) {
22
39
  return;
23
40
  }
@@ -63,9 +80,37 @@ const startHardwareBackButton = () => {
63
80
  }
64
81
  };
65
82
  processHandlers();
66
- });
83
+ };
84
+ /**
85
+ * If the CloseWatcher is defined then
86
+ * we don't want to also listen for the native
87
+ * backbutton event otherwise we may get duplicate
88
+ * events firing.
89
+ */
90
+ if (shoudUseCloseWatcher()) {
91
+ let watcher;
92
+ const configureWatcher = () => {
93
+ watcher === null || watcher === void 0 ? void 0 : watcher.destroy();
94
+ watcher = new win.CloseWatcher();
95
+ /**
96
+ * Once a close request happens
97
+ * the watcher gets destroyed.
98
+ * As a result, we need to re-configure
99
+ * the watcher so we can respond to other
100
+ * close requests.
101
+ */
102
+ watcher.onclose = () => {
103
+ backButtonCallback();
104
+ configureWatcher();
105
+ };
106
+ };
107
+ configureWatcher();
108
+ }
109
+ else {
110
+ doc.addEventListener('backbutton', backButtonCallback);
111
+ }
67
112
  };
68
113
  const OVERLAY_BACK_BUTTON_PRIORITY = 100;
69
114
  const MENU_BACK_BUTTON_PRIORITY = 99; // 1 less than overlay priority since menu is displayed behind overlays
70
115
 
71
- export { MENU_BACK_BUTTON_PRIORITY, OVERLAY_BACK_BUTTON_PRIORITY, blockHardwareBackButton, startHardwareBackButton };
116
+ export { MENU_BACK_BUTTON_PRIORITY, OVERLAY_BACK_BUTTON_PRIORITY, blockHardwareBackButton, shoudUseCloseWatcher, startHardwareBackButton };
@@ -34,7 +34,7 @@ const transitionEnd = (el, expectedDuration = 0, callback) => {
34
34
  el.addEventListener('transitionend', onTransitionEnd, opts);
35
35
  animationTimeout = setTimeout(onTransitionEnd, expectedDuration + ANIMATION_FALLBACK_TIMEOUT);
36
36
  unRegTrans = () => {
37
- if (animationTimeout) {
37
+ if (animationTimeout !== undefined) {
38
38
  clearTimeout(animationTimeout);
39
39
  animationTimeout = undefined;
40
40
  }
@@ -2,11 +2,11 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { d as doc } from './index-a5d50daf.js';
5
- import { MENU_BACK_BUTTON_PRIORITY } from './hardware-back-button-b2bc76db.js';
5
+ import { MENU_BACK_BUTTON_PRIORITY } from './hardware-back-button-f42b9c80.js';
6
6
  import { p as printIonWarning } from './index-9b0d46f4.js';
7
- import { c as componentOnReady } from './helpers-ae653409.js';
8
- import { b as getIonMode } from './ionic-global-8fa0f940.js';
9
- import { c as createAnimation } from './animation-dde8cc0d.js';
7
+ import { c as componentOnReady } from './helpers-c0b9ca37.js';
8
+ import { b as getIonMode } from './ionic-global-778b7863.js';
9
+ import { c as createAnimation } from './animation-60dbdd13.js';
10
10
 
11
11
  /**
12
12
  * baseAnimation
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { w as writeTask, B as Build } from './index-27668d5b.js';
5
- import { r as raf } from './helpers-ae653409.js';
4
+ import { w as writeTask, B as Build } from './index-73881b51.js';
5
+ import { r as raf } from './helpers-c0b9ca37.js';
6
6
 
7
7
  const LIFECYCLE_WILL_ENTER = 'ionViewWillEnter';
8
8
  const LIFECYCLE_DID_ENTER = 'ionViewDidEnter';
@@ -10,8 +10,8 @@ const LIFECYCLE_WILL_LEAVE = 'ionViewWillLeave';
10
10
  const LIFECYCLE_DID_LEAVE = 'ionViewDidLeave';
11
11
  const LIFECYCLE_WILL_UNLOAD = 'ionViewWillUnload';
12
12
 
13
- const iosTransitionAnimation = () => import('./ios.transition-62fd50ab.js');
14
- const mdTransitionAnimation = () => import('./md.transition-7e56966a.js');
13
+ const iosTransitionAnimation = () => import('./ios.transition-7ff7381d.js');
14
+ const mdTransitionAnimation = () => import('./md.transition-28a9a26b.js');
15
15
  // TODO(FW-2832): types
16
16
  const transition = (opts) => {
17
17
  return new Promise((resolve, reject) => {
@@ -1780,6 +1780,8 @@ const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1780
1780
  // always reset
1781
1781
  relocateNodes.length = 0;
1782
1782
  }
1783
+ // Clear the content ref so we don't create a memory leak
1784
+ contentRef = undefined;
1783
1785
  };
1784
1786
  const attachToAncestor = (hostRef, ancestorComponent) => {
1785
1787
  if (ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent['s-p']) {
@@ -2633,7 +2635,12 @@ const getHostListenerTarget = (elm, flags) => {
2633
2635
  return elm;
2634
2636
  };
2635
2637
  // prettier-ignore
2636
- const hostListenerOpts = (flags) => (flags & 2 /* LISTENER_FLAGS.Capture */) !== 0;
2638
+ const hostListenerOpts = (flags) => supportsListenerOptions
2639
+ ? ({
2640
+ passive: (flags & 1 /* LISTENER_FLAGS.Passive */) !== 0,
2641
+ capture: (flags & 2 /* LISTENER_FLAGS.Capture */) !== 0,
2642
+ })
2643
+ : (flags & 2 /* LISTENER_FLAGS.Capture */) !== 0;
2637
2644
  /**
2638
2645
  * Assigns the given value to the nonce property on the runtime platform object.
2639
2646
  * During runtime, this value is used to set the nonce attribute on all dynamically created script and style tags.
@@ -2644,8 +2651,19 @@ const setNonce = (nonce) => (plt.$nonce$ = nonce);
2644
2651
  /**
2645
2652
  * A WeakMap mapping runtime component references to their corresponding host reference
2646
2653
  * instances.
2654
+ *
2655
+ * **Note**: If we're in an HMR context we need to store a reference to this
2656
+ * value on `window` in order to maintain the mapping of {@link d.RuntimeRef}
2657
+ * to {@link d.HostRef} across HMR updates.
2658
+ *
2659
+ * This is necessary because when HMR updates for a component are processed by
2660
+ * the browser-side dev server client the JS bundle for that component is
2661
+ * re-fetched. Since the module containing {@link hostRefs} is included in
2662
+ * that bundle, if we do not store a reference to it the new iteration of the
2663
+ * component will not have access to the previous hostRef map, leading to a
2664
+ * bug where the new version of the component cannot properly initialize.
2647
2665
  */
2648
- const hostRefs = /*@__PURE__*/ new WeakMap();
2666
+ const hostRefs = new WeakMap();
2649
2667
  /**
2650
2668
  * Given a {@link d.RuntimeRef} retrieve the corresponding {@link d.HostRef}
2651
2669
  *
@@ -2732,6 +2750,18 @@ const setPlatformHelpers = (helpers) => {
2732
2750
  const supportsShadow =
2733
2751
  // TODO(STENCIL-854): Remove code related to legacy shadowDomShim field
2734
2752
  true;
2753
+ const supportsListenerOptions = /*@__PURE__*/ (() => {
2754
+ let supportsListenerOptions = false;
2755
+ try {
2756
+ doc.addEventListener('e', null, Object.defineProperty({}, 'passive', {
2757
+ get() {
2758
+ supportsListenerOptions = true;
2759
+ },
2760
+ }));
2761
+ }
2762
+ catch (e) { }
2763
+ return supportsListenerOptions;
2764
+ })();
2735
2765
  const promiseResolve = (v) => Promise.resolve(v);
2736
2766
  const supportsConstructableStylesheets = /*@__PURE__*/ (() => {
2737
2767
  try {
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { d as doc } from './index-a5d50daf.js';
5
- import { u as now, v as pointerCoord } from './helpers-ae653409.js';
5
+ import { u as now, v as pointerCoord } from './helpers-c0b9ca37.js';
6
6
 
7
7
  const startTapClick = (config) => {
8
8
  if (doc === undefined) {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { c as componentOnReady } from './helpers-ae653409.js';
4
+ import { c as componentOnReady } from './helpers-c0b9ca37.js';
5
5
  import { b as printRequiredElementError } from './index-9b0d46f4.js';
6
6
 
7
7
  const ION_CONTENT_TAG_NAME = 'ION-CONTENT';
package/dist/esm/index.js CHANGED
@@ -1,24 +1,24 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- export { c as createAnimation } from './animation-dde8cc0d.js';
5
- export { a as LIFECYCLE_DID_ENTER, c as LIFECYCLE_DID_LEAVE, L as LIFECYCLE_WILL_ENTER, b as LIFECYCLE_WILL_LEAVE, d as LIFECYCLE_WILL_UNLOAD, g as getIonPageElement } from './index-a97c95a7.js';
6
- export { iosTransitionAnimation } from './ios.transition-62fd50ab.js';
7
- export { mdTransitionAnimation } from './md.transition-7e56966a.js';
4
+ export { c as createAnimation } from './animation-60dbdd13.js';
5
+ export { a as LIFECYCLE_DID_ENTER, c as LIFECYCLE_DID_LEAVE, L as LIFECYCLE_WILL_ENTER, b as LIFECYCLE_WILL_LEAVE, d as LIFECYCLE_WILL_UNLOAD, g as getIonPageElement } from './index-4b98143d.js';
6
+ export { iosTransitionAnimation } from './ios.transition-7ff7381d.js';
7
+ export { mdTransitionAnimation } from './md.transition-28a9a26b.js';
8
8
  export { g as getTimeGivenProgression } from './cubic-bezier-fe2083dc.js';
9
9
  export { createGesture } from './index-2cf77112.js';
10
- export { g as getPlatforms, i as initialize, a as isPlatform } from './ionic-global-8fa0f940.js';
11
- export { c as componentOnReady } from './helpers-ae653409.js';
10
+ export { g as getPlatforms, i as initialize, a as isPlatform } from './ionic-global-778b7863.js';
11
+ export { c as componentOnReady } from './helpers-c0b9ca37.js';
12
12
  export { I as IonicSafeString, g as getMode, s as setupConfig } from './config-49c88215.js';
13
13
  export { o as openURL } from './theme-01f3f29c.js';
14
- export { m as menuController } from './index-01cb9192.js';
15
- export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as pickerController, c as popoverController, t as toastController } from './overlays-8414359b.js';
14
+ export { m as menuController } from './index-48209844.js';
15
+ export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as pickerController, c as popoverController, t as toastController } from './overlays-fad5fe01.js';
16
16
  import './index-a5d50daf.js';
17
- import './index-27668d5b.js';
17
+ import './index-73881b51.js';
18
18
  import './gesture-controller-1bf57181.js';
19
- import './hardware-back-button-b2bc76db.js';
19
+ import './hardware-back-button-f42b9c80.js';
20
20
  import './index-9b0d46f4.js';
21
- import './framework-delegate-bc1fd82a.js';
21
+ import './framework-delegate-fed7fe7c.js';
22
22
 
23
23
  const IonicSlides = (opts) => {
24
24
  const { swiper, extendParams } = opts;
@@ -2,8 +2,8 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { w as win, d as doc } from './index-a5d50daf.js';
5
- import { g as getScrollElement, c as scrollByPoint, f as findClosestIonContent } from './index-b9e742e5.js';
6
- import { a as addEventListener, b as removeEventListener, r as raf, c as componentOnReady } from './helpers-ae653409.js';
5
+ import { g as getScrollElement, c as scrollByPoint, f as findClosestIonContent } from './index-eb12ef92.js';
6
+ import { a as addEventListener, b as removeEventListener, r as raf, c as componentOnReady } from './helpers-c0b9ca37.js';
7
7
  import { a as KeyboardResize, K as Keyboard } from './keyboard-73175e24.js';
8
8
  import './index-9b0d46f4.js';
9
9
  import './capacitor-59395cbd.js';
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { w as win } from './index-a5d50daf.js';
5
- import { r as raf } from './helpers-ae653409.js';
5
+ import { r as raf } from './helpers-c0b9ca37.js';
6
6
  import { a as printIonError } from './index-9b0d46f4.js';
7
7
 
8
8
  /**