@ionic/core 8.4.4-dev.11741733932.1686c035 → 8.4.4-dev.11741890362.1f34266d

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 (430) hide show
  1. package/components/alert.js +30 -4
  2. package/components/helpers.js +7 -29
  3. package/components/index9.js +1 -1
  4. package/components/ion-range.js +28 -6
  5. package/components/ion-router.js +1 -1
  6. package/components/ion-segment-button.js +1 -1
  7. package/components/ion-toggle.js +4 -3
  8. package/components/ionic-global.js +3 -13
  9. package/dist/cjs/{app-globals-21afee77.js → app-globals-dd592863.js} +1 -1
  10. package/dist/cjs/{button-active-3f2f60b4.js → button-active-43e2b419.js} +1 -1
  11. package/dist/cjs/{framework-delegate-05579976.js → framework-delegate-11b0ba2f.js} +1 -1
  12. package/dist/cjs/{hardware-back-button-9e8a2c4f.js → hardware-back-button-5a99001f.js} +2 -2
  13. package/dist/cjs/{helpers-4be3f90d.js → helpers-d0dfbb50.js} +7 -28
  14. package/dist/cjs/{index-73f75efb.js → index-2e236a04.js} +0 -4
  15. package/dist/cjs/{index-ad7a712e.js → index-363fe6b2.js} +1 -1
  16. package/dist/cjs/{index-4e14a46e.js → index-55a184f7.js} +5 -5
  17. package/dist/cjs/{index-c441c903.js → index-77e085b4.js} +1 -1
  18. package/dist/cjs/{index-1ae3f40a.js → index-864d95f4.js} +3 -3
  19. package/dist/cjs/index.cjs.js +10 -10
  20. package/dist/cjs/{input-shims-e748a364.js → input-shims-52924092.js} +2 -2
  21. package/dist/cjs/{input.utils-74e4ec28.js → input.utils-e4144534.js} +1 -1
  22. package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
  23. package/dist/cjs/ion-action-sheet.cjs.entry.js +7 -7
  24. package/dist/cjs/ion-alert.cjs.entry.js +37 -11
  25. package/dist/cjs/ion-app_8.cjs.entry.js +12 -12
  26. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  27. package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
  28. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  29. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
  30. package/dist/cjs/ion-button_2.cjs.entry.js +3 -3
  31. package/dist/cjs/ion-card_5.cjs.entry.js +3 -3
  32. package/dist/cjs/ion-checkbox.cjs.entry.js +3 -3
  33. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  34. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  35. package/dist/cjs/ion-datetime-button.cjs.entry.js +3 -3
  36. package/dist/cjs/ion-datetime_3.cjs.entry.js +6 -6
  37. package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
  38. package/dist/cjs/ion-img.cjs.entry.js +3 -3
  39. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +4 -4
  40. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +2 -2
  41. package/dist/cjs/ion-input.cjs.entry.js +5 -5
  42. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  43. package/dist/cjs/ion-item_8.cjs.entry.js +3 -3
  44. package/dist/cjs/ion-loading.cjs.entry.js +6 -6
  45. package/dist/cjs/ion-menu_3.cjs.entry.js +7 -7
  46. package/dist/cjs/ion-modal.cjs.entry.js +8 -8
  47. package/dist/cjs/ion-nav_2.cjs.entry.js +6 -6
  48. package/dist/cjs/ion-picker-column-option.cjs.entry.js +3 -3
  49. package/dist/cjs/ion-picker-column.cjs.entry.js +3 -3
  50. package/dist/cjs/ion-picker.cjs.entry.js +2 -2
  51. package/dist/cjs/ion-popover.cjs.entry.js +7 -7
  52. package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -3
  53. package/dist/cjs/ion-radio_2.cjs.entry.js +3 -3
  54. package/dist/cjs/ion-range.cjs.entry.js +30 -9
  55. package/dist/cjs/ion-refresher_2.cjs.entry.js +4 -4
  56. package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
  57. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  58. package/dist/cjs/ion-route_4.cjs.entry.js +3 -3
  59. package/dist/cjs/ion-searchbar.cjs.entry.js +3 -3
  60. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  61. package/dist/cjs/ion-segment-view.cjs.entry.js +1 -1
  62. package/dist/cjs/ion-segment_2.cjs.entry.js +3 -3
  63. package/dist/cjs/ion-select-modal.cjs.entry.js +6 -6
  64. package/dist/cjs/ion-select_3.cjs.entry.js +7 -7
  65. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  66. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  67. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +3 -3
  68. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  69. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  70. package/dist/cjs/ion-textarea.cjs.entry.js +5 -5
  71. package/dist/cjs/ion-toast.cjs.entry.js +6 -6
  72. package/dist/cjs/ion-toggle.cjs.entry.js +7 -6
  73. package/dist/cjs/{ionic-global-d9a8bb5b.js → ionic-global-acb665ad.js} +3 -13
  74. package/dist/cjs/ionic.cjs.js +4 -4
  75. package/dist/cjs/{ios.transition-afdec89f.js → ios.transition-abac30e4.js} +4 -4
  76. package/dist/cjs/loader.cjs.js +4 -4
  77. package/dist/cjs/{md.transition-9f0d3db5.js → md.transition-e328f70d.js} +4 -4
  78. package/dist/cjs/{notch-controller-a0c464d1.js → notch-controller-58d2e557.js} +1 -1
  79. package/dist/cjs/{overlays-76b29cd4.js → overlays-2f264f05.js} +4 -4
  80. package/dist/cjs/{status-tap-fb807fad.js → status-tap-191ccc90.js} +3 -3
  81. package/dist/cjs/{swipe-back-47a52b83.js → swipe-back-951be2fd.js} +1 -1
  82. package/dist/collection/components/alert/alert.js +34 -4
  83. package/dist/collection/components/range/range.js +25 -6
  84. package/dist/collection/components/toggle/toggle.js +4 -3
  85. package/dist/collection/global/ionic-global.js +1 -12
  86. package/dist/collection/utils/floating-point/index.js +5 -0
  87. package/dist/collection/utils/helpers.js +6 -28
  88. package/dist/collection/utils/platform.js +2 -1
  89. package/dist/collection/utils/test/platform.utils.js +1 -1
  90. package/dist/docs.json +5 -1
  91. package/dist/esm/{app-globals-5dbb61a5.js → app-globals-7b6cbf1a.js} +1 -1
  92. package/dist/esm/{button-active-f6503382.js → button-active-90f1dbc4.js} +1 -1
  93. package/dist/esm/{framework-delegate-f683816e.js → framework-delegate-c7d92b77.js} +1 -1
  94. package/dist/esm/{hardware-back-button-06ef3c3e.js → hardware-back-button-864101a3.js} +2 -2
  95. package/dist/esm/{helpers-9b49d7d2.js → helpers-e48b0397.js} +7 -29
  96. package/dist/esm/{index-28849c61.js → index-527b9e34.js} +1 -4
  97. package/dist/esm/{index-5a0f5fd0.js → index-8222b29f.js} +1 -1
  98. package/dist/esm/{index-7ec5519a.js → index-c4a831fd.js} +5 -5
  99. package/dist/esm/{index-33f7e3ff.js → index-d4642b24.js} +1 -1
  100. package/dist/esm/{index-8785a9c6.js → index-df741ec6.js} +3 -3
  101. package/dist/esm/index.js +10 -10
  102. package/dist/esm/{input-shims-0e65111b.js → input-shims-80c5b98e.js} +2 -2
  103. package/dist/esm/{input.utils-1ad8dafc.js → input.utils-3a4c0a2a.js} +1 -1
  104. package/dist/esm/ion-accordion_2.entry.js +3 -3
  105. package/dist/esm/ion-action-sheet.entry.js +7 -7
  106. package/dist/esm/ion-alert.entry.js +37 -11
  107. package/dist/esm/ion-app_8.entry.js +12 -12
  108. package/dist/esm/ion-avatar_3.entry.js +2 -2
  109. package/dist/esm/ion-back-button.entry.js +3 -3
  110. package/dist/esm/ion-backdrop.entry.js +2 -2
  111. package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
  112. package/dist/esm/ion-button_2.entry.js +3 -3
  113. package/dist/esm/ion-card_5.entry.js +3 -3
  114. package/dist/esm/ion-checkbox.entry.js +3 -3
  115. package/dist/esm/ion-chip.entry.js +2 -2
  116. package/dist/esm/ion-col_3.entry.js +2 -2
  117. package/dist/esm/ion-datetime-button.entry.js +3 -3
  118. package/dist/esm/ion-datetime_3.entry.js +6 -6
  119. package/dist/esm/ion-fab_3.entry.js +3 -3
  120. package/dist/esm/ion-img.entry.js +3 -3
  121. package/dist/esm/ion-infinite-scroll_2.entry.js +4 -4
  122. package/dist/esm/ion-input-password-toggle.entry.js +2 -2
  123. package/dist/esm/ion-input.entry.js +5 -5
  124. package/dist/esm/ion-item-option_3.entry.js +4 -4
  125. package/dist/esm/ion-item_8.entry.js +3 -3
  126. package/dist/esm/ion-loading.entry.js +6 -6
  127. package/dist/esm/ion-menu_3.entry.js +7 -7
  128. package/dist/esm/ion-modal.entry.js +8 -8
  129. package/dist/esm/ion-nav_2.entry.js +6 -6
  130. package/dist/esm/ion-picker-column-option.entry.js +3 -3
  131. package/dist/esm/ion-picker-column.entry.js +3 -3
  132. package/dist/esm/ion-picker.entry.js +2 -2
  133. package/dist/esm/ion-popover.entry.js +7 -7
  134. package/dist/esm/ion-progress-bar.entry.js +3 -3
  135. package/dist/esm/ion-radio_2.entry.js +3 -3
  136. package/dist/esm/ion-range.entry.js +30 -9
  137. package/dist/esm/ion-refresher_2.entry.js +4 -4
  138. package/dist/esm/ion-reorder_2.entry.js +4 -4
  139. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  140. package/dist/esm/ion-route_4.entry.js +3 -3
  141. package/dist/esm/ion-searchbar.entry.js +3 -3
  142. package/dist/esm/ion-segment-content.entry.js +1 -1
  143. package/dist/esm/ion-segment-view.entry.js +1 -1
  144. package/dist/esm/ion-segment_2.entry.js +3 -3
  145. package/dist/esm/ion-select-modal.entry.js +6 -6
  146. package/dist/esm/ion-select_3.entry.js +7 -7
  147. package/dist/esm/ion-spinner.entry.js +2 -2
  148. package/dist/esm/ion-split-pane.entry.js +2 -2
  149. package/dist/esm/ion-tab-bar_2.entry.js +3 -3
  150. package/dist/esm/ion-tab_2.entry.js +3 -3
  151. package/dist/esm/ion-text.entry.js +2 -2
  152. package/dist/esm/ion-textarea.entry.js +5 -5
  153. package/dist/esm/ion-toast.entry.js +6 -6
  154. package/dist/esm/ion-toggle.entry.js +7 -6
  155. package/dist/esm/{ionic-global-c81d82ab.js → ionic-global-ca86cf32.js} +3 -13
  156. package/dist/esm/ionic.js +5 -5
  157. package/dist/esm/{ios.transition-085853ff.js → ios.transition-a81c9c6b.js} +4 -4
  158. package/dist/esm/loader.js +5 -5
  159. package/dist/esm/{md.transition-33826623.js → md.transition-dbb51edc.js} +4 -4
  160. package/dist/esm/{notch-controller-3dc61260.js → notch-controller-381a5334.js} +1 -1
  161. package/dist/esm/{overlays-e3d0d356.js → overlays-4ff1fca8.js} +4 -4
  162. package/dist/esm/{status-tap-163e8128.js → status-tap-73b183f4.js} +3 -3
  163. package/dist/esm/{swipe-back-23ee7ab1.js → swipe-back-276cda49.js} +1 -1
  164. package/dist/esm-es5/app-globals-7b6cbf1a.js +4 -0
  165. package/dist/esm-es5/{button-active-f6503382.js → button-active-90f1dbc4.js} +1 -1
  166. package/dist/esm-es5/{framework-delegate-f683816e.js → framework-delegate-c7d92b77.js} +1 -1
  167. package/dist/esm-es5/{hardware-back-button-06ef3c3e.js → hardware-back-button-864101a3.js} +1 -1
  168. package/dist/esm-es5/helpers-e48b0397.js +4 -0
  169. package/dist/esm-es5/index-527b9e34.js +5 -0
  170. package/dist/esm-es5/{index-5a0f5fd0.js → index-8222b29f.js} +1 -1
  171. package/dist/esm-es5/{index-7ec5519a.js → index-c4a831fd.js} +1 -1
  172. package/dist/esm-es5/{index-33f7e3ff.js → index-d4642b24.js} +1 -1
  173. package/dist/esm-es5/{index-8785a9c6.js → index-df741ec6.js} +1 -1
  174. package/dist/esm-es5/index.js +1 -1
  175. package/dist/esm-es5/{input-shims-0e65111b.js → input-shims-80c5b98e.js} +1 -1
  176. package/dist/esm-es5/{input.utils-1ad8dafc.js → input.utils-3a4c0a2a.js} +1 -1
  177. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  178. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  179. package/dist/esm-es5/ion-alert.entry.js +1 -1
  180. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  181. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  182. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  183. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  184. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  185. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  186. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  187. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  188. package/dist/esm-es5/ion-chip.entry.js +1 -1
  189. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  190. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  191. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  192. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  193. package/dist/esm-es5/ion-img.entry.js +1 -1
  194. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  195. package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
  196. package/dist/esm-es5/ion-input.entry.js +1 -1
  197. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  198. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  199. package/dist/esm-es5/ion-loading.entry.js +1 -1
  200. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  201. package/dist/esm-es5/ion-modal.entry.js +1 -1
  202. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  203. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  204. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  205. package/dist/esm-es5/ion-picker.entry.js +1 -1
  206. package/dist/esm-es5/ion-popover.entry.js +1 -1
  207. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  208. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  209. package/dist/esm-es5/ion-range.entry.js +1 -1
  210. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  211. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  212. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  213. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  214. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  215. package/dist/esm-es5/ion-segment-content.entry.js +1 -1
  216. package/dist/esm-es5/ion-segment-view.entry.js +1 -1
  217. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  218. package/dist/esm-es5/ion-select-modal.entry.js +1 -1
  219. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  220. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  221. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  222. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  223. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  224. package/dist/esm-es5/ion-text.entry.js +1 -1
  225. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  226. package/dist/esm-es5/ion-toast.entry.js +1 -1
  227. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  228. package/dist/esm-es5/ionic-global-ca86cf32.js +4 -0
  229. package/dist/esm-es5/ionic.js +1 -1
  230. package/dist/esm-es5/{ios.transition-085853ff.js → ios.transition-a81c9c6b.js} +1 -1
  231. package/dist/esm-es5/loader.js +1 -1
  232. package/dist/esm-es5/md.transition-dbb51edc.js +4 -0
  233. package/dist/esm-es5/{notch-controller-3dc61260.js → notch-controller-381a5334.js} +1 -1
  234. package/dist/esm-es5/{overlays-e3d0d356.js → overlays-4ff1fca8.js} +1 -1
  235. package/dist/esm-es5/{status-tap-163e8128.js → status-tap-73b183f4.js} +1 -1
  236. package/dist/esm-es5/{swipe-back-23ee7ab1.js → swipe-back-276cda49.js} +1 -1
  237. package/dist/ionic/index.esm.js +1 -1
  238. package/dist/ionic/ionic.esm.js +1 -1
  239. package/dist/ionic/ionic.js +1 -1
  240. package/dist/ionic/{p-1a790eef.system.js → p-00ab8b89.system.js} +1 -1
  241. package/dist/ionic/{p-da8ef548.system.entry.js → p-023e8017.system.entry.js} +1 -1
  242. package/dist/ionic/p-0749768d.entry.js +4 -0
  243. package/dist/ionic/{p-c29f8157.system.entry.js → p-0b860115.system.entry.js} +1 -1
  244. package/dist/ionic/{p-f89cf011.system.entry.js → p-0c9b8240.system.entry.js} +1 -1
  245. package/dist/ionic/{p-92365bc1.system.entry.js → p-0eb49e5c.system.entry.js} +1 -1
  246. package/dist/ionic/{p-0eb2553a.system.entry.js → p-1164ff6b.system.entry.js} +1 -1
  247. package/dist/ionic/{p-d192fdf7.system.entry.js → p-11bbdab8.system.entry.js} +1 -1
  248. package/dist/ionic/p-1332050e.entry.js +4 -0
  249. package/dist/ionic/{p-76446a85.entry.js → p-16cd36e4.entry.js} +1 -1
  250. package/dist/ionic/p-19179876.js +4 -0
  251. package/dist/ionic/{p-2ef3c7ee.system.entry.js → p-1a289aba.system.entry.js} +1 -1
  252. package/dist/ionic/{p-5fce0c0b.system.entry.js → p-1c1d781d.system.entry.js} +1 -1
  253. package/dist/ionic/{p-45de8d2a.entry.js → p-1cfb788a.entry.js} +1 -1
  254. package/dist/ionic/p-1d98a7f1.entry.js +4 -0
  255. package/dist/ionic/{p-7458862e.system.entry.js → p-1ef02643.system.entry.js} +1 -1
  256. package/dist/ionic/{p-0a59f4fa.entry.js → p-1ffab75e.entry.js} +1 -1
  257. package/dist/ionic/{p-69066a53.js → p-21891ead.js} +1 -1
  258. package/dist/ionic/{p-70ccc275.system.entry.js → p-21d1c1c7.system.entry.js} +1 -1
  259. package/dist/ionic/{p-d743e981.js → p-22bc235f.js} +1 -1
  260. package/dist/ionic/{p-075a94bd.js → p-27da8c2c.js} +1 -1
  261. package/dist/ionic/p-297d6806.system.js +4 -0
  262. package/dist/ionic/{p-a9e24ae2.system.entry.js → p-2ab4a324.system.entry.js} +1 -1
  263. package/dist/ionic/{p-48a8d9b4.system.entry.js → p-2d4658d4.system.entry.js} +1 -1
  264. package/dist/ionic/{p-e456ee59.system.entry.js → p-2f890012.system.entry.js} +1 -1
  265. package/dist/ionic/{p-561ddcd4.system.entry.js → p-31d6b3d0.system.entry.js} +2 -2
  266. package/dist/ionic/{p-3df889b3.system.entry.js → p-3250466d.system.entry.js} +1 -1
  267. package/dist/ionic/{p-6d32975a.entry.js → p-32d4ac00.entry.js} +1 -1
  268. package/dist/ionic/{p-56da53ad.system.entry.js → p-34b077b1.system.entry.js} +1 -1
  269. package/dist/ionic/{p-91f17b25.system.entry.js → p-36079188.system.entry.js} +2 -2
  270. package/dist/ionic/p-360f5507.entry.js +4 -0
  271. package/dist/ionic/{p-afecb188.entry.js → p-3705c194.entry.js} +1 -1
  272. package/dist/ionic/p-37e874f1.js +4 -0
  273. package/dist/ionic/{p-0397811d.entry.js → p-39b5611c.entry.js} +1 -1
  274. package/dist/ionic/p-3c66a690.entry.js +4 -0
  275. package/dist/ionic/{p-803f0bc2.entry.js → p-3e0bb0e1.entry.js} +1 -1
  276. package/dist/ionic/{p-4452a8ac.system.js → p-3e86b4fa.system.js} +1 -1
  277. package/dist/ionic/{p-6190d0d6.entry.js → p-3ef5e7fc.entry.js} +1 -1
  278. package/dist/ionic/{p-3572f86a.system.entry.js → p-3fc787a8.system.entry.js} +1 -1
  279. package/dist/ionic/{p-95da3ae2.system.js → p-44e168f3.system.js} +1 -1
  280. package/dist/ionic/p-4979cd1d.entry.js +4 -0
  281. package/dist/ionic/{p-dc146a2a.system.entry.js → p-49cb79a1.system.entry.js} +1 -1
  282. package/dist/ionic/{p-73dc4950.entry.js → p-4cfb0dc8.entry.js} +1 -1
  283. package/dist/ionic/p-4e1b109b.entry.js +4 -0
  284. package/dist/ionic/{p-da074ff7.entry.js → p-5175f06a.entry.js} +1 -1
  285. package/dist/ionic/{p-25fa1d30.system.entry.js → p-51fc2fac.system.entry.js} +1 -1
  286. package/dist/ionic/{p-c32644d7.entry.js → p-53d4d8c7.entry.js} +1 -1
  287. package/dist/ionic/p-5430a6da.entry.js +4 -0
  288. package/dist/ionic/p-597ff9af.js +4 -0
  289. package/dist/ionic/{p-e8f34871.entry.js → p-5f4ff20a.entry.js} +1 -1
  290. package/dist/ionic/{p-6b1bd0c1.entry.js → p-611d105b.entry.js} +1 -1
  291. package/dist/ionic/{p-bdad26e3.entry.js → p-61e794fb.entry.js} +1 -1
  292. package/dist/ionic/{p-3eaf1444.system.entry.js → p-6386ccd6.system.entry.js} +1 -1
  293. package/dist/ionic/{p-a4575db1.system.entry.js → p-6390c6ab.system.entry.js} +1 -1
  294. package/dist/ionic/p-64279526.js +4 -0
  295. package/dist/ionic/{p-0ee3b5a2.system.js → p-64da0521.system.js} +1 -1
  296. package/dist/ionic/p-66a5d6a8.js +5 -0
  297. package/dist/ionic/{p-9be5f3ee.system.entry.js → p-684c6a80.system.entry.js} +2 -2
  298. package/dist/ionic/p-6aa6839e.entry.js +4 -0
  299. package/dist/ionic/{p-84b1b9a0.entry.js → p-6cb61a35.entry.js} +1 -1
  300. package/dist/ionic/{p-955c3eb8.entry.js → p-6e24cf82.entry.js} +1 -1
  301. package/dist/ionic/{p-42808996.js → p-7737b8fa.js} +1 -1
  302. package/dist/ionic/{p-a2b6dd57.system.js → p-782ed885.system.js} +1 -1
  303. package/dist/ionic/{p-9f3008d4.system.js → p-7cc33a9a.system.js} +1 -1
  304. package/dist/ionic/{p-a3c78186.system.entry.js → p-7d425376.system.entry.js} +1 -1
  305. package/dist/ionic/{p-f3102647.system.entry.js → p-7e3b5638.system.entry.js} +1 -1
  306. package/dist/ionic/p-7f39653f.entry.js +4 -0
  307. package/dist/ionic/{p-2507278c.system.entry.js → p-811ff2a0.system.entry.js} +2 -2
  308. package/dist/ionic/{p-57379000.entry.js → p-847fd113.entry.js} +1 -1
  309. package/dist/ionic/p-85446175.js +4 -0
  310. package/dist/ionic/{p-32e99b0a.entry.js → p-85f19de9.entry.js} +1 -1
  311. package/dist/ionic/{p-4ad78edc.entry.js → p-85f6070f.entry.js} +1 -1
  312. package/dist/ionic/p-89204f3f.system.js +4 -0
  313. package/dist/ionic/{p-2abae1cc.system.entry.js → p-8b378b48.system.entry.js} +1 -1
  314. package/dist/ionic/{p-e2e19375.system.entry.js → p-8cfaf64f.system.entry.js} +1 -1
  315. package/dist/ionic/p-8d611ccd.entry.js +4 -0
  316. package/dist/ionic/p-8db97fa1.js +4 -0
  317. package/dist/ionic/{p-9eee4de1.system.js → p-8dbe745b.system.js} +1 -1
  318. package/dist/ionic/{p-df862603.entry.js → p-9023f5eb.entry.js} +1 -1
  319. package/dist/ionic/p-9048389e.entry.js +4 -0
  320. package/dist/ionic/{p-aa63b365.system.js → p-91fe21bb.system.js} +1 -1
  321. package/dist/ionic/p-941c06bc.js +4 -0
  322. package/dist/ionic/{p-7b96e5c1.system.entry.js → p-96f7bb84.system.entry.js} +1 -1
  323. package/dist/ionic/p-988a0306.system.js +4 -0
  324. package/dist/ionic/{p-5126cf1e.system.js → p-9a2ff5ea.system.js} +1 -1
  325. package/dist/ionic/{p-ecceeb90.js → p-9af7f110.js} +1 -1
  326. package/dist/ionic/{p-26194519.entry.js → p-9e7a9a27.entry.js} +1 -1
  327. package/dist/ionic/{p-d3b26da4.system.entry.js → p-a300835e.system.entry.js} +1 -1
  328. package/dist/ionic/{p-372ae7f4.system.js → p-a4866e3e.system.js} +1 -1
  329. package/dist/ionic/{p-5cde8ef3.entry.js → p-a6042939.entry.js} +1 -1
  330. package/dist/ionic/{p-dd0c9350.system.entry.js → p-a63b345e.system.entry.js} +1 -1
  331. package/dist/ionic/{p-3c8e5c23.system.js → p-a6625de8.system.js} +1 -1
  332. package/dist/ionic/{p-d06601eb.system.entry.js → p-a6f13a4e.system.entry.js} +1 -1
  333. package/dist/ionic/{p-9a1f985d.system.entry.js → p-a8584808.system.entry.js} +1 -1
  334. package/dist/ionic/{p-77e7b7b6.system.entry.js → p-a8cc566d.system.entry.js} +1 -1
  335. package/dist/ionic/{p-83e68c71.entry.js → p-a9b9259c.entry.js} +1 -1
  336. package/dist/ionic/p-aae8187b.system.entry.js +4 -0
  337. package/dist/ionic/p-ad780230.js +4 -0
  338. package/dist/ionic/{p-e8232807.system.js → p-adbbf974.system.js} +1 -1
  339. package/dist/ionic/{p-e265ae18.system.entry.js → p-ae518f0b.system.entry.js} +1 -1
  340. package/dist/ionic/{p-c1b51537.system.js → p-af873227.system.js} +1 -1
  341. package/dist/ionic/p-afcd55c6.entry.js +4 -0
  342. package/dist/ionic/{p-62af944c.entry.js → p-afd7a6a9.entry.js} +1 -1
  343. package/dist/ionic/{p-14143257.entry.js → p-b7ed7f16.entry.js} +1 -1
  344. package/dist/ionic/{p-c8d645b3.entry.js → p-b85d199c.entry.js} +1 -1
  345. package/dist/ionic/{p-57ceead7.entry.js → p-b88c5ce4.entry.js} +1 -1
  346. package/dist/ionic/{p-1bc65aec.system.entry.js → p-b8e3b3ca.system.entry.js} +1 -1
  347. package/dist/ionic/p-b9ea58ef.js +4 -0
  348. package/dist/ionic/{p-322c5fb4.system.js → p-bf64af90.system.js} +1 -1
  349. package/dist/ionic/{p-0c9b6d3a.system.entry.js → p-bf7f7084.system.entry.js} +2 -2
  350. package/dist/ionic/{p-1bbe8665.system.entry.js → p-bf973e4b.system.entry.js} +2 -2
  351. package/dist/ionic/{p-33a8a71b.entry.js → p-c005cc37.entry.js} +1 -1
  352. package/dist/ionic/{p-f78af648.system.entry.js → p-c5abee89.system.entry.js} +1 -1
  353. package/dist/ionic/{p-2bc73fb5.js → p-c8402249.js} +1 -1
  354. package/dist/ionic/{p-424eb140.system.entry.js → p-c8c27ae7.system.entry.js} +1 -1
  355. package/dist/ionic/p-cbd5b96a.entry.js +4 -0
  356. package/dist/ionic/p-ccbb47f5.entry.js +4 -0
  357. package/dist/ionic/{p-02e23f26.entry.js → p-cd239b25.entry.js} +1 -1
  358. package/dist/ionic/{p-7a1766d6.js → p-ceaea4ce.js} +1 -1
  359. package/dist/ionic/{p-84d08aae.system.entry.js → p-d37fdc68.system.entry.js} +1 -1
  360. package/dist/ionic/{p-2515cb4d.system.entry.js → p-d4308e05.system.entry.js} +1 -1
  361. package/dist/ionic/{p-fca6ef5f.system.entry.js → p-da5ae6cf.system.entry.js} +1 -1
  362. package/dist/ionic/{p-16799667.system.entry.js → p-dbac4f3e.system.entry.js} +1 -1
  363. package/dist/ionic/p-dc8cbb8b.entry.js +4 -0
  364. package/dist/ionic/{p-ffc48bc5.system.entry.js → p-dd141012.system.entry.js} +1 -1
  365. package/dist/ionic/p-ded39921.entry.js +4 -0
  366. package/dist/ionic/{p-f301a694.system.entry.js → p-df4c00a4.system.entry.js} +1 -1
  367. package/dist/ionic/p-df61d353.entry.js +4 -0
  368. package/dist/ionic/{p-8a836849.entry.js → p-e394222f.entry.js} +1 -1
  369. package/dist/ionic/{p-162c8d0c.system.entry.js → p-ea925d34.system.entry.js} +1 -1
  370. package/dist/ionic/{p-13dc21b0.js → p-ec631b0f.js} +1 -1
  371. package/dist/ionic/p-f11a9436.system.js +5 -0
  372. package/dist/ionic/{p-b91acf8d.system.entry.js → p-f1ad06bd.system.entry.js} +1 -1
  373. package/dist/ionic/{p-5b932840.entry.js → p-f1b20f28.entry.js} +1 -1
  374. package/dist/ionic/p-f1be5454.entry.js +4 -0
  375. package/dist/ionic/p-f201b53a.system.js +4 -0
  376. package/dist/ionic/{p-340e3f24.system.js → p-f30071a2.system.js} +1 -1
  377. package/dist/ionic/{p-d4ca0475.js → p-f554845e.js} +1 -1
  378. package/dist/ionic/{p-881d9e52.system.js → p-f59611e2.system.js} +1 -1
  379. package/dist/ionic/p-f97efff5.system.entry.js +4 -0
  380. package/dist/ionic/{p-ed75fcfb.system.entry.js → p-f9e7de97.system.entry.js} +1 -1
  381. package/dist/ionic/{p-95775830.entry.js → p-fd0f8d68.entry.js} +1 -1
  382. package/dist/types/components/range/range.d.ts +3 -2
  383. package/dist/types/utils/config.d.ts +0 -3
  384. package/dist/types/utils/helpers.d.ts +4 -0
  385. package/dist/types/utils/native/capacitor.d.ts +7 -1
  386. package/dist/types/utils/test/platform.utils.d.ts +1 -1
  387. package/hydrate/index.js +68 -41
  388. package/hydrate/index.mjs +68 -41
  389. package/package.json +6 -6
  390. package/dist/esm-es5/app-globals-5dbb61a5.js +0 -4
  391. package/dist/esm-es5/helpers-9b49d7d2.js +0 -4
  392. package/dist/esm-es5/index-28849c61.js +0 -5
  393. package/dist/esm-es5/ionic-global-c81d82ab.js +0 -4
  394. package/dist/esm-es5/md.transition-33826623.js +0 -4
  395. package/dist/ionic/p-02e1ebd9.js +0 -4
  396. package/dist/ionic/p-0574e87e.js +0 -4
  397. package/dist/ionic/p-0e43be1b.entry.js +0 -4
  398. package/dist/ionic/p-135e5731.js +0 -4
  399. package/dist/ionic/p-14be4015.entry.js +0 -4
  400. package/dist/ionic/p-16bfb979.system.entry.js +0 -4
  401. package/dist/ionic/p-1f405274.js +0 -4
  402. package/dist/ionic/p-203633d1.entry.js +0 -4
  403. package/dist/ionic/p-25180df3.system.js +0 -5
  404. package/dist/ionic/p-265939f0.entry.js +0 -4
  405. package/dist/ionic/p-2c9eb774.system.js +0 -4
  406. package/dist/ionic/p-41780810.entry.js +0 -4
  407. package/dist/ionic/p-4346c79d.system.entry.js +0 -4
  408. package/dist/ionic/p-49a0e74c.entry.js +0 -4
  409. package/dist/ionic/p-4c252070.entry.js +0 -4
  410. package/dist/ionic/p-51dec25d.js +0 -4
  411. package/dist/ionic/p-61d044b4.entry.js +0 -4
  412. package/dist/ionic/p-68dc53a5.js +0 -4
  413. package/dist/ionic/p-7b98cebe.entry.js +0 -4
  414. package/dist/ionic/p-82b931e2.entry.js +0 -4
  415. package/dist/ionic/p-9b3bb24e.entry.js +0 -4
  416. package/dist/ionic/p-a69b9fc5.system.js +0 -4
  417. package/dist/ionic/p-af09741c.entry.js +0 -4
  418. package/dist/ionic/p-b0d8bbee.entry.js +0 -4
  419. package/dist/ionic/p-b3680e2f.system.js +0 -4
  420. package/dist/ionic/p-b7433d7d.js +0 -4
  421. package/dist/ionic/p-bb11d9fb.js +0 -4
  422. package/dist/ionic/p-bb2a6761.entry.js +0 -4
  423. package/dist/ionic/p-cc700b6b.entry.js +0 -4
  424. package/dist/ionic/p-d836d43e.js +0 -5
  425. package/dist/ionic/p-e1bbacb7.entry.js +0 -4
  426. package/dist/ionic/p-e308de5b.system.js +0 -4
  427. package/dist/ionic/p-e97a3f44.entry.js +0 -4
  428. package/dist/ionic/p-f42743d1.entry.js +0 -4
  429. package/dist/ionic/p-f5035354.js +0 -4
  430. package/dist/ionic/p-fca17935.entry.js +0 -4
