@ionic/core 7.5.3 → 7.5.4-dev.11699017292.1ef8bb95

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 (314) hide show
  1. package/components/item.js +2 -2
  2. package/dist/cjs/{app-globals-fe1ad535.js → app-globals-e7d3f834.js} +1 -1
  3. package/dist/cjs/{button-active-c0ff1915.js → button-active-f48a98c0.js} +1 -1
  4. package/dist/cjs/{index-5a2463aa.js → index-04f92f05.js} +1 -1
  5. package/dist/cjs/{index-174dc666.js → index-936b1c6e.js} +3 -3
  6. package/dist/cjs/{index-305a23dc.js → index-b5b25afb.js} +97 -52
  7. package/dist/cjs/index.cjs.js +7 -7
  8. package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
  9. package/dist/cjs/ion-action-sheet.cjs.entry.js +4 -4
  10. package/dist/cjs/ion-alert.cjs.entry.js +4 -4
  11. package/dist/cjs/ion-app_8.cjs.entry.js +4 -4
  12. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  13. package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
  14. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  15. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
  16. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  17. package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
  18. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
  19. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  20. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  21. package/dist/cjs/ion-datetime-button.cjs.entry.js +2 -2
  22. package/dist/cjs/ion-datetime_3.cjs.entry.js +3 -3
  23. package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
  24. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  25. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
  26. package/dist/cjs/ion-input.cjs.entry.js +2 -2
  27. package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
  28. package/dist/cjs/ion-item_8.cjs.entry.js +4 -4
  29. package/dist/cjs/ion-loading.cjs.entry.js +3 -3
  30. package/dist/cjs/ion-menu_3.cjs.entry.js +4 -4
  31. package/dist/cjs/ion-modal.cjs.entry.js +4 -4
  32. package/dist/cjs/ion-nav_2.cjs.entry.js +3 -3
  33. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +2 -2
  34. package/dist/cjs/ion-picker-internal.cjs.entry.js +1 -1
  35. package/dist/cjs/ion-popover.cjs.entry.js +4 -4
  36. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  37. package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
  38. package/dist/cjs/ion-range.cjs.entry.js +2 -2
  39. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  40. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  41. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  42. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  43. package/dist/cjs/ion-searchbar.cjs.entry.js +2 -2
  44. package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
  45. package/dist/cjs/ion-select_3.cjs.entry.js +3 -3
  46. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  47. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  48. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
  49. package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
  50. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  51. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  52. package/dist/cjs/ion-toast.cjs.entry.js +3 -3
  53. package/dist/cjs/ion-toggle.cjs.entry.js +2 -2
  54. package/dist/cjs/{ionic-global-fb752503.js → ionic-global-a8da299a.js} +1 -1
  55. package/dist/cjs/ionic.cjs.js +4 -4
  56. package/dist/cjs/{ios.transition-74ad019b.js → ios.transition-f200285c.js} +2 -2
  57. package/dist/cjs/loader.cjs.js +3 -3
  58. package/dist/cjs/{md.transition-efcc0ad3.js → md.transition-29531994.js} +2 -2
  59. package/dist/cjs/{overlays-1a734051.js → overlays-43270ca7.js} +1 -1
  60. package/dist/cjs/{status-tap-b19eb3c8.js → status-tap-4a84c3f6.js} +1 -1
  61. package/dist/collection/collection-manifest.json +1 -1
  62. package/dist/collection/components/item/item.ios.css +60 -12
  63. package/dist/collection/components/item/item.md.css +60 -12
  64. package/dist/collection/components/item/test/basic/item.e2e.js +26 -0
  65. package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +5 -0
  66. package/dist/docs.json +2 -2
  67. package/dist/esm/{app-globals-ec816a70.js → app-globals-298479d6.js} +1 -1
  68. package/dist/esm/{button-active-d926d4f4.js → button-active-61e81700.js} +1 -1
  69. package/dist/esm/{index-ec72506a.js → index-3a662ef8.js} +3 -3
  70. package/dist/esm/{index-b49b173c.js → index-6226a5f4.js} +97 -52
  71. package/dist/esm/{index-aae132ba.js → index-fb1db216.js} +1 -1
  72. package/dist/esm/index.js +7 -7
  73. package/dist/esm/ion-accordion_2.entry.js +2 -2
  74. package/dist/esm/ion-action-sheet.entry.js +4 -4
  75. package/dist/esm/ion-alert.entry.js +4 -4
  76. package/dist/esm/ion-app_8.entry.js +4 -4
  77. package/dist/esm/ion-avatar_3.entry.js +2 -2
  78. package/dist/esm/ion-back-button.entry.js +2 -2
  79. package/dist/esm/ion-backdrop.entry.js +2 -2
  80. package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
  81. package/dist/esm/ion-button_2.entry.js +2 -2
  82. package/dist/esm/ion-card_5.entry.js +2 -2
  83. package/dist/esm/ion-checkbox.entry.js +2 -2
  84. package/dist/esm/ion-chip.entry.js +2 -2
  85. package/dist/esm/ion-col_3.entry.js +2 -2
  86. package/dist/esm/ion-datetime-button.entry.js +2 -2
  87. package/dist/esm/ion-datetime_3.entry.js +3 -3
  88. package/dist/esm/ion-fab_3.entry.js +2 -2
  89. package/dist/esm/ion-img.entry.js +2 -2
  90. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
  91. package/dist/esm/ion-input.entry.js +2 -2
  92. package/dist/esm/ion-item-option_3.entry.js +2 -2
  93. package/dist/esm/ion-item_8.entry.js +4 -4
  94. package/dist/esm/ion-loading.entry.js +3 -3
  95. package/dist/esm/ion-menu_3.entry.js +4 -4
  96. package/dist/esm/ion-modal.entry.js +4 -4
  97. package/dist/esm/ion-nav_2.entry.js +3 -3
  98. package/dist/esm/ion-picker-column-internal.entry.js +2 -2
  99. package/dist/esm/ion-picker-internal.entry.js +1 -1
  100. package/dist/esm/ion-popover.entry.js +4 -4
  101. package/dist/esm/ion-progress-bar.entry.js +2 -2
  102. package/dist/esm/ion-radio_2.entry.js +2 -2
  103. package/dist/esm/ion-range.entry.js +2 -2
  104. package/dist/esm/ion-refresher_2.entry.js +2 -2
  105. package/dist/esm/ion-reorder_2.entry.js +2 -2
  106. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  107. package/dist/esm/ion-route_4.entry.js +2 -2
  108. package/dist/esm/ion-searchbar.entry.js +2 -2
  109. package/dist/esm/ion-segment_2.entry.js +2 -2
  110. package/dist/esm/ion-select_3.entry.js +3 -3
  111. package/dist/esm/ion-spinner.entry.js +2 -2
  112. package/dist/esm/ion-split-pane.entry.js +2 -2
  113. package/dist/esm/ion-tab-bar_2.entry.js +2 -2
  114. package/dist/esm/ion-tab_2.entry.js +1 -1
  115. package/dist/esm/ion-text.entry.js +2 -2
  116. package/dist/esm/ion-textarea.entry.js +2 -2
  117. package/dist/esm/ion-toast.entry.js +3 -3
  118. package/dist/esm/ion-toggle.entry.js +2 -2
  119. package/dist/esm/{ionic-global-246ca78f.js → ionic-global-f96e58a3.js} +1 -1
  120. package/dist/esm/ionic.js +5 -5
  121. package/dist/esm/{ios.transition-f1cea7e0.js → ios.transition-8d26edec.js} +2 -2
  122. package/dist/esm/loader.js +4 -4
  123. package/dist/esm/{md.transition-1bf39c32.js → md.transition-00f3fafd.js} +2 -2
  124. package/dist/esm/{overlays-cec6bac8.js → overlays-153881c5.js} +1 -1
  125. package/dist/esm/{status-tap-4e96ecf3.js → status-tap-76a65f04.js} +1 -1
  126. package/dist/esm-es5/app-globals-298479d6.js +4 -0
  127. package/dist/esm-es5/{button-active-d926d4f4.js → button-active-61e81700.js} +1 -1
  128. package/dist/esm-es5/{index-ec72506a.js → index-3a662ef8.js} +1 -1
  129. package/dist/esm-es5/index-6226a5f4.js +5 -0
  130. package/dist/esm-es5/{index-aae132ba.js → index-fb1db216.js} +1 -1
  131. package/dist/esm-es5/index.js +1 -1
  132. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  133. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  134. package/dist/esm-es5/ion-alert.entry.js +1 -1
  135. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  136. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  137. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  138. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  139. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  140. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  141. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  142. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  143. package/dist/esm-es5/ion-chip.entry.js +1 -1
  144. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  145. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  146. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  147. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  148. package/dist/esm-es5/ion-img.entry.js +1 -1
  149. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  150. package/dist/esm-es5/ion-input.entry.js +1 -1
  151. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  152. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  153. package/dist/esm-es5/ion-loading.entry.js +1 -1
  154. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  155. package/dist/esm-es5/ion-modal.entry.js +1 -1
  156. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  157. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  158. package/dist/esm-es5/ion-picker-internal.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-ripple-effect.entry.js +1 -1
  166. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  167. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  168. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  169. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  170. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  171. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  172. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  173. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  174. package/dist/esm-es5/ion-text.entry.js +1 -1
  175. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  176. package/dist/esm-es5/ion-toast.entry.js +1 -1
  177. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  178. package/dist/esm-es5/{ionic-global-246ca78f.js → ionic-global-f96e58a3.js} +1 -1
  179. package/dist/esm-es5/ionic.js +1 -1
  180. package/dist/esm-es5/{ios.transition-f1cea7e0.js → ios.transition-8d26edec.js} +1 -1
  181. package/dist/esm-es5/loader.js +1 -1
  182. package/dist/esm-es5/md.transition-00f3fafd.js +4 -0
  183. package/dist/esm-es5/{overlays-cec6bac8.js → overlays-153881c5.js} +1 -1
  184. package/dist/esm-es5/{status-tap-4e96ecf3.js → status-tap-76a65f04.js} +1 -1
  185. package/dist/ionic/index.esm.js +1 -1
  186. package/dist/ionic/ionic.esm.js +1 -1
  187. package/dist/ionic/ionic.js +1 -1
  188. package/dist/ionic/{p-b216de09.system.js → p-0739476e.system.js} +1 -1
  189. package/dist/ionic/{p-28293683.entry.js → p-187c1f3d.entry.js} +1 -1
  190. package/dist/ionic/{p-74f892e9.system.entry.js → p-1b50c850.system.entry.js} +1 -1
  191. package/dist/ionic/{p-db1a1e00.entry.js → p-1ee18e20.entry.js} +1 -1
  192. package/dist/ionic/{p-43392db6.entry.js → p-1ee73abd.entry.js} +1 -1
  193. package/dist/ionic/{p-dbdb0d8e.system.entry.js → p-1fa2e793.system.entry.js} +1 -1
  194. package/dist/ionic/{p-372f1f80.system.entry.js → p-23c80600.system.entry.js} +1 -1
  195. package/dist/ionic/{p-3818f63f.entry.js → p-24d1ade7.entry.js} +1 -1
  196. package/dist/ionic/{p-db6fb00c.system.entry.js → p-26a5154f.system.entry.js} +1 -1
  197. package/dist/ionic/{p-664d1430.system.js → p-2c0a20f6.system.js} +1 -1
  198. package/dist/ionic/{p-e21ebd84.system.entry.js → p-2d975093.system.entry.js} +1 -1
  199. package/dist/ionic/{p-cf67c66c.entry.js → p-2fdac140.entry.js} +1 -1
  200. package/dist/ionic/{p-c50ea33f.system.js → p-329e086c.system.js} +1 -1
  201. package/dist/ionic/{p-08e3ebcc.system.entry.js → p-3373ebb4.system.entry.js} +1 -1
  202. package/dist/ionic/p-36a55026.system.entry.js +4 -0
  203. package/dist/ionic/{p-1551659d.system.entry.js → p-3729c4e3.system.entry.js} +1 -1
  204. package/dist/ionic/{p-3574440a.system.entry.js → p-37421c6b.system.entry.js} +1 -1
  205. package/dist/ionic/{p-4e6e43c1.entry.js → p-383617af.entry.js} +1 -1
  206. package/dist/ionic/{p-68f78c9b.system.entry.js → p-39a75970.system.entry.js} +1 -1
  207. package/dist/ionic/{p-79fdc224.js → p-3aebd535.js} +1 -1
  208. package/dist/ionic/{p-590250f4.system.entry.js → p-3bc5eba9.system.entry.js} +1 -1
  209. package/dist/ionic/{p-ae1de8af.system.entry.js → p-3cd0d943.system.entry.js} +1 -1
  210. package/dist/ionic/{p-8c09ef6b.system.entry.js → p-400e6669.system.entry.js} +1 -1
  211. package/dist/ionic/{p-7b48cf4f.system.entry.js → p-42433d7e.system.entry.js} +1 -1
  212. package/dist/ionic/{p-79d430f7.system.entry.js → p-426c974c.system.entry.js} +1 -1
  213. package/dist/ionic/{p-a107434d.system.entry.js → p-42761cc1.system.entry.js} +2 -2
  214. package/dist/ionic/{p-bbf47813.entry.js → p-4316ce7a.entry.js} +1 -1
  215. package/dist/ionic/{p-c9f70283.entry.js → p-4436b8db.entry.js} +1 -1
  216. package/dist/ionic/{p-9c1dce7a.system.entry.js → p-4541ec29.system.entry.js} +1 -1
  217. package/dist/ionic/{p-cf1822ca.system.entry.js → p-4687559d.system.entry.js} +1 -1
  218. package/dist/ionic/p-47a0a2d7.js +4 -0
  219. package/dist/ionic/{p-588687d2.system.entry.js → p-536884b0.system.entry.js} +1 -1
  220. package/dist/ionic/{p-2222b68a.system.entry.js → p-536ea109.system.entry.js} +2 -2
  221. package/dist/ionic/{p-5f546346.entry.js → p-552710bd.entry.js} +1 -1
  222. package/dist/ionic/{p-c6cae705.system.entry.js → p-574ca59a.system.entry.js} +1 -1
  223. package/dist/ionic/{p-5a692624.system.entry.js → p-5c58e994.system.entry.js} +1 -1
  224. package/dist/ionic/{p-1676eeff.system.entry.js → p-5f473d39.system.entry.js} +1 -1
  225. package/dist/ionic/{p-1ecba429.entry.js → p-6283f89b.entry.js} +1 -1
  226. package/dist/ionic/{p-f21e24aa.system.entry.js → p-676b5c18.system.entry.js} +1 -1
  227. package/dist/ionic/{p-76378400.js → p-69ba35e5.js} +1 -1
  228. package/dist/ionic/{p-c4a5de01.entry.js → p-6ef73ad8.entry.js} +1 -1
  229. package/dist/ionic/{p-3816e896.entry.js → p-6f9b2ffe.entry.js} +1 -1
  230. package/dist/ionic/{p-f089f3b1.entry.js → p-7080bb33.entry.js} +1 -1
  231. package/dist/ionic/{p-ea1f5746.system.entry.js → p-71201419.system.entry.js} +1 -1
  232. package/dist/ionic/{p-f919c026.entry.js → p-71442f7d.entry.js} +1 -1
  233. package/dist/ionic/{p-b9a17fcb.system.entry.js → p-71d35696.system.entry.js} +1 -1
  234. package/dist/ionic/{p-306d845d.system.entry.js → p-721f76e8.system.entry.js} +1 -1
  235. package/dist/ionic/{p-1e4def26.system.entry.js → p-72aa7067.system.entry.js} +1 -1
  236. package/dist/ionic/{p-0362c48a.entry.js → p-786950a4.entry.js} +1 -1
  237. package/dist/ionic/{p-108f9d49.entry.js → p-795a3808.entry.js} +1 -1
  238. package/dist/ionic/{p-31119a15.entry.js → p-7af580d7.entry.js} +1 -1
  239. package/dist/ionic/{p-07989b03.system.entry.js → p-7b3f59df.system.entry.js} +1 -1
  240. package/dist/ionic/{p-26d0ec66.system.entry.js → p-7d980409.system.entry.js} +1 -1
  241. package/dist/ionic/{p-dcce7252.entry.js → p-7f735b2b.entry.js} +1 -1
  242. package/dist/ionic/{p-b998e8eb.entry.js → p-8044bbdd.entry.js} +1 -1
  243. package/dist/ionic/{p-57f074a4.system.entry.js → p-80d3770e.system.entry.js} +1 -1
  244. package/dist/ionic/{p-0fb53284.system.js → p-819aa862.system.js} +1 -1
  245. package/dist/ionic/{p-db2332fe.system.entry.js → p-81bd0bb9.system.entry.js} +1 -1
  246. package/dist/ionic/p-827bcd74.js +4 -0
  247. package/dist/ionic/{p-939e0fa1.system.js → p-82ebb358.system.js} +1 -1
  248. package/dist/ionic/{p-be7fcb09.system.js → p-84201f4c.system.js} +1 -1
  249. package/dist/ionic/p-86fa8554.js +5 -0
  250. package/dist/ionic/{p-de252f17.system.entry.js → p-8726552e.system.entry.js} +1 -1
  251. package/dist/ionic/{p-96ba8eac.entry.js → p-89a0384e.entry.js} +1 -1
  252. package/dist/ionic/{p-c842da0a.js → p-8efea65b.js} +1 -1
  253. package/dist/ionic/{p-360d0872.entry.js → p-8f442691.entry.js} +1 -1
  254. package/dist/ionic/{p-892710a8.entry.js → p-9395c1b8.entry.js} +1 -1
  255. package/dist/ionic/{p-db0140c0.entry.js → p-960b96e5.entry.js} +1 -1
  256. package/dist/ionic/{p-f4bd51c5.entry.js → p-9660b049.entry.js} +1 -1
  257. package/dist/ionic/{p-e552cf80.entry.js → p-9730a670.entry.js} +1 -1
  258. package/dist/ionic/{p-3e2ddf5e.system.entry.js → p-9978d7c7.system.entry.js} +1 -1
  259. package/dist/ionic/{p-311d91cc.js → p-9a266f94.js} +1 -1
  260. package/dist/ionic/{p-4e9114af.entry.js → p-9bb47c8b.entry.js} +1 -1
  261. package/dist/ionic/{p-8083aadb.entry.js → p-9ca56fec.entry.js} +1 -1
  262. package/dist/ionic/p-9ee6a2b8.entry.js +4 -0
  263. package/dist/ionic/{p-a04bfada.entry.js → p-a2364b7c.entry.js} +1 -1
  264. package/dist/ionic/{p-45844e7a.system.entry.js → p-aa45eab2.system.entry.js} +1 -1
  265. package/dist/ionic/{p-0c0d536f.system.entry.js → p-b0fb1c6c.system.entry.js} +1 -1
  266. package/dist/ionic/{p-b3c68723.system.js → p-b72bf9bf.system.js} +1 -1
  267. package/dist/ionic/{p-fcf47f80.entry.js → p-b8406f0a.entry.js} +1 -1
  268. package/dist/ionic/{p-8fdd6396.system.entry.js → p-bae78456.system.entry.js} +1 -1
  269. package/dist/ionic/{p-4e70a7cc.entry.js → p-bb5ddd9b.entry.js} +1 -1
  270. package/dist/ionic/p-bd20487b.entry.js +4 -0
  271. package/dist/ionic/{p-181b7c2a.js → p-beeb9776.js} +1 -1
  272. package/dist/ionic/{p-507845ca.js → p-bf556399.js} +1 -1
  273. package/dist/ionic/{p-4e50b8d1.entry.js → p-bf76455d.entry.js} +1 -1
  274. package/dist/ionic/{p-fe08d5d6.system.js → p-c0f58952.system.js} +1 -1
  275. package/dist/ionic/{p-7427a3ec.system.entry.js → p-c371dde4.system.entry.js} +1 -1
  276. package/dist/ionic/{p-8b1237b9.entry.js → p-c63c564a.entry.js} +1 -1
  277. package/dist/ionic/{p-8f01a9a2.system.js → p-c6ac3aac.system.js} +1 -1
  278. package/dist/ionic/{p-5fba0b2d.entry.js → p-c8139d7d.entry.js} +1 -1
  279. package/dist/ionic/{p-f5e7ed0e.entry.js → p-cb8c2339.entry.js} +1 -1
  280. package/dist/ionic/{p-c66eb2d7.system.entry.js → p-cbaf41c2.system.entry.js} +2 -2
  281. package/dist/ionic/{p-83198481.entry.js → p-d0eb76b2.entry.js} +1 -1
  282. package/dist/ionic/{p-ebdf4f41.entry.js → p-d5847bcf.entry.js} +1 -1
  283. package/dist/ionic/{p-f10fb4d4.system.entry.js → p-d5d34b78.system.entry.js} +1 -1
  284. package/dist/ionic/{p-70263330.entry.js → p-d82ab10b.entry.js} +1 -1
  285. package/dist/ionic/{p-ce56d7b5.system.entry.js → p-d8902d90.system.entry.js} +1 -1
  286. package/dist/ionic/p-d8aac5aa.system.js +5 -0
  287. package/dist/ionic/{p-cf62e1c8.js → p-da78083d.js} +1 -1
  288. package/dist/ionic/{p-c8d705d1.system.entry.js → p-db7c1033.system.entry.js} +1 -1
  289. package/dist/ionic/{p-cabd2c6d.entry.js → p-dbba25f4.entry.js} +1 -1
  290. package/dist/ionic/{p-0b00b937.entry.js → p-dfeb3458.entry.js} +1 -1
  291. package/dist/ionic/{p-df189fa7.entry.js → p-e005611b.entry.js} +1 -1
  292. package/dist/ionic/{p-f275d76b.system.entry.js → p-e265b755.system.entry.js} +1 -1
  293. package/dist/ionic/{p-99eba967.entry.js → p-ec402706.entry.js} +1 -1
  294. package/dist/ionic/{p-aa377971.system.js → p-ef3bd315.system.js} +1 -1
  295. package/dist/ionic/{p-a3980e51.system.entry.js → p-f47fd2a4.system.entry.js} +1 -1
  296. package/dist/ionic/{p-5fb7c384.entry.js → p-f61bb330.entry.js} +1 -1
  297. package/dist/ionic/{p-23410b18.system.entry.js → p-f7445cda.system.entry.js} +1 -1
  298. package/dist/ionic/{p-af37e8de.system.entry.js → p-fd797fb2.system.entry.js} +1 -1
  299. package/dist/ionic/{p-afb6658f.entry.js → p-fde5fd7d.entry.js} +1 -1
  300. package/dist/ionic/{p-6ea2e653.entry.js → p-fe32d671.entry.js} +1 -1
  301. package/dist/ionic/{p-62b29300.system.js → p-feed1576.system.js} +1 -1
  302. package/hydrate/index.d.ts +1 -1
  303. package/hydrate/index.js +92 -72
  304. package/package.json +2 -2
  305. package/dist/esm-es5/app-globals-ec816a70.js +0 -4
  306. package/dist/esm-es5/index-b49b173c.js +0 -5
  307. package/dist/esm-es5/md.transition-1bf39c32.js +0 -4
  308. package/dist/ionic/p-06ac429a.js +0 -5
  309. package/dist/ionic/p-28ea45b9.js +0 -4
  310. package/dist/ionic/p-629aa3fd.system.js +0 -5
  311. package/dist/ionic/p-9d166dc1.js +0 -4
  312. package/dist/ionic/p-dc583535.entry.js +0 -4
  313. package/dist/ionic/p-e7308ea0.system.entry.js +0 -4
  314. package/dist/ionic/p-eac263dd.entry.js +0 -4
