@ionic/core 7.4.4-dev.11700515976.1ccd503d → 7.4.4-dev.11700516449.1d005735

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 (403) hide show
  1. package/components/alert.js +0 -8
  2. package/components/checkbox.js +3 -0
  3. package/components/data.js +22 -96
  4. package/components/haptic.js +0 -1
  5. package/components/icon.js +5 -9
  6. package/components/index.js +0 -1
  7. package/components/index4.js +19 -26
  8. package/components/index7.js +1 -1
  9. package/components/ion-datetime-button.js +4 -4
  10. package/components/ion-datetime.js +3 -3
  11. package/components/ion-menu.js +12 -0
  12. package/components/ion-nav.js +0 -1
  13. package/components/ion-router.js +0 -3
  14. package/components/ion-select.js +1 -1
  15. package/components/ion-toast.js +13 -157
  16. package/components/ion-toggle.js +3 -0
  17. package/components/ios.transition.js +0 -1
  18. package/components/overlays.js +0 -1
  19. package/components/radio-group.js +1 -1
  20. package/components/radio.js +4 -1
  21. package/dist/cjs/{app-globals-84b6a756.js → app-globals-fe1ad535.js} +1 -1
  22. package/dist/cjs/{button-active-f2147e85.js → button-active-0932cee9.js} +2 -2
  23. package/dist/cjs/{data-c8d21093.js → data-db832785.js} +22 -96
  24. package/dist/cjs/{haptic-678abc9f.js → haptic-c5f6b4d5.js} +0 -1
  25. package/dist/cjs/{index-14a4821e.js → index-305a23dc.js} +95 -51
  26. package/dist/cjs/{index-33d2809c.js → index-d3568232.js} +3 -3
  27. package/dist/cjs/{index-d8f84c5a.js → index-d8d1fc0b.js} +1 -1
  28. package/dist/cjs/{index-2e612e35.js → index-f94cbab1.js} +20 -27
  29. package/dist/cjs/index.cjs.js +8 -10
  30. package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
  31. package/dist/cjs/ion-action-sheet.cjs.entry.js +5 -5
  32. package/dist/cjs/ion-alert.cjs.entry.js +5 -13
  33. package/dist/cjs/ion-app_8.cjs.entry.js +4 -4
  34. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  35. package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
  36. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  37. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
  38. package/dist/cjs/ion-button_2.cjs.entry.js +7 -11
  39. package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
  40. package/dist/cjs/ion-checkbox.cjs.entry.js +5 -2
  41. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  42. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  43. package/dist/cjs/ion-datetime-button.cjs.entry.js +6 -6
  44. package/dist/cjs/ion-datetime_3.cjs.entry.js +8 -8
  45. package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
  46. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  47. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
  48. package/dist/cjs/ion-input.cjs.entry.js +3 -3
  49. package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
  50. package/dist/cjs/ion-item_8.cjs.entry.js +3 -3
  51. package/dist/cjs/ion-loading.cjs.entry.js +3 -3
  52. package/dist/cjs/ion-menu_3.cjs.entry.js +19 -8
  53. package/dist/cjs/ion-modal.cjs.entry.js +4 -4
  54. package/dist/cjs/ion-nav_2.cjs.entry.js +3 -4
  55. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +3 -3
  56. package/dist/cjs/ion-picker-internal.cjs.entry.js +1 -1
  57. package/dist/cjs/ion-popover.cjs.entry.js +4 -4
  58. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  59. package/dist/cjs/ion-radio_2.cjs.entry.js +7 -4
  60. package/dist/cjs/ion-range.cjs.entry.js +2 -2
  61. package/dist/cjs/ion-refresher_2.cjs.entry.js +4 -4
  62. package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
  63. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  64. package/dist/cjs/ion-route_4.cjs.entry.js +2 -5
  65. package/dist/cjs/ion-searchbar.cjs.entry.js +3 -3
  66. package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
  67. package/dist/cjs/ion-select_3.cjs.entry.js +5 -5
  68. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  69. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  70. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
  71. package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
  72. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  73. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  74. package/dist/cjs/ion-toast.cjs.entry.js +33 -175
  75. package/dist/cjs/ion-toggle.cjs.entry.js +7 -4
  76. package/dist/cjs/{ionic-global-a71608df.js → ionic-global-fb752503.js} +1 -1
  77. package/dist/cjs/ionic.cjs.js +5 -5
  78. package/dist/cjs/{ios.transition-8ddf91e6.js → ios.transition-7d688757.js} +2 -3
  79. package/dist/cjs/loader.cjs.js +4 -4
  80. package/dist/cjs/{md.transition-44ff8566.js → md.transition-d77d3c2e.js} +2 -2
  81. package/dist/cjs/{overlays-9cab437c.js → overlays-7e1a08fa.js} +1 -2
  82. package/dist/cjs/{status-tap-8c22e017.js → status-tap-778e8054.js} +1 -1
  83. package/dist/collection/collection-manifest.json +1 -1
  84. package/dist/collection/components/alert/alert.js +0 -8
  85. package/dist/collection/components/alert/test/a11y/alert.e2e.js +0 -11
  86. package/dist/collection/components/checkbox/checkbox.js +3 -0
  87. package/dist/collection/components/datetime/datetime.js +6 -12
  88. package/dist/collection/components/datetime/test/hour-cycle/datetime.e2e.js +0 -14
  89. package/dist/collection/components/datetime/utils/data.js +7 -33
  90. package/dist/collection/components/datetime/utils/format.js +10 -27
  91. package/dist/collection/components/datetime/utils/helpers.js +5 -37
  92. package/dist/collection/components/datetime-button/datetime-button.js +4 -4
  93. package/dist/collection/components/menu/menu.js +12 -0
  94. package/dist/collection/components/nav/nav.js +0 -1
  95. package/dist/collection/components/radio/radio.js +4 -1
  96. package/dist/collection/components/radio-group/radio-group.js +1 -1
  97. package/dist/collection/components/router/router.js +0 -2
  98. package/dist/collection/components/router/utils/path.js +0 -1
  99. package/dist/collection/components/select/select.js +1 -1
  100. package/dist/collection/components/toast/animations/ios.enter.js +3 -2
  101. package/dist/collection/components/toast/animations/ios.leave.js +3 -2
  102. package/dist/collection/components/toast/animations/md.enter.js +3 -2
  103. package/dist/collection/components/toast/toast.js +9 -98
  104. package/dist/collection/components/toggle/toggle.js +3 -0
  105. package/dist/collection/index.js +0 -1
  106. package/dist/collection/utils/menu-controller/index.js +19 -26
  107. package/dist/collection/utils/native/haptic.js +0 -1
  108. package/dist/collection/utils/overlays.js +0 -1
  109. package/dist/collection/utils/transition/ios.transition.js +0 -1
  110. package/dist/docs.json +11 -74
  111. package/dist/esm/{app-globals-df292a32.js → app-globals-ec816a70.js} +1 -1
  112. package/dist/esm/{button-active-3dd473a1.js → button-active-5136c12d.js} +2 -2
  113. package/dist/esm/{data-44d9e816.js → data-009dbf15.js} +22 -96
  114. package/dist/esm/{haptic-1243b917.js → haptic-6447af60.js} +0 -1
  115. package/dist/esm/{index-6e10cd02.js → index-641aeeed.js} +3 -3
  116. package/dist/esm/{index-cb894020.js → index-b49b173c.js} +95 -51
  117. package/dist/esm/{index-c3e624b7.js → index-d78b533e.js} +20 -27
  118. package/dist/esm/{index-504b03f0.js → index-ecfc2c9f.js} +1 -1
  119. package/dist/esm/index.js +8 -9
  120. package/dist/esm/ion-accordion_2.entry.js +3 -3
  121. package/dist/esm/ion-action-sheet.entry.js +5 -5
  122. package/dist/esm/ion-alert.entry.js +5 -13
  123. package/dist/esm/ion-app_8.entry.js +4 -4
  124. package/dist/esm/ion-avatar_3.entry.js +2 -2
  125. package/dist/esm/ion-back-button.entry.js +3 -3
  126. package/dist/esm/ion-backdrop.entry.js +2 -2
  127. package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
  128. package/dist/esm/ion-button_2.entry.js +7 -11
  129. package/dist/esm/ion-card_5.entry.js +2 -2
  130. package/dist/esm/ion-checkbox.entry.js +5 -2
  131. package/dist/esm/ion-chip.entry.js +2 -2
  132. package/dist/esm/ion-col_3.entry.js +2 -2
  133. package/dist/esm/ion-datetime-button.entry.js +6 -6
  134. package/dist/esm/ion-datetime_3.entry.js +8 -8
  135. package/dist/esm/ion-fab_3.entry.js +3 -3
  136. package/dist/esm/ion-img.entry.js +2 -2
  137. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
  138. package/dist/esm/ion-input.entry.js +3 -3
  139. package/dist/esm/ion-item-option_3.entry.js +2 -2
  140. package/dist/esm/ion-item_8.entry.js +3 -3
  141. package/dist/esm/ion-loading.entry.js +3 -3
  142. package/dist/esm/ion-menu_3.entry.js +18 -7
  143. package/dist/esm/ion-modal.entry.js +4 -4
  144. package/dist/esm/ion-nav_2.entry.js +3 -4
  145. package/dist/esm/ion-picker-column-internal.entry.js +3 -3
  146. package/dist/esm/ion-picker-internal.entry.js +1 -1
  147. package/dist/esm/ion-popover.entry.js +4 -4
  148. package/dist/esm/ion-progress-bar.entry.js +2 -2
  149. package/dist/esm/ion-radio_2.entry.js +7 -4
  150. package/dist/esm/ion-range.entry.js +2 -2
  151. package/dist/esm/ion-refresher_2.entry.js +4 -4
  152. package/dist/esm/ion-reorder_2.entry.js +4 -4
  153. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  154. package/dist/esm/ion-route_4.entry.js +2 -5
  155. package/dist/esm/ion-searchbar.entry.js +3 -3
  156. package/dist/esm/ion-segment_2.entry.js +2 -2
  157. package/dist/esm/ion-select_3.entry.js +5 -5
  158. package/dist/esm/ion-spinner.entry.js +2 -2
  159. package/dist/esm/ion-split-pane.entry.js +2 -2
  160. package/dist/esm/ion-tab-bar_2.entry.js +2 -2
  161. package/dist/esm/ion-tab_2.entry.js +1 -1
  162. package/dist/esm/ion-text.entry.js +2 -2
  163. package/dist/esm/ion-textarea.entry.js +2 -2
  164. package/dist/esm/ion-toast.entry.js +17 -159
  165. package/dist/esm/ion-toggle.entry.js +7 -4
  166. package/dist/esm/{ionic-global-63a8d8c9.js → ionic-global-246ca78f.js} +1 -1
  167. package/dist/esm/ionic.js +6 -6
  168. package/dist/esm/{ios.transition-6707a3a1.js → ios.transition-04c9a97a.js} +2 -3
  169. package/dist/esm/loader.js +5 -5
  170. package/dist/esm/{md.transition-957964fd.js → md.transition-67a8aabd.js} +2 -2
  171. package/dist/esm/{overlays-753933fc.js → overlays-2fa52617.js} +1 -2
  172. package/dist/esm/{status-tap-73e982b6.js → status-tap-9aeeaca5.js} +1 -1
  173. package/dist/esm-es5/app-globals-ec816a70.js +4 -0
  174. package/dist/esm-es5/{button-active-3dd473a1.js → button-active-5136c12d.js} +1 -1
  175. package/dist/esm-es5/data-009dbf15.js +4 -0
  176. package/dist/esm-es5/{index-6e10cd02.js → index-641aeeed.js} +1 -1
  177. package/dist/esm-es5/index-b49b173c.js +5 -0
  178. package/dist/esm-es5/index-d78b533e.js +4 -0
  179. package/dist/esm-es5/index.js +1 -1
  180. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  181. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  182. package/dist/esm-es5/ion-alert.entry.js +1 -1
  183. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  184. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  185. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  186. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  187. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  188. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  189. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  190. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  191. package/dist/esm-es5/ion-chip.entry.js +1 -1
  192. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  193. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  194. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  195. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  196. package/dist/esm-es5/ion-img.entry.js +1 -1
  197. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  198. package/dist/esm-es5/ion-input.entry.js +1 -1
  199. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  200. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  201. package/dist/esm-es5/ion-loading.entry.js +1 -1
  202. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  203. package/dist/esm-es5/ion-modal.entry.js +1 -1
  204. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  205. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  206. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  207. package/dist/esm-es5/ion-popover.entry.js +1 -1
  208. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  209. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  210. package/dist/esm-es5/ion-range.entry.js +1 -1
  211. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  212. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  213. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  214. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  215. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  216. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  217. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  218. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  219. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  220. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  221. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  222. package/dist/esm-es5/ion-text.entry.js +1 -1
  223. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  224. package/dist/esm-es5/ion-toast.entry.js +1 -1
  225. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  226. package/dist/esm-es5/{ionic-global-63a8d8c9.js → ionic-global-246ca78f.js} +1 -1
  227. package/dist/esm-es5/ionic.js +1 -1
  228. package/dist/esm-es5/{ios.transition-6707a3a1.js → ios.transition-04c9a97a.js} +1 -1
  229. package/dist/esm-es5/loader.js +1 -1
  230. package/dist/esm-es5/{md.transition-957964fd.js → md.transition-67a8aabd.js} +1 -1
  231. package/dist/esm-es5/{overlays-753933fc.js → overlays-2fa52617.js} +1 -1
  232. package/dist/esm-es5/{status-tap-73e982b6.js → status-tap-9aeeaca5.js} +1 -1
  233. package/dist/html.html-data.json +1 -11
  234. package/dist/ionic/index.esm.js +1 -1
  235. package/dist/ionic/ionic.esm.js +1 -1
  236. package/dist/ionic/ionic.js +1 -1
  237. package/dist/ionic/{p-9dbc208c.js → p-02a4e81a.js} +1 -1
  238. package/dist/ionic/{p-89e3d112.system.entry.js → p-03c381ec.system.entry.js} +1 -1
  239. package/dist/ionic/{p-44fa0a61.entry.js → p-048f1ebe.entry.js} +1 -1
  240. package/dist/ionic/{p-b7ac706d.entry.js → p-04e7c8fd.entry.js} +1 -1
  241. package/dist/ionic/p-05ae600a.system.js +4 -0
  242. package/dist/ionic/p-06ac429a.js +5 -0
  243. package/dist/ionic/p-0c37546b.system.entry.js +4 -0
  244. package/dist/ionic/{p-5b5311f6.system.entry.js → p-0d74acfb.system.entry.js} +1 -1
  245. package/dist/ionic/{p-7887ac7a.entry.js → p-108f9d49.entry.js} +1 -1
  246. package/dist/ionic/{p-ccdd595c.system.entry.js → p-117cd69f.system.entry.js} +1 -1
  247. package/dist/ionic/{p-e263255c.system.entry.js → p-1289b3b5.system.entry.js} +1 -1
  248. package/dist/ionic/p-13d6e57a.js +4 -0
  249. package/dist/ionic/{p-da024961.entry.js → p-164b0e76.entry.js} +1 -1
  250. package/dist/ionic/{p-8957b1de.system.entry.js → p-170e9de0.system.entry.js} +1 -1
  251. package/dist/ionic/{p-8a289322.js → p-181b7c2a.js} +1 -1
  252. package/dist/ionic/p-1c82e9ff.js +4 -0
  253. package/dist/ionic/{p-48159bfc.system.entry.js → p-1d0aa82f.system.entry.js} +1 -1
  254. package/dist/ionic/{p-9201a4d3.entry.js → p-1ecba429.entry.js} +1 -1
  255. package/dist/ionic/{p-3db27dec.entry.js → p-1f81b5be.entry.js} +1 -1
  256. package/dist/ionic/{p-db8b267a.system.entry.js → p-238f0ac5.system.entry.js} +1 -1
  257. package/dist/ionic/{p-0d3d44e7.entry.js → p-257cf0b7.entry.js} +1 -1
  258. package/dist/ionic/{p-37fc0d22.system.entry.js → p-2784263e.system.entry.js} +1 -1
  259. package/dist/ionic/{p-8f36cde3.system.entry.js → p-29073efe.system.entry.js} +1 -1
  260. package/dist/ionic/p-29e3a9bb.entry.js +4 -0
  261. package/dist/ionic/{p-3634b770.system.entry.js → p-32717950.system.entry.js} +1 -1
  262. package/dist/ionic/p-32d364f0.entry.js +4 -0
  263. package/dist/ionic/{p-c09e1da9.system.entry.js → p-33a8349a.system.entry.js} +1 -1
  264. package/dist/ionic/{p-4555335a.entry.js → p-35818410.entry.js} +1 -1
  265. package/dist/ionic/{p-b4f14d9e.entry.js → p-35eb1d95.entry.js} +1 -1
  266. package/dist/ionic/p-37448ac1.entry.js +4 -0
  267. package/dist/ionic/{p-3e6b0330.system.entry.js → p-38ccfd71.system.entry.js} +1 -1
  268. package/dist/ionic/{p-6f3099b6.system.entry.js → p-3a58e3a4.system.entry.js} +1 -1
  269. package/dist/ionic/{p-c0c794dd.entry.js → p-3c2c6fce.entry.js} +1 -1
  270. package/dist/ionic/{p-9a6f6789.system.entry.js → p-3f3da911.system.entry.js} +1 -1
  271. package/dist/ionic/p-44ef7224.system.js +4 -0
  272. package/dist/ionic/{p-bc7420cc.entry.js → p-4b8db805.entry.js} +1 -1
  273. package/dist/ionic/{p-ec451ef7.system.entry.js → p-4bb26b01.system.entry.js} +1 -1
  274. package/dist/ionic/{p-6a92db9d.system.entry.js → p-4d6ac0fe.system.entry.js} +1 -1
  275. package/dist/ionic/p-4dd96c8d.entry.js +4 -0
  276. package/dist/ionic/{p-0793ebfd.entry.js → p-4e6e43c1.entry.js} +1 -1
  277. package/dist/ionic/{p-e0f66356.system.js → p-51269f3b.system.js} +1 -1
  278. package/dist/ionic/{p-14fd96a2.system.entry.js → p-5403baaa.system.entry.js} +1 -1
  279. package/dist/ionic/{p-abfd1f2e.system.entry.js → p-54f6cd27.system.entry.js} +1 -1
  280. package/dist/ionic/{p-b27772bf.entry.js → p-55d3a9b2.entry.js} +1 -1
  281. package/dist/ionic/{p-10fcb3a3.system.entry.js → p-576e6d0f.system.entry.js} +1 -1
  282. package/dist/ionic/{p-6a3c14d1.entry.js → p-5b32b053.entry.js} +1 -1
  283. package/dist/ionic/{p-b79eb3cd.entry.js → p-5b976d70.entry.js} +1 -1
  284. package/dist/ionic/p-5c3e72a8.system.js +4 -0
  285. package/dist/ionic/p-5c651aab.system.entry.js +4 -0
  286. package/dist/ionic/{p-ae57449e.system.entry.js → p-5cd791b3.system.entry.js} +1 -1
  287. package/dist/ionic/p-5ece7025.system.js +4 -0
  288. package/dist/ionic/{p-70441a5b.entry.js → p-5efb899f.entry.js} +1 -1
  289. package/dist/ionic/{p-6c7d61b9.system.entry.js → p-6129af0a.system.entry.js} +1 -1
  290. package/dist/ionic/{p-26fbffd4.system.js → p-629aa3fd.system.js} +1 -1
  291. package/dist/ionic/{p-ee8881d0.js → p-63505fbb.js} +1 -1
  292. package/dist/ionic/{p-efd574eb.system.entry.js → p-645fb6e5.system.entry.js} +1 -1
  293. package/dist/ionic/{p-ef4408d6.entry.js → p-64e20cd9.entry.js} +1 -1
  294. package/dist/ionic/p-65a5761f.js +4 -0
  295. package/dist/ionic/{p-416d7f8d.system.entry.js → p-6ac3e877.system.entry.js} +1 -1
  296. package/dist/ionic/{p-82c72668.system.js → p-6ba7fad7.system.js} +1 -1
  297. package/dist/ionic/{p-92d72ad8.entry.js → p-6ea2e653.entry.js} +1 -1
  298. package/dist/ionic/{p-a9b13f18.system.entry.js → p-6f8a95a3.system.entry.js} +1 -1
  299. package/dist/ionic/{p-a60cff26.system.entry.js → p-6fb80ef3.system.entry.js} +1 -1
  300. package/dist/ionic/{p-b4c0e9ee.entry.js → p-706a0391.entry.js} +1 -1
  301. package/dist/ionic/{p-f48af9da.system.entry.js → p-72aea40e.system.entry.js} +1 -1
  302. package/dist/ionic/p-73ed9a91.js +4 -0
  303. package/dist/ionic/{p-7a590a28.js → p-76378400.js} +1 -1
  304. package/dist/ionic/p-76920df1.entry.js +4 -0
  305. package/dist/ionic/p-7cfd253c.js +4 -0
  306. package/dist/ionic/{p-3dce88bf.entry.js → p-818b2e75.entry.js} +1 -1
  307. package/dist/ionic/p-8297652e.entry.js +4 -0
  308. package/dist/ionic/{p-b9e2aede.entry.js → p-839276d4.entry.js} +1 -1
  309. package/dist/ionic/{p-b4daca17.system.entry.js → p-8a2801f1.system.entry.js} +1 -1
  310. package/dist/ionic/{p-00cf2d6c.js → p-8e24ebbc.js} +1 -1
  311. package/dist/ionic/{p-037e2738.system.entry.js → p-8ee012cb.system.entry.js} +1 -1
  312. package/dist/ionic/{p-d8eeabae.system.entry.js → p-908720f3.system.entry.js} +1 -1
  313. package/dist/ionic/{p-03f7e3cc.entry.js → p-914ac0fc.entry.js} +1 -1
  314. package/dist/ionic/{p-88a1a4fe.system.entry.js → p-9173418c.system.entry.js} +1 -1
  315. package/dist/ionic/{p-9f9efb31.system.js → p-939e0fa1.system.js} +1 -1
  316. package/dist/ionic/{p-e6d2cca2.system.entry.js → p-95b14c73.system.entry.js} +1 -1
  317. package/dist/ionic/{p-ca655a7c.entry.js → p-96ba8eac.entry.js} +1 -1
  318. package/dist/ionic/{p-dcfea01f.system.entry.js → p-99dfa53f.system.entry.js} +1 -1
  319. package/dist/ionic/{p-9736406a.system.entry.js → p-9b4a77fc.system.entry.js} +1 -1
  320. package/dist/ionic/{p-50d83224.entry.js → p-a04bfada.entry.js} +1 -1
  321. package/dist/ionic/p-a18ec02b.entry.js +4 -0
  322. package/dist/ionic/{p-2acea831.entry.js → p-a7eec917.entry.js} +1 -1
  323. package/dist/ionic/{p-00f709ca.system.entry.js → p-b109a3d7.system.entry.js} +1 -1
  324. package/dist/ionic/{p-fbc7995a.system.entry.js → p-b3690814.system.entry.js} +1 -1
  325. package/dist/ionic/{p-534a1cbc.system.js → p-b3c68723.system.js} +1 -1
  326. package/dist/ionic/{p-4e76e29a.system.entry.js → p-b61a2fa0.system.entry.js} +1 -1
  327. package/dist/ionic/{p-f37d6823.system.entry.js → p-beb864e4.system.entry.js} +1 -1
  328. package/dist/ionic/{p-b25a96b7.system.js → p-c3efbcf5.system.js} +1 -1
  329. package/dist/ionic/{p-a157df46.system.entry.js → p-c48fc95d.system.entry.js} +1 -1
  330. package/dist/ionic/{p-5c24c115.system.js → p-c49672d8.system.js} +1 -1
  331. package/dist/ionic/{p-57743e20.entry.js → p-c4a5de01.entry.js} +1 -1
  332. package/dist/ionic/{p-7520e873.system.entry.js → p-c7428627.system.entry.js} +1 -1
  333. package/dist/ionic/{p-84549737.system.entry.js → p-cf0c93e3.system.entry.js} +1 -1
  334. package/dist/ionic/{p-7b15d413.entry.js → p-d35217be.entry.js} +1 -1
  335. package/dist/ionic/{p-5cafe439.system.entry.js → p-d55c9f92.system.entry.js} +1 -1
  336. package/dist/ionic/{p-06756f31.entry.js → p-d7b8d224.entry.js} +1 -1
  337. package/dist/ionic/{p-9b796813.entry.js → p-d89d0de0.entry.js} +1 -1
  338. package/dist/ionic/{p-fa06c407.entry.js → p-db1a1e00.entry.js} +1 -1
  339. package/dist/ionic/{p-0023e6eb.entry.js → p-deb6ddad.entry.js} +1 -1
  340. package/dist/ionic/{p-90012797.system.js → p-df5fe0be.system.js} +1 -1
  341. package/dist/ionic/{p-d90f0779.system.entry.js → p-e0f52215.system.entry.js} +1 -1
  342. package/dist/ionic/{p-a99e7e72.entry.js → p-e1ac688a.entry.js} +1 -1
  343. package/dist/ionic/{p-d2a278b1.entry.js → p-e2fd0895.entry.js} +1 -1
  344. package/dist/ionic/{p-9e91c83f.system.entry.js → p-eab10949.system.entry.js} +1 -1
  345. package/dist/ionic/{p-ac32f6ce.entry.js → p-eac263dd.entry.js} +1 -1
  346. package/dist/ionic/{p-0459db58.entry.js → p-ec9052a4.entry.js} +1 -1
  347. package/dist/ionic/{p-a7361c85.entry.js → p-f588e951.entry.js} +1 -1
  348. package/dist/ionic/{p-60dee335.entry.js → p-f623aa6d.entry.js} +1 -1
  349. package/dist/ionic/{p-ae8121f5.system.entry.js → p-f960fd84.system.entry.js} +1 -1
  350. package/dist/ionic/p-fbcb157b.system.js +4 -0
  351. package/dist/ionic/{p-4c20879c.entry.js → p-fccfe602.entry.js} +1 -1
  352. package/dist/ionic/{p-3bf7c0dc.entry.js → p-fcf47f80.entry.js} +1 -1
  353. package/dist/node_modules/ionicons/dist/collection/components/icon/icon.css +4 -46
  354. package/dist/types/components/datetime/datetime-interface.d.ts +0 -1
  355. package/dist/types/components/datetime/datetime.d.ts +2 -2
  356. package/dist/types/components/datetime/utils/data.d.ts +3 -3
  357. package/dist/types/components/datetime/utils/format.d.ts +3 -3
  358. package/dist/types/components/datetime/utils/helpers.d.ts +1 -15
  359. package/dist/types/components/menu/menu-interface.d.ts +1 -0
  360. package/dist/types/components/toast/animations/ios.enter.d.ts +1 -2
  361. package/dist/types/components/toast/animations/ios.leave.d.ts +2 -2
  362. package/dist/types/components/toast/animations/md.enter.d.ts +1 -2
  363. package/dist/types/components/toast/toast-interface.d.ts +0 -11
  364. package/dist/types/components/toast/toast.d.ts +1 -21
  365. package/dist/types/components.d.ts +8 -16
  366. package/dist/types/index.d.ts +0 -1
  367. package/dist/types/utils/menu-controller/index.d.ts +2 -1
  368. package/hydrate/index.js +127 -342
  369. package/package.json +7 -6
  370. package/dist/collection/components/menu/test/multiple/menu.e2e.js +0 -60
  371. package/dist/collection/components/toast/animations/utils.js +0 -85
  372. package/dist/collection/components/toast/test/position-anchor/toast.e2e.js +0 -45
  373. package/dist/esm-es5/app-globals-df292a32.js +0 -4
  374. package/dist/esm-es5/data-44d9e816.js +0 -4
  375. package/dist/esm-es5/index-c3e624b7.js +0 -4
  376. package/dist/esm-es5/index-cb894020.js +0 -5
  377. package/dist/ionic/p-0779a5c8.system.js +0 -4
  378. package/dist/ionic/p-0d198537.js +0 -4
  379. package/dist/ionic/p-100ea813.system.entry.js +0 -4
  380. package/dist/ionic/p-17240d90.js +0 -4
  381. package/dist/ionic/p-1d9b39f3.js +0 -4
  382. package/dist/ionic/p-2b47b2ce.entry.js +0 -4
  383. package/dist/ionic/p-32b5f10e.entry.js +0 -4
  384. package/dist/ionic/p-469d6a98.entry.js +0 -4
  385. package/dist/ionic/p-50125c8c.js +0 -4
  386. package/dist/ionic/p-520789c2.js +0 -4
  387. package/dist/ionic/p-68b405cc.entry.js +0 -4
  388. package/dist/ionic/p-6cfcb294.system.js +0 -4
  389. package/dist/ionic/p-73eba881.system.js +0 -4
  390. package/dist/ionic/p-903c36fe.js +0 -5
  391. package/dist/ionic/p-a4ce3b06.system.entry.js +0 -4
  392. package/dist/ionic/p-aae05032.entry.js +0 -4
  393. package/dist/ionic/p-b8c3f071.system.js +0 -4
  394. package/dist/ionic/p-d0d59328.entry.js +0 -4
  395. package/dist/ionic/p-d1df86ff.entry.js +0 -4
  396. package/dist/ionic/p-ec25d547.system.js +0 -4
  397. package/dist/types/components/toast/animations/utils.d.ts +0 -18
  398. /package/dist/esm-es5/{haptic-1243b917.js → haptic-6447af60.js} +0 -0
  399. /package/dist/esm-es5/{index-504b03f0.js → index-ecfc2c9f.js} +0 -0
  400. /package/dist/ionic/{p-15bae383.js → p-0a87858b.js} +0 -0
  401. /package/dist/ionic/{p-b4b4bb29.system.js → p-14d7b7e2.system.js} +0 -0
  402. /package/dist/ionic/{p-3f919368.system.js → p-8985b268.system.js} +0 -0
  403. /package/dist/ionic/{p-b923f3d7.js → p-bb6f38ed.js} +0 -0
