@ionic/core 8.4.4-nightly.20250306 → 8.4.4-nightly.20250310

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 (310) hide show
  1. package/components/alert.js +30 -4
  2. package/components/helpers.js +7 -1
  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/dist/cjs/{framework-delegate-05579976.js → framework-delegate-c4f2ba04.js} +1 -1
  8. package/dist/cjs/{helpers-4be3f90d.js → helpers-b14a0f09.js} +7 -0
  9. package/dist/cjs/{index-9c6c9e9c.js → index-1248dbd7.js} +1 -1
  10. package/dist/cjs/{index-90ec3b6c.js → index-4e37257d.js} +3 -3
  11. package/dist/cjs/{index-ad7a712e.js → index-786364c7.js} +1 -1
  12. package/dist/cjs/{index-c441c903.js → index-a4a74252.js} +1 -1
  13. package/dist/cjs/index.cjs.js +7 -7
  14. package/dist/cjs/{input-shims-e748a364.js → input-shims-b4c0eee7.js} +2 -2
  15. package/dist/cjs/{input.utils-74e4ec28.js → input.utils-4af208ab.js} +1 -1
  16. package/dist/cjs/ion-accordion_2.cjs.entry.js +1 -1
  17. package/dist/cjs/ion-action-sheet.cjs.entry.js +3 -3
  18. package/dist/cjs/ion-alert.cjs.entry.js +33 -7
  19. package/dist/cjs/ion-app_8.cjs.entry.js +8 -8
  20. package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
  21. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +1 -1
  22. package/dist/cjs/ion-button_2.cjs.entry.js +1 -1
  23. package/dist/cjs/ion-card_5.cjs.entry.js +1 -1
  24. package/dist/cjs/ion-checkbox.cjs.entry.js +1 -1
  25. package/dist/cjs/ion-datetime-button.cjs.entry.js +1 -1
  26. package/dist/cjs/ion-datetime_3.cjs.entry.js +3 -3
  27. package/dist/cjs/ion-fab_3.cjs.entry.js +1 -1
  28. package/dist/cjs/ion-img.cjs.entry.js +1 -1
  29. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
  30. package/dist/cjs/ion-input.cjs.entry.js +3 -3
  31. package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
  32. package/dist/cjs/ion-item_8.cjs.entry.js +1 -1
  33. package/dist/cjs/ion-loading.cjs.entry.js +3 -3
  34. package/dist/cjs/ion-menu_3.cjs.entry.js +4 -4
  35. package/dist/cjs/ion-modal.cjs.entry.js +5 -5
  36. package/dist/cjs/ion-nav_2.cjs.entry.js +4 -4
  37. package/dist/cjs/ion-picker-column-option.cjs.entry.js +1 -1
  38. package/dist/cjs/ion-picker-column.cjs.entry.js +1 -1
  39. package/dist/cjs/ion-picker.cjs.entry.js +1 -1
  40. package/dist/cjs/ion-popover.cjs.entry.js +4 -4
  41. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  42. package/dist/cjs/ion-radio_2.cjs.entry.js +1 -1
  43. package/dist/cjs/ion-range.cjs.entry.js +28 -7
  44. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  45. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  46. package/dist/cjs/ion-route_4.cjs.entry.js +1 -1
  47. package/dist/cjs/ion-searchbar.cjs.entry.js +1 -1
  48. package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
  49. package/dist/cjs/ion-select-modal.cjs.entry.js +3 -3
  50. package/dist/cjs/ion-select_3.cjs.entry.js +4 -4
  51. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +1 -1
  52. package/dist/cjs/ion-tab_2.cjs.entry.js +2 -2
  53. package/dist/cjs/ion-textarea.cjs.entry.js +3 -3
  54. package/dist/cjs/ion-toast.cjs.entry.js +3 -3
  55. package/dist/cjs/ion-toggle.cjs.entry.js +1 -1
  56. package/dist/cjs/ionic.cjs.js +1 -1
  57. package/dist/cjs/{ios.transition-2dae3b92.js → ios.transition-8d363d77.js} +2 -2
  58. package/dist/cjs/loader.cjs.js +1 -1
  59. package/dist/cjs/{md.transition-ea3260a7.js → md.transition-57d695fa.js} +2 -2
  60. package/dist/cjs/{notch-controller-a0c464d1.js → notch-controller-bd07748b.js} +1 -1
  61. package/dist/cjs/{overlays-3880b5b5.js → overlays-27703a30.js} +2 -2
  62. package/dist/cjs/{status-tap-fb807fad.js → status-tap-654077ee.js} +2 -2
  63. package/dist/cjs/{swipe-back-47a52b83.js → swipe-back-b70cd52e.js} +1 -1
  64. package/dist/collection/components/alert/alert.js +34 -4
  65. package/dist/collection/components/range/range.js +25 -6
  66. package/dist/collection/utils/floating-point/index.js +5 -0
  67. package/dist/collection/utils/helpers.js +6 -0
  68. package/dist/docs.json +5 -1
  69. package/dist/esm/{framework-delegate-f683816e.js → framework-delegate-42bc40b1.js} +1 -1
  70. package/dist/esm/{helpers-9b49d7d2.js → helpers-13b816c6.js} +7 -1
  71. package/dist/esm/{index-5a0f5fd0.js → index-28c8fd64.js} +1 -1
  72. package/dist/esm/{index-b019fc18.js → index-4b39521b.js} +3 -3
  73. package/dist/esm/{index-e1e9a0d3.js → index-6b548278.js} +1 -1
  74. package/dist/esm/{index-33f7e3ff.js → index-edf58462.js} +1 -1
  75. package/dist/esm/index.js +7 -7
  76. package/dist/esm/{input-shims-0e65111b.js → input-shims-5e5e47e8.js} +2 -2
  77. package/dist/esm/{input.utils-1ad8dafc.js → input.utils-d3717b00.js} +1 -1
  78. package/dist/esm/ion-accordion_2.entry.js +1 -1
  79. package/dist/esm/ion-action-sheet.entry.js +3 -3
  80. package/dist/esm/ion-alert.entry.js +33 -7
  81. package/dist/esm/ion-app_8.entry.js +8 -8
  82. package/dist/esm/ion-back-button.entry.js +1 -1
  83. package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
  84. package/dist/esm/ion-button_2.entry.js +1 -1
  85. package/dist/esm/ion-card_5.entry.js +1 -1
  86. package/dist/esm/ion-checkbox.entry.js +1 -1
  87. package/dist/esm/ion-datetime-button.entry.js +1 -1
  88. package/dist/esm/ion-datetime_3.entry.js +3 -3
  89. package/dist/esm/ion-fab_3.entry.js +1 -1
  90. package/dist/esm/ion-img.entry.js +1 -1
  91. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
  92. package/dist/esm/ion-input.entry.js +3 -3
  93. package/dist/esm/ion-item-option_3.entry.js +2 -2
  94. package/dist/esm/ion-item_8.entry.js +1 -1
  95. package/dist/esm/ion-loading.entry.js +3 -3
  96. package/dist/esm/ion-menu_3.entry.js +4 -4
  97. package/dist/esm/ion-modal.entry.js +5 -5
  98. package/dist/esm/ion-nav_2.entry.js +4 -4
  99. package/dist/esm/ion-picker-column-option.entry.js +1 -1
  100. package/dist/esm/ion-picker-column.entry.js +1 -1
  101. package/dist/esm/ion-picker.entry.js +1 -1
  102. package/dist/esm/ion-popover.entry.js +4 -4
  103. package/dist/esm/ion-progress-bar.entry.js +1 -1
  104. package/dist/esm/ion-radio_2.entry.js +1 -1
  105. package/dist/esm/ion-range.entry.js +28 -7
  106. package/dist/esm/ion-refresher_2.entry.js +2 -2
  107. package/dist/esm/ion-reorder_2.entry.js +2 -2
  108. package/dist/esm/ion-route_4.entry.js +1 -1
  109. package/dist/esm/ion-searchbar.entry.js +1 -1
  110. package/dist/esm/ion-segment_2.entry.js +1 -1
  111. package/dist/esm/ion-select-modal.entry.js +3 -3
  112. package/dist/esm/ion-select_3.entry.js +4 -4
  113. package/dist/esm/ion-tab-bar_2.entry.js +1 -1
  114. package/dist/esm/ion-tab_2.entry.js +2 -2
  115. package/dist/esm/ion-textarea.entry.js +3 -3
  116. package/dist/esm/ion-toast.entry.js +3 -3
  117. package/dist/esm/ion-toggle.entry.js +1 -1
  118. package/dist/esm/ionic.js +1 -1
  119. package/dist/esm/{ios.transition-b7103952.js → ios.transition-e7a4de4f.js} +2 -2
  120. package/dist/esm/loader.js +1 -1
  121. package/dist/esm/{md.transition-e4034e0a.js → md.transition-290d8802.js} +2 -2
  122. package/dist/esm/{notch-controller-3dc61260.js → notch-controller-bb8f3a48.js} +1 -1
  123. package/dist/esm/{overlays-aea27b63.js → overlays-4ff6e618.js} +2 -2
  124. package/dist/esm/{status-tap-163e8128.js → status-tap-ba401484.js} +2 -2
  125. package/dist/esm/{swipe-back-23ee7ab1.js → swipe-back-a258b011.js} +1 -1
  126. package/dist/esm-es5/{framework-delegate-f683816e.js → framework-delegate-42bc40b1.js} +1 -1
  127. package/dist/esm-es5/{helpers-9b49d7d2.js → helpers-13b816c6.js} +1 -1
  128. package/dist/esm-es5/{index-5a0f5fd0.js → index-28c8fd64.js} +1 -1
  129. package/dist/esm-es5/{index-b019fc18.js → index-4b39521b.js} +1 -1
  130. package/dist/esm-es5/{index-e1e9a0d3.js → index-6b548278.js} +1 -1
  131. package/dist/esm-es5/{index-33f7e3ff.js → index-edf58462.js} +1 -1
  132. package/dist/esm-es5/index.js +1 -1
  133. package/dist/esm-es5/{input-shims-0e65111b.js → input-shims-5e5e47e8.js} +1 -1
  134. package/dist/esm-es5/{input.utils-1ad8dafc.js → input.utils-d3717b00.js} +1 -1
  135. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  136. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  137. package/dist/esm-es5/ion-alert.entry.js +1 -1
  138. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  139. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  140. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  141. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  142. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  143. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  144. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  145. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  146. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  147. package/dist/esm-es5/ion-img.entry.js +1 -1
  148. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  149. package/dist/esm-es5/ion-input.entry.js +1 -1
  150. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  151. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  152. package/dist/esm-es5/ion-loading.entry.js +1 -1
  153. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  154. package/dist/esm-es5/ion-modal.entry.js +1 -1
  155. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  156. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  157. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  158. package/dist/esm-es5/ion-picker.entry.js +1 -1
  159. package/dist/esm-es5/ion-popover.entry.js +1 -1
  160. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  161. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  162. package/dist/esm-es5/ion-range.entry.js +1 -1
  163. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  164. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  165. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  166. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  167. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  168. package/dist/esm-es5/ion-select-modal.entry.js +1 -1
  169. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  170. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  171. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  172. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  173. package/dist/esm-es5/ion-toast.entry.js +1 -1
  174. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  175. package/dist/esm-es5/ionic.js +1 -1
  176. package/dist/esm-es5/{ios.transition-b7103952.js → ios.transition-e7a4de4f.js} +1 -1
  177. package/dist/esm-es5/loader.js +1 -1
  178. package/dist/esm-es5/{md.transition-e4034e0a.js → md.transition-290d8802.js} +1 -1
  179. package/dist/esm-es5/{notch-controller-3dc61260.js → notch-controller-bb8f3a48.js} +1 -1
  180. package/dist/esm-es5/{overlays-aea27b63.js → overlays-4ff6e618.js} +1 -1
  181. package/dist/esm-es5/{status-tap-163e8128.js → status-tap-ba401484.js} +1 -1
  182. package/dist/esm-es5/{swipe-back-23ee7ab1.js → swipe-back-a258b011.js} +1 -1
  183. package/dist/ionic/index.esm.js +1 -1
  184. package/dist/ionic/ionic.esm.js +1 -1
  185. package/dist/ionic/{p-b7d2ba68.entry.js → p-00d5ab83.entry.js} +1 -1
  186. package/dist/ionic/{p-aa63b365.system.js → p-0116e7d7.system.js} +1 -1
  187. package/dist/ionic/{p-42585688.system.entry.js → p-05f90810.system.entry.js} +1 -1
  188. package/dist/ionic/{p-77b1bb00.system.entry.js → p-0793353d.system.entry.js} +1 -1
  189. package/dist/ionic/{p-0a499487.js → p-07d0478c.js} +1 -1
  190. package/dist/ionic/{p-60f1b2fa.entry.js → p-13637707.entry.js} +1 -1
  191. package/dist/ionic/{p-e3357909.entry.js → p-136ff13e.entry.js} +1 -1
  192. package/dist/ionic/{p-703d60a2.entry.js → p-166f4ba0.entry.js} +1 -1
  193. package/dist/ionic/{p-288a2cff.entry.js → p-16dd9c9b.entry.js} +1 -1
  194. package/dist/ionic/{p-9fe2050a.entry.js → p-17c772fb.entry.js} +1 -1
  195. package/dist/ionic/{p-842bb3c8.system.entry.js → p-1b2657c9.system.entry.js} +1 -1
  196. package/dist/ionic/{p-4ad78edc.entry.js → p-1f62c30b.entry.js} +1 -1
  197. package/dist/ionic/{p-8154947f.system.entry.js → p-213b12ce.system.entry.js} +2 -2
  198. package/dist/ionic/{p-8db44ad3.js → p-230af7f2.js} +1 -1
  199. package/dist/ionic/{p-dcc9aaf1.system.entry.js → p-25580c85.system.entry.js} +1 -1
  200. package/dist/ionic/{p-fd988d29.entry.js → p-31918ee1.entry.js} +1 -1
  201. package/dist/ionic/{p-2c9abc61.entry.js → p-327b452e.entry.js} +1 -1
  202. package/dist/ionic/{p-406f9aa1.entry.js → p-34182275.entry.js} +1 -1
  203. package/dist/ionic/{p-2bc73fb5.js → p-3559bd4f.js} +1 -1
  204. package/dist/ionic/{p-75a0fffe.system.entry.js → p-361ab803.system.entry.js} +2 -2
  205. package/dist/ionic/{p-50c24ade.system.entry.js → p-364ed29d.system.entry.js} +1 -1
  206. package/dist/ionic/{p-c3f5dcf9.entry.js → p-37264dcc.entry.js} +1 -1
  207. package/dist/ionic/{p-faa5e2b9.entry.js → p-379d9002.entry.js} +1 -1
  208. package/dist/ionic/{p-656516a2.entry.js → p-37a21d70.entry.js} +1 -1
  209. package/dist/ionic/{p-9065e1ed.system.entry.js → p-3fe95571.system.entry.js} +1 -1
  210. package/dist/ionic/p-4075165f.js +4 -0
  211. package/dist/ionic/{p-6da005e1.entry.js → p-4133f9ec.entry.js} +1 -1
  212. package/dist/ionic/{p-d0a7f584.system.entry.js → p-43df2d06.system.entry.js} +1 -1
  213. package/dist/ionic/{p-035c0885.entry.js → p-441c2c8c.entry.js} +1 -1
  214. package/dist/ionic/{p-4f2f4e3b.entry.js → p-4429e8c5.entry.js} +1 -1
  215. package/dist/ionic/{p-9c82a07c.system.entry.js → p-45109533.system.entry.js} +1 -1
  216. package/dist/ionic/{p-5bc12439.entry.js → p-47ed8b64.entry.js} +1 -1
  217. package/dist/ionic/{p-4c5e2018.system.entry.js → p-486dc46d.system.entry.js} +1 -1
  218. package/dist/ionic/{p-1543d6b2.system.entry.js → p-48e13807.system.entry.js} +1 -1
  219. package/dist/ionic/{p-0eb2553a.system.entry.js → p-4a98a017.system.entry.js} +1 -1
  220. package/dist/ionic/p-50a8e284.entry.js +4 -0
  221. package/dist/ionic/p-51d4cdba.system.js +4 -0
  222. package/dist/ionic/{p-5126cf1e.system.js → p-52b61cba.system.js} +1 -1
  223. package/dist/ionic/{p-a197ff3b.system.entry.js → p-5996d3ad.system.entry.js} +1 -1
  224. package/dist/ionic/{p-47e6c342.js → p-5ae70860.js} +1 -1
  225. package/dist/ionic/{p-42808996.js → p-5d1be985.js} +1 -1
  226. package/dist/ionic/{p-5a8efe64.system.entry.js → p-5d3dc32b.system.entry.js} +1 -1
  227. package/dist/ionic/{p-13052792.entry.js → p-5e9733d0.entry.js} +1 -1
  228. package/dist/ionic/{p-16f1ba65.system.entry.js → p-6347c733.system.entry.js} +1 -1
  229. package/dist/ionic/{p-c6ff3239.system.js → p-64bb1da1.system.js} +1 -1
  230. package/dist/ionic/p-665f9987.entry.js +4 -0
  231. package/dist/ionic/{p-1a790eef.system.js → p-6a649fcd.system.js} +1 -1
  232. package/dist/ionic/{p-b637aa3f.system.entry.js → p-6c85db7e.system.entry.js} +1 -1
  233. package/dist/ionic/{p-bb11d9fb.js → p-6eb35904.js} +1 -1
  234. package/dist/ionic/{p-647b0625.system.js → p-733f53f8.system.js} +1 -1
  235. package/dist/ionic/{p-ea7c658c.system.entry.js → p-7a9407cc.system.entry.js} +1 -1
  236. package/dist/ionic/{p-0dc23518.entry.js → p-80f2a47b.entry.js} +1 -1
  237. package/dist/ionic/{p-7a1766d6.js → p-89e678fa.js} +1 -1
  238. package/dist/ionic/{p-b3680e2f.system.js → p-8aa290af.system.js} +1 -1
  239. package/dist/ionic/p-8b367303.entry.js +4 -0
  240. package/dist/ionic/{p-85632b54.entry.js → p-8c0d81a9.entry.js} +1 -1
  241. package/dist/ionic/{p-699c97a3.entry.js → p-8f3d6be8.entry.js} +1 -1
  242. package/dist/ionic/{p-72b65035.entry.js → p-8f89c8e3.entry.js} +1 -1
  243. package/dist/ionic/{p-200dfb8f.entry.js → p-91b944fa.entry.js} +1 -1
  244. package/dist/ionic/{p-881d9e52.system.js → p-953d9cf5.system.js} +1 -1
  245. package/dist/ionic/{p-0ee3b5a2.system.js → p-9e23592d.system.js} +1 -1
  246. package/dist/ionic/{p-b5639a4f.entry.js → p-a4b108a7.entry.js} +1 -1
  247. package/dist/ionic/{p-a33837c9.entry.js → p-a69cf9ea.entry.js} +1 -1
  248. package/dist/ionic/{p-98c08d09.entry.js → p-a749d4a9.entry.js} +1 -1
  249. package/dist/ionic/{p-f00ba947.entry.js → p-a8d31cd5.entry.js} +1 -1
  250. package/dist/ionic/{p-9393bfbe.system.entry.js → p-ac2c154f.system.entry.js} +1 -1
  251. package/dist/ionic/{p-627c1f42.entry.js → p-acb5a6e4.entry.js} +1 -1
  252. package/dist/ionic/{p-ca908a50.system.entry.js → p-ae02a7ea.system.entry.js} +1 -1
  253. package/dist/ionic/p-b1c4a9db.js +4 -0
  254. package/dist/ionic/{p-4a465405.system.entry.js → p-b533b7ab.system.entry.js} +2 -2
  255. package/dist/ionic/{p-d4ca0475.js → p-b566749e.js} +1 -1
  256. package/dist/ionic/p-b58057d4.js +4 -0
  257. package/dist/ionic/{p-e78bff37.system.entry.js → p-b5a10c8b.system.entry.js} +1 -1
  258. package/dist/ionic/{p-944d66b5.system.entry.js → p-b6ee3fc7.system.entry.js} +1 -1
  259. package/dist/ionic/{p-f1d1c614.system.js → p-bba0bc47.system.js} +1 -1
  260. package/dist/ionic/{p-28cb707b.system.entry.js → p-bc148b43.system.entry.js} +1 -1
  261. package/dist/ionic/{p-acc78e36.entry.js → p-c06312bf.entry.js} +1 -1
  262. package/dist/ionic/p-c09a2f58.system.js +4 -0
  263. package/dist/ionic/{p-6167f80e.entry.js → p-c312ea08.entry.js} +1 -1
  264. package/dist/ionic/{p-92e4df0c.system.entry.js → p-c3a51c19.system.entry.js} +1 -1
  265. package/dist/ionic/{p-4c9ccc7f.system.entry.js → p-c3de6cd1.system.entry.js} +1 -1
  266. package/dist/ionic/{p-3c6d2c1e.system.entry.js → p-c55254f0.system.entry.js} +1 -1
  267. package/dist/ionic/{p-eb6f173b.entry.js → p-ca5eef42.entry.js} +1 -1
  268. package/dist/ionic/{p-b609d03b.entry.js → p-cc991f05.entry.js} +1 -1
  269. package/dist/ionic/{p-5b03d498.system.entry.js → p-d6b3e734.system.entry.js} +1 -1
  270. package/dist/ionic/{p-97acff20.system.js → p-d7607262.system.js} +1 -1
  271. package/dist/ionic/{p-ef144104.system.entry.js → p-d785235b.system.entry.js} +1 -1
  272. package/dist/ionic/{p-22e4210e.system.entry.js → p-d854f4bc.system.entry.js} +1 -1
  273. package/dist/ionic/{p-808c9efc.system.entry.js → p-de4fef3c.system.entry.js} +1 -1
  274. package/dist/ionic/{p-3c7371c4.system.entry.js → p-e03cd18a.system.entry.js} +1 -1
  275. package/dist/ionic/{p-51f13ac7.entry.js → p-e03d645e.entry.js} +1 -1
  276. package/dist/ionic/{p-13892787.system.entry.js → p-e0a2abde.system.entry.js} +1 -1
  277. package/dist/ionic/{p-0d0a6fb9.system.entry.js → p-e3be9fa8.system.entry.js} +1 -1
  278. package/dist/ionic/{p-ddc058a7.system.entry.js → p-e4c1fd74.system.entry.js} +1 -1
  279. package/dist/ionic/{p-e2e19375.system.entry.js → p-e84da6cb.system.entry.js} +1 -1
  280. package/dist/ionic/{p-5b867a40.entry.js → p-eab9414f.entry.js} +1 -1
  281. package/dist/ionic/{p-dd0cad9c.entry.js → p-ebb85488.entry.js} +1 -1
  282. package/dist/ionic/{p-9ce56f65.system.entry.js → p-ee41045b.system.entry.js} +1 -1
  283. package/dist/ionic/p-efa8edbc.system.js +4 -0
  284. package/dist/ionic/p-f1bbc785.js +4 -0
  285. package/dist/ionic/p-f4f255cb.system.js +1 -1
  286. package/dist/ionic/{p-4452a8ac.system.js → p-f5a536e1.system.js} +1 -1
  287. package/dist/ionic/{p-95da3ae2.system.js → p-f6e7870b.system.js} +1 -1
  288. package/dist/ionic/{p-075a94bd.js → p-f6fe87c1.js} +1 -1
  289. package/dist/ionic/{p-5976e3b7.system.entry.js → p-f8ef15ba.system.entry.js} +1 -1
  290. package/dist/ionic/{p-a3705e10.entry.js → p-fced06e0.entry.js} +1 -1
  291. package/dist/ionic/{p-6b1f082e.entry.js → p-fd2c0aa6.entry.js} +1 -1
  292. package/dist/ionic/{p-1c2f74e4.system.entry.js → p-feab8373.system.entry.js} +1 -1
  293. package/dist/ionic/p-ff3113e3.system.entry.js +4 -0
  294. package/dist/ionic/{p-eb599bcb.js → p-ffb6d30e.js} +1 -1
  295. package/dist/types/components/range/range.d.ts +3 -2
  296. package/dist/types/utils/helpers.d.ts +4 -0
  297. package/hydrate/index.js +62 -9
  298. package/hydrate/index.mjs +62 -9
  299. package/package.json +1 -1
  300. package/dist/ionic/p-0440660b.js +0 -4
  301. package/dist/ionic/p-135e5731.js +0 -4
  302. package/dist/ionic/p-1f405274.js +0 -4
  303. package/dist/ionic/p-2c9eb774.system.js +0 -4
  304. package/dist/ionic/p-3667bc71.system.js +0 -4
  305. package/dist/ionic/p-68dc53a5.js +0 -4
  306. package/dist/ionic/p-af09741c.entry.js +0 -4
  307. package/dist/ionic/p-bed40aa8.entry.js +0 -4
  308. package/dist/ionic/p-c15a77e2.entry.js +0 -4
  309. package/dist/ionic/p-c3f4ea6c.system.entry.js +0 -4
  310. package/dist/ionic/p-cc964e4f.system.js +0 -4