@@ -188,10 +188,6 @@
188
188
  margin-right: 0;
189
189
  margin-top: 0;
190
190
  margin-bottom: 0;
191
- -webkit-padding-start: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
192
- padding-inline-start: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
193
- -webkit-padding-end: var(--padding-end);
194
- padding-inline-end: var(--padding-end);
195
191
  padding-top: var(--padding-top);
196
192
  padding-bottom: var(--padding-bottom);
197
193
  font-family: inherit;
@@ -206,6 +202,10 @@
206
202
  text-align: inherit;
207
203
  white-space: inherit;
208
204
  color: inherit;
205
+ /* stylelint-disable */
206
+ padding-right: var(--padding-end);
207
+ padding-left: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
208
+ /* stylelint-enable */
209
209
  display: flex;
210
210
  position: relative;
211
211
  align-items: inherit;
@@ -222,6 +222,22 @@
222
222
  box-sizing: border-box;
223
223
  z-index: 1;
224
224
  }
225
+ :host-context([dir=rtl]) .item-native {
226
+ padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
227
+ padding-left: var(--padding-end);
228
+ }
229
+
230
+ [dir=rtl] .item-native {
231
+ padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
232
+ padding-left: var(--padding-end);
233
+ }
234
+
235
+ @supports selector(:dir(rtl)) {
236
+ .item-native:dir(rtl) {
237
+ padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
238
+ padding-left: var(--padding-end);
239
+ }
240
+ }
225
241
 
