voyager-ionic-core 7.7.0 → 7.7.3

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 (421) hide show
  1. package/components/action-sheet.js +8 -4
  2. package/components/alert.js +6 -2
  3. package/components/helpers.js +2 -2
  4. package/components/ion-loading.js +6 -2
  5. package/components/ion-modal.js +8 -6
  6. package/components/ion-picker.js +6 -2
  7. package/components/ion-select.js +3 -3
  8. package/components/ion-toast.js +6 -2
  9. package/components/item.js +3 -12
  10. package/components/label.js +2 -2
  11. package/components/overlays.js +120 -29
  12. package/components/popover.js +7 -3
  13. package/components/select-popover.js +2 -2
  14. package/dist/cjs/{animation-fdab9de5.js → animation-c2840aea.js} +1 -1
  15. package/dist/cjs/{app-globals-5a17c5e1.js → app-globals-92ad1b3d.js} +1 -1
  16. package/dist/cjs/{button-active-b8c3f603.js → button-active-2d6520ec.js} +1 -1
  17. package/dist/cjs/{form-controller-7b90d7b7.js → form-controller-c83330c0.js} +1 -1
  18. package/dist/cjs/{framework-delegate-a3e6d060.js → framework-delegate-e0e13baa.js} +1 -1
  19. package/dist/cjs/{hardware-back-button-d23873bb.js → hardware-back-button-2696acaf.js} +2 -2
  20. package/dist/cjs/{helpers-2e1028fa.js → helpers-da4c0ed1.js} +2 -2
  21. package/dist/cjs/{index-5a471146.js → index-0ffe376d.js} +25 -22
  22. package/dist/cjs/{index-8c679cbf.js → index-4c96691f.js} +4 -4
  23. package/dist/cjs/{index-10da82ce.js → index-62290fec.js} +1 -1
  24. package/dist/cjs/{index-84351d21.js → index-9bfcb6e8.js} +4 -4
  25. package/dist/cjs/{index-53d162b2.js → index-bef98850.js} +1 -1
  26. package/dist/cjs/index.cjs.js +11 -11
  27. package/dist/cjs/{input-shims-6f804705.js → input-shims-a9a85bb9.js} +2 -2
  28. package/dist/cjs/{input.utils-d693d18a.js → input.utils-d7dca90f.js} +1 -1
  29. package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
  30. package/dist/cjs/ion-action-sheet.cjs.entry.js +16 -12
  31. package/dist/cjs/ion-alert.cjs.entry.js +14 -10
  32. package/dist/cjs/ion-app_8.cjs.entry.js +12 -12
  33. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  34. package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
  35. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  36. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
  37. package/dist/cjs/ion-button_2.cjs.entry.js +3 -3
  38. package/dist/cjs/ion-card_5.cjs.entry.js +3 -3
  39. package/dist/cjs/ion-checkbox.cjs.entry.js +4 -4
  40. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  41. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  42. package/dist/cjs/ion-datetime-button.cjs.entry.js +3 -3
  43. package/dist/cjs/ion-datetime_3.cjs.entry.js +13 -9
  44. package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
  45. package/dist/cjs/ion-img.cjs.entry.js +3 -3
  46. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +4 -4
  47. package/dist/cjs/ion-input.cjs.entry.js +6 -6
  48. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  49. package/dist/cjs/ion-item_8.cjs.entry.js +7 -7
  50. package/dist/cjs/ion-loading.cjs.entry.js +13 -9
  51. package/dist/cjs/ion-menu_3.cjs.entry.js +8 -8
  52. package/dist/cjs/ion-modal.cjs.entry.js +16 -14
  53. package/dist/cjs/ion-nav_2.cjs.entry.js +6 -6
  54. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +3 -3
  55. package/dist/cjs/ion-picker-internal.cjs.entry.js +2 -2
  56. package/dist/cjs/ion-popover.cjs.entry.js +15 -11
  57. package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -3
  58. package/dist/cjs/ion-radio_2.cjs.entry.js +4 -4
  59. package/dist/cjs/ion-range.cjs.entry.js +5 -5
  60. package/dist/cjs/ion-refresher_2.cjs.entry.js +5 -5
  61. package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
  62. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  63. package/dist/cjs/ion-route_4.cjs.entry.js +3 -3
  64. package/dist/cjs/ion-searchbar.cjs.entry.js +3 -3
  65. package/dist/cjs/ion-segment_2.cjs.entry.js +3 -3
  66. package/dist/cjs/ion-select_3.cjs.entry.js +12 -12
  67. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  68. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  69. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +3 -3
  70. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  71. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  72. package/dist/cjs/ion-textarea.cjs.entry.js +6 -6
  73. package/dist/cjs/ion-toast.cjs.entry.js +13 -9
  74. package/dist/cjs/ion-toggle.cjs.entry.js +4 -4
  75. package/dist/cjs/{ionic-global-7358c23e.js → ionic-global-59a10130.js} +1 -1
  76. package/dist/cjs/ionic.cjs.js +6 -6
  77. package/dist/cjs/{ios.transition-8e40c54e.js → ios.transition-96679580.js} +4 -4
  78. package/dist/cjs/loader.cjs.js +5 -5
  79. package/dist/cjs/{md.transition-597a2479.js → md.transition-d6c98822.js} +4 -4
  80. package/dist/cjs/{notch-controller-db0127c4.js → notch-controller-bfbcbb7a.js} +1 -1
  81. package/dist/cjs/{overlays-eaf2075f.js → overlays-db5d96f3.js} +122 -32
  82. package/dist/cjs/{status-tap-b0bfea34.js → status-tap-7ad5f0fb.js} +3 -3
  83. package/dist/cjs/{swipe-back-7a848bb8.js → swipe-back-dcd0d4a9.js} +1 -1
  84. package/dist/collection/collection-manifest.json +1 -1
  85. package/dist/collection/components/action-sheet/action-sheet.ios.css +13 -1
  86. package/dist/collection/components/action-sheet/action-sheet.js +9 -5
  87. package/dist/collection/components/alert/alert.js +8 -4
  88. package/dist/collection/components/item/item.js +3 -12
  89. package/dist/collection/components/label/label.ios.css +0 -4
  90. package/dist/collection/components/label/label.md.css +0 -4
  91. package/dist/collection/components/label/test/item/item.e2e.js +24 -0
  92. package/dist/collection/components/loading/loading.js +8 -4
  93. package/dist/collection/components/modal/modal.js +10 -8
  94. package/dist/collection/components/modal/test/animations/modal.e2e.js +36 -0
  95. package/dist/collection/components/picker/picker.js +8 -4
  96. package/dist/collection/components/popover/popover.ios.css +7 -0
  97. package/dist/collection/components/popover/popover.js +8 -4
  98. package/dist/collection/components/select/select.js +3 -3
  99. package/dist/collection/components/select-popover/select-popover.ios.css +10 -0
  100. package/dist/collection/components/select-popover/select-popover.md.css +10 -0
  101. package/dist/collection/components/toast/test/toast.spec.js +12 -0
  102. package/dist/collection/components/toast/toast.js +8 -4
  103. package/dist/collection/utils/helpers.js +1 -1
  104. package/dist/collection/utils/overlays.js +119 -28
  105. package/dist/collection/utils/test/overlays/overlays.e2e.js +122 -0
  106. package/dist/collection/utils/test/overlays/overlays.spec.js +51 -0
  107. package/dist/docs.json +23 -23
  108. package/dist/esm/{animation-60dbdd13.js → animation-6a0c5338.js} +1 -1
  109. package/dist/esm/{app-globals-47226a12.js → app-globals-5cf6195b.js} +1 -1
  110. package/dist/esm/{button-active-4bee452c.js → button-active-47ac8092.js} +1 -1
  111. package/dist/esm/{form-controller-014aa89f.js → form-controller-21dd62b1.js} +1 -1
  112. package/dist/esm/{framework-delegate-fed7fe7c.js → framework-delegate-ed4ba327.js} +1 -1
  113. package/dist/esm/{hardware-back-button-f42b9c80.js → hardware-back-button-b410a047.js} +2 -2
  114. package/dist/esm/{helpers-c0b9ca37.js → helpers-be245865.js} +2 -2
  115. package/dist/esm/{index-d64f34ea.js → index-020f5464.js} +1 -1
  116. package/dist/esm/{index-4b98143d.js → index-348ed70a.js} +4 -4
  117. package/dist/esm/{index-73881b51.js → index-4c30cddd.js} +25 -22
  118. package/dist/esm/{index-48209844.js → index-e1b622e3.js} +4 -4
  119. package/dist/esm/{index-eb12ef92.js → index-f3946ac1.js} +1 -1
  120. package/dist/esm/index.js +11 -11
  121. package/dist/esm/{input-shims-b90ca55f.js → input-shims-5329bbe8.js} +2 -2
  122. package/dist/esm/{input.utils-6e9b0046.js → input.utils-a445f677.js} +1 -1
  123. package/dist/esm/ion-accordion_2.entry.js +3 -3
  124. package/dist/esm/ion-action-sheet.entry.js +16 -12
  125. package/dist/esm/ion-alert.entry.js +14 -10
  126. package/dist/esm/ion-app_8.entry.js +12 -12
  127. package/dist/esm/ion-avatar_3.entry.js +2 -2
  128. package/dist/esm/ion-back-button.entry.js +3 -3
  129. package/dist/esm/ion-backdrop.entry.js +2 -2
  130. package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
  131. package/dist/esm/ion-button_2.entry.js +3 -3
  132. package/dist/esm/ion-card_5.entry.js +3 -3
  133. package/dist/esm/ion-checkbox.entry.js +4 -4
  134. package/dist/esm/ion-chip.entry.js +2 -2
  135. package/dist/esm/ion-col_3.entry.js +2 -2
  136. package/dist/esm/ion-datetime-button.entry.js +3 -3
  137. package/dist/esm/ion-datetime_3.entry.js +13 -9
  138. package/dist/esm/ion-fab_3.entry.js +3 -3
  139. package/dist/esm/ion-img.entry.js +3 -3
  140. package/dist/esm/ion-infinite-scroll_2.entry.js +4 -4
  141. package/dist/esm/ion-input.entry.js +6 -6
  142. package/dist/esm/ion-item-option_3.entry.js +4 -4
  143. package/dist/esm/ion-item_8.entry.js +7 -7
  144. package/dist/esm/ion-loading.entry.js +13 -9
  145. package/dist/esm/ion-menu_3.entry.js +8 -8
  146. package/dist/esm/ion-modal.entry.js +16 -14
  147. package/dist/esm/ion-nav_2.entry.js +6 -6
  148. package/dist/esm/ion-picker-column-internal.entry.js +3 -3
  149. package/dist/esm/ion-picker-internal.entry.js +2 -2
  150. package/dist/esm/ion-popover.entry.js +15 -11
  151. package/dist/esm/ion-progress-bar.entry.js +3 -3
  152. package/dist/esm/ion-radio_2.entry.js +4 -4
  153. package/dist/esm/ion-range.entry.js +5 -5
  154. package/dist/esm/ion-refresher_2.entry.js +5 -5
  155. package/dist/esm/ion-reorder_2.entry.js +4 -4
  156. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  157. package/dist/esm/ion-route_4.entry.js +3 -3
  158. package/dist/esm/ion-searchbar.entry.js +3 -3
  159. package/dist/esm/ion-segment_2.entry.js +3 -3
  160. package/dist/esm/ion-select_3.entry.js +12 -12
  161. package/dist/esm/ion-spinner.entry.js +2 -2
  162. package/dist/esm/ion-split-pane.entry.js +2 -2
  163. package/dist/esm/ion-tab-bar_2.entry.js +3 -3
  164. package/dist/esm/ion-tab_2.entry.js +3 -3
  165. package/dist/esm/ion-text.entry.js +2 -2
  166. package/dist/esm/ion-textarea.entry.js +6 -6
  167. package/dist/esm/ion-toast.entry.js +13 -9
  168. package/dist/esm/ion-toggle.entry.js +4 -4
  169. package/dist/esm/{ionic-global-778b7863.js → ionic-global-ad9a1810.js} +1 -1
  170. package/dist/esm/ionic.js +7 -7
  171. package/dist/esm/{ios.transition-7ff7381d.js → ios.transition-7459f819.js} +4 -4
  172. package/dist/esm/loader.js +6 -6
  173. package/dist/esm/{md.transition-28a9a26b.js → md.transition-b8224313.js} +4 -4
  174. package/dist/esm/{notch-controller-15d281a4.js → notch-controller-6bd3e0f9.js} +1 -1
  175. package/dist/esm/{overlays-fad5fe01.js → overlays-19b26885.js} +123 -32
  176. package/dist/esm/{status-tap-2b335fb7.js → status-tap-b41ece3c.js} +3 -3
  177. package/dist/esm/{swipe-back-fa0ec5cd.js → swipe-back-c6d0e5d9.js} +1 -1
  178. package/dist/esm-es5/{animation-60dbdd13.js → animation-6a0c5338.js} +1 -1
  179. package/dist/esm-es5/app-globals-5cf6195b.js +4 -0
  180. package/dist/esm-es5/{button-active-4bee452c.js → button-active-47ac8092.js} +1 -1
  181. package/dist/esm-es5/{form-controller-014aa89f.js → form-controller-21dd62b1.js} +1 -1
  182. package/dist/esm-es5/{framework-delegate-fed7fe7c.js → framework-delegate-ed4ba327.js} +1 -1
  183. package/dist/esm-es5/{hardware-back-button-f42b9c80.js → hardware-back-button-b410a047.js} +1 -1
  184. package/dist/esm-es5/helpers-be245865.js +4 -0
  185. package/dist/esm-es5/index-020f5464.js +4 -0
  186. package/dist/esm-es5/{index-4b98143d.js → index-348ed70a.js} +1 -1
  187. package/dist/esm-es5/{index-73881b51.js → index-4c30cddd.js} +1 -1
  188. package/dist/esm-es5/{index-48209844.js → index-e1b622e3.js} +1 -1
  189. package/dist/esm-es5/{index-eb12ef92.js → index-f3946ac1.js} +1 -1
  190. package/dist/esm-es5/index.js +1 -1
  191. package/dist/esm-es5/{input-shims-b90ca55f.js → input-shims-5329bbe8.js} +1 -1
  192. package/dist/esm-es5/{input.utils-6e9b0046.js → input.utils-a445f677.js} +1 -1
  193. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  194. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  195. package/dist/esm-es5/ion-alert.entry.js +1 -1
  196. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  197. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  198. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  199. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  200. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  201. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  202. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  203. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  204. package/dist/esm-es5/ion-chip.entry.js +1 -1
  205. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  206. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  207. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  208. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  209. package/dist/esm-es5/ion-img.entry.js +1 -1
  210. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  211. package/dist/esm-es5/ion-input.entry.js +1 -1
  212. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  213. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  214. package/dist/esm-es5/ion-loading.entry.js +1 -1
  215. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  216. package/dist/esm-es5/ion-modal.entry.js +1 -1
  217. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  218. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  219. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  220. package/dist/esm-es5/ion-popover.entry.js +1 -1
  221. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  222. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  223. package/dist/esm-es5/ion-range.entry.js +1 -1
  224. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  225. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  226. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  227. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  228. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  229. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  230. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  231. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  232. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  233. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  234. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  235. package/dist/esm-es5/ion-text.entry.js +1 -1
  236. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  237. package/dist/esm-es5/ion-toast.entry.js +1 -1
  238. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  239. package/dist/esm-es5/{ionic-global-778b7863.js → ionic-global-ad9a1810.js} +1 -1
  240. package/dist/esm-es5/ionic.js +2 -2
  241. package/dist/esm-es5/{ios.transition-7ff7381d.js → ios.transition-7459f819.js} +1 -1
  242. package/dist/esm-es5/loader.js +2 -2
  243. package/dist/esm-es5/md.transition-b8224313.js +4 -0
  244. package/dist/esm-es5/{notch-controller-15d281a4.js → notch-controller-6bd3e0f9.js} +1 -1
  245. package/dist/esm-es5/overlays-19b26885.js +4 -0
  246. package/dist/esm-es5/{status-tap-2b335fb7.js → status-tap-b41ece3c.js} +1 -1
  247. package/dist/esm-es5/{swipe-back-fa0ec5cd.js → swipe-back-c6d0e5d9.js} +1 -1
  248. package/dist/ionic/index.esm.js +1 -1
  249. package/dist/ionic/ionic.esm.js +1 -1
  250. package/dist/ionic/ionic.js +1 -1
  251. package/dist/ionic/{p-38a6fee7.entry.js → p-021f9d72.entry.js} +1 -1
  252. package/dist/ionic/{p-680f96e8.system.entry.js → p-02542247.system.entry.js} +1 -1
  253. package/dist/ionic/p-02ad4bbe.js +4 -0
  254. package/dist/ionic/{p-b4d8fe47.js → p-05253db9.js} +1 -1
  255. package/dist/ionic/{p-efe9180b.entry.js → p-079da3df.entry.js} +1 -1
  256. package/dist/ionic/p-0b34d3a7.system.js +4 -0
  257. package/dist/ionic/{p-51f08a9f.entry.js → p-12527c4b.entry.js} +1 -1
  258. package/dist/ionic/{p-c6fef62b.system.js → p-125f8cdd.system.js} +1 -1
  259. package/dist/ionic/{p-b253ad7f.js → p-12a8643e.js} +1 -1
  260. package/dist/ionic/{p-f7b43141.system.entry.js → p-15a40a0b.system.entry.js} +1 -1
  261. package/dist/ionic/{p-5eea8b4c.system.js → p-1636923f.system.js} +1 -1
  262. package/dist/ionic/{p-333f06ed.entry.js → p-16a61810.entry.js} +1 -1
  263. package/dist/ionic/p-1846513c.js +4 -0
  264. package/dist/ionic/{p-6f38d0c5.system.entry.js → p-18918a24.system.entry.js} +1 -1
  265. package/dist/ionic/{p-ce2eabd5.entry.js → p-1a680496.entry.js} +1 -1
  266. package/dist/ionic/{p-b8c685a7.system.js → p-1bc9b5f5.system.js} +1 -1
  267. package/dist/ionic/{p-396c1a55.entry.js → p-1f16d040.entry.js} +1 -1
  268. package/dist/ionic/{p-e6aaff14.system.entry.js → p-1f19958f.system.entry.js} +1 -1
  269. package/dist/ionic/{p-d7260b87.entry.js → p-2178329b.entry.js} +1 -1
  270. package/dist/ionic/p-257046d2.system.js +4 -0
  271. package/dist/ionic/p-262024fd.entry.js +4 -0
  272. package/dist/ionic/{p-9f5b40c0.system.entry.js → p-2765a571.system.entry.js} +1 -1
  273. package/dist/ionic/{p-7c32fb95.system.entry.js → p-288649db.system.entry.js} +1 -1
  274. package/dist/ionic/{p-94be3ad7.js → p-2c118b1e.js} +1 -1
  275. package/dist/ionic/{p-3a98f8db.entry.js → p-2c4bfe1c.entry.js} +1 -1
  276. package/dist/ionic/{p-25b08bc4.system.js → p-2c86025e.system.js} +1 -1
  277. package/dist/ionic/{p-8569d759.system.entry.js → p-2ea71956.system.entry.js} +1 -1
  278. package/dist/ionic/{p-9db1e4c5.entry.js → p-2fd3c3dd.entry.js} +1 -1
  279. package/dist/ionic/{p-aa7ae6aa.entry.js → p-3079950e.entry.js} +1 -1
  280. package/dist/ionic/{p-b8c4df21.entry.js → p-337ac0f5.entry.js} +1 -1
  281. package/dist/ionic/p-36be3332.js +4 -0
  282. package/dist/ionic/{p-9eb4ea47.system.entry.js → p-437f4d02.system.entry.js} +1 -1
  283. package/dist/ionic/{p-c858f685.js → p-46bcc2f5.js} +1 -1
  284. package/dist/ionic/{p-108f730a.entry.js → p-4788693d.entry.js} +1 -1
  285. package/dist/ionic/{p-5f456b3c.system.entry.js → p-479f5926.system.entry.js} +1 -1
  286. package/dist/ionic/{p-34947dff.system.entry.js → p-482ea916.system.entry.js} +1 -1
  287. package/dist/ionic/p-49f481cc.system.entry.js +4 -0
  288. package/dist/ionic/{p-0eef8b34.system.entry.js → p-4b8a620f.system.entry.js} +1 -1
  289. package/dist/ionic/{p-df468a8f.entry.js → p-521b3971.entry.js} +1 -1
  290. package/dist/ionic/{p-31c495c2.js → p-56ee6d9a.js} +1 -1
  291. package/dist/ionic/{p-30c9e049.system.entry.js → p-5cb5f63d.system.entry.js} +1 -1
  292. package/dist/ionic/{p-1aa7c019.js → p-5d7e32ce.js} +1 -1
  293. package/dist/ionic/{p-4fc40349.system.entry.js → p-5de920f4.system.entry.js} +1 -1
  294. package/dist/ionic/{p-6871553b.system.js → p-62b7320a.system.js} +1 -1
  295. package/dist/ionic/{p-bc2c03d7.system.entry.js → p-644d03d7.system.entry.js} +1 -1
  296. package/dist/ionic/{p-3f028207.system.js → p-6525a8cd.system.js} +1 -1
  297. package/dist/ionic/{p-d8607ede.entry.js → p-657ccdd6.entry.js} +1 -1
  298. package/dist/ionic/p-6812d37d.js +4 -0
  299. package/dist/ionic/{p-61ba2137.system.js → p-6afef6c1.system.js} +1 -1
  300. package/dist/ionic/p-6b6ca3f5.system.entry.js +4 -0
  301. package/dist/ionic/p-6c45c617.js +4 -0
  302. package/dist/ionic/{p-8a671f16.entry.js → p-6e23d039.entry.js} +1 -1
  303. package/dist/ionic/p-6f59cdbc.system.entry.js +4 -0
  304. package/dist/ionic/{p-dce9bc53.entry.js → p-70fbf4e2.entry.js} +1 -1
  305. package/dist/ionic/{p-20a6513f.system.entry.js → p-717e2526.system.entry.js} +1 -1
  306. package/dist/ionic/{p-76893257.system.js → p-72fa96bf.system.js} +1 -1
  307. package/dist/ionic/{p-0fd295ef.system.entry.js → p-741a0f0d.system.entry.js} +1 -1
  308. package/dist/ionic/{p-1c531ca2.entry.js → p-7670acd8.entry.js} +1 -1
  309. package/dist/ionic/{p-84879f61.system.entry.js → p-76b8bcb8.system.entry.js} +1 -1
  310. package/dist/ionic/{p-a3f572a7.js → p-779aede8.js} +1 -1
  311. package/dist/ionic/{p-9f6397ce.entry.js → p-7a615a5a.entry.js} +1 -1
  312. package/dist/ionic/{p-89b5aff2.entry.js → p-7e16220b.entry.js} +1 -1
  313. package/dist/ionic/{p-a1bfaa5c.system.entry.js → p-7e838f43.system.entry.js} +1 -1
  314. package/dist/ionic/{p-2da0a76c.entry.js → p-7f30ad48.entry.js} +1 -1
  315. package/dist/ionic/{p-70026e8f.system.entry.js → p-80aed9fb.system.entry.js} +1 -1
  316. package/dist/ionic/{p-a2ad515b.entry.js → p-822730c4.entry.js} +1 -1
  317. package/dist/ionic/{p-dbb4c012.entry.js → p-84b85535.entry.js} +1 -1
  318. package/dist/ionic/p-85f66c3c.entry.js +4 -0
  319. package/dist/ionic/{p-d181166c.system.entry.js → p-860e2539.system.entry.js} +1 -1
  320. package/dist/ionic/{p-58e3ae88.system.entry.js → p-86813176.system.entry.js} +1 -1
  321. package/dist/ionic/{p-a051c371.entry.js → p-88e9052d.entry.js} +1 -1
  322. package/dist/ionic/{p-b94882a9.system.js → p-89ca4c4b.system.js} +1 -1
  323. package/dist/ionic/{p-c569d1c8.entry.js → p-8cc34120.entry.js} +1 -1
  324. package/dist/ionic/{p-f46775e4.entry.js → p-8e651c29.entry.js} +1 -1
  325. package/dist/ionic/{p-f97b9cdd.system.entry.js → p-9056778e.system.entry.js} +1 -1
  326. package/dist/ionic/{p-92c2178e.system.entry.js → p-91f4e611.system.entry.js} +1 -1
  327. package/dist/ionic/{p-9393a49f.js → p-942a9358.js} +1 -1
  328. package/dist/ionic/{p-ef441122.entry.js → p-96084f36.entry.js} +1 -1
  329. package/dist/ionic/{p-a114530c.entry.js → p-973b4db3.entry.js} +1 -1
  330. package/dist/ionic/{p-3c6f02cf.system.js → p-97ca0cb9.system.js} +1 -1
  331. package/dist/ionic/{p-a02b2d75.entry.js → p-98aa0553.entry.js} +1 -1
  332. package/dist/ionic/{p-1f6cdf2c.system.entry.js → p-9998cb62.system.entry.js} +1 -1
  333. package/dist/ionic/{p-5615cf3f.system.entry.js → p-9de75bac.system.entry.js} +1 -1
  334. package/dist/ionic/{p-3cdbaa49.entry.js → p-a02ea777.entry.js} +1 -1
  335. package/dist/ionic/{p-c2289cd1.js → p-a1036ce7.js} +1 -1
  336. package/dist/ionic/{p-fd3f475f.entry.js → p-a1222c24.entry.js} +1 -1
  337. package/dist/ionic/{p-eda7a1db.system.entry.js → p-a3df16b9.system.entry.js} +1 -1
  338. package/dist/ionic/{p-dd60faa5.system.entry.js → p-a4aa6dd2.system.entry.js} +1 -1
  339. package/dist/ionic/{p-49543c9c.system.js → p-a667dd1f.system.js} +1 -1
  340. package/dist/ionic/{p-8ddc00f7.js → p-a6c0a380.js} +1 -1
  341. package/dist/ionic/{p-5e60dbc8.entry.js → p-a8459bfb.entry.js} +1 -1
  342. package/dist/ionic/{p-9a6ab80a.system.entry.js → p-a85d9047.system.entry.js} +1 -1
  343. package/dist/ionic/{p-ac20160b.system.entry.js → p-abcedc15.system.entry.js} +1 -1
  344. package/dist/ionic/{p-e68980ff.system.entry.js → p-ae2b3a7a.system.entry.js} +1 -1
  345. package/dist/ionic/{p-eb1fdf9f.system.entry.js → p-ae828bd9.system.entry.js} +1 -1
  346. package/dist/ionic/{p-20f7a91e.system.entry.js → p-b0aa3806.system.entry.js} +1 -1
  347. package/dist/ionic/{p-078fd095.system.entry.js → p-b27bba38.system.entry.js} +1 -1
  348. package/dist/ionic/p-b4d2f43c.system.js +4 -0
  349. package/dist/ionic/{p-594ead2f.entry.js → p-b58686e0.entry.js} +1 -1
  350. package/dist/ionic/{p-fe92da17.entry.js → p-b6279412.entry.js} +1 -1
  351. package/dist/ionic/{p-400574bf.entry.js → p-b727af6a.entry.js} +1 -1
  352. package/dist/ionic/{p-a19f5ae1.entry.js → p-ba0fbecc.entry.js} +1 -1
  353. package/dist/ionic/{p-0e29919c.system.entry.js → p-baf8eeac.system.entry.js} +1 -1
  354. package/dist/ionic/{p-95c44e02.system.js → p-bcd9cad8.system.js} +1 -1
  355. package/dist/ionic/{p-37c33319.system.js → p-bd313b73.system.js} +1 -1
  356. package/dist/ionic/p-bdca4784.js +4 -0
  357. package/dist/ionic/{p-0ae25399.system.entry.js → p-c1a871ff.system.entry.js} +1 -1
  358. package/dist/ionic/{p-c3d041af.entry.js → p-c1c7309e.entry.js} +1 -1
  359. package/dist/ionic/{p-e6cfaa07.system.entry.js → p-c7288e78.system.entry.js} +1 -1
  360. package/dist/ionic/{p-d74ca358.entry.js → p-cb3065b8.entry.js} +1 -1
  361. package/dist/ionic/{p-5a0c301f.entry.js → p-cb9812f7.entry.js} +1 -1
  362. package/dist/ionic/{p-55d5cd00.system.js → p-cbcffe6e.system.js} +1 -1
  363. package/dist/ionic/{p-df281664.system.entry.js → p-ce1c0a0e.system.entry.js} +1 -1
  364. package/dist/ionic/{p-4b2d5b9c.js → p-ceceac26.js} +1 -1
  365. package/dist/ionic/p-cfb4d7e0.js +4 -0
  366. package/dist/ionic/{p-3a54c070.system.entry.js → p-d143fefa.system.entry.js} +1 -1
  367. package/dist/ionic/{p-97eca294.entry.js → p-d425b1de.entry.js} +1 -1
  368. package/dist/ionic/{p-78edc0cd.system.entry.js → p-d6c6541b.system.entry.js} +1 -1
  369. package/dist/ionic/{p-341b4519.js → p-de55ec45.js} +1 -1
  370. package/dist/ionic/{p-001010b6.system.js → p-df504a37.system.js} +1 -1
  371. package/dist/ionic/{p-ea8fbf09.entry.js → p-dff97cfa.entry.js} +1 -1
  372. package/dist/ionic/{p-d95c8e90.entry.js → p-e1c52dc6.entry.js} +1 -1
  373. package/dist/ionic/{p-044ad008.system.entry.js → p-e4e74b5f.system.entry.js} +1 -1
  374. package/dist/ionic/{p-cd055d60.system.entry.js → p-e626800f.system.entry.js} +1 -1
  375. package/dist/ionic/{p-84f589e1.entry.js → p-e94c1402.entry.js} +1 -1
  376. package/dist/ionic/{p-30d77a91.system.js → p-ebc1ca90.system.js} +1 -1
  377. package/dist/ionic/{p-2f66e177.system.entry.js → p-ebc86ce9.system.entry.js} +1 -1
  378. package/dist/ionic/{p-88ca4854.entry.js → p-ed4760ef.entry.js} +1 -1
  379. package/dist/ionic/p-ed7a529f.js +5 -0
  380. package/dist/ionic/{p-fd36799d.system.js → p-f02c41af.system.js} +1 -1
  381. package/dist/ionic/{p-1d8c2cfc.system.entry.js → p-f0e54781.system.entry.js} +1 -1
  382. package/dist/ionic/{p-f88dd429.entry.js → p-fa8d3b01.entry.js} +1 -1
  383. package/dist/ionic/p-fbd01db3.system.js +4 -0
  384. package/dist/ionic/{p-e2bb92ed.system.js → p-fe320051.system.js} +1 -1
  385. package/dist/types/components/action-sheet/action-sheet.d.ts +4 -0
  386. package/dist/types/components/alert/alert.d.ts +4 -0
  387. package/dist/types/components/loading/loading.d.ts +4 -0
  388. package/dist/types/components/modal/modal.d.ts +4 -0
  389. package/dist/types/components/picker/picker.d.ts +4 -0
  390. package/dist/types/components/popover/popover.d.ts +4 -0
  391. package/dist/types/components/toast/toast.d.ts +4 -0
  392. package/dist/types/components.d.ts +7 -7
  393. package/dist/types/utils/helpers.d.ts +1 -1
  394. package/dist/types/utils/overlays.d.ts +5 -0
  395. package/hydrate/index.d.ts +1 -1
  396. package/hydrate/index.js +292 -68
  397. package/package.json +6 -6
  398. package/dist/esm-es5/app-globals-47226a12.js +0 -4
  399. package/dist/esm-es5/helpers-c0b9ca37.js +0 -4
  400. package/dist/esm-es5/index-d64f34ea.js +0 -4
  401. package/dist/esm-es5/md.transition-28a9a26b.js +0 -4
  402. package/dist/esm-es5/overlays-fad5fe01.js +0 -4
  403. package/dist/ionic/p-0b955124.system.js +0 -4
  404. package/dist/ionic/p-1375f21f.js +0 -4
  405. package/dist/ionic/p-3eb2da31.js +0 -4
  406. package/dist/ionic/p-41fde260.entry.js +0 -4
  407. package/dist/ionic/p-4f777b5e.js +0 -4
  408. package/dist/ionic/p-52e02877.entry.js +0 -4
  409. package/dist/ionic/p-62067818.system.entry.js +0 -4
  410. package/dist/ionic/p-62a3c609.system.js +0 -4
  411. package/dist/ionic/p-6b02edd6.js +0 -4
  412. package/dist/ionic/p-86670b91.system.js +0 -4
  413. package/dist/ionic/p-8f1ce253.js +0 -4
  414. package/dist/ionic/p-b1f0c48e.system.entry.js +0 -4
  415. package/dist/ionic/p-b4a95b80.system.entry.js +0 -4
  416. package/dist/ionic/p-c5c3710c.js +0 -4
  417. package/dist/ionic/p-c80c7e90.system.js +0 -4
  418. package/dist/ionic/p-e1271366.js +0 -5
  419. package/dist/ionic/p-fd2aa50c.js +0 -4
  420. /package/dist/ionic/{p-b5839dc2.js → p-1b3ffb2f.js} +0 -0
  421. /package/dist/ionic/{p-fd8ced99.system.js → p-5fc8d5ef.system.js} +0 -0