@@ -167,6 +167,7 @@ const Alert = /*@__PURE__*/ proxyCustomElement(class Alert extends HTMLElement {
167
167
  }
168
168
  }
169
169
  onKeydown(ev) {
170
+ var _a;
170
171
  const inputTypes = new Set(this.processedInputs.map((i) => i.type));
171
172
  /**
172
173
  * Based on keyboard navigation requirements, the
@@ -176,6 +177,17 @@ const Alert = /*@__PURE__*/ proxyCustomElement(class Alert extends HTMLElement {
176
177
  ev.preventDefault();
177
178
  return;
178
179
  }
180
+ /**
181
+ * 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.
182
+ */
183
+ if (ev.target.classList.contains('alert-wrapper')) {
184
+ if (ev.key === 'Tab' && ev.shiftKey) {
185
+ ev.preventDefault();
186
+ const lastChildBtn = (_a = this.wrapperEl) === null || _a === void 0 ? void 0 : _a.querySelector('.alert-button:last-child');
187
+ lastChildBtn.focus();
188
+ return;
189
+ }
190
+ }
179
191
  // The only inputs we want to navigate between using arrow keys are the radios
180
192
  // ignore the keydown event if it is not on a radio button
181
193
  if (!inputTypes.has('radio') ||
@@ -307,7 +319,21 @@ const Alert = /*@__PURE__*/ proxyCustomElement(class Alert extends HTMLElement {
307
319
  async present() {
308
320
  const unlock = await this.lockController.lock();
309
321
  await this.delegateController.attachViewToDom();
310
- await present(this, 'alertEnter', iosEnterAnimation, mdEnterAnimation);
322
+ await present(this, 'alertEnter', iosEnterAnimation, mdEnterAnimation).then(() => {
323
+ var _a, _b;
324
+ /**
325
+ * Check if alert has only one button and no inputs.
326
+ * If so, then focus on the button. Otherwise, focus the alert wrapper.
327
+ * This will map to the default native alert behavior.
328
+ */
329
+ if (this.buttons.length === 1 && this.inputs.length === 0) {
330
+ const queryBtn = (_a = this.wrapperEl) === null || _a === void 0 ? void 0 : _a.querySelector('.alert-button');
331
+ queryBtn.focus();
332
+ }
333
+ else {
334
+ (_b = this.wrapperEl) === null || _b === void 0 ? void 0 : _b.focus();
335
+ }
336
+ });
311
337
  unlock();
312
338
  }
313
339
  /**
@@ -481,8 +507,8 @@ const Alert = /*@__PURE__*/ proxyCustomElement(class Alert extends HTMLElement {
481
507
  const { overlayIndex, header, subHeader, message, htmlAttributes } = this;
482
508
  const mode = getIonMode(this);
483
509
  const hdrId = `alert-${overlayIndex}-hdr`;
484
- const subHdrId = `alert-${overlayIndex}-sub-hdr`;
485
510
  const msgId = `alert-${overlayIndex}-msg`;
511
+ const subHdrId = `alert-${overlayIndex}-sub-hdr`;
486
512
  const role = this.inputs.length > 0 || this.buttons.length > 0 ? 'alertdialog' : 'alert';
487
513
  /**
488
514
  * Use both the header and subHeader ids if they are defined.
@@ -491,9 +517,9 @@ const Alert = /*@__PURE__*/ proxyCustomElement(class Alert extends HTMLElement {
491
517
  * If neither are defined, do not set aria-labelledby.
492
518
  */
493
519
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
494
- return (h(Host, Object.assign({ key: 'ad7e14b4f92a09387aa80abfb718a755e4e889d6', role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "-1" }, htmlAttributes, { style: {
520
+ return (h(Host, { key: '755f2398806084f16ee24d9fefce9ebc0b8f30f2', tabindex: "-1", style: {
495
521
  zIndex: `${20000 + overlayIndex}`,
496
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), h("ion-backdrop", { key: '4b4693dca3c910aa9a61c4d90295d785ec6cbe3d', tappable: this.backdropDismiss }), h("div", { key: '64fd19b8f1d8246dcc869053f858bc33506def4b', tabindex: "0", "aria-hidden": "true" }), h("div", { key: 'e61ba6f339c3a02cecd37d8b641ee5043018eb29', class: "alert-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, h("div", { key: '044e00667ffcb74aa2c5e0d0b42669c4004dbb4f', class: "alert-head" }, header && (h("h2", { key: '1aaae8d58722c4cf5debb1f00415ab7ed0a52bbd', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (h("h2", { key: '9c9854dc3b0ad40f1861a49b76d5636afcae9c74', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (h("h3", { key: '19aaca9912f77cde4ae8079be210eda697ed8de1', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), h("div", { key: 'a85d27c516f7cdbc85b19f40d2f0bd865490b6a7', tabindex: "0", "aria-hidden": "true" })));
522
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, h("ion-backdrop", { key: '5965913fb076436e37f4a55cd8778cbc58449bfd', tappable: this.backdropDismiss }), h("div", { key: 'cb17e07896b6ad8c9c607261fe08437b1a3b272f', tabindex: "0", "aria-hidden": "true" }), h("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), h("div", { key: 'a82e0bf863971084f3a8a34d25d6cf7aae1690a8', class: "alert-head" }, header && (h("h2", { key: '36a9b4394f4b4cdcd6972ae60265ac889e2157cf', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (h("h2", { key: '86008c1eb484cc69f66e42c254933ce289180785', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (h("h3", { key: 'bfaacd3b119d06273683019cddef2c42245c3101', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), h("div", { key: '0e7df4ab31a72953dcf171ebc87074603f848c06', tabindex: "0", "aria-hidden": "true" })));
497
523
  }
498
524
  get el() { return this; }
499
525
  static get watchers() { return {
@@ -368,5 +368,11 @@ const getNextSiblingOfType = (element) => {
368
368
  }
369
369
  return null;
370
370
  };
371
+ /**
372
+ * Checks input for usable number. Not NaN and not Infinite.
373
+ */
374
+ const isSafeNumber = (input) => {
375
+ return typeof input === 'number' && !isNaN(input) && isFinite(input);
376
+ };
371
377
 
372
- export { addEventListener as a, removeEventListener as b, componentOnReady as c, inheritAttributes as d, renderHiddenInput as e, focusVisibleElement as f, getElementRoot as g, hasShadowDom as h, inheritAriaAttributes as i, hasLazyBuild as j, clamp as k, debounceEvent as l, isEndSide as m, assert as n, debounce as o, getNextSiblingOfType as p, pointerCoord as q, raf as r, shallowEqualStringMap as s, transitionEndAsync as t };
378
+ export { addEventListener as a, removeEventListener as b, componentOnReady as c, inheritAttributes as d, renderHiddenInput as e, focusVisibleElement as f, getElementRoot as g, hasShadowDom as h, inheritAriaAttributes as i, hasLazyBuild as j, clamp as k, debounceEvent as l, isEndSide as m, assert as n, isSafeNumber as o, debounce as p, getNextSiblingOfType as q, raf as r, shallowEqualStringMap as s, transitionEndAsync as t, pointerCoord as u };
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { d as doc } from './index5.js';
5
- import { q as pointerCoord } from './helpers.js';
5
+ import { u as pointerCoord } from './helpers.js';
6
6
 
7
7
  const startTapClick = (config) => {
8
8
  if (doc === undefined) {
@@ -3,13 +3,15 @@
3
3
  */
4
4
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
5
5
  import { a as findClosestIonContent, d as disableContentScrollY, r as resetContentScrollY } from './index8.js';
6
- import { k as clamp, l as debounceEvent, i as inheritAriaAttributes, e as renderHiddenInput } from './helpers.js';
6
+ import { o as isSafeNumber, k as clamp, l as debounceEvent, i as inheritAriaAttributes, e as renderHiddenInput } from './helpers.js';
7
7
  import { p as printIonWarning } from './index6.js';
8
8
  import { i as isRTL } from './dir.js';
9
9
  import { h as hostContext, c as createColorClasses } from './theme.js';
10
10
  import { b as getIonMode } from './ionic-global.js';
11
11
 
12
12
  function getDecimalPlaces(n) {
13
+ if (!isSafeNumber(n))
14
+ return 0;
13
15
  if (n % 1 === 0)
14
16
  return 0;
15
17
  return n.toString().split('.')[1].length;
@@ -47,6 +49,8 @@ function getDecimalPlaces(n) {
47
49
  * be used as a reference for the desired specificity.
48
50
  */
49
51
  function roundToMaxDecimalPlaces(n, ...references) {
52
+ if (!isSafeNumber(n))
53
+ return 0;
50
54
  const maxPlaces = Math.max(...references.map((r) => getDecimalPlaces(r)));
51
55
  return Number(n.toFixed(maxPlaces));
52
56
  }
@@ -169,16 +173,27 @@ const Range = /*@__PURE__*/ proxyCustomElement(class Range extends HTMLElement {
169
173
  */
170
174
  this.ionInput = debounce === undefined ? originalIonInput !== null && originalIonInput !== void 0 ? originalIonInput : ionInput : debounceEvent(ionInput, debounce);
171
175
  }
172
- minChanged() {
176
+ minChanged(newValue) {
177
+ if (!isSafeNumber(newValue)) {
178
+ this.min = 0;
179
+ }
173
180
  if (!this.noUpdate) {
174
181
  this.updateRatio();
175
182
  }
176
183
  }
177
- maxChanged() {
184
+ maxChanged(newValue) {
185
+ if (!isSafeNumber(newValue)) {
186
+ this.max = 100;
187
+ }
178
188
  if (!this.noUpdate) {
179
189
  this.updateRatio();
180
190
  }
181
191
  }
192
+ stepChanged(newValue) {
193
+ if (!isSafeNumber(newValue)) {
194
+ this.step = 1;
195
+ }
196
+ }
182
197
  activeBarStartChanged() {
183
198
  const { activeBarStart } = this;
184
199
  if (activeBarStart !== undefined) {
@@ -211,6 +226,11 @@ const Range = /*@__PURE__*/ proxyCustomElement(class Range extends HTMLElement {
211
226
  this.rangeId = this.el.getAttribute('id');
212
227
  }
213
228
  this.inheritedAttributes = inheritAriaAttributes(this.el);
229
+ // If min, max, or step are not safe, set them to 0, 100, and 1, respectively.
230
+ // Each watch does this, but not before the initial load.
231
+ this.min = isSafeNumber(this.min) ? this.min : 0;
232
+ this.max = isSafeNumber(this.max) ? this.max : 100;
233
+ this.step = isSafeNumber(this.step) ? this.step : 1;
214
234
  }
215
235
  componentDidLoad() {
216
236
  this.originalIonInput = this.ionInput;
@@ -605,7 +625,7 @@ const Range = /*@__PURE__*/ proxyCustomElement(class Range extends HTMLElement {
605
625
  const needsEndAdjustment = inItem && !hasEndContent;
606
626
  const mode = getIonMode(this);
607
627
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
608
- return (h(Host, { key: '05c699caaead7cc74deaae2a958c4632191473a8', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
628
+ return (h(Host, { key: 'a9dacdb8935627860188c035f2edf6b8cc751dc5', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
609
629
  [mode]: true,
610
630
  'in-item': inItem,
611
631
  'range-disabled': disabled,
@@ -614,16 +634,17 @@ const Range = /*@__PURE__*/ proxyCustomElement(class Range extends HTMLElement {
614
634
  [`range-label-placement-${labelPlacement}`]: true,
615
635
  'range-item-start-adjustment': needsStartAdjustment,
616
636
  'range-item-end-adjustment': needsEndAdjustment,
617
- }) }, h("label", { key: '959837bcc48c4bda33ae1f62b66ef444329a2961', class: "range-wrapper", id: "range-label" }, h("div", { key: 'a434c6b5c26f57f52b3af98d881e7e6a179c89fc', class: {
637
+ }) }, h("label", { key: '4f5682ab5f793c1097956c092c8b88b6d676fe85', class: "range-wrapper", id: "range-label" }, h("div", { key: 'f906c5ab076275721cb8e99e22f5a3c2509713de', class: {
618
638
  'label-text-wrapper': true,
619
639
  'label-text-wrapper-hidden': !hasLabel,
620
- }, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '87df1037b6b3337bd1fab05d33a26bf658c57914', class: "native-wrapper" }, h("slot", { key: '2cb88f101da49b70aeae29b0bf5445fac241bb2f', name: "start" }), this.renderRangeSlider(), h("slot", { key: '17b835cfb2bd9b8e1957afd425543ff02b913d83', name: "end" })))));
640
+ }, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: 'bb6ca75df1394a01464d40a8b4ba6e08b3c12824', class: "native-wrapper" }, h("slot", { key: '34f6e5f0ee73864ed2fa64cf041639f842540ae6', name: "start" }), this.renderRangeSlider(), h("slot", { key: 'b8602e24234900fe9bb300610b236951bf2c6ebb', name: "end" })))));
621
641
  }
622
642
  get el() { return this; }
623
643
  static get watchers() { return {
624
644
  "debounce": ["debounceChanged"],
625
645
  "min": ["minChanged"],
626
646
  "max": ["maxChanged"],
647
+ "step": ["stepChanged"],
627
648
  "activeBarStart": ["activeBarStartChanged"],
628
649
  "disabled": ["disabledChanged"],
629
650
  "value": ["valueChanged"]
@@ -656,6 +677,7 @@ const Range = /*@__PURE__*/ proxyCustomElement(class Range extends HTMLElement {
656
677
  "debounce": ["debounceChanged"],
657
678
  "min": ["minChanged"],
658
679
  "max": ["maxChanged"],
680
+ "step": ["stepChanged"],
659
681
  "activeBarStart": ["activeBarStartChanged"],
660
682
  "disabled": ["disabledChanged"],
661
683
  "value": ["valueChanged"]
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { proxyCustomElement, HTMLElement, createEvent } from '@stencil/core/internal/client';
5
- import { c as componentOnReady, o as debounce } from './helpers.js';
5
+ import { c as componentOnReady, p as debounce } from './helpers.js';
6
6
 
7
7
  const ROUTER_INTENT_NONE = 'root';
8
8
  const ROUTER_INTENT_FORWARD = 'forward';
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { proxyCustomElement, HTMLElement, forceUpdate, h, Host } from '@stencil/core/internal/client';
5
- import { a as addEventListener, b as removeEventListener, d as inheritAttributes, p as getNextSiblingOfType } from './helpers.js';
5
+ import { a as addEventListener, b as removeEventListener, d as inheritAttributes, q as getNextSiblingOfType } from './helpers.js';
6
6
  import { h as hostContext } from './theme.js';
7
7
  import { b as getIonMode } from './ionic-global.js';
8
8
  import { d as defineCustomElement$2 } from './ripple-effect.js';
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const helpers = require('./helpers-4be3f90d.js');
6
+ const helpers = require('./helpers-b14a0f09.js');
7
7
 
8
8
  // TODO(FW-2832): types
9
9
  const attachComponent = async (delegate, container, component, cssClasses, componentProps, inline) => {
@@ -370,6 +370,12 @@ const getNextSiblingOfType = (element) => {
370
370
  }
371
371
  return null;
372
372
  };
373
+ /**
374
+ * Checks input for usable number. Not NaN and not Infinite.
375
+ */
376
+ const isSafeNumber = (input) => {
377
+ return typeof input === 'number' && !isNaN(input) && isFinite(input);
378
+ };
373
379
 
374
380
  exports.addEventListener = addEventListener;
375
381
  exports.assert = assert;
@@ -385,6 +391,7 @@ exports.hasShadowDom = hasShadowDom;
385
391
  exports.inheritAriaAttributes = inheritAriaAttributes;
386
392
  exports.inheritAttributes = inheritAttributes;
387
393
  exports.isEndSide = isEndSide;
394
+ exports.isSafeNumber = isSafeNumber;
388
395
  exports.pointerCoord = pointerCoord;
389
396
  exports.raf = raf;
390
397
  exports.removeEventListener = removeEventListener;
@@ -6,7 +6,7 @@
6
6
  const index$1 = require('./index-c8d52405.js');
7
7
  const hardwareBackButton = require('./hardware-back-button-f2cbbdce.js');
8
8
  const index = require('./index-5915f9b3.js');
9
- const helpers = require('./helpers-4be3f90d.js');
9
+ const helpers = require('./helpers-b14a0f09.js');
10
10
  const ionicGlobal = require('./ionic-global-96da1b2e.js');
11
11
  const animation = require('./animation-b4fdf128.js');
12
12
 
@@ -6,7 +6,7 @@
6
6
  const ionicGlobal = require('./ionic-global-96da1b2e.js');
7
7
  const index$1 = require('./index-73f75efb.js');
8
8
  const index = require('./index-5915f9b3.js');
9
- const helpers = require('./helpers-4be3f90d.js');
9
+ const helpers = require('./helpers-b14a0f09.js');
10
10
 
11
11
  const LIFECYCLE_WILL_ENTER = 'ionViewWillEnter';
12
12
  const LIFECYCLE_DID_ENTER = 'ionViewDidEnter';
@@ -122,8 +122,8 @@ const createFocusController = () => {
122
122
  };
123
123
  const LAST_FOCUS = 'ion-last-focus';
124
124
 
125
- const iosTransitionAnimation = () => Promise.resolve().then(function () { return require('./ios.transition-2dae3b92.js'); });
126
- const mdTransitionAnimation = () => Promise.resolve().then(function () { return require('./md.transition-ea3260a7.js'); });
125
+ const iosTransitionAnimation = () => Promise.resolve().then(function () { return require('./ios.transition-8d363d77.js'); });
126
+ const mdTransitionAnimation = () => Promise.resolve().then(function () { return require('./md.transition-57d695fa.js'); });
127
127
  const focusController = createFocusController();
128
128
  // TODO(FW-2832): types
129
129
  const transition = (opts) => {
@@ -4,7 +4,7 @@
4
4
  'use strict';
5
5
 
6
6
  const index = require('./index-c8d52405.js');
7
- const helpers = require('./helpers-4be3f90d.js');
7
+ const helpers = require('./helpers-b14a0f09.js');
8
8
 
9
9
  const startTapClick = (config) => {
10
10
  if (index.doc === undefined) {
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const helpers = require('./helpers-4be3f90d.js');
6
+ const helpers = require('./helpers-b14a0f09.js');
7
7
  const index = require('./index-5915f9b3.js');
8
8
 
9
9
  const ION_CONTENT_TAG_NAME = 'ION-CONTENT';
@@ -6,23 +6,23 @@
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const animation = require('./animation-b4fdf128.js');
9
- const index = require('./index-90ec3b6c.js');
10
- const ios_transition = require('./ios.transition-2dae3b92.js');
11
- const md_transition = require('./md.transition-ea3260a7.js');
9
+ const index = require('./index-4e37257d.js');
10
+ const ios_transition = require('./ios.transition-8d363d77.js');
11
+ const md_transition = require('./md.transition-57d695fa.js');
12
12
  const cubicBezier = require('./cubic-bezier-f2dccc53.js');
13
13
  const index$1 = require('./index-ee07ed59.js');
14
14
  const ionicGlobal = require('./ionic-global-96da1b2e.js');
15
- const helpers = require('./helpers-4be3f90d.js');
15
+ const helpers = require('./helpers-b14a0f09.js');
16
16
  const config = require('./config-4f60b98a.js');
17
17
  const theme = require('./theme-d1c573d2.js');
18
- const index$2 = require('./index-9c6c9e9c.js');
19
- const overlays = require('./overlays-3880b5b5.js');
18
+ const index$2 = require('./index-1248dbd7.js');
19
+ const overlays = require('./overlays-27703a30.js');
20
20
  require('./index-c8d52405.js');
21
21
  require('./index-73f75efb.js');
22
22
  require('./index-5915f9b3.js');
23
23
  require('./gesture-controller-9436f482.js');
24
24
  require('./hardware-back-button-f2cbbdce.js');
25
- require('./framework-delegate-05579976.js');
25
+ require('./framework-delegate-c4f2ba04.js');
26
26
 
27
27
  const IonicSlides = (opts) => {
28
28
  const { swiper, extendParams } = opts;
@@ -4,8 +4,8 @@
4
4
  'use strict';
5
5
 
6
6
  const index = require('./index-c8d52405.js');
7
- const index$1 = require('./index-c441c903.js');
8
- const helpers = require('./helpers-4be3f90d.js');
7
+ const index$1 = require('./index-a4a74252.js');
8
+ const helpers = require('./helpers-b14a0f09.js');
9
9
  const keyboard = require('./keyboard-0272231f.js');
10
10
  require('./index-5915f9b3.js');
11
11
  require('./capacitor-c04564bf.js');
@@ -4,7 +4,7 @@
4
4
  'use strict';
5
5
 
6
6
  const index = require('./index-c8d52405.js');
7
- const helpers = require('./helpers-4be3f90d.js');
7
+ const helpers = require('./helpers-b14a0f09.js');
8
8
  const index$1 = require('./index-5915f9b3.js');
9
9
 
10
10
  /**
@@ -6,7 +6,7 @@
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-73f75efb.js');
9
- const helpers = require('./helpers-4be3f90d.js');
9
+ const helpers = require('./helpers-b14a0f09.js');
10
10
  const index$1 = require('./index-073c7cdc.js');
11
11
  const ionicGlobal = require('./ionic-global-96da1b2e.js');
12
12
  const index$2 = require('./index-5915f9b3.js');
@@ -7,9 +7,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-73f75efb.js');
9
9
  const buttonActive = require('./button-active-3f2f60b4.js');
10
- const helpers = require('./helpers-4be3f90d.js');
10
+ const helpers = require('./helpers-b14a0f09.js');
11
11
  const lockController = require('./lock-controller-6585a42a.js');
12
- const overlays = require('./overlays-3880b5b5.js');
12
+ const overlays = require('./overlays-27703a30.js');
13
13
  const theme = require('./theme-d1c573d2.js');
14
14
  const ionicGlobal = require('./ionic-global-96da1b2e.js');
15
15
  const animation = require('./animation-b4fdf128.js');
@@ -19,7 +19,7 @@ require('./index-c8d52405.js');
19
19
  require('./index-ee07ed59.js');
20
20
  require('./gesture-controller-9436f482.js');
21
21
  require('./hardware-back-button-f2cbbdce.js');
22
- require('./framework-delegate-05579976.js');
22
+ require('./framework-delegate-c4f2ba04.js');
23
23
  require('./index-5915f9b3.js');
24
24
 
25
25
  /**
@@ -8,9 +8,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
8
8
  const index = require('./index-73f75efb.js');
9
9
  const config = require('./config-4f60b98a.js');
10
10
  const buttonActive = require('./button-active-3f2f60b4.js');
11
- const helpers = require('./helpers-4be3f90d.js');
11
+ const helpers = require('./helpers-b14a0f09.js');
12
12
  const lockController = require('./lock-controller-6585a42a.js');
13
- const overlays = require('./overlays-3880b5b5.js');
13
+ const overlays = require('./overlays-27703a30.js');
14
14
  const theme = require('./theme-d1c573d2.js');
15
15
  const ionicGlobal = require('./ionic-global-96da1b2e.js');
16
16
  const animation = require('./animation-b4fdf128.js');
@@ -20,7 +20,7 @@ require('./index-c8d52405.js');
20
20
  require('./index-ee07ed59.js');
21
21
  require('./gesture-controller-9436f482.js');
22
22
  require('./hardware-back-button-f2cbbdce.js');
23
- require('./framework-delegate-05579976.js');
23
+ require('./framework-delegate-c4f2ba04.js');
24
24
  require('./index-5915f9b3.js');
25
25
 
26
26
  /**
@@ -176,6 +176,7 @@ const Alert = class {
176
176
  }
177
177
  }
178
178
  onKeydown(ev) {
179
+ var _a;
179
180
  const inputTypes = new Set(this.processedInputs.map((i) => i.type));
180
181
  /**
181
182
  * Based on keyboard navigation requirements, the
@@ -185,6 +186,17 @@ const Alert = class {
185
186
  ev.preventDefault();
186
187
  return;
187
188
  }
189
+ /**
190
+ * 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.
191
+ */
192
+ if (ev.target.classList.contains('alert-wrapper')) {
193
+ if (ev.key === 'Tab' && ev.shiftKey) {
194
+ ev.preventDefault();
195
+ const lastChildBtn = (_a = this.wrapperEl) === null || _a === void 0 ? void 0 : _a.querySelector('.alert-button:last-child');
196
+ lastChildBtn.focus();
197
+ return;
198
+ }
199
+ }
188
200
  // The only inputs we want to navigate between using arrow keys are the radios
189
201
  // ignore the keydown event if it is not on a radio button
190
202
  if (!inputTypes.has('radio') ||
@@ -316,7 +328,21 @@ const Alert = class {
316
328
  async present() {
317
329
  const unlock = await this.lockController.lock();
318
330
  await this.delegateController.attachViewToDom();
319
- await overlays.present(this, 'alertEnter', iosEnterAnimation, mdEnterAnimation);
331
+ await overlays.present(this, 'alertEnter', iosEnterAnimation, mdEnterAnimation).then(() => {
332
+ var _a, _b;
333
+ /**
334
+ * Check if alert has only one button and no inputs.
335
+ * If so, then focus on the button. Otherwise, focus the alert wrapper.
336
+ * This will map to the default native alert behavior.
337
+ */
338
+ if (this.buttons.length === 1 && this.inputs.length === 0) {
339
+ const queryBtn = (_a = this.wrapperEl) === null || _a === void 0 ? void 0 : _a.querySelector('.alert-button');
340
+ queryBtn.focus();
341
+ }
342
+ else {
343
+ (_b = this.wrapperEl) === null || _b === void 0 ? void 0 : _b.focus();
344
+ }
345
+ });
320
346
  unlock();
321
347
  }
322
348
  /**
@@ -490,8 +516,8 @@ const Alert = class {
490
516
  const { overlayIndex, header, subHeader, message, htmlAttributes } = this;
491
517
  const mode = ionicGlobal.getIonMode(this);
492
518
  const hdrId = `alert-${overlayIndex}-hdr`;
493
- const subHdrId = `alert-${overlayIndex}-sub-hdr`;
494
519
  const msgId = `alert-${overlayIndex}-msg`;
520
+ const subHdrId = `alert-${overlayIndex}-sub-hdr`;
495
521
  const role = this.inputs.length > 0 || this.buttons.length > 0 ? 'alertdialog' : 'alert';
496
522
  /**
497
523
  * Use both the header and subHeader ids if they are defined.
@@ -500,9 +526,9 @@ const Alert = class {
500
526
  * If neither are defined, do not set aria-labelledby.
501
527
  */
502
528
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
503
- return (index.h(index.Host, Object.assign({ key: 'ad7e14b4f92a09387aa80abfb718a755e4e889d6', role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "-1" }, htmlAttributes, { style: {
529
+ return (index.h(index.Host, { key: '755f2398806084f16ee24d9fefce9ebc0b8f30f2', tabindex: "-1", style: {
504
530
  zIndex: `${20000 + overlayIndex}`,
505
- }, class: Object.assign(Object.assign({}, theme.getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), index.h("ion-backdrop", { key: '4b4693dca3c910aa9a61c4d90295d785ec6cbe3d', tappable: this.backdropDismiss }), index.h("div", { key: '64fd19b8f1d8246dcc869053f858bc33506def4b', tabindex: "0", "aria-hidden": "true" }), index.h("div", { key: 'e61ba6f339c3a02cecd37d8b641ee5043018eb29', class: "alert-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, index.h("div", { key: '044e00667ffcb74aa2c5e0d0b42669c4004dbb4f', class: "alert-head" }, header && (index.h("h2", { key: '1aaae8d58722c4cf5debb1f00415ab7ed0a52bbd', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (index.h("h2", { key: '9c9854dc3b0ad40f1861a49b76d5636afcae9c74', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (index.h("h3", { key: '19aaca9912f77cde4ae8079be210eda697ed8de1', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), index.h("div", { key: 'a85d27c516f7cdbc85b19f40d2f0bd865490b6a7', tabindex: "0", "aria-hidden": "true" })));
531
+ }, class: Object.assign(Object.assign({}, theme.getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, index.h("ion-backdrop", { key: '5965913fb076436e37f4a55cd8778cbc58449bfd', tappable: this.backdropDismiss }), index.h("div", { key: 'cb17e07896b6ad8c9c607261fe08437b1a3b272f', tabindex: "0", "aria-hidden": "true" }), index.h("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), index.h("div", { key: 'a82e0bf863971084f3a8a34d25d6cf7aae1690a8', class: "alert-head" }, header && (index.h("h2", { key: '36a9b4394f4b4cdcd6972ae60265ac889e2157cf', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (index.h("h2", { key: '86008c1eb484cc69f66e42c254933ce289180785', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (index.h("h3", { key: 'bfaacd3b119d06273683019cddef2c42245c3101', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), index.h("div", { key: '0e7df4ab31a72953dcf171ebc87074603f848c06', tabindex: "0", "aria-hidden": "true" })));
506
532
  }
507
533
  get el() { return index.getElement(this); }
508
534
  static get watchers() { return {
@@ -9,15 +9,15 @@ const index = require('./index-73f75efb.js');
9
9
  const hardwareBackButton = require('./hardware-back-button-f2cbbdce.js');
10
10
  const index$1 = require('./index-5915f9b3.js');
11
11
  const ionicGlobal = require('./ionic-global-96da1b2e.js');
12
- const helpers = require('./helpers-4be3f90d.js');
12
+ const helpers = require('./helpers-b14a0f09.js');
13
13
  const dir = require('./dir-94c21456.js');
14
14
  const theme = require('./theme-d1c573d2.js');
15
- const index$2 = require('./index-c441c903.js');
15
+ const index$2 = require('./index-a4a74252.js');
16
16
  const keyboardController = require('./keyboard-controller-c05e747a.js');
17
17
  const cubicBezier = require('./cubic-bezier-f2dccc53.js');
18
- const frameworkDelegate = require('./framework-delegate-05579976.js');
18
+ const frameworkDelegate = require('./framework-delegate-c4f2ba04.js');
19
19
  const lockController = require('./lock-controller-6585a42a.js');
20
- const index$3 = require('./index-90ec3b6c.js');
20
+ const index$3 = require('./index-4e37257d.js');
21
21
  require('./index-c8d52405.js');
22
22
  require('./keyboard-0272231f.js');
23
23
  require('./capacitor-c04564bf.js');
@@ -34,10 +34,10 @@ const App = class {
34
34
  rIC(async () => {
35
35
  const isHybrid = ionicGlobal.isPlatform(window, 'hybrid');
36
36
  if (!ionicGlobal.config.getBoolean('_testing')) {
37
- Promise.resolve().then(function () { return require('./index-ad7a712e.js'); }).then((module) => module.startTapClick(ionicGlobal.config));
37
+ Promise.resolve().then(function () { return require('./index-786364c7.js'); }).then((module) => module.startTapClick(ionicGlobal.config));
38
38
  }
39
39
  if (ionicGlobal.config.getBoolean('statusTap', isHybrid)) {
40
- Promise.resolve().then(function () { return require('./status-tap-fb807fad.js'); }).then((module) => module.startStatusTap());
40
+ Promise.resolve().then(function () { return require('./status-tap-654077ee.js'); }).then((module) => module.startStatusTap());
41
41
  }
42
42
  if (ionicGlobal.config.getBoolean('inputShims', needInputShims())) {
43
43
  /**
@@ -45,7 +45,7 @@ const App = class {
45
45
  * platforms proceed into this block.
46
46
  */
47
47
  const platform = ionicGlobal.isPlatform(window, 'ios') ? 'ios' : 'android';
48
- Promise.resolve().then(function () { return require('./input-shims-e748a364.js'); }).then((module) => module.startInputShims(ionicGlobal.config, platform));
48
+ Promise.resolve().then(function () { return require('./input-shims-b4c0eee7.js'); }).then((module) => module.startInputShims(ionicGlobal.config, platform));
49
49
  }
50
50
  const hardwareBackButtonModule = await Promise.resolve().then(function () { return require('./hardware-back-button-f2cbbdce.js'); });
51
51
  const supportsHardwareBackButtonEvents = isHybrid || hardwareBackButton.shouldUseCloseWatcher();
@@ -1054,7 +1054,7 @@ const RouterOutlet = class {
1054
1054
  this.swipeHandler.onStart();
1055
1055
  }
1056
1056
  };
1057
- this.gesture = (await Promise.resolve().then(function () { return require('./swipe-back-47a52b83.js'); })).createSwipeBackGesture(this.el, () => !this.gestureOrAnimationInProgress && !!this.swipeHandler && this.swipeHandler.canStart(), () => onStart(), (step) => { var _a; return (_a = this.ani) === null || _a === void 0 ? void 0 : _a.progressStep(step); }, (shouldComplete, step, dur) => {
1057
+ this.gesture = (await Promise.resolve().then(function () { return require('./swipe-back-b70cd52e.js'); })).createSwipeBackGesture(this.el, () => !this.gestureOrAnimationInProgress && !!this.swipeHandler && this.swipeHandler.canStart(), () => onStart(), (step) => { var _a; return (_a = this.ani) === null || _a === void 0 ? void 0 : _a.progressStep(step); }, (shouldComplete, step, dur) => {
1058
1058
  if (this.ani) {
1059
1059
  this.ani.onFinish(() => {
1060
1060
  this.gestureOrAnimationInProgress = false;
@@ -6,7 +6,7 @@
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-73f75efb.js');
9
- const helpers = require('./helpers-4be3f90d.js');
9
+ const helpers = require('./helpers-b14a0f09.js');
10
10
  const theme = require('./theme-d1c573d2.js');
11
11
  const index$1 = require('./index-073c7cdc.js');
12
12
  const ionicGlobal = require('./ionic-global-96da1b2e.js');
@@ -6,7 +6,7 @@
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-73f75efb.js');
9
- const helpers = require('./helpers-4be3f90d.js');
9
+ const helpers = require('./helpers-b14a0f09.js');
10
10
  const theme = require('./theme-d1c573d2.js');
11
11
  const index$1 = require('./index-073c7cdc.js');
12
12
  const ionicGlobal = require('./ionic-global-96da1b2e.js');
@@ -6,7 +6,7 @@
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-73f75efb.js');
9
- const helpers = require('./helpers-4be3f90d.js');
9
+ const helpers = require('./helpers-b14a0f09.js');
10
10
  const index$1 = require('./index-5915f9b3.js');
11
11
  const theme = require('./theme-d1c573d2.js');
12
12
  const ionicGlobal = require('./ionic-global-96da1b2e.js');
@@ -6,7 +6,7 @@
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-73f75efb.js');
9
- const helpers = require('./helpers-4be3f90d.js');
9
+ const helpers = require('./helpers-b14a0f09.js');
10
10
  const theme = require('./theme-d1c573d2.js');
11
11
  const ionicGlobal = require('./ionic-global-96da1b2e.js');
12
12
 
@@ -6,7 +6,7 @@
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-73f75efb.js');
9
- const helpers = require('./helpers-4be3f90d.js');
9
+ const helpers = require('./helpers-b14a0f09.js');
10
10
  const theme = require('./theme-d1c573d2.js');
11
11
  const ionicGlobal = require('./ionic-global-96da1b2e.js');
12
12
 
@@ -6,7 +6,7 @@
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-73f75efb.js');
9
- const helpers = require('./helpers-4be3f90d.js');
9
+ const helpers = require('./helpers-b14a0f09.js');
10
10
  const index$1 = require('./index-5915f9b3.js');
11
11
  const theme = require('./theme-d1c573d2.js');
12
12
  const ionicGlobal = require('./ionic-global-96da1b2e.js');
@@ -7,7 +7,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index$1 = require('./index-73f75efb.js');
9
9
  const focusVisible = require('./focus-visible-7a0ce04f.js');
10
- const helpers = require('./helpers-4be3f90d.js');
10
+ const helpers = require('./helpers-b14a0f09.js');
11
11
  const index = require('./index-5915f9b3.js');
12
12
  const dir = require('./dir-94c21456.js');
13
13
  const theme = require('./theme-d1c573d2.js');
@@ -15,12 +15,12 @@ const index$2 = require('./index-073c7cdc.js');
15
15
  const ionicGlobal = require('./ionic-global-96da1b2e.js');
16
16
  const data = require('./data-21dc0f81.js');
17
17
  const lockController = require('./lock-controller-6585a42a.js');
18
- const overlays = require('./overlays-3880b5b5.js');
18
+ const overlays = require('./overlays-27703a30.js');
19
19
  const animation = require('./animation-b4fdf128.js');
20
20
  const haptic = require('./haptic-f6b37aa3.js');
21
21
  require('./index-c8d52405.js');
22
22
  require('./hardware-back-button-f2cbbdce.js');
23
- require('./framework-delegate-05579976.js');
23
+ require('./framework-delegate-c4f2ba04.js');
24
24
  require('./gesture-controller-9436f482.js');
25
25
  require('./capacitor-c04564bf.js');
26
26