226
242
  .item-native::-moz-focus-inner {
227
243
  border: 0;
@@ -250,12 +266,12 @@ button, a {
250
266
  margin-right: 0;
251
267
  margin-top: 0;
252
268
  margin-bottom: 0;
253
- -webkit-padding-start: var(--inner-padding-start);
254
- padding-inline-start: var(--inner-padding-start);
255
- -webkit-padding-end: calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));
256
- padding-inline-end: calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));
257
269
  padding-top: var(--inner-padding-top);
258
270
  padding-bottom: var(--inner-padding-bottom);
271
+ /* stylelint-disable */
272
+ padding-right: calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));
273
+ padding-left: var(--inner-padding-start);
274
+ /* stylelint-enable */
259
275
  display: flex;
260
276
  position: relative;
261
277
  flex: 1;
@@ -270,21 +286,53 @@ button, a {
270
286
  overflow: inherit;
271
287
  box-sizing: border-box;
272
288
  }
289
+ :host-context([dir=rtl]) .item-inner {
290
+ padding-right: var(--inner-padding-start);
291
+ padding-left: calc(var(--ion-safe-area-left, 0px) + var(--inner-padding-end));
292
+ }
293
+
294
+ [dir=rtl] .item-inner {
295
+ padding-right: var(--inner-padding-start);
296
+ padding-left: calc(var(--ion-safe-area-left, 0px) + var(--inner-padding-end));
297
+ }
298
+
299
+ @supports selector(:dir(rtl)) {
300
+ .item-inner:dir(rtl) {
301
+ padding-right: var(--inner-padding-start);
302
+ padding-left: calc(var(--ion-safe-area-left, 0px) + var(--inner-padding-end));
303
+ }
304
+ }
273
305
 