package/hydrate/index.js CHANGED
@@ -2536,37 +2536,9 @@ const inheritAriaAttributes = (el, ignoreList) => {
2536
2536
  return inheritAttributes$1(el, attributesToInherit);
2537
2537
  };
2538
2538
  const addEventListener$1 = (el, eventName, callback, opts) => {
2539
- var _a;
2540
- if (typeof window !== 'undefined') {
2541
- const win = window;
2542
- const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;
2543
- if (config) {
2544
- const ael = config.get('_ael');
2545
- if (ael) {
2546
- return ael(el, eventName, callback, opts);
2547
- }
2548
- else if (config._ael) {
2549
- return config._ael(el, eventName, callback, opts);
2550
- }
2551
- }
2552
- }
2553
2539
  return el.addEventListener(eventName, callback, opts);
2554
2540
  };
2555
2541
  const removeEventListener = (el, eventName, callback, opts) => {
2556
- var _a;
2557
- if (typeof window !== 'undefined') {
2558
- const win = window;
2559
- const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;
2560
- if (config) {
2561
- const rel = config.get('_rel');
2562
- if (rel) {
2563
- return rel(el, eventName, callback, opts);
2564
- }
2565
- else if (config._rel) {
2566
- return config._rel(el, eventName, callback, opts);
2567
- }
2568
- }
2569
- }
2570
2542
  return el.removeEventListener(eventName, callback, opts);
2571
2543
  };