@@ -0,0 +1,24 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { expect } from "@playwright/test";
5
+ import { configs, test } from "../../../../utils/test/playwright/index";
6
+ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
7
+ test.describe(title('label: in item'), () => {
8
+ test('should render correctly in an item', async ({ page }) => {
9
+ test.info().annotations.push({
10
+ type: 'issue',
11
+ description: 'https://github.com/ionic-team/ionic-framework/issues/29033',
12
+ });
13
+ await page.setContent(`
14
+ <ion-item>
15
+ <ion-label slot="start">Start</ion-label>
16
+ <ion-label>Default</ion-label>
17
+ <ion-label slot="end">End</ion-label>
18
+ </ion-item>
19
+ `, config);
20
+ const item = page.locator('ion-item');
21
+ await expect(item).toHaveScreenshot(screenshot(`label-item`));
22
+ });
23
+ });
24
+ });
@@ -113,6 +113,10 @@ export class Loading {
113
113
  * This can be useful in a button handler for determining which button was
114
114
  * clicked to dismiss the loading.
115
115
  * Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
116
+ *
117
+ * This is a no-op if the overlay has not been presented yet. If you want
118
+ * to remove an overlay from the DOM that was never presented, use the
119
+ * [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
116
120
  */
117
121
  async dismiss(data, role) {
118
122
  const unlock = await this.lockController.lock();
@@ -154,9 +158,9 @@ export class Loading {
154
158
  * Otherwise, don't set aria-labelledby.
155
159
  */
156
160
  const ariaLabelledBy = message !== undefined ? msgId : null;
157
- return (h(Host, Object.assign({ key: '81295894ca6e047124918420f2483c092ebf91b9', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
161
+ return (h(Host, Object.assign({ key: '95123f54ba1db5e59563d79db075315b43ed20f7', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
158
162
  zIndex: `${40000 + this.overlayIndex}`,
159
- }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { key: 'db9fbd946cf3eb03c3a70f2e71c49ab233df1879', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: 'd27b03de0b450c0668d4b4077d76bc5b283f03cf', tabindex: "0" }), h("div", { key: '7112719ddd487365c1e36fc4dec32aac888dbb52', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (h("div", { class: "loading-spinner" }, h("ion-spinner", { name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), h("div", { key: '5715dd7dae209ae58e5557cb60f3ae514752b822', tabindex: "0" })));
163
+ }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { key: 'e113bf123eaad38f2dafce8ea5d2ebef409d0c0f', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: '1268c9480854383c7883a79d597350540ade93c2', tabindex: "0" }), h("div", { key: 'e86fc71504ebd578117dea2232d9740a087d1249', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (h("div", { class: "loading-spinner" }, h("ion-spinner", { name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), h("div", { key: '3b91e2492e06aa65ebe77ed2b6ffb9d2f84bdd9c', tabindex: "0" })));
160
164
  }
161
165
  static get is() { return "ion-loading"; }
162
166
  static get encapsulation() { return "scoped"; }
@@ -680,7 +684,7 @@ export class Loading {
680
684
  }, {
681
685
  "name": "role",
682
686
  "type": "string | undefined",
683
- "docs": "The role of the element that is dismissing the loading.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the loading.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`."
687
+ "docs": "The role of the element that is dismissing the loading.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the loading.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
684
688
  }],
685
689
  "references": {
686
690
  "Promise": {
@@ -697,7 +701,7 @@ export class Loading {
697
701
  "text": "data Any data to emit in the dismiss events."
698
702
  }, {
699
703
  "name": "param",
700
- "text": "role The role of the element that is dismissing the loading.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the loading.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`."
704
+ "text": "role The role of the element that is dismissing the loading.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the loading.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
701
705
  }]
702
706
  }
703
707
  },
@@ -8,7 +8,7 @@ import { raf, inheritAttributes, hasLazyBuild } from "../../utils/helpers";
8
8
  import { createLockController } from "../../utils/lock-controller";
9
9
  import { printIonWarning } from "../../utils/logging/index";
10
10
  import { Style as StatusBarStyle, StatusBar } from "../../utils/native/status-bar";
11
- import { GESTURE, BACKDROP, activeAnimations, dismiss, eventMethod, prepareOverlay, present, createTriggerController, setOverlayId, } from "../../utils/overlays";
11
+ import { GESTURE, BACKDROP, dismiss, eventMethod, prepareOverlay, present, createTriggerController, setOverlayId, } from "../../utils/overlays";
12
12
  import { getClassMap } from "../../utils/theme";
13
13
  import { deepReady, waitForMount } from "../../utils/transition/index";
14
14
  import { config } from "../../global/config";
@@ -396,6 +396,10 @@ export class Modal {
396
396
  *
397
397
  * @param data Any data to emit in the dismiss events.
398
398
  * @param role The role of the element that is dismissing the modal. For example, 'cancel' or 'backdrop'.
399
+ *
400
+ * This is a no-op if the overlay has not been presented yet. If you want
401
+ * to remove an overlay from the DOM that was never presented, use the
402
+ * [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
399
403
  */
400
404
  async dismiss(data, role) {
401
405
  var _a;
@@ -432,7 +436,6 @@ export class Modal {
432
436
  window.removeEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
433
437
  this.keyboardOpenCallback = undefined;
434
438
  }
435
- const enteringAnimation = activeAnimations.get(this) || [];
436
439
  const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation, mdLeaveAnimation, {
437
440
  presentingEl: presentingElement,
438
441
  currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
@@ -448,7 +451,6 @@ export class Modal {
448
451
  if (this.gesture) {
449
452
  this.gesture.destroy();
450
453
  }
451
- enteringAnimation.forEach((ani) => ani.destroy());
452
454
  }
453
455
  this.currentBreakpoint = undefined;
454
456
  this.animation = undefined;
@@ -528,9 +530,9 @@ export class Modal {
528
530
  const mode = getIonMode(this);
529
531
  const isCardModal = presentingElement !== undefined && mode === 'ios';
530
532
  const isHandleCycle = handleBehavior === 'cycle';
531
- return (h(Host, Object.assign({ key: '8c163f4f59429227cab3a1cafb5612994939a629', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
533
+ return (h(Host, Object.assign({ key: '0c2c4369ab2df4ef4660addea5e927c6a0232864', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
532
534
  zIndex: `${20000 + this.overlayIndex}`,
533
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), h("ion-backdrop", { key: '6908bdf9462d940eff6607b626a499eedc66dc9c', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { class: "modal-shadow" }), h("div", Object.assign({ key: 'ac224394e19b9e8c7dd902f2836fa25787663455',
535
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), h("ion-backdrop", { key: 'd044383a776c2ee1703f996caedaedca47f2948f', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { class: "modal-shadow" }), h("div", Object.assign({ key: '8d23b6a3cc9069e4d46fa0645cde9db3e6f89507',
534
536
  /*
535
537
  role and aria-modal must be used on the
536
538
  same element. They must also be set inside the
@@ -539,7 +541,7 @@ export class Modal {
539
541
  */
540
542
  role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { class: "modal-handle",
541
543
  // Prevents the handle from receiving keyboard focus when it does not cycle
542
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: '9c3c5ec797b6415110a3275c6ff33277291a6e21' }))));
544
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: '3fbb689e4bf5575fbb26ad1000f6ac5993f3bf8f' }))));
543
545
  }
544
546
  static get is() { return "ion-modal"; }
545
547
  static get encapsulation() { return "shadow"; }
@@ -1234,7 +1236,7 @@ export class Modal {
1234
1236
  }, {
1235
1237
  "name": "role",
1236
1238
  "type": "string | undefined",
1237
- "docs": "The role of the element that is dismissing the modal. For example, 'cancel' or 'backdrop'."
1239
+ "docs": "The role of the element that is dismissing the modal. For example, 'cancel' or 'backdrop'.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
1238
1240
  }],
1239
1241
  "references": {
1240
1242
  "Promise": {
@@ -1255,7 +1257,7 @@ export class Modal {
1255
1257
  "text": "data Any data to emit in the dismiss events."
1256
1258
  }, {
1257
1259
  "name": "param",
1258
- "text": "role The role of the element that is dismissing the modal. For example, 'cancel' or 'backdrop'."
1260
+ "text": "role The role of the element that is dismissing the modal. For example, 'cancel' or 'backdrop'.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
1259
1261
  }]
1260
1262
  }
1261
1263
  },
@@ -0,0 +1,36 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { expect } from "@playwright/test";
5
+ import { configs, test } from "../../../../utils/test/playwright/index";
6
+ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ config, title }) => {
7
+ test.describe(title('modal: animations'), () => {
8
+ test.beforeEach(async ({ page }) => {
9
+ await page.setContent(`
10
+ <ion-modal is-open="true" trigger="open-modal"></ion-modal>
11
+ `, config);
12
+ });
13
+ test('card modal should clean up animations on dismiss', async ({ page }, testInfo) => {
14
+ testInfo.annotations.push({
15
+ type: 'issue',
16
+ description: 'https://github.com/ionic-team/ionic-framework/issues/28352',
17
+ });
18
+ const ionModalDidDismiss = await page.spyOnEvent('ionModalDidDismiss');
19
+ const modal = page.locator('ion-modal');
20
+ const initialAnimations = await modal.evaluate((el) => {
21
+ return el.shadowRoot.getAnimations();
22
+ });
23
+ // While the modal is open, it should have animations
24
+ expect(initialAnimations.length).toBeGreaterThan(0);
25
+ await modal.evaluate((el) => {
26
+ el.dismiss();
27
+ });
28
+ await ionModalDidDismiss.next();
29
+ const currentAnimations = await modal.evaluate((el) => {
30
+ return el.shadowRoot.getAnimations();
31
+ });
32
+ // Once the modal has finished closing, there should be no animations
33
+ expect(currentAnimations.length).toBe(0);
34
+ });
35
+ });
36
+ });
@@ -109,6 +109,10 @@ export class Picker {
109
109
  * This can be useful in a button handler for determining which button was
110
110
  * clicked to dismiss the picker.
111
111
  * Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
112
+ *
113
+ * This is a no-op if the overlay has not been presented yet. If you want
114
+ * to remove an overlay from the DOM that was never presented, use the
115
+ * [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
112
116
  */
113
117
  async dismiss(data, role) {
114
118
  const unlock = await this.lockController.lock();
@@ -180,11 +184,11 @@ export class Picker {
180
184
  render() {
181
185
  const { htmlAttributes } = this;
182
186
  const mode = getIonMode(this);
183
- return (h(Host, Object.assign({ key: '8b9049c5315e701dff3f7457be646941bb3cc0df', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
187
+ return (h(Host, Object.assign({ key: 'c266cc072afaba2da22f70d8b62dc4bc6756d188', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
184
188
  zIndex: `${20000 + this.overlayIndex}`,
185
189
  }, class: Object.assign({ [mode]: true,
186
190
  // Used internally for styling
187
- [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), h("ion-backdrop", { key: '4f62ae6c088108189bfab18b680f0ae50b4cc395', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: 'c5fd2584ca4470c69bf61582cef2ac72289addba', tabindex: "0" }), h("div", { key: '2e68572dd5ddc4911c1e6bca57a2157b47477348', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, h("div", { key: '218526e531998a4d5a6377499acb42f99b347729', class: "picker-toolbar" }, this.buttons.map((b) => (h("div", { class: buttonWrapperClass(b) }, h("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass(b) }, b.text))))), h("div", { key: '4dd711f1fa1f2a4bd24696ae1633da16bbf55879', class: "picker-columns" }, h("div", { key: '440ebd807ca3675b0055e67e0354ac4625ae375d', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => h("ion-picker-column", { col: c })), h("div", { key: '5cdceda410904470e3742ab416ed3d3a661b6859', class: "picker-below-highlight" }))), h("div", { key: '0c96e8a43a6d4cd4b8b7c9e81c54414eb1d989bf', tabindex: "0" })));
191
+ [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), h("ion-backdrop", { key: '35ee3e5028028835580e28ac2c8db65a924d5d6a', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: '8b454e6edbcfc45c57d3d8baf7c14b7905921a6e', tabindex: "0" }), h("div", { key: 'e0fee78ec6d097bf0963190f748e5daad602e0f7', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, h("div", { key: 'ce66bca18fc3e982ad7d6660f27cb1a03fb8247b', class: "picker-toolbar" }, this.buttons.map((b) => (h("div", { class: buttonWrapperClass(b) }, h("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass(b) }, b.text))))), h("div", { key: 'a58b9523fe16f109dd6de0610717c5077fed964b', class: "picker-columns" }, h("div", { key: 'acd54c0314cff51e8513a08dd9755c4b847c0617', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => h("ion-picker-column", { col: c })), h("div", { key: '604730bd87582d048d850c6e0a0f29ba33258918', class: "picker-below-highlight" }))), h("div", { key: '93baf5e6e57aec5f084d7d5b24af14e7d8126b5a', tabindex: "0" })));
188
192
  }
189
193
  static get is() { return "ion-picker"; }
190
194
  static get encapsulation() { return "scoped"; }
@@ -693,7 +697,7 @@ export class Picker {
693
697
  }, {
694
698
  "name": "role",
695
699
  "type": "string | undefined",
696
- "docs": "The role of the element that is dismissing the picker.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the picker.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`."
700
+ "docs": "The role of the element that is dismissing the picker.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the picker.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
697
701
  }],
698
702
  "references": {
699
703
  "Promise": {
@@ -710,7 +714,7 @@ export class Picker {
710
714
  "text": "data Any data to emit in the dismiss events."
711
715
  }, {
712
716
  "name": "param",
713
- "text": "role The role of the element that is dismissing the picker.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the picker.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`."
717
+ "text": "role The role of the element that is dismissing the picker.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the picker.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
714
718
  }]
715
719
  }
716
720
  },
@@ -258,6 +258,13 @@
258
258
  width: 20px;
259
259
  height: 10px;
260
260
  overflow: hidden;
261
+ /*
262
+ * Required for the arrow to render above the backdrop.
263
+ * Otherwise, the arrow will appear slightly transparent.
264
+ * The value is set to 11 since it's the minimum value that
265
+ * will allow the arrow to render above the backdrop.
266
+ */
267
+ z-index: 11;
261
268
  }
262
269
 
263
270
  .popover-arrow::after {
@@ -280,6 +280,10 @@ export class Popover {
280
280
  * @param role The role of the element that is dismissing the popover. For example, 'cancel' or 'backdrop'.
281
281
  * @param dismissParentPopover If `true`, dismissing this popover will also dismiss
282
282
  * a parent popover if this popover is nested. Defaults to `true`.
283
+ *
284
+ * This is a no-op if the overlay has not been presented yet. If you want
285
+ * to remove an overlay from the DOM that was never presented, use the
286
+ * [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
283
287
  */
284
288
  async dismiss(data, role, dismissParentPopover = true) {
285
289
  const unlock = await this.lockController.lock();
@@ -331,9 +335,9 @@ export class Popover {
331
335
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes } = this;
332
336
  const desktop = isPlatform('desktop');
333
337
  const enableArrow = arrow && !parentPopover;
334
- return (h(Host, Object.assign({ key: 'f335ae001173483e6a973b2084f8a7b6b895ae5d', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
338
+ return (h(Host, Object.assign({ key: '104a5bf92a9bbd2efc71d499a8500e5d55f81711', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
335
339
  zIndex: `${20000 + this.overlayIndex}`,
336
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: '8468f39b0a0f30b42ae9cac51950e5f0b9be1069', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { class: "popover-arrow", part: "arrow" }), h("div", { key: 'cb4eeaef385187f3c8e566931844e30edd5451c4', class: "popover-content", part: "content" }, h("slot", { key: '80a5739a4beb6eba150503e426104701954c90b9' })))));
340
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: 'ef0baa04c22444d4bc705220235a892308d67586', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { class: "popover-arrow", part: "arrow" }), h("div", { key: '5cc5f5c353de614e484e9cfeacecfca9fbfde0e0', class: "popover-content", part: "content" }, h("slot", { key: '2d85c591cdc85efa98afbf40f676525f1402efcf' })))));
337
341
  }
338
342
  static get is() { return "ion-popover"; }
339
343
  static get encapsulation() { return "shadow"; }
@@ -1130,7 +1134,7 @@ export class Popover {
1130
1134
  }, {
1131
1135
  "name": "dismissParentPopover",
1132
1136
  "type": "boolean",
1133
- "docs": "If `true`, dismissing this popover will also dismiss\na parent popover if this popover is nested. Defaults to `true`."
1137
+ "docs": "If `true`, dismissing this popover will also dismiss\na parent popover if this popover is nested. Defaults to `true`.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
1134
1138
  }],
1135
1139
  "references": {
1136
1140
  "Promise": {
@@ -1154,7 +1158,7 @@ export class Popover {
1154
1158
  "text": "role The role of the element that is dismissing the popover. For example, 'cancel' or 'backdrop'."
1155
1159
  }, {
1156
1160
  "name": "param",
1157
- "text": "dismissParentPopover If `true`, dismissing this popover will also dismiss\na parent popover if this popover is nested. Defaults to `true`."
1161
+ "text": "dismissParentPopover If `true`, dismissing this popover will also dismiss\na parent popover if this popover is nested. Defaults to `true`.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
1158
1162
  }]
1159
1163
  }
1160
1164
  },
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { Host, h, forceUpdate } from "@stencil/core";
5
5
  import { compareOptions, createLegacyFormController, createNotchController, isOptionSelected } from "../../utils/forms/index";
6
- import { findItemLabel, focusElement, getAriaLabel, renderHiddenInput, inheritAttributes } from "../../utils/helpers";
6
+ import { findItemLabel, focusVisibleElement, getAriaLabel, renderHiddenInput, inheritAttributes } from "../../utils/helpers";
7
7
  import { printIonWarning } from "../../utils/logging/index";
8
8
  import { actionSheetController, alertController, popoverController } from "../../utils/overlays";
9
9
  import { isRTL } from "../../utils/rtl/index";
@@ -158,7 +158,7 @@ export class Select {
158
158
  if (indexOfSelected > -1) {
159
159
  const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
160
160
  if (selectedItem) {
161
- focusElement(selectedItem);
161
+ focusVisibleElement(selectedItem);
162
162
  /**
163
163
  * Browsers such as Firefox do not
164
164
  * correctly delegate focus when manually
@@ -182,7 +182,7 @@ export class Select {
182
182
  */
183
183
  const firstEnabledOption = overlay.querySelector('ion-radio:not(.radio-disabled), ion-checkbox:not(.checkbox-disabled)');
184
184
  if (firstEnabledOption) {
185
- focusElement(firstEnabledOption.closest('ion-item'));
185
+ focusVisibleElement(firstEnabledOption.closest('ion-item'));
186
186
  /**
187
187
  * Focus the option for the same reason as we do above.
188
188
  */
@@ -68,6 +68,16 @@ ion-label {
68
68
  margin-bottom: 0;
69
69
  }
70
70
 
71
+ /**
72
+ * The main content inside of a popover has overflow: hidden
73
+ * so that a descendant ion-content can be scrolled.
74
+ * However, select-popover does not use ion-content so we need
75
+ * to explicitly make this container scrollable.
76
+ */
77
+ :host {
78
+ overflow-y: auto;
79
+ }
80
+
71
81
  /**
72
82
  * Convert a font size to a dynamic font size.
73
83
  * Fonts that participate in Dynamic Type should use
@@ -68,6 +68,16 @@ ion-label {
68
68
  margin-bottom: 0;
69
69
  }
70
70
 
71
+ /**
72
+ * The main content inside of a popover has overflow: hidden
73
+ * so that a descendant ion-content can be scrolled.
74
+ * However, select-popover does not use ion-content so we need
75
+ * to explicitly make this container scrollable.
76
+ */
77
+ :host {
78
+ overflow-y: auto;
79
+ }
80
+
71
81
  /**
72
82
  * Convert a font size to a dynamic font size.
73
83
  * Fonts that participate in Dynamic Type should use
@@ -80,6 +80,18 @@ describe('toast: a11y smoke test', () => {
80
80
  });
81
81
  });
82
82
  describe('toast: duration config', () => {
83
+ afterEach(() => {
84
+ /**
85
+ * Important: Reset the config
86
+ * after each test as it is not
87
+ * automatically reset.
88
+ * Otherwise, toasts in other tests
89
+ * will take on any toastDuration value
90
+ * set and timeouts will potentially run
91
+ * after tests are finished.
92
+ */
93
+ config.reset({});
94
+ });
83
95
  it('should have duration set to 0', async () => {
84
96
  const page = await newSpecPage({
85
97
  components: [Toast],
@@ -217,6 +217,10 @@ export class Toast {
217
217
  * This can be useful in a button handler for determining which button was
218
218
  * clicked to dismiss the toast.
219
219
  * Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
220
+ *
221
+ * This is a no-op if the overlay has not been presented yet. If you want
222
+ * to remove an overlay from the DOM that was never presented, use the
223
+ * [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
220
224
  */
221
225
  async dismiss(data, role) {
222
226
  var _a, _b;
@@ -384,9 +388,9 @@ export class Toast {
384
388
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
385
389
  printIonWarning('This toast is using start and end buttons with the stacked toast layout. We recommend following the best practice of using either start or end buttons with the stacked toast layout.', el);
386
390
  }
387
- return (h(Host, Object.assign({ key: '15a5c3e8d475435c838b70c55ef2e7cc12d6abfb', tabindex: "-1" }, this.htmlAttributes, { style: {
391
+ return (h(Host, Object.assign({ key: 'c8d7e7d2baa01d3ed5d65a845bc61acf087c0b18', tabindex: "-1" }, this.htmlAttributes, { style: {
388
392
  zIndex: `${60000 + this.overlayIndex}`,
389
- }, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { key: 'a6ed7fb75ab098dc632d1a546b4d5298675c14c1', class: wrapperClass }, h("div", { key: '68ff7219e9abae0b7c2030369ebffd2fe0edf7de', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h("ion-icon", { class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), h("div", { key: '6b45ca5e283d3507c682cbe733e27a94460a7f69', class: "toast-content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
393
+ }, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { key: '27c0feeb89c4efb47c42623a4b036ed84338ed10', class: wrapperClass }, h("div", { key: '41d5a3069f92e4a6acef2793fa4e236cdbdaae88', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h("ion-icon", { class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), h("div", { key: '176f497bc990ef2ecc14c7fa90dd3a54a912030a', class: "toast-content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
390
394
  }
391
395
  static get is() { return "ion-toast"; }
392
396
  static get encapsulation() { return "shadow"; }
@@ -1032,7 +1036,7 @@ export class Toast {
1032
1036
  }, {
1033
1037
  "name": "role",
1034
1038
  "type": "string | undefined",
1035
- "docs": "The role of the element that is dismissing the toast.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the toast.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`."
1039
+ "docs": "The role of the element that is dismissing the toast.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the toast.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
1036
1040
  }],
1037
1041
  "references": {
1038
1042
  "Promise": {
@@ -1054,7 +1058,7 @@ export class Toast {
1054
1058
  "text": "data Any data to emit in the dismiss events."
1055
1059
  }, {
1056
1060
  "name": "param",
1057
- "text": "role The role of the element that is dismissing the toast.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the toast.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`."
1061
+ "text": "role The role of the element that is dismissing the toast.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the toast.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
1058
1062
  }]
1059
1063
  }
1060
1064
  },
@@ -237,7 +237,7 @@ export const findItemLabel = (componentEl) => {
237
237
  }
238
238
  return null;
239
239
  };
240
- export const focusElement = (el) => {
240
+ export const focusVisibleElement = (el) => {
241
241
  el.focus();
242
242
  /**
243
243
  * When programmatically focusing an element,