274
306
  .item-bottom {
275
307
  margin-left: 0;
276
308
  margin-right: 0;
277
309
  margin-top: 0;
278
310
  margin-bottom: 0;
279
- -webkit-padding-start: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
280
- padding-inline-start: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
281
- -webkit-padding-end: var(--inner-padding-end);
282
- padding-inline-end: var(--inner-padding-end);
283
311
  padding-top: 0;
284
312
  padding-bottom: 0;
313
+ /* stylelint-disable */
314
+ padding-left: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
315
+ padding-right: calc(var(--inner-padding-end) + var(--ion-safe-area-right, 0px));
316
+ /* stylelint-enable */
285
317
  display: flex;
286
318
  justify-content: space-between;
287
319
  }
320
+ :host-context([dir=rtl]) .item-bottom {
321
+ padding-left: calc(var(--inner-padding-end) + var(--ion-safe-area-left, 0px));
322
+ padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
323
+ }
324
+
325
+ [dir=rtl] .item-bottom {
326
+ padding-left: calc(var(--inner-padding-end) + var(--ion-safe-area-left, 0px));
327
+ padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
328
+ }
329
+
330
+ @supports selector(:dir(rtl)) {
331
+ .item-bottom:dir(rtl) {
332
+ padding-left: calc(var(--inner-padding-end) + var(--ion-safe-area-left, 0px));
333
+ padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
334
+ }
335
+ }
288
336
 