2572
2544
  /**
@@ -2720,6 +2692,12 @@ const getNextSiblingOfType = (element) => {
2720
2692
  }
2721
2693
  return null;
2722
2694
  };
2695
+ /**
2696
+ * Checks input for usable number. Not NaN and not Infinite.
2697
+ */
2698
+ const isSafeNumber = (input) => {
2699
+ return typeof input === 'number' && !isNaN(input) && isFinite(input);
2700
+ };
2723
2701
 
2724
2702
  /* Ionicons v7.2.2, ES Modules */
2725
2703
  const arrowBackSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path stroke-linecap='square' stroke-miterlimit='10' stroke-width='48' d='M244 400L100 256l144-144M120 256h292' class='ionicon-fill-none'/></svg>";
@@ -2845,7 +2823,8 @@ const isHybrid = (win) => isCordova(win) || isCapacitorNative(win);
2845
2823
  const isCordova = (win) => !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);
2846
2824
  const isCapacitorNative = (win) => {
2847
2825
  const capacitor = win['Capacitor'];
2848
- return !!(capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNative);
2826
+ // TODO(ROU-11693): Remove when we no longer support Capacitor 2, which does not have isNativePlatform
2827
+ return !!((capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNative) || ((capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNativePlatform) && !!capacitor.isNativePlatform()));
2849
2828
  };