@@ -672,7 +672,6 @@ export class Nav {
672
672
  : undefined;
673
673
  const mode = getIonMode(this);
674
674
  const enteringEl = enteringView.element;
675
- // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
676
675
  const leavingEl = leavingView && leavingView.element;
677
676
  const animationOpts = Object.assign(Object.assign({ mode, showGoBack: this.canGoBackSync(enteringView), baseEl: this.el, progressCallback, animated: this.animated && config.getBoolean('animated', true), enteringEl,
678
677
  leavingEl }, opts), { animationBuilder: opts.animationBuilder || this.animation || config.get('navAnimation') });
@@ -27,7 +27,10 @@ export class Radio {
27
27
  }
28
28
  };
29
29
  this.onClick = () => {
30
- const { radioGroup, checked } = this;
30
+ const { radioGroup, checked, disabled } = this;
31
+ if (disabled) {
32
+ return;
33
+ }
31
34
  /**
32
35
  * The legacy control uses a native input inside
33
36
  * of the radio host, so we can set this.checked
@@ -33,7 +33,7 @@ export class RadioGroup {
33
33
  * using the `name` attribute.
34
34
  */
35
35
  const selectedRadio = ev.target && ev.target.closest('ion-radio');
36
- if (selectedRadio) {
36
+ if (selectedRadio && selectedRadio.disabled === false) {
37
37
  const currentValue = this.value;
38
38
  const newValue = selectedRadio.value;
39
39
  if (newValue !== currentValue) {
@@ -215,14 +215,12 @@ export class Router {
215
215
  }
216
216
  const routes = readRoutes(this.el);
217
217
  const fromChain = findChainForSegments(from, routes);
218
- // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
219
218
  const beforeLeaveHook = fromChain && fromChain[fromChain.length - 1].beforeLeave;
220
219
  const canLeave = beforeLeaveHook ? await beforeLeaveHook() : true;
221
220
  if (canLeave === false || typeof canLeave === 'object') {
222
221
  return canLeave;
223
222
  }
224
223
  const toChain = findChainForSegments(to, routes);
225
- // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
226
224
  const beforeEnterHook = toChain && toChain[toChain.length - 1].beforeEnter;
227
225
  return beforeEnterHook ? beforeEnterHook() : true;
228
226
  }
@@ -38,7 +38,6 @@ export const chainToSegments = (chain) => {
38
38
  for (const route of chain) {
39
39
  for (const segment of route.segments) {
40
40
  if (segment[0] === ':') {
41
- // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
42
41
  const param = route.params && route.params[segment.slice(1)];
43
42
  if (!param) {
44
43
  return null;
@@ -642,7 +642,7 @@ Developers can use the "legacy" property to continue using the legacy form marku
642
642
  }
643
643
  renderListbox() {
644
644
  const { disabled, inputId, isExpanded } = this;
645
- return (h("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
645
+ return (h("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "listbox", "aria-expanded": `${isExpanded}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
646
646
  }
647
647
  render() {
648
648
  const { legacyFormController } = this;
@@ -6,12 +6,13 @@ import { getElementRoot } from "../../../utils/helpers";
6
6
  /**
7
7
  * iOS Toast Enter Animation
8
8
  */
9
- export const iosEnterAnimation = (baseEl, opts) => {
9
+ export const iosEnterAnimation = (baseEl, position) => {
10
10
  const baseAnimation = createAnimation();
11
11
  const wrapperAnimation = createAnimation();
12
- const { position, top, bottom } = opts;
13
12
  const root = getElementRoot(baseEl);
14
13
  const wrapperEl = root.querySelector('.toast-wrapper');
14
+ const bottom = `calc(-10px - var(--ion-safe-area-bottom, 0px))`;
15
+ const top = `calc(10px + var(--ion-safe-area-top, 0px))`;
15
16
  wrapperAnimation.addElement(wrapperEl);
16
17
  switch (position) {
17
18
  case 'top':
@@ -6,12 +6,13 @@ import { getElementRoot } from "../../../utils/helpers";
6
6
  /**
7
7
  * iOS Toast Leave Animation
8
8
  */
9
- export const iosLeaveAnimation = (baseEl, opts) => {
9
+ export const iosLeaveAnimation = (baseEl, position) => {
10
10
  const baseAnimation = createAnimation();
11
11
  const wrapperAnimation = createAnimation();
12
- const { position, top, bottom } = opts;
13
12
  const root = getElementRoot(baseEl);
14
13
  const wrapperEl = root.querySelector('.toast-wrapper');
14
+ const bottom = `calc(-10px - var(--ion-safe-area-bottom, 0px))`;
15
+ const top = `calc(10px + var(--ion-safe-area-top, 0px))`;
15
16
  wrapperAnimation.addElement(wrapperEl);
16
17
  switch (position) {
17
18
  case 'top':
@@ -6,12 +6,13 @@ import { getElementRoot } from "../../../utils/helpers";
6
6
  /**
7
7
  * MD Toast Enter Animation
8
8
  */
9
- export const mdEnterAnimation = (baseEl, opts) => {
9
+ export const mdEnterAnimation = (baseEl, position) => {
10
10
  const baseAnimation = createAnimation();
11
11
  const wrapperAnimation = createAnimation();
12
- const { position, top, bottom } = opts;
13
12
  const root = getElementRoot(baseEl);
14
13
  const wrapperEl = root.querySelector('.toast-wrapper');
14
+ const bottom = `calc(8px + var(--ion-safe-area-bottom, 0px))`;
15
+ const top = `calc(8px + var(--ion-safe-area-top, 0px))`;
15
16
  wrapperAnimation.addElement(wrapperEl);
16
17
  switch (position) {
17
18
  case 'top':
@@ -15,7 +15,6 @@ import { iosEnterAnimation } from "./animations/ios.enter";
15
15
  import { iosLeaveAnimation } from "./animations/ios.leave";
16
16
  import { mdEnterAnimation } from "./animations/md.enter";
17
17
  import { mdLeaveAnimation } from "./animations/md.leave";
18
- import { getAnimationPosition } from "./animations/utils";
19
18
  // TODO(FW-2832): types
20
19
  /**
21
20
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
@@ -55,7 +54,6 @@ export class Toast {
55
54
  this.message = undefined;
56
55
  this.keyboardClose = false;
57
56
  this.position = 'bottom';
58
- this.positionAnchor = undefined;
59
57
  this.buttons = undefined;
60
58
  this.translucent = false;
61
59
  this.animated = true;
@@ -103,19 +101,7 @@ export class Toast {
103
101
  async present() {
104
102
  const unlock = await this.lockController.lock();
105
103
  await this.delegateController.attachViewToDom();
106
- const { el, position } = this;
107
- const anchor = this.getAnchorElement();
108
- const animationPosition = getAnimationPosition(position, anchor, getIonMode(this), el);
109
- /**
110
- * Cache the calculated position of the toast, so we can re-use it
111
- * in the dismiss animation.
112
- */
113
- this.lastPresentedPosition = animationPosition;
114
- await present(this, 'toastEnter', iosEnterAnimation, mdEnterAnimation, {
115
- position,
116
- top: animationPosition.top,
117
- bottom: animationPosition.bottom,
118
- });
104
+ await present(this, 'toastEnter', iosEnterAnimation, mdEnterAnimation, this.position);
119
105
  /**
120
106
  * Content is revealed to screen readers after
121
107
  * the transition to avoid jank since this
@@ -137,28 +123,15 @@ export class Toast {
137
123
  * Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
138
124
  */
139
125
  async dismiss(data, role) {
140
- var _a, _b;
141
126
  const unlock = await this.lockController.lock();
142
- const { durationTimeout, position, lastPresentedPosition } = this;
143
- if (durationTimeout) {
144
- clearTimeout(durationTimeout);
127
+ if (this.durationTimeout) {
128
+ clearTimeout(this.durationTimeout);
145
129
  }
146
- const dismissed = await dismiss(this, data, role, 'toastLeave', iosLeaveAnimation, mdLeaveAnimation,
147
- /**
148
- * Fetch the cached position that was calculated back in the present
149
- * animation. We always want to animate the dismiss from the same
150
- * position the present stopped at, so the animation looks continuous.
151
- */
152
- {
153
- position,
154
- top: (_a = lastPresentedPosition === null || lastPresentedPosition === void 0 ? void 0 : lastPresentedPosition.top) !== null && _a !== void 0 ? _a : '',
155
- bottom: (_b = lastPresentedPosition === null || lastPresentedPosition === void 0 ? void 0 : lastPresentedPosition.bottom) !== null && _b !== void 0 ? _b : '',
156
- });
130
+ const dismissed = await dismiss(this, data, role, 'toastLeave', iosLeaveAnimation, mdLeaveAnimation, this.position);
157
131
  if (dismissed) {
158
132
  this.delegateController.removeViewFromDom();
159
133
  this.revealContentToScreenReader = false;
160
134
  }
161
- this.lastPresentedPosition = undefined;
162
135
  unlock();
163
136
  return dismissed;
164
137
  }
@@ -182,44 +155,6 @@ export class Toast {
182
155
  : [];
183
156
  return buttons;
184
157
  }
185
- /**
186
- * Returns the element specified by the positionAnchor prop,
187
- * or undefined if prop's value is an ID string and the element
188
- * is not found in the DOM.
189
- */
190
- getAnchorElement() {
191
- const { position, positionAnchor, el } = this;
192
- /**
193
- * If positionAnchor is undefined then
194
- * no anchor should be used when presenting the toast.
195
- */
196
- if (positionAnchor === undefined) {
197
- return;
198
- }
199
- if (position === 'middle' && positionAnchor !== undefined) {
200
- printIonWarning('The positionAnchor property is ignored when using position="middle".', this.el);
201
- return undefined;
202
- }
203
- if (typeof positionAnchor === 'string') {
204
- /**
205
- * If the anchor is defined as an ID, find the element.
206
- * We do this on every present so the toast doesn't need
207
- * to account for the surrounding DOM changing since the
208
- * last time it was presented.
209
- */
210
- const foundEl = document.getElementById(positionAnchor);
211
- if (foundEl === null) {
212
- printIonWarning(`An anchor element with an ID of "${positionAnchor}" was not found in the DOM.`, el);
213
- return undefined;
214
- }
215
- return foundEl;
216
- }
217
- if (positionAnchor instanceof HTMLElement) {
218
- return positionAnchor;
219
- }
220
- printIonWarning('Invalid positionAnchor value:', positionAnchor, el);
221
- return undefined;
222
- }
223
158
  async buttonClick(button) {
224
159
  const role = button.role;
225
160
  if (isCancel(role)) {
@@ -582,34 +517,12 @@ export class Toast {
582
517
  "optional": false,
583
518
  "docs": {
584
519
  "tags": [],
585
- "text": "The starting position of the toast on the screen. Can be tweaked further\nusing the `positionAnchor` property."
520
+ "text": "The position of the toast on the screen."
586
521
  },
587
522
  "attribute": "position",
588
523
  "reflect": false,
589
524
  "defaultValue": "'bottom'"
590
525
  },
591
- "positionAnchor": {
592
- "type": "string",
593
- "mutable": false,
594
- "complexType": {
595
- "original": "HTMLElement | string",
596
- "resolved": "HTMLElement | string | undefined",
597
- "references": {
598
- "HTMLElement": {
599
- "location": "global",
600
- "id": "global::HTMLElement"
601
- }
602
- }
603
- },
604
- "required": false,
605
- "optional": true,
606
- "docs": {
607
- "tags": [],
608
- "text": "The element to anchor the toast's position to. Can be set as a direct reference\nor the ID of the element. With `position=\"bottom\"`, the toast will sit above the\nchosen element. With `position=\"top\"`, the toast will sit below the chosen element.\nWith `position=\"middle\"`, the value of `positionAnchor` is ignored."
609
- },
610
- "attribute": "position-anchor",
611
- "reflect": false
612
- },
613
526
  "buttons": {
614
527
  "type": "unknown",
615
528
  "mutable": false,
@@ -900,9 +813,8 @@ export class Toast {
900
813
  "id": "global::Promise"
901
814
  },
902
815
  "ToastPresentOptions": {
903
- "location": "import",
904
- "path": "./toast-interface",
905
- "id": "src/components/toast/toast-interface.ts::ToastPresentOptions"
816
+ "location": "global",
817
+ "id": "global::ToastPresentOptions"
906
818
  }
907
819
  },
908
820
  "return": "Promise<void>"
@@ -934,9 +846,8 @@ export class Toast {
934
846
  "id": "global::Promise"
935
847
  },
936
848
  "ToastDismissOptions": {
937
- "location": "import",
938
- "path": "./toast-interface",
939
- "id": "src/components/toast/toast-interface.ts::ToastDismissOptions"
849
+ "location": "global",
850
+ "id": "global::ToastDismissOptions"
940
851
  }
941
852
  },
942
853
  "return": "Promise<boolean>"
@@ -44,6 +44,9 @@ export class Toggle {
44
44
  }
45
45
  };
46
46
  this.onClick = (ev) => {
47
+ if (this.disabled) {
48
+ return;
49
+ }
47
50
  ev.preventDefault();
48
51
  if (this.lastDrag + 300 < Date.now()) {
49
52
  this.toggleChecked();
@@ -13,7 +13,6 @@ export { componentOnReady } from './utils/helpers';
13
13
  export { isPlatform, getPlatforms } from './utils/platform';
14
14
  export { IonicSafeString } from './utils/sanitization';
15
15
  export { getMode, setupConfig } from './utils/config';
16
- export { openURL } from './utils/theme';
17
16
  export { LIFECYCLE_WILL_ENTER, LIFECYCLE_DID_ENTER, LIFECYCLE_WILL_LEAVE, LIFECYCLE_DID_LEAVE, LIFECYCLE_WILL_UNLOAD, } from './components/nav/constants';
18
17
  export { menuController } from './utils/menu-controller';
19
18
  export { alertController, actionSheetController, modalController, loadingController, pickerController, popoverController, toastController, } from './utils/overlays';
@@ -1,7 +1,6 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { printIonWarning } from "../logging/index";
5
4
  import { MENU_BACK_BUTTON_PRIORITY } from "../hardware-back-button";
6
5
  import { componentOnReady } from "../helpers";
7
6
  import { menuOverlayAnimation } from "./animations/overlay";
@@ -11,21 +10,21 @@ const createMenuController = () => {
11
10
  const menuAnimations = new Map();
12
11
  const menus = [];
13
12
  const open = async (menu) => {
14
- const menuEl = await get(menu, true);
13
+ const menuEl = await get(menu);
15
14
  if (menuEl) {
16
15
  return menuEl.open();
17
16
  }
18
17
  return false;
19
18
  };
20
19
  const close = async (menu) => {
21
- const menuEl = await (menu !== undefined ? get(menu, true) : getOpen());
20
+ const menuEl = await (menu !== undefined ? get(menu) : getOpen());
22
21
  if (menuEl !== undefined) {
23
22
  return menuEl.close();
24
23
  }
25
24
  return false;
26
25
  };
27
26
  const toggle = async (menu) => {
28
- const menuEl = await get(menu, true);
27
+ const menuEl = await get(menu);
29
28
  if (menuEl) {
30
29
  return menuEl.toggle();
31
30
  }
@@ -63,35 +62,18 @@ const createMenuController = () => {
63
62
  }
64
63
  return false;
65
64
  };
66
- /**
67
- * Finds and returns the menu specified by "menu" if registered.
68
- * @param menu - The side or ID of the desired menu
69
- * @param logOnMultipleSideMenus - If true, this function will log a warning
70
- * if "menu" is a side but multiple menus on the same side were found. Since this function
71
- * is used in multiple places, we default this log to false so that the calling
72
- * functions can choose whether or not it is appropriate to log this warning.
73
- */
74
- const get = async (menu, logOnMultipleSideMenus = false) => {
65
+ const get = async (menu) => {
75
66
  await waitUntilReady();
76
67
  if (menu === 'start' || menu === 'end') {
77
68
  // there could be more than one menu on the same side
78
69
  // so first try to get the enabled one
79
- const menuRefs = menus.filter((m) => m.side === menu && !m.disabled);
80
- if (menuRefs.length >= 1) {
81
- if (menuRefs.length > 1 && logOnMultipleSideMenus) {
82
- printIonWarning(`menuController queried for a menu on the "${menu}" side, but ${menuRefs.length} menus were found. The first menu reference will be used. If this is not the behavior you want then pass the ID of the menu instead of its side.`, menuRefs.map((m) => m.el));
83
- }
84
- return menuRefs[0].el;
70
+ const menuRef = find((m) => m.side === menu && !m.disabled);
71
+ if (menuRef) {
72
+ return menuRef;
85
73
  }
86
74
  // didn't find a menu side that is enabled
87
75
  // so try to get the first menu side found
88
- const sideMenuRefs = menus.filter((m) => m.side === menu);
89
- if (sideMenuRefs.length >= 1) {
90
- if (sideMenuRefs.length > 1 && logOnMultipleSideMenus) {
91
- printIonWarning(`menuController queried for a menu on the "${menu}" side, but ${sideMenuRefs.length} menus were found. The first menu reference will be used. If this is not the behavior you want then pass the ID of the menu instead of its side.`, sideMenuRefs.map((m) => m.el));
92
- }
93
- return sideMenuRefs[0].el;
94
- }
76
+ return find((m) => m.side === menu);
95
77
  }
96
78
  else if (menu != null) {
97
79
  // the menuId was not left or right
@@ -133,6 +115,9 @@ const createMenuController = () => {
133
115
  };
134
116
  const _register = (menu) => {
135
117
  if (menus.indexOf(menu) < 0) {
118
+ if (!menu.disabled) {
119
+ _setActiveMenu(menu);
120
+ }
136
121
  menus.push(menu);
137
122
  }
138
123
  };
@@ -142,6 +127,13 @@ const createMenuController = () => {
142
127
  menus.splice(index, 1);
143
128
  }
144
129
  };
130
+ const _setActiveMenu = (menu) => {
131
+ // if this menu should be enabled
132
+ // then find all the other menus on this same side
133
+ // and automatically disable other same side menus
134
+ const side = menu.side;
135
+ menus.filter((m) => m.side === side && m !== menu).forEach((m) => (m.disabled = true));
136
+ };
145
137
  const _setOpen = async (menu, shouldOpen, animated) => {
146
138
  if (isAnimatingSync()) {
147
139
  return false;
@@ -213,6 +205,7 @@ const createMenuController = () => {
213
205
  _register,
214
206
  _unregister,
215
207
  _setOpen,
208
+ _setActiveMenu,
216
209
  };
217
210
  };
218
211
  export const menuController = /*@__PURE__*/ createMenuController();
@@ -75,7 +75,6 @@ const HapticEngine = {
75
75
  * if the browser does not support the Vibrate API.
76
76
  */
77
77
  if ((capacitor === null || capacitor === void 0 ? void 0 : capacitor.getPlatform()) === 'web') {
78
- // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
79
78
  return typeof navigator !== 'undefined' && navigator.vibrate !== undefined;
80
79
  }
81
80
  return true;
@@ -68,7 +68,6 @@ export const setOverlayId = (el) => {
68
68
  return el.id;
69
69
  };
70
70
  export const createOverlay = (tagName, opts) => {
71
- // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
72
71
  if (typeof window !== 'undefined' && typeof window.customElements !== 'undefined') {
73
72
  return window.customElements.whenDefined(tagName).then(() => {
74
73
  const element = document.createElement(tagName);
@@ -202,7 +202,6 @@ export const iosTransitionAnimation = (navEl, opts) => {
202
202
  .easing(opts.easing || EASING)
203
203
  .fill('both')
204
204
  .beforeRemoveClass('ion-page-invisible');
205
- // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
206
205
  if (leavingEl && navEl !== null && navEl !== undefined) {
207
206
  const navDecorAnimation = createAnimation();
208
207
  navDecorAnimation.addElement(navEl);
package/dist/docs.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
- "timestamp": "2023-11-20T21:34:41",
2
+ "timestamp": "2023-11-20T21:42:29",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
- "version": "4.4.0",
5
+ "version": "4.4.1",
6
6
  "typescriptVersion": "5.2.2"
7
7
  },
8
8
  "components": [
@@ -7102,17 +7102,11 @@
7102
7102
  },
7103
7103
  {
7104
7104
  "name": "hourCycle",
7105
- "type": "\"h11\" | \"h12\" | \"h23\" | \"h24\" | undefined",
7105
+ "type": "\"h12\" | \"h23\" | undefined",
7106
7106
  "complexType": {
7107
- "original": "DatetimeHourCycle",
7108
- "resolved": "\"h11\" | \"h12\" | \"h23\" | \"h24\" | undefined",
7109
- "references": {
7110
- "DatetimeHourCycle": {
7111
- "location": "import",
7112
- "path": "./datetime-interface",
7113
- "id": "src/components/datetime/datetime-interface.ts::DatetimeHourCycle"
7114
- }
7115
- }
7107
+ "original": "'h23' | 'h12'",
7108
+ "resolved": "\"h12\" | \"h23\" | undefined",
7109
+ "references": {}
7116
7110
  },
7117
7111
  "mutable": false,
7118
7112
  "attr": "hour-cycle",
@@ -7120,10 +7114,6 @@
7120
7114
  "docs": "The hour cycle of the `ion-datetime`. If no value is set, this is\nspecified by the current locale.",
7121
7115
  "docsTags": [],
7122
7116
  "values": [
7123
- {
7124
- "value": "h11",
7125
- "type": "string"
7126
- },
7127
7117
  {
7128
7118
  "value": "h12",
7129
7119
  "type": "string"
@@ -7132,10 +7122,6 @@
7132
7122
  "value": "h23",
7133
7123
  "type": "string"
7134
7124
  },
7135
- {
7136
- "value": "h24",
7137
- "type": "string"
7138
- },
7139
7125
  {
7140
7126
  "type": "undefined"
7141
7127
  }
@@ -27733,7 +27719,7 @@
27733
27719
  "mutable": false,
27734
27720
  "attr": "position",
27735
27721
  "reflectToAttr": false,
27736
- "docs": "The starting position of the toast on the screen. Can be tweaked further\nusing the `positionAnchor` property.",
27722
+ "docs": "The position of the toast on the screen.",
27737
27723
  "docsTags": [],
27738
27724
  "default": "'bottom'",
27739
27725
  "values": [
@@ -27753,38 +27739,6 @@
27753
27739
  "optional": false,
27754
27740
  "required": false
27755
27741
  },
27756
- {
27757
- "name": "positionAnchor",
27758
- "type": "HTMLElement | string | undefined",
27759
- "complexType": {
27760
- "original": "HTMLElement | string",
27761
- "resolved": "HTMLElement | string | undefined",
27762
- "references": {
27763
- "HTMLElement": {
27764
- "location": "global",
27765
- "id": "global::HTMLElement"
27766
- }
27767
- }
27768
- },
27769
- "mutable": false,
27770
- "attr": "position-anchor",
27771
- "reflectToAttr": false,
27772
- "docs": "The element to anchor the toast's position to. Can be set as a direct reference\nor the ID of the element. With `position=\"bottom\"`, the toast will sit above the\nchosen element. With `position=\"top\"`, the toast will sit below the chosen element.\nWith `position=\"middle\"`, the value of `positionAnchor` is ignored.",
27773
- "docsTags": [],
27774
- "values": [
27775
- {
27776
- "type": "HTMLElement"
27777
- },
27778
- {
27779
- "type": "string"
27780
- },
27781
- {
27782
- "type": "undefined"
27783
- }
27784
- ],
27785
- "optional": true,
27786
- "required": false
27787
- },
27788
27742
  {
27789
27743
  "name": "translucent",
27790
27744
  "type": "boolean",
@@ -27867,9 +27821,8 @@
27867
27821
  "id": "global::Promise"
27868
27822
  },
27869
27823
  "ToastDismissOptions": {
27870
- "location": "import",
27871
- "path": "./toast-interface",
27872
- "id": "src/components/toast/toast-interface.ts::ToastDismissOptions"
27824
+ "location": "global",
27825
+ "id": "global::ToastDismissOptions"
27873
27826
  }
27874
27827
  },
27875
27828
  "return": "Promise<boolean>"
@@ -27965,9 +27918,8 @@
27965
27918
  "id": "global::Promise"
27966
27919
  },
27967
27920
  "ToastPresentOptions": {
27968
- "location": "import",
27969
- "path": "./toast-interface",
27970
- "id": "src/components/toast/toast-interface.ts::ToastPresentOptions"
27921
+ "location": "global",
27922
+ "id": "global::ToastPresentOptions"
27971
27923
  }
27972
27924
  },
27973
27925
  "return": "Promise<void>"
@@ -29043,11 +28995,6 @@
29043
28995
  "docstring": "",
29044
28996
  "path": "src/components/datetime/datetime-interface.ts"
29045
28997
  },
29046
- "src/components/datetime/datetime-interface.ts::DatetimeHourCycle": {
29047
- "declaration": "export type DatetimeHourCycle = 'h11' | 'h12' | 'h23' | 'h24';",
29048
- "docstring": "",
29049
- "path": "src/components/datetime/datetime-interface.ts"
29050
- },
29051
28998
  "src/components/datetime/datetime-interface.ts::DatetimeChangeEventDetail": {
29052
28999
  "declaration": "export interface DatetimeChangeEventDetail {\n value?: string | string[] | null;\n}",
29053
29000
  "docstring": "",
@@ -29343,16 +29290,6 @@
29343
29290
  "docstring": "",
29344
29291
  "path": "src/components/toast/toast-interface.ts"
29345
29292
  },
29346
- "src/components/toast/toast-interface.ts::ToastPresentOptions": {
29347
- "declaration": "export type ToastPresentOptions = ToastPositionAlias & ToastAnimationPosition;",
29348
- "docstring": "",
29349
- "path": "src/components/toast/toast-interface.ts"
29350
- },
29351
- "src/components/toast/toast-interface.ts::ToastDismissOptions": {
29352
- "declaration": "export type ToastDismissOptions = ToastPositionAlias & ToastAnimationPosition;",
29353
- "docstring": "",
29354
- "path": "src/components/toast/toast-interface.ts"
29355
- },
29356
29293
  "src/components/toggle/toggle-interface.ts::ToggleChangeEventDetail": {
29357
29294
  "declaration": "export interface ToggleChangeEventDetail<T = any> {\n value: T;\n checked: boolean;\n}",
29358
29295
  "docstring": "",
@@ -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-63a8d8c9.js';
4
+ import { i as initialize } from './ionic-global-246ca78f.js';
5
5
 
6
6
  const globalScripts = initialize;
7
7
 
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { w as writeTask } from './index-cb894020.js';
5
- import { h as hapticSelectionEnd, a as hapticSelectionStart, b as hapticSelectionChanged } from './haptic-1243b917.js';
4
+ import { w as writeTask } from './index-b49b173c.js';
5
+ import { h as hapticSelectionEnd, a as hapticSelectionStart, b as hapticSelectionChanged } from './haptic-6447af60.js';
6
6
  import { createGesture } from './index-ff313b19.js';
7
7
 
8
8
  const createButtonActiveGesture = (el, isButton) => {