289
337
  .item-detail-icon {
290
338
  /**
@@ -10,5 +10,31 @@ configs().forEach(({ title, screenshot, config }) => {
10
10
  await page.setIonViewport();
11
11
  await expect(page).toHaveScreenshot(screenshot(`item-diff`));
12
12
  });
13
+ /**
14
+ * This behavior needs to be tested for all modes & directions
15
+ * Safe padding should stay on the same side when the direction changes
16
+ */
17
+ test('should have safe area padding', async ({ page }) => {
18
+ await page.setContent(`
19
+ <style>
20
+ :root {
21
+ --ion-safe-area-left: 40px;
22
+ --ion-safe-area-right: 20px;
23
+ }
24
+ </style>
25
+ <ion-list>
26
+ <ion-item>
27
+ <ion-label>Item with helper</ion-label>
28
+ <div slot="helper">Helper</div>
29
+ </ion-item>
30
+
31
+ <ion-item>
32
+ <ion-label> Single line text that should have ellipses when it doesn't all fit in the item</ion-label>
33
+ </ion-item>
34
+ </ion-list>
35
+ `, config);
36
+ const list = page.locator('ion-list');
37
+ await expect(list).toHaveScreenshot(screenshot('item-safe-area'));
38
+ });
13
39
  });
14
40
  });
@@ -10,6 +10,11 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
10
10
  test.describe(title('picker-internal: rendering'), () => {
11
11
  test('inline pickers should not have visual regression', async ({ page }) => {
12
12
  await page.goto(`/src/components/picker-internal/test/basic`, config);
13
+ const fullStack = page.locator('#inline button[data-value="full-stack"]');
14
+ const onion = page.locator('#inline button[data-value="onion"]');
15
+ await expect(fullStack).toHaveClass(/picker-item-active/);
16
+ await expect(onion).toHaveClass(/picker-item-active/);
17
+ await page.waitForChanges();
13
18
  await expect(page.locator('#inline')).toHaveScreenshot(screenshot(`picker-internal-inline-diff`));
14
19
  });
15
20
  });
package/dist/docs.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
- "timestamp": "2023-11-01T13:35:52",
2
+ "timestamp": "2023-11-03T13:16:47",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
- "version": "4.6.0",
5
+ "version": "4.7.0-dev.1699016641.733d6c5",
6
6
  "typescriptVersion": "5.2.2"
7
7
  },