2850
2829
  const isElectron = (win) => testUserAgent(win, /electron/i);
2851
2830
  const isPWA = (win) => { var _a; return !!(((_a = win.matchMedia) === null || _a === void 0 ? void 0 : _a.call(win, '(display-mode: standalone)').matches) || win.navigator.standalone); };
@@ -7001,6 +6980,7 @@ class Alert {
7001
6980
  }
7002
6981
  }
7003
6982
  onKeydown(ev) {
6983
+ var _a;
7004
6984
  const inputTypes = new Set(this.processedInputs.map((i) => i.type));
7005
6985
  /**
7006
6986
  * Based on keyboard navigation requirements, the
@@ -7010,6 +6990,17 @@ class Alert {
7010
6990
  ev.preventDefault();
7011
6991
  return;
7012
6992
  }
6993
+ /**
6994
+ * Ensure when alert container is being focused, and the user presses the tab + shift keys, the focus will be set to the last alert button.
6995
+ */
6996
+ if (ev.target.classList.contains('alert-wrapper')) {
6997
+ if (ev.key === 'Tab' && ev.shiftKey) {
6998
+ ev.preventDefault();
6999
+ const lastChildBtn = (_a = this.wrapperEl) === null || _a === void 0 ? void 0 : _a.querySelector('.alert-button:last-child');
7000
+ lastChildBtn.focus();
7001
+ return;
7002
+ }
7003
+ }
7013
7004
  // The only inputs we want to navigate between using arrow keys are the radios
7014
7005
  // ignore the keydown event if it is not on a radio button
7015
7006
  if (!inputTypes.has('radio') ||
@@ -7141,7 +7132,21 @@ class Alert {
7141
7132
  async present() {
7142
7133
  const unlock = await this.lockController.lock();
7143
7134
  await this.delegateController.attachViewToDom();
7144
- await present(this, 'alertEnter', iosEnterAnimation$5, mdEnterAnimation$4);
7135
+ await present(this, 'alertEnter', iosEnterAnimation$5, mdEnterAnimation$4).then(() => {
7136
+ var _a, _b;
7137
+ /**
7138
+ * Check if alert has only one button and no inputs.
7139
+ * If so, then focus on the button. Otherwise, focus the alert wrapper.
7140
+ * This will map to the default native alert behavior.
7141
+ */
7142
+ if (this.buttons.length === 1 && this.inputs.length === 0) {
7143
+ const queryBtn = (_a = this.wrapperEl) === null || _a === void 0 ? void 0 : _a.querySelector('.alert-button');
7144
+ queryBtn.focus();
7145
+ }
7146
+ else {
7147
+ (_b = this.wrapperEl) === null || _b === void 0 ? void 0 : _b.focus();
7148
+ }
7149
+ });
7145
7150
  unlock();
7146
7151
  }
7147
7152
  /**
@@ -7313,8 +7318,8 @@ class Alert {
7313
7318
  const { overlayIndex, header, subHeader, message, htmlAttributes } = this;
7314
7319
  const mode = getIonMode$1(this);
7315
7320
  const hdrId = `alert-${overlayIndex}-hdr`;
7316
- const subHdrId = `alert-${overlayIndex}-sub-hdr`;
7317
7321
  const msgId = `alert-${overlayIndex}-msg`;
7322
+ const subHdrId = `alert-${overlayIndex}-sub-hdr`;
7318
7323
  const role = this.inputs.length > 0 || this.buttons.length > 0 ? 'alertdialog' : 'alert';
7319
7324
  /**
7320
7325
  * Use both the header and subHeader ids if they are defined.
@@ -7323,9 +7328,9 @@ class Alert {
7323
7328
  * If neither are defined, do not set aria-labelledby.
7324
7329
  */
7325
7330
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
7326
- return (hAsync(Host, Object.assign({ key: 'ad7e14b4f92a09387aa80abfb718a755e4e889d6', role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "-1" }, htmlAttributes, { style: {
7331
+ return (hAsync(Host, { key: '755f2398806084f16ee24d9fefce9ebc0b8f30f2', tabindex: "-1", style: {
7327
7332
  zIndex: `${20000 + overlayIndex}`,
7328
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: '4b4693dca3c910aa9a61c4d90295d785ec6cbe3d', tappable: this.backdropDismiss }), hAsync("div", { key: '64fd19b8f1d8246dcc869053f858bc33506def4b', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'e61ba6f339c3a02cecd37d8b641ee5043018eb29', class: "alert-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: '044e00667ffcb74aa2c5e0d0b42669c4004dbb4f', class: "alert-head" }, header && (hAsync("h2", { key: '1aaae8d58722c4cf5debb1f00415ab7ed0a52bbd', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '9c9854dc3b0ad40f1861a49b76d5636afcae9c74', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: '19aaca9912f77cde4ae8079be210eda697ed8de1', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: 'a85d27c516f7cdbc85b19f40d2f0bd865490b6a7', tabindex: "0", "aria-hidden": "true" })));
7333
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: '5965913fb076436e37f4a55cd8778cbc58449bfd', tappable: this.backdropDismiss }), hAsync("div", { key: 'cb17e07896b6ad8c9c607261fe08437b1a3b272f', tabindex: "0", "aria-hidden": "true" }), hAsync("div", Object.assign({ key: 'e1d43053dceab70b9392802767caa70fa7ed0518', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), hAsync("div", { key: 'a82e0bf863971084f3a8a34d25d6cf7aae1690a8', class: "alert-head" }, header && (hAsync("h2", { key: '36a9b4394f4b4cdcd6972ae60265ac889e2157cf', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '86008c1eb484cc69f66e42c254933ce289180785', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: 'bfaacd3b119d06273683019cddef2c42245c3101', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: '0e7df4ab31a72953dcf171ebc87074603f848c06', tabindex: "0", "aria-hidden": "true" })));
7329
7334
  }
7330
7335
  get el() { return getElement(this); }
7331
7336
  static get watchers() { return {
@@ -24925,6 +24930,8 @@ class RadioGroup {
24925
24930
  let radioGroupIds = 0;
24926
24931
 
24927
24932
  function getDecimalPlaces(n) {
24933
+ if (!isSafeNumber(n))
24934
+ return 0;
24928
24935
  if (n % 1 === 0)
24929
24936
  return 0;
24930
24937
  return n.toString().split('.')[1].length;
@@ -24962,6 +24969,8 @@ function getDecimalPlaces(n) {
24962
24969
  * be used as a reference for the desired specificity.
24963
24970
  */
24964
24971
  function roundToMaxDecimalPlaces(n, ...references) {
24972
+ if (!isSafeNumber(n))
24973
+ return 0;
24965
24974
  const maxPlaces = Math.max(...references.map((r) => getDecimalPlaces(r)));
24966
24975
  return Number(n.toFixed(maxPlaces));
24967
24976
  }
@@ -25098,16 +25107,27 @@ class Range {
25098
25107
  */
25099
25108
  this.ionInput = debounce === undefined ? originalIonInput !== null && originalIonInput !== void 0 ? originalIonInput : ionInput : debounceEvent(ionInput, debounce);
25100
25109
  }
25101
- minChanged() {
25110
+ minChanged(newValue) {
25111
+ if (!isSafeNumber(newValue)) {
25112
+ this.min = 0;
25113
+ }
25102
25114
  if (!this.noUpdate) {
25103
25115
  this.updateRatio();
25104
25116
  }
25105
25117
  }
25106
- maxChanged() {
25118
+ maxChanged(newValue) {
25119
+ if (!isSafeNumber(newValue)) {
25120
+ this.max = 100;
25121
+ }
25107
25122
  if (!this.noUpdate) {
25108
25123
  this.updateRatio();
25109
25124
  }
25110
25125
  }
25126
+ stepChanged(newValue) {
25127
+ if (!isSafeNumber(newValue)) {
25128
+ this.step = 1;
25129
+ }
25130
+ }
25111
25131
  activeBarStartChanged() {
25112
25132
  const { activeBarStart } = this;
25113
25133
  if (activeBarStart !== undefined) {
@@ -25140,6 +25160,11 @@ class Range {
25140
25160
  this.rangeId = this.el.getAttribute('id');
25141
25161
  }
25142
25162
  this.inheritedAttributes = inheritAriaAttributes(this.el);
25163
+ // If min, max, or step are not safe, set them to 0, 100, and 1, respectively.
25164
+ // Each watch does this, but not before the initial load.
25165
+ this.min = isSafeNumber(this.min) ? this.min : 0;
25166
+ this.max = isSafeNumber(this.max) ? this.max : 100;
25167
+ this.step = isSafeNumber(this.step) ? this.step : 1;
25143
25168
  }
25144
25169
  componentDidLoad() {
25145
25170
  this.originalIonInput = this.ionInput;
@@ -25534,7 +25559,7 @@ class Range {
25534
25559
  const needsEndAdjustment = inItem && !hasEndContent;
25535
25560
  const mode = getIonMode$1(this);
25536
25561
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
25537
- return (hAsync(Host, { key: '05c699caaead7cc74deaae2a958c4632191473a8', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
25562
+ return (hAsync(Host, { key: 'a9dacdb8935627860188c035f2edf6b8cc751dc5', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
25538
25563
  [mode]: true,
25539
25564
  'in-item': inItem,
25540
25565
  'range-disabled': disabled,
@@ -25543,16 +25568,17 @@ class Range {
25543
25568
  [`range-label-placement-${labelPlacement}`]: true,
25544
25569
  'range-item-start-adjustment': needsStartAdjustment,
25545
25570
  'range-item-end-adjustment': needsEndAdjustment,
25546
- }) }, hAsync("label", { key: '959837bcc48c4bda33ae1f62b66ef444329a2961', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'a434c6b5c26f57f52b3af98d881e7e6a179c89fc', class: {
25571
+ }) }, hAsync("label", { key: '4f5682ab5f793c1097956c092c8b88b6d676fe85', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'f906c5ab076275721cb8e99e22f5a3c2509713de', class: {
25547
25572
  'label-text-wrapper': true,
25548
25573
  'label-text-wrapper-hidden': !hasLabel,
25549
- }, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '87df1037b6b3337bd1fab05d33a26bf658c57914', class: "native-wrapper" }, hAsync("slot", { key: '2cb88f101da49b70aeae29b0bf5445fac241bb2f', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: '17b835cfb2bd9b8e1957afd425543ff02b913d83', name: "end" })))));
25574
+ }, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: 'bb6ca75df1394a01464d40a8b4ba6e08b3c12824', class: "native-wrapper" }, hAsync("slot", { key: '34f6e5f0ee73864ed2fa64cf041639f842540ae6', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: 'b8602e24234900fe9bb300610b236951bf2c6ebb', name: "end" })))));
25550
25575
  }
25551
25576
  get el() { return getElement(this); }
25552
25577
  static get watchers() { return {
25553
25578
  "debounce": ["debounceChanged"],
25554
25579
  "min": ["minChanged"],
25555
25580
  "max": ["maxChanged"],
25581
+ "step": ["stepChanged"],
25556
25582
  "activeBarStart": ["activeBarStartChanged"],
25557
25583
  "disabled": ["disabledChanged"],
25558
25584
  "value": ["valueChanged"]
@@ -32703,6 +32729,7 @@ class Toggle {
32703
32729
  const { checked, value } = this;
32704
32730
  const isNowChecked = !checked;
32705
32731
  this.checked = isNowChecked;
32732
+ this.setFocus();
32706
32733
  this.ionChange.emit({
32707
32734
  checked: isNowChecked,
32708
32735
  value,
@@ -32779,7 +32806,7 @@ class Toggle {
32779
32806
  const value = this.getValue();
32780
32807
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
32781
32808
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
32782
- return (hAsync(Host, { key: 'f52195ec3bc14c024647cb41319c32a4cd330e19', onClick: this.onClick, class: createColorClasses$1(color, {
32809
+ return (hAsync(Host, { key: '9d2a77db6d0bf36ef2452ac8b78a309943bff2b7', onClick: this.onClick, class: createColorClasses$1(color, {
32783
32810
  [mode]: true,
32784
32811
  'in-item': hostContext('ion-item', el),
32785
32812
  'toggle-activated': activated,
@@ -32789,10 +32816,10 @@ class Toggle {
32789
32816
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
32790
32817
  [`toggle-label-placement-${labelPlacement}`]: true,
32791
32818
  [`toggle-${rtl}`]: true,
32792
- }) }, hAsync("label", { key: 'f8b3a215ad85b2cee611ad63449b584e1640f27f', class: "toggle-wrapper" }, hAsync("input", Object.assign({ key: 'f387b1ea840737a9737917e516834c887be99c09', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, this.inheritedAttributes)), hAsync("div", { key: '936af880db59fe377cd2de9101eb28a1c4fb8914', class: {
32819
+ }) }, hAsync("label", { key: '079edf3636766fa423364e8e81712b83e8d5ec1c', class: "toggle-wrapper" }, hAsync("input", Object.assign({ key: 'f822114a89c7a48480c06057c987c2d63f21a25b', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, this.inheritedAttributes)), hAsync("div", { key: '1029805e127d2632bafb484429fb79b244a52c57', class: {
32793
32820
  'label-text-wrapper': true,
32794
32821
  'label-text-wrapper-hidden': !this.hasLabel,
32795
- }, part: "label" }, hAsync("slot", { key: '80a6672e2e792c15011a9496dcd75363cdba31c6' })), hAsync("div", { key: '2b2b318b38ab27b194c0dab4cecd77d9d780f2ca', class: "native-wrapper" }, this.renderToggleControl()))));
32822
+ }, part: "label" }, hAsync("slot", { key: 'ed27634a667c5bf30561f9911a3f94f3f755028f' })), hAsync("div", { key: '72ef6224eece08b6539fb3797e81d8817651a952', class: "native-wrapper" }, this.renderToggleControl()))));
32796
32823
  }
32797
32824
  get el() { return getElement(this); }
32798
32825
  static get watchers() { return {
package/hydrate/index.mjs CHANGED
@@ -2532,37 +2532,9 @@ const inheritAriaAttributes = (el, ignoreList) => {
2532
2532
  return inheritAttributes$1(el, attributesToInherit);
2533
2533
  };
2534
2534
  const addEventListener$1 = (el, eventName, callback, opts) => {
2535
- var _a;
2536
- if (typeof window !== 'undefined') {
2537
- const win = window;
2538
- const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;
2539
- if (config) {
2540
- const ael = config.get('_ael');
2541
- if (ael) {
2542
- return ael(el, eventName, callback, opts);
2543
- }
2544
- else if (config._ael) {
2545
- return config._ael(el, eventName, callback, opts);
2546
- }
2547
- }
2548
- }
2549
2535
  return el.addEventListener(eventName, callback, opts);
2550
2536
  };
2551
2537
  const removeEventListener = (el, eventName, callback, opts) => {
2552
- var _a;
2553
- if (typeof window !== 'undefined') {
2554
- const win = window;
2555
- const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;
2556
- if (config) {
2557
- const rel = config.get('_rel');
2558
- if (rel) {
2559
- return rel(el, eventName, callback, opts);
2560
- }
2561
- else if (config._rel) {
2562
- return config._rel(el, eventName, callback, opts);
2563
- }
2564
- }
2565
- }
2566
2538
  return el.removeEventListener(eventName, callback, opts);
2567
2539
  };
2568
2540
  /**
@@ -2716,6 +2688,12 @@ const getNextSiblingOfType = (element) => {
2716
2688
  }
2717
2689
  return null;
2718
2690
  };
2691
+ /**
2692
+ * Checks input for usable number. Not NaN and not Infinite.
2693
+ */
2694
+ const isSafeNumber = (input) => {
2695
+ return typeof input === 'number' && !isNaN(input) && isFinite(input);
2696
+ };
2719
2697
 
2720
2698
  /* Ionicons v7.2.2, ES Modules */
2721
2699
  const arrowBackSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path stroke-linecap='square' stroke-miterlimit='10' stroke-width='48' d='M244 400L100 256l144-144M120 256h292' class='ionicon-fill-none'/></svg>";
@@ -2841,7 +2819,8 @@ const isHybrid = (win) => isCordova(win) || isCapacitorNative(win);
2841
2819
  const isCordova = (win) => !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);
2842
2820
  const isCapacitorNative = (win) => {
2843
2821
  const capacitor = win['Capacitor'];
2844
- return !!(capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNative);
2822
+ // TODO(ROU-11693): Remove when we no longer support Capacitor 2, which does not have isNativePlatform
2823
+ return !!((capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNative) || ((capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNativePlatform) && !!capacitor.isNativePlatform()));
2845
2824
  };
2846
2825
  const isElectron = (win) => testUserAgent(win, /electron/i);
2847
2826
  const isPWA = (win) => { var _a; return !!(((_a = win.matchMedia) === null || _a === void 0 ? void 0 : _a.call(win, '(display-mode: standalone)').matches) || win.navigator.standalone); };
@@ -6997,6 +6976,7 @@ class Alert {
6997
6976
  }
6998
6977
  }
6999
6978
  onKeydown(ev) {
6979
+ var _a;
7000
6980
  const inputTypes = new Set(this.processedInputs.map((i) => i.type));
7001
6981
  /**
7002
6982
  * Based on keyboard navigation requirements, the
@@ -7006,6 +6986,17 @@ class Alert {
7006
6986
  ev.preventDefault();
7007
6987
  return;
7008
6988
  }
6989
+ /**
6990
+ * Ensure when alert container is being focused, and the user presses the tab + shift keys, the focus will be set to the last alert button.
6991
+ */
6992
+ if (ev.target.classList.contains('alert-wrapper')) {
6993
+ if (ev.key === 'Tab' && ev.shiftKey) {
6994
+ ev.preventDefault();
6995
+ const lastChildBtn = (_a = this.wrapperEl) === null || _a === void 0 ? void 0 : _a.querySelector('.alert-button:last-child');
6996
+ lastChildBtn.focus();
6997
+ return;
6998
+ }
6999
+ }
7009
7000
  // The only inputs we want to navigate between using arrow keys are the radios
7010
7001
  // ignore the keydown event if it is not on a radio button
7011
7002
  if (!inputTypes.has('radio') ||
@@ -7137,7 +7128,21 @@ class Alert {
7137
7128
  async present() {
7138
7129
  const unlock = await this.lockController.lock();
7139
7130
  await this.delegateController.attachViewToDom();
7140
- await present(this, 'alertEnter', iosEnterAnimation$5, mdEnterAnimation$4);
7131
+ await present(this, 'alertEnter', iosEnterAnimation$5, mdEnterAnimation$4).then(() => {
7132
+ var _a, _b;
7133
+ /**
7134
+ * Check if alert has only one button and no inputs.
7135
+ * If so, then focus on the button. Otherwise, focus the alert wrapper.
7136
+ * This will map to the default native alert behavior.
7137
+ */
7138
+ if (this.buttons.length === 1 && this.inputs.length === 0) {
7139
+ const queryBtn = (_a = this.wrapperEl) === null || _a === void 0 ? void 0 : _a.querySelector('.alert-button');
7140
+ queryBtn.focus();
7141
+ }
7142
+ else {
7143
+ (_b = this.wrapperEl) === null || _b === void 0 ? void 0 : _b.focus();
7144
+ }
7145
+ });
7141
7146
  unlock();
7142
7147
  }
7143
7148
  /**
@@ -7309,8 +7314,8 @@ class Alert {
7309
7314
  const { overlayIndex, header, subHeader, message, htmlAttributes } = this;
7310
7315
  const mode = getIonMode$1(this);
7311
7316
  const hdrId = `alert-${overlayIndex}-hdr`;
7312
- const subHdrId = `alert-${overlayIndex}-sub-hdr`;
7313
7317
  const msgId = `alert-${overlayIndex}-msg`;
7318
+ const subHdrId = `alert-${overlayIndex}-sub-hdr`;
7314
7319
  const role = this.inputs.length > 0 || this.buttons.length > 0 ? 'alertdialog' : 'alert';
7315
7320
  /**
7316
7321
  * Use both the header and subHeader ids if they are defined.
@@ -7319,9 +7324,9 @@ class Alert {
7319
7324
  * If neither are defined, do not set aria-labelledby.
7320
7325
  */
7321
7326
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
7322
- return (hAsync(Host, Object.assign({ key: 'ad7e14b4f92a09387aa80abfb718a755e4e889d6', role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "-1" }, htmlAttributes, { style: {
7327
+ return (hAsync(Host, { key: '755f2398806084f16ee24d9fefce9ebc0b8f30f2', tabindex: "-1", style: {
7323
7328
  zIndex: `${20000 + overlayIndex}`,
7324
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: '4b4693dca3c910aa9a61c4d90295d785ec6cbe3d', tappable: this.backdropDismiss }), hAsync("div", { key: '64fd19b8f1d8246dcc869053f858bc33506def4b', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'e61ba6f339c3a02cecd37d8b641ee5043018eb29', class: "alert-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: '044e00667ffcb74aa2c5e0d0b42669c4004dbb4f', class: "alert-head" }, header && (hAsync("h2", { key: '1aaae8d58722c4cf5debb1f00415ab7ed0a52bbd', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '9c9854dc3b0ad40f1861a49b76d5636afcae9c74', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: '19aaca9912f77cde4ae8079be210eda697ed8de1', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: 'a85d27c516f7cdbc85b19f40d2f0bd865490b6a7', tabindex: "0", "aria-hidden": "true" })));
7329
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: '5965913fb076436e37f4a55cd8778cbc58449bfd', tappable: this.backdropDismiss }), hAsync("div", { key: 'cb17e07896b6ad8c9c607261fe08437b1a3b272f', tabindex: "0", "aria-hidden": "true" }), hAsync("div", Object.assign({ key: 'e1d43053dceab70b9392802767caa70fa7ed0518', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), hAsync("div", { key: 'a82e0bf863971084f3a8a34d25d6cf7aae1690a8', class: "alert-head" }, header && (hAsync("h2", { key: '36a9b4394f4b4cdcd6972ae60265ac889e2157cf', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '86008c1eb484cc69f66e42c254933ce289180785', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: 'bfaacd3b119d06273683019cddef2c42245c3101', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: '0e7df4ab31a72953dcf171ebc87074603f848c06', tabindex: "0", "aria-hidden": "true" })));
7325
7330
  }
7326
7331
  get el() { return getElement(this); }
7327
7332
  static get watchers() { return {
@@ -24921,6 +24926,8 @@ class RadioGroup {
24921
24926
  let radioGroupIds = 0;
24922
24927
 
24923
24928
  function getDecimalPlaces(n) {
24929
+ if (!isSafeNumber(n))
24930
+ return 0;
24924
24931
  if (n % 1 === 0)
24925
24932
  return 0;
24926
24933
  return n.toString().split('.')[1].length;
@@ -24958,6 +24965,8 @@ function getDecimalPlaces(n) {
24958
24965
  * be used as a reference for the desired specificity.
24959
24966
  */
24960
24967
  function roundToMaxDecimalPlaces(n, ...references) {
24968
+ if (!isSafeNumber(n))
24969
+ return 0;
24961
24970
  const maxPlaces = Math.max(...references.map((r) => getDecimalPlaces(r)));
24962
24971
  return Number(n.toFixed(maxPlaces));
24963
24972
  }
@@ -25094,16 +25103,27 @@ class Range {
25094
25103
  */
25095
25104
  this.ionInput = debounce === undefined ? originalIonInput !== null && originalIonInput !== void 0 ? originalIonInput : ionInput : debounceEvent(ionInput, debounce);
25096
25105
  }
25097
- minChanged() {
25106
+ minChanged(newValue) {
25107
+ if (!isSafeNumber(newValue)) {
25108
+ this.min = 0;
25109
+ }
25098
25110
  if (!this.noUpdate) {
25099
25111
  this.updateRatio();
25100
25112
  }
25101
25113
  }
25102
- maxChanged() {
25114
+ maxChanged(newValue) {
25115
+ if (!isSafeNumber(newValue)) {
25116
+ this.max = 100;
25117
+ }
25103
25118
  if (!this.noUpdate) {
25104
25119
  this.updateRatio();
25105
25120
  }
25106
25121
  }
25122
+ stepChanged(newValue) {
25123
+ if (!isSafeNumber(newValue)) {
25124
+ this.step = 1;
25125
+ }
25126
+ }
25107
25127
  activeBarStartChanged() {
25108
25128
  const { activeBarStart } = this;
25109
25129
  if (activeBarStart !== undefined) {
@@ -25136,6 +25156,11 @@ class Range {
25136
25156
  this.rangeId = this.el.getAttribute('id');
25137
25157
  }
25138
25158
  this.inheritedAttributes = inheritAriaAttributes(this.el);
25159
+ // If min, max, or step are not safe, set them to 0, 100, and 1, respectively.
25160
+ // Each watch does this, but not before the initial load.
25161
+ this.min = isSafeNumber(this.min) ? this.min : 0;
25162
+ this.max = isSafeNumber(this.max) ? this.max : 100;
25163
+ this.step = isSafeNumber(this.step) ? this.step : 1;
25139
25164
  }
25140
25165
  componentDidLoad() {
25141
25166
  this.originalIonInput = this.ionInput;
@@ -25530,7 +25555,7 @@ class Range {
25530
25555
  const needsEndAdjustment = inItem && !hasEndContent;
25531
25556
  const mode = getIonMode$1(this);
25532
25557
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
25533
- return (hAsync(Host, { key: '05c699caaead7cc74deaae2a958c4632191473a8', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
25558
+ return (hAsync(Host, { key: 'a9dacdb8935627860188c035f2edf6b8cc751dc5', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
25534
25559
  [mode]: true,
25535
25560
  'in-item': inItem,
25536
25561
  'range-disabled': disabled,
@@ -25539,16 +25564,17 @@ class Range {
25539
25564
  [`range-label-placement-${labelPlacement}`]: true,
25540
25565
  'range-item-start-adjustment': needsStartAdjustment,
25541
25566
  'range-item-end-adjustment': needsEndAdjustment,
25542
- }) }, hAsync("label", { key: '959837bcc48c4bda33ae1f62b66ef444329a2961', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'a434c6b5c26f57f52b3af98d881e7e6a179c89fc', class: {
25567
+ }) }, hAsync("label", { key: '4f5682ab5f793c1097956c092c8b88b6d676fe85', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'f906c5ab076275721cb8e99e22f5a3c2509713de', class: {
25543
25568
  'label-text-wrapper': true,
25544
25569
  'label-text-wrapper-hidden': !hasLabel,
25545
- }, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '87df1037b6b3337bd1fab05d33a26bf658c57914', class: "native-wrapper" }, hAsync("slot", { key: '2cb88f101da49b70aeae29b0bf5445fac241bb2f', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: '17b835cfb2bd9b8e1957afd425543ff02b913d83', name: "end" })))));
25570
+ }, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: 'bb6ca75df1394a01464d40a8b4ba6e08b3c12824', class: "native-wrapper" }, hAsync("slot", { key: '34f6e5f0ee73864ed2fa64cf041639f842540ae6', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: 'b8602e24234900fe9bb300610b236951bf2c6ebb', name: "end" })))));
25546
25571
  }
25547
25572
  get el() { return getElement(this); }
25548
25573
  static get watchers() { return {
25549
25574
  "debounce": ["debounceChanged"],
25550
25575
  "min": ["minChanged"],
25551
25576
  "max": ["maxChanged"],
25577
+ "step": ["stepChanged"],
25552
25578
  "activeBarStart": ["activeBarStartChanged"],
25553
25579
  "disabled": ["disabledChanged"],
25554
25580
  "value": ["valueChanged"]
@@ -32699,6 +32725,7 @@ class Toggle {
32699
32725
  const { checked, value } = this;
32700
32726
  const isNowChecked = !checked;
32701
32727
  this.checked = isNowChecked;
32728
+ this.setFocus();
32702
32729
  this.ionChange.emit({
32703
32730
  checked: isNowChecked,
32704
32731
  value,
@@ -32775,7 +32802,7 @@ class Toggle {
32775
32802
  const value = this.getValue();
32776
32803
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
32777
32804
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
32778
- return (hAsync(Host, { key: 'f52195ec3bc14c024647cb41319c32a4cd330e19', onClick: this.onClick, class: createColorClasses$1(color, {
32805
+ return (hAsync(Host, { key: '9d2a77db6d0bf36ef2452ac8b78a309943bff2b7', onClick: this.onClick, class: createColorClasses$1(color, {
32779
32806
  [mode]: true,
32780
32807
  'in-item': hostContext('ion-item', el),
32781
32808
  'toggle-activated': activated,
@@ -32785,10 +32812,10 @@ class Toggle {
32785
32812
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
32786
32813
  [`toggle-label-placement-${labelPlacement}`]: true,
32787
32814
  [`toggle-${rtl}`]: true,
32788
- }) }, hAsync("label", { key: 'f8b3a215ad85b2cee611ad63449b584e1640f27f', class: "toggle-wrapper" }, hAsync("input", Object.assign({ key: 'f387b1ea840737a9737917e516834c887be99c09', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, this.inheritedAttributes)), hAsync("div", { key: '936af880db59fe377cd2de9101eb28a1c4fb8914', class: {
32815
+ }) }, hAsync("label", { key: '079edf3636766fa423364e8e81712b83e8d5ec1c', class: "toggle-wrapper" }, hAsync("input", Object.assign({ key: 'f822114a89c7a48480c06057c987c2d63f21a25b', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, this.inheritedAttributes)), hAsync("div", { key: '1029805e127d2632bafb484429fb79b244a52c57', class: {
32789
32816
  'label-text-wrapper': true,
32790
32817
  'label-text-wrapper-hidden': !this.hasLabel,
32791
- }, part: "label" }, hAsync("slot", { key: '80a6672e2e792c15011a9496dcd75363cdba31c6' })), hAsync("div", { key: '2b2b318b38ab27b194c0dab4cecd77d9d780f2ca', class: "native-wrapper" }, this.renderToggleControl()))));
32818
+ }, part: "label" }, hAsync("slot", { key: 'ed27634a667c5bf30561f9911a3f94f3f755028f' })), hAsync("div", { key: '72ef6224eece08b6539fb3797e81d8817651a952', class: "native-wrapper" }, this.renderToggleControl()))));
32792
32819
  }
32793
32820
  get el() { return getElement(this); }
32794
32821
  static get watchers() { return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ionic/core",
3
- "version": "8.4.4-dev.11741733932.1686c035",
3
+ "version": "8.4.4-dev.11741890362.1f34266d",
4
4
  "description": "Base components for Ionic",
5
5
  "keywords": [
6
6
  "ionic",
@@ -37,10 +37,10 @@
37
37
  },
38
38
  "devDependencies": {
39
39
  "@axe-core/playwright": "^4.10.0",
40
- "@capacitor/core": "^6.0.0",
41
- "@capacitor/haptics": "^6.0.0",
42
- "@capacitor/keyboard": "^6.0.0",
43
- "@capacitor/status-bar": "^6.0.0",
40
+ "@capacitor/core": "^7.0.0",
41
+ "@capacitor/haptics": "^7.0.0",
42
+ "@capacitor/keyboard": "^7.0.0",
43
+ "@capacitor/status-bar": "^7.0.0",
44
44
  "@clack/prompts": "^0.10.0",
45
45
  "@ionic/eslint-config": "^0.3.0",
46
46
  "@ionic/prettier-config": "^2.0.0",
@@ -50,7 +50,7 @@
50
50
  "@stencil/angular-output-target": "^0.10.0",
51
51
  "@stencil/react-output-target": "0.5.3",
52
52
  "@stencil/sass": "^3.0.9",
53
- "@stencil/vue-output-target": "^0.10.1",
53
+ "@stencil/vue-output-target": "^0.10.4",
54
54
  "@types/jest": "^29.5.6",
55
55
  "@types/node": "^14.6.0",
56
56
  "@typescript-eslint/eslint-plugin": "^6.7.2",
@@ -1,4 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- import{i as initialize}from"./ionic-global-c81d82ab.js";var globalScripts=initialize;export{globalScripts as g};
@@ -1,4 +0,0 @@
1
- import{__spreadArray}from"tslib";
2
- /*!
3
- * (C) Ionic http://ionicframework.com - MIT License
4
- */var transitionEndAsync=function(r,a){if(a===void 0){a=0}return new Promise((function(i){transitionEnd(r,a,i)}))};var transitionEnd=function(r,a,i){if(a===void 0){a=0}var e;var n;var t={passive:true};var o=500;var u=function(){if(e){e()}};var s=function(a){if(a===undefined||r===a.target){u();i(a)}};if(r){r.addEventListener("webkitTransitionEnd",s,t);r.addEventListener("transitionend",s,t);n=setTimeout(s,a+o);e=function(){if(n!==undefined){clearTimeout(n);n=undefined}r.removeEventListener("webkitTransitionEnd",s,t);r.removeEventListener("transitionend",s,t)}}return u};var componentOnReady=function(r,a){if(r.componentOnReady){r.componentOnReady().then((function(r){return a(r)}))}else{raf((function(){return a(r)}))}};var hasLazyBuild=function(r){return r.componentOnReady!==undefined};var inheritAttributes=function(r,a){if(a===void 0){a=[]}var i={};a.forEach((function(a){if(r.hasAttribute(a)){var e=r.getAttribute(a);if(e!==null){i[a]=r.getAttribute(a)}r.removeAttribute(a)}}));return i};var ariaAttributes=["role","aria-activedescendant","aria-atomic","aria-autocomplete","aria-braillelabel","aria-brailleroledescription","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colindextext","aria-colspan","aria-controls","aria-current","aria-describedby","aria-description","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowindextext","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext"];var inheritAriaAttributes=function(r,a){var i=ariaAttributes;if(a&&a.length>0){i=i.filter((function(r){return!a.includes(r)}))}return inheritAttributes(r,i)};var addEventListener=function(r,a,i,e){var n;if(typeof window!=="undefined"){var t=window;var o=(n=t===null||t===void 0?void 0:t.Ionic)===null||n===void 0?void 0:n.config;if(o){var u=o.get("_ael");if(u){return u(r,a,i,e)}else if(o._ael){return o._ael(r,a,i,e)}}}return r.addEventListener(a,i,e)};var removeEventListener=function(r,a,i,e){var n;if(typeof window!=="undefined"){var t=window;var o=(n=t===null||t===void 0?void 0:t.Ionic)===null||n===void 0?void 0:n.config;if(o){var u=o.get("_rel");if(u){return u(r,a,i,e)}else if(o._rel){return o._rel(r,a,i,e)}}}return r.removeEventListener(a,i,e)};var getElementRoot=function(r,a){if(a===void 0){a=r}return r.shadowRoot||a};var raf=function(r){if(typeof __zone_symbol__requestAnimationFrame==="function"){return __zone_symbol__requestAnimationFrame(r)}if(typeof requestAnimationFrame==="function"){return requestAnimationFrame(r)}return setTimeout(r)};var hasShadowDom=function(r){return!!r.shadowRoot&&!!r.attachShadow};var focusVisibleElement=function(r){r.focus();if(r.classList.contains("ion-focusable")){var a=r.closest("ion-app");if(a){a.setFocus([r])}}};var renderHiddenInput=function(r,a,i,e,n){if(r||hasShadowDom(a)){var t=a.querySelector("input.aux-input");if(!t){t=a.ownerDocument.createElement("input");t.type="hidden";t.classList.add("aux-input");a.appendChild(t)}t.disabled=n;t.name=i;t.value=e||""}};var clamp=function(r,a,i){return Math.max(r,Math.min(a,i))};var assert=function(r,a){if(!r){var i="ASSERT: "+a;console.error(i);debugger;throw new Error(i)}};var pointerCoord=function(r){if(r){var a=r.changedTouches;if(a&&a.length>0){var i=a[0];return{x:i.clientX,y:i.clientY}}if(r.pageX!==undefined){return{x:r.pageX,y:r.pageY}}}return{x:0,y:0}};var isEndSide=function(r){var a=document.dir==="rtl";switch(r){case"start":return a;case"end":return!a;default:throw new Error('"'.concat(r,'" is not a valid value for [side]. Use "start" or "end" instead.'))}};var debounceEvent=function(r,a){var i=r._original||r;return{_original:r,emit:debounce(i.emit.bind(i),a)}};var debounce=function(r,a){if(a===void 0){a=0}var i;return function(){var e=[];for(var n=0;n<arguments.length;n++){e[n]=arguments[n]}clearTimeout(i);i=setTimeout.apply(void 0,__spreadArray([r,a],e,false))}};var shallowEqualStringMap=function(r,a){r!==null&&r!==void 0?r:r={};a!==null&&a!==void 0?a:a={};if(r===a){return true}var i=Object.keys(r);if(i.length!==Object.keys(a).length){return false}for(var e=0,n=i;e<n.length;e++){var t=n[e];if(!(t in a)){return false}if(r[t]!==a[t]){return false}}return true};var getNextSiblingOfType=function(r){var a=r.nextSibling;while(a){if(a.nodeType===Node.ELEMENT_NODE&&a!==null){return a}a=a.nextSibling}return null};export{addEventListener as a,removeEventListener as b,componentOnReady as c,renderHiddenInput as d,debounceEvent as e,focusVisibleElement as f,getElementRoot as g,inheritAttributes as h,inheritAriaAttributes as i,clamp as j,hasLazyBuild as k,hasShadowDom as l,assert as m,getNextSiblingOfType as n,isEndSide as o,debounce as p,pointerCoord as q,raf as r,shallowEqualStringMap as s,transitionEndAsync as t};