8
8
  "components": [
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { i as initialize } from './ionic-global-246ca78f.js';
4
+ import { i as initialize } from './ionic-global-f96e58a3.js';
5
5
 
6
6
  const globalScripts = initialize;
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { w as writeTask } from './index-b49b173c.js';
4
+ import { w as writeTask } from './index-6226a5f4.js';
5
5
  import { h as hapticSelectionEnd, a as hapticSelectionStart, b as hapticSelectionChanged } from './haptic-1243b917.js';
6
6
  import { createGesture } from './index-ff313b19.js';
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { w as writeTask, B as Build } from './index-b49b173c.js';
4
+ import { w as writeTask, B as Build } from './index-6226a5f4.js';
5
5
  import { r as raf } from './helpers-3379ba19.js';
6
6
 
7
7
  const LIFECYCLE_WILL_ENTER = 'ionViewWillEnter';
@@ -10,8 +10,8 @@ const LIFECYCLE_WILL_LEAVE = 'ionViewWillLeave';
10
10
  const LIFECYCLE_DID_LEAVE = 'ionViewDidLeave';
11
11
  const LIFECYCLE_WILL_UNLOAD = 'ionViewWillUnload';
12
12
 
13
- const iosTransitionAnimation = () => import('./ios.transition-f1cea7e0.js');
14
- const mdTransitionAnimation = () => import('./md.transition-1bf39c32.js');
13
+ const iosTransitionAnimation = () => import('./ios.transition-8d26edec.js');
14
+ const mdTransitionAnimation = () => import('./md.transition-00f3fafd.js');
15
15
  // TODO(FW-2832): types
16
16
  const transition = (opts) => {
17
17
  return new Promise((resolve, reject) => {
@@ -2,6 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  const NAMESPACE = 'ionic';
5
+ const BUILD = /* ionic */ { allRenderFn: false, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: true, cmpDidUnload: false, cmpDidUpdate: true, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: true, cmpWillUpdate: false, connectedCallback: true, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: true, element: false, event: true, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: true, hostListenerTarget: true, hostListenerTargetBody: true, hostListenerTargetDocument: true, hostListenerTargetParent: false, hostListenerTargetWindow: true, hotModuleReplacement: false, hydrateClientSide: true, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, initializeNextTick: false, invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: true, lifecycle: true, lifecycleDOMEvents: false, member: true, method: true, mode: true, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: true, propNumber: true, propString: true, reflect: true, scoped: true, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: true, shadowDom: true, slot: true, slotChildNodesFix: false, slotRelocation: true, state: true, style: true, svg: true, taskQueue: true, transformTagName: false, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: true, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: true, watchCallback: true };
5
6
 
6
7
  /**
7
8
  * Virtual DOM patching algorithm based on Snabbdom by
@@ -720,11 +721,19 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
720
721
  // except for the first character, we keep the event name case
721
722
  memberName = ln[2] + memberName.slice(3);
722
723
  }
723
- if (oldValue) {
724
- plt.rel(elm, memberName, oldValue, false);
725
- }
726
- if (newValue) {
727
- plt.ael(elm, memberName, newValue, false);
724
+ if (oldValue || newValue) {
725
+ // Need to account for "capture" events.
726
+ // If the event name ends with "Capture", we'll update the name to remove
727
+ // the "Capture" suffix and make sure the event listener is setup to handle the capture event.
728
+ const capture = memberName.endsWith(CAPTURE_EVENT_SUFFIX);
729
+ // Make sure we only replace the last instance of "Capture"
730
+ memberName = memberName.replace(CAPTURE_EVENT_REGEX, '');
731
+ if (oldValue) {
732
+ plt.rel(elm, memberName, oldValue, capture);
733
+ }
734
+ if (newValue) {
735
+ plt.ael(elm, memberName, newValue, capture);
736
+ }
728
737
  }
729
738
  }
730
739
  else {
@@ -786,6 +795,8 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
786
795
  };
787
796
  const parseClassListRegex = /\s/;
788
797
  const parseClassList = (value) => (!value ? [] : value.split(parseClassListRegex));
798
+ const CAPTURE_EVENT_SUFFIX = 'Capture';
799
+ const CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + '$');
789
800
  const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {
790
801
  // if the element passed in is a shadow root, which is a document fragment
791
802
  // then we want to be adding attrs/props to the shadow root's "host" element
@@ -819,6 +830,7 @@ const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {
819
830
  * @returns the newly created node
820
831
  */
821
832
  const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
833
+ var _a;
822
834
  // tslint:disable-next-line: prefer-const
823
835
  const newVNode = newParentVNode.$children$[childIndex];
824
836
  let i = 0;
@@ -897,6 +909,8 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
897
909
  if (newVNode.$flags$ & (2 /* VNODE_FLAGS.isSlotFallback */ | 1 /* VNODE_FLAGS.isSlotReference */)) {
898
910
  // remember the content reference comment
899
911
  elm['s-sr'] = true;
912
+ // Persist the name of the slot that this slot was going to be projected into.
913
+ elm['s-fs'] = (_a = newVNode.$attrs$) === null || _a === void 0 ? void 0 : _a.slot;
900
914
  // remember the content reference comment
901
915
  elm['s-cr'] = contentRef;
902
916
  // remember the slot name, or empty string for default slot
@@ -913,6 +927,7 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
913
927
  return elm;
914
928
  };
915
929
  const putBackInOriginalLocation = (parentElm, recursive) => {
930
+ var _a;
916
931
  plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;
917
932
  const oldSlotChildNodes = parentElm.childNodes;
918
933
  for (let i = oldSlotChildNodes.length - 1; i >= 0; i--) {
@@ -928,6 +943,14 @@ const putBackInOriginalLocation = (parentElm, recursive) => {
928
943
  // and move this to the correct spot if need be
929
944
  childNode['s-ol'].remove();
930
945
  childNode['s-ol'] = undefined;
946
+ // Reset so we can correctly move the node around again.
947
+ childNode['s-sh'] = undefined;
948
+ // When putting an element node back in its original location,
949
+ // we need to reset the `slot` attribute back to the value it originally had
950
+ // so we can correctly relocate it again in the future
951
+ if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
952
+ childNode.setAttribute('slot', (_a = childNode['s-sn']) !== null && _a !== void 0 ? _a : '');
953
+ }
931
954
  checkSlotRelocate = true;
932
955
  }
933
956
  if (recursive) {
@@ -1378,22 +1401,26 @@ const updateFallbackSlotVisibility = (elm) => {
1378
1401
  // we need to check all of its sibling nodes in order to see if
1379
1402
  // `childNode` should be hidden
1380
1403
  for (const siblingNode of childNodes) {
1381
- if (siblingNode['s-hn'] !== childNode['s-hn'] || slotName !== '') {
1382
- // this sibling node is from a different component OR is a named
1383
- // fallback slot node
1384
- if (siblingNode.nodeType === 1 /* NODE_TYPE.ElementNode */ && slotName === siblingNode.getAttribute('slot')) {
1385
- childNode.hidden = true;
1386
- break;
1404
+ // Don't check the node against itself
1405
+ if (siblingNode !== childNode) {
1406
+ if (siblingNode['s-hn'] !== childNode['s-hn'] || slotName !== '') {
1407
+ // this sibling node is from a different component OR is a named
1408
+ // fallback slot node
1409
+ if (siblingNode.nodeType === 1 /* NODE_TYPE.ElementNode */ &&
1410
+ (slotName === siblingNode.getAttribute('slot') || slotName === siblingNode['s-sn'])) {
1411
+ childNode.hidden = true;
1412
+ break;
1413
+ }
1387
1414
  }
1388
- }
1389
- else {
1390
- // this is a default fallback slot node
1391
- // any element or text node (with content)
1392
- // should hide the default fallback slot node
1393
- if (siblingNode.nodeType === 1 /* NODE_TYPE.ElementNode */ ||
1394
- (siblingNode.nodeType === 3 /* NODE_TYPE.TextNode */ && siblingNode.textContent.trim() !== '')) {
1395
- childNode.hidden = true;
1396
- break;
1415
+ else {
1416
+ // this is a default fallback slot node
1417
+ // any element or text node (with content)
1418
+ // should hide the default fallback slot node
1419
+ if (siblingNode.nodeType === 1 /* NODE_TYPE.ElementNode */ ||
1420
+ (siblingNode.nodeType === 3 /* NODE_TYPE.TextNode */ && siblingNode.textContent.trim() !== '')) {
1421
+ childNode.hidden = true;
1422
+ break;
1423
+ }
1397
1424
  }
1398
1425
  }
1399
1426
  }
@@ -1434,8 +1461,15 @@ const markSlotContentForRelocation = (elm) => {
1434
1461
  node = hostContentNodes[j];
1435
1462
  // check that the node is not a content reference node or a node
1436
1463
  // reference and then check that the host name does not match that of
1437
- // childNode
1438
- if (!node['s-cn'] && !node['s-nr'] && node['s-hn'] !== childNode['s-hn']) {
1464
+ // childNode.
1465
+ // In addition, check that the slot either has not already been relocated, or
1466
+ // that its current location's host is not childNode's host. This is essentially
1467
+ // a check so that we don't try to relocate (and then hide) a node that is already
1468
+ // where it should be.
1469
+ if (!node['s-cn'] &&
1470
+ !node['s-nr'] &&
1471
+ node['s-hn'] !== childNode['s-hn'] &&
1472
+ (!BUILD.experimentalSlotFixes )) {
1439
1473
  // if `node` is located in the slot that `childNode` refers to (via the
1440
1474
  // `'s-sn'` property) then we need to relocate it from it's current spot
1441
1475
  // (under the host element parent) to the right slot location
@@ -1449,12 +1483,14 @@ const markSlotContentForRelocation = (elm) => {
1449
1483
  // ensure that the slot-name attr is correct
1450
1484
  node['s-sn'] = node['s-sn'] || slotName;
1451
1485
  if (relocateNodeData) {
1486
+ relocateNodeData.$nodeToRelocate$['s-sh'] = childNode['s-hn'];
1452
1487
  // we marked this node for relocation previously but didn't find
1453
1488
  // out the slot reference node to which it needs to be relocated
1454
1489
  // so write it down now!
1455
1490
  relocateNodeData.$slotRefNode$ = childNode;
1456
1491
  }
1457
1492
  else {
1493
+ node['s-sh'] = childNode['s-hn'];
1458
1494
  // add to our list of nodes to relocate
1459
1495
  relocateNodes.push({
1460
1496
  $slotRefNode$: childNode,
@@ -1542,6 +1578,7 @@ const nullifyVNodeRefs = (vNode) => {
1542
1578
  * @param isInitialLoad whether or not this is the first call after page load
1543
1579
  */
1544
1580
  const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1581
+ var _a, _b;
1545
1582
  const hostElm = hostRef.$hostElement$;
1546
1583
  const cmpMeta = hostRef.$cmpMeta$;
1547
1584
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
@@ -1598,42 +1635,47 @@ const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1598
1635
  plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;
1599
1636
  if (checkSlotRelocate) {
1600
1637
  markSlotContentForRelocation(rootVnode.$elm$);
1601
- let relocateData;
1602
- let nodeToRelocate;
1603
- let orgLocationNode;
1604
- let parentNodeRef;
1605
- let insertBeforeNode;
1606
- let refNode;
1607
- let i = 0;
1608
- for (; i < relocateNodes.length; i++) {
1609
- relocateData = relocateNodes[i];
1610
- nodeToRelocate = relocateData.$nodeToRelocate$;
1638
+ for (const relocateData of relocateNodes) {
1639
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1611
1640
  if (!nodeToRelocate['s-ol']) {
1612
1641
  // add a reference node marking this node's original location
1613
1642
  // keep a reference to this node for later lookups
1614
- orgLocationNode =
1615
- doc.createTextNode('');
1643
+ const orgLocationNode = doc.createTextNode('');
1616
1644
  orgLocationNode['s-nr'] = nodeToRelocate;
1617
1645
  nodeToRelocate.parentNode.insertBefore((nodeToRelocate['s-ol'] = orgLocationNode), nodeToRelocate);
1618
1646
  }
1619
1647
  }
1620
- for (i = 0; i < relocateNodes.length; i++) {
1621
- relocateData = relocateNodes[i];
1622
- nodeToRelocate = relocateData.$nodeToRelocate$;
1623
- if (relocateData.$slotRefNode$) {
1624
- // by default we're just going to insert it directly
1625
- // after the slot reference node
1626
- parentNodeRef = relocateData.$slotRefNode$.parentNode;
1627
- insertBeforeNode = relocateData.$slotRefNode$.nextSibling;
1628
- orgLocationNode = nodeToRelocate['s-ol'];
1629
- while ((orgLocationNode = orgLocationNode.previousSibling)) {
1630
- refNode = orgLocationNode['s-nr'];
1631
- if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {
1632
- refNode = refNode.nextSibling;
1633
- if (!refNode || !refNode['s-nr']) {
1634
- insertBeforeNode = refNode;
1635
- break;
1648
+ for (const relocateData of relocateNodes) {
1649
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1650
+ const slotRefNode = relocateData.$slotRefNode$;
1651
+ if (slotRefNode) {
1652
+ const parentNodeRef = slotRefNode.parentNode;
1653
+ // When determining where to insert content, the most simple case would be
1654
+ // to relocate the node immediately following the slot reference node. We do this
1655
+ // by getting a reference to the node immediately following the slot reference node
1656
+ // since we will use `insertBefore` to manipulate the DOM.
1657
+ //
1658
+ // If there is no node immediately following the slot reference node, then we will just
1659
+ // end up appending the node as the last child of the parent.
1660
+ let insertBeforeNode = slotRefNode.nextSibling;
1661
+ // If the node we're currently planning on inserting the new node before is an element,
1662
+ // we need to do some additional checks to make sure we're inserting the node in the correct order.
1663
+ // The use case here would be that we have multiple nodes being relocated to the same slot. So, we want
1664
+ // to make sure they get inserted into their new how in the same order they were declared in their original location.
1665
+ //
1666
+ // TODO(STENCIL-914): Remove `experimentalSlotFixes` check
1667
+ {
1668
+ let orgLocationNode = (_a = nodeToRelocate['s-ol']) === null || _a === void 0 ? void 0 : _a.previousSibling;
1669
+ while (orgLocationNode) {
1670
+ let refNode = (_b = orgLocationNode['s-nr']) !== null && _b !== void 0 ? _b : null;
1671
+ if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {
1672
+ refNode = refNode.nextSibling;
1673
+ if (!refNode || !refNode['s-nr']) {
1674
+ insertBeforeNode = refNode;
1675
+ break;
1676
+ }
1636
1677
  }
1678
+ orgLocationNode = orgLocationNode.previousSibling;
1637
1679
  }
1638
1680
  }
1639
1681
  if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) ||
@@ -1646,7 +1688,10 @@ const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1646
1688
  // probably a component in the index.html that doesn't have its hostname set
1647
1689
  nodeToRelocate['s-hn'] = nodeToRelocate['s-ol'].parentNode.nodeName;
1648
1690
  }
1649
- // add it back to the dom but in its new home
1691
+ // Add it back to the dom but in its new home
1692
+ // If we get to this point and `insertBeforeNode` is `null`, that means
1693
+ // we're just going to append the node as the last child of the parent. Passing
1694
+ // `null` as the second arg here will trigger that behavior.
1650
1695
  parentNodeRef.insertBefore(nodeToRelocate, insertBeforeNode);
1651
1696
  }
1652
1697
  }
@@ -2650,7 +2695,7 @@ const flush = () => {
2650
2695
  }
2651
2696
  }
2652
2697
  };
2653
- const nextTick = /*@__PURE__*/ (cb) => promiseResolve().then(cb);
2698
+ const nextTick = (cb) => promiseResolve().then(cb);
2654
2699
  const readTask = /*@__PURE__*/ queueTask(queueDomReads, false);
2655
2700
  const writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);
2656
2701
 
@@ -4,7 +4,7 @@
4
4
  import { p as printIonWarning } from './index-595d62c9.js';
5
5
  import { MENU_BACK_BUTTON_PRIORITY } from './hardware-back-button-39299f84.js';
6
6
  import { c as componentOnReady } from './helpers-3379ba19.js';
7
- import { b as getIonMode } from './ionic-global-246ca78f.js';
7
+ import { b as getIonMode } from './ionic-global-f96e58a3.js';
8
8
  import { c as createAnimation } from './animation-8aa13916.js';
9
9
 
10
10
  /**
package/dist/esm/index.js CHANGED
@@ -2,19 +2,19 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  export { c as createAnimation } from './animation-8aa13916.js';
5
- export { a as LIFECYCLE_DID_ENTER, c as LIFECYCLE_DID_LEAVE, L as LIFECYCLE_WILL_ENTER, b as LIFECYCLE_WILL_LEAVE, d as LIFECYCLE_WILL_UNLOAD, g as getIonPageElement } from './index-ec72506a.js';
6
- export { iosTransitionAnimation } from './ios.transition-f1cea7e0.js';
7
- export { mdTransitionAnimation } from './md.transition-1bf39c32.js';
5
+ export { a as LIFECYCLE_DID_ENTER, c as LIFECYCLE_DID_LEAVE, L as LIFECYCLE_WILL_ENTER, b as LIFECYCLE_WILL_LEAVE, d as LIFECYCLE_WILL_UNLOAD, g as getIonPageElement } from './index-3a662ef8.js';
6
+ export { iosTransitionAnimation } from './ios.transition-8d26edec.js';
7
+ export { mdTransitionAnimation } from './md.transition-00f3fafd.js';
8
8
  export { g as getTimeGivenProgression } from './cubic-bezier-66542bc5.js';
9
9
  export { createGesture } from './index-ff313b19.js';
10
- export { g as getPlatforms, i as initialize, a as isPlatform } from './ionic-global-246ca78f.js';
10
+ export { g as getPlatforms, i as initialize, a as isPlatform } from './ionic-global-f96e58a3.js';
11
11
  export { c as componentOnReady } from './helpers-3379ba19.js';
12
12
  export { I as IonicSafeString, g as getMode, s as setupConfig } from './config-96c9ace3.js';
13
13
  export { o as openURL } from './theme-17531cdf.js';
14
- export { m as menuController } from './index-aae132ba.js';
15
- export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as pickerController, c as popoverController, t as toastController } from './overlays-cec6bac8.js';
14
+ export { m as menuController } from './index-fb1db216.js';
15
+ export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as pickerController, c as popoverController, t as toastController } from './overlays-153881c5.js';
16
16
  import './index-7a14ecec.js';
17
- import './index-b49b173c.js';
17
+ import './index-6226a5f4.js';
18
18
  import './gesture-controller-0fa396c4.js';
19
19
  import './index-595d62c9.js';
20
20
  import './hardware-back-button-39299f84.js';
@@ -1,10 +1,10 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, h, H as Host, f as getElement, d as createEvent } from './index-b49b173c.js';
4
+ import { r as registerInstance, h, H as Host, f as getElement, d as createEvent } from './index-6226a5f4.js';
5
5
  import { r as raf, t as transitionEndAsync, a as addEventListener, b as removeEventListener, g as getElementRoot } from './helpers-3379ba19.js';
6
6
  import { l as chevronDown } from './index-c132c5f1.js';
7
- import { c as config, b as getIonMode } from './ionic-global-246ca78f.js';
7
+ import { c as config, b as getIonMode } from './ionic-global-f96e58a3.js';
8
8
  import { p as printIonWarning } from './index-595d62c9.js';
9
9
 
10
10
  const accordionIosCss = ":host{display:block;position:relative;width:100%;background-color:var(--ion-background-color, #ffffff);overflow:hidden;z-index:0}:host(.accordion-expanding) ::slotted(ion-item[slot=header]),:host(.accordion-expanded) ::slotted(ion-item[slot=header]){--border-width:0px}:host(.accordion-animated){-webkit-transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}:host(.accordion-animated) #content{-webkit-transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}#content{overflow:hidden;will-change:max-height}:host(.accordion-collapsing) #content{max-height:0 !important}:host(.accordion-collapsed) #content{display:none}:host(.accordion-expanding) #content{max-height:0}:host(.accordion-expanding) #content-wrapper{overflow:auto}:host(.accordion-disabled) #header,:host(.accordion-readonly) #header,:host(.accordion-disabled) #content,:host(.accordion-readonly) #content{pointer-events:none}:host(.accordion-disabled) #header,:host(.accordion-disabled) #content{opacity:0.4}@media (prefers-reduced-motion: reduce){:host,#content{-webkit-transition:none !important;transition:none !important}}:host(.accordion-next) ::slotted(ion-item[slot=header]){--border-width:0.55px 0px 0.55px 0px}";
@@ -1,13 +1,13 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, d as createEvent, e as readTask, h, H as Host, f as getElement } from './index-b49b173c.js';
5
- import { c as createButtonActiveGesture } from './button-active-d926d4f4.js';
4
+ import { r as registerInstance, d as createEvent, e as readTask, h, H as Host, f as getElement } from './index-6226a5f4.js';
5
+ import { c as createButtonActiveGesture } from './button-active-61e81700.js';
6
6
  import { r as raf } from './helpers-3379ba19.js';
7
7
  import { c as createLockController } from './lock-controller-e8c6c051.js';
8
- import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, f as present, g as dismiss, h as eventMethod, s as safeCall, j as prepareOverlay, k as setOverlayId } from './overlays-cec6bac8.js';
8
+ import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, f as present, g as dismiss, h as eventMethod, s as safeCall, j as prepareOverlay, k as setOverlayId } from './overlays-153881c5.js';
9
9
  import { g as getClassMap } from './theme-17531cdf.js';
10
- import { b as getIonMode } from './ionic-global-246ca78f.js';
10
+ import { b as getIonMode } from './ionic-global-f96e58a3.js';
11
11
  import { c as createAnimation } from './animation-8aa13916.js';
12
12
  import './haptic-1243b917.js';
13
13
  import './capacitor-b4979570.js';
@@ -1,14 +1,14 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, d as createEvent, i as forceUpdate, h, H as Host, f as getElement } from './index-b49b173c.js';
4
+ import { r as registerInstance, d as createEvent, i as forceUpdate, h, H as Host, f as getElement } from './index-6226a5f4.js';
5
5
  import { E as ENABLE_HTML_CONTENT_DEFAULT, a as sanitizeDOMString } from './config-96c9ace3.js';
6
- import { c as createButtonActiveGesture } from './button-active-d926d4f4.js';
6
+ import { c as createButtonActiveGesture } from './button-active-61e81700.js';
7
7
  import { r as raf } from './helpers-3379ba19.js';
8
8
  import { c as createLockController } from './lock-controller-e8c6c051.js';
9
- import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod, s as safeCall } from './overlays-cec6bac8.js';
9
+ import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod, s as safeCall } from './overlays-153881c5.js';
10
10
  import { g as getClassMap } from './theme-17531cdf.js';
11
- import { c as config, b as getIonMode } from './ionic-global-246ca78f.js';
11
+ import { c as config, b as getIonMode } from './ionic-global-f96e58a3.js';
12
12
  import { c as createAnimation } from './animation-8aa13916.js';
13
13
  import './haptic-1243b917.js';
14
14
  import './capacitor-b4979570.js';
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, h, H as Host, f as getElement, d as createEvent, e as readTask, i as forceUpdate, w as writeTask } from './index-b49b173c.js';
5
- import { b as getIonMode, c as config, a as isPlatform } from './ionic-global-246ca78f.js';
4
+ import { r as registerInstance, h, H as Host, f as getElement, d as createEvent, e as readTask, i as forceUpdate, w as writeTask } from './index-6226a5f4.js';
5
+ import { b as getIonMode, c as config, a as isPlatform } from './ionic-global-f96e58a3.js';
6
6
  import { m as hasLazyBuild, c as componentOnReady, l as clamp, i as inheritAriaAttributes, s as shallowEqualStringMap } from './helpers-3379ba19.js';
7
7
  import { i as isRTL } from './dir-912e3e13.js';
8
8
  import { c as createColorClasses, h as hostContext } from './theme-17531cdf.js';
@@ -11,7 +11,7 @@ import { c as createKeyboardController } from './keyboard-controller-0c2dce71.js
11
11
  import { g as getTimeGivenProgression } from './cubic-bezier-66542bc5.js';
12
12
  import { a as attachComponent, d as detachComponent } from './framework-delegate-aa433dea.js';
13
13
  import { c as createLockController } from './lock-controller-e8c6c051.js';
14
- import { t as transition } from './index-ec72506a.js';
14
+ import { t as transition } from './index-3a662ef8.js';
15
15
  import './index-595d62c9.js';
16
16
  import './index-7a14ecec.js';
17
17
  import './keyboard-b063f012.js';
@@ -31,7 +31,7 @@ const App = class {
31
31
  import('./index-f0cc4e14.js').then((module) => module.startTapClick(config));
32
32
  }
33
33
  if (config.getBoolean('statusTap', isHybrid)) {
34
- import('./status-tap-4e96ecf3.js').then((module) => module.startStatusTap());
34
+ import('./status-tap-76a65f04.js').then((module) => module.startStatusTap());
35
35
  }
36
36
  if (config.getBoolean('inputShims', needInputShims())) {
37
37
  /**
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, h, H as Host } from './index-b49b173c.js';
5
- import { b as getIonMode } from './ionic-global-246ca78f.js';
4
+ import { r as registerInstance, h, H as Host } from './index-6226a5f4.js';
5
+ import { b as getIonMode } from './ionic-global-f96e58a3.js';
6
6
  import { c as createColorClasses } from './theme-17531cdf.js';
7
7
 
8
8
  const avatarIosCss = ":host{border-radius:var(--border-radius);display:block}::slotted(ion-img),::slotted(img){border-radius:var(--border-radius);width:100%;height:100%;-o-object-fit:cover;object-fit:cover;overflow:hidden}:host{--border-radius:50%;width:48px;height:48px}";