@ionic/core 7.4.3-dev.11696365694.156f41d3 → 7.4.3-dev.11699471215.1cfbc6e9

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 (369) hide show
  1. package/components/alert.js +8 -0
  2. package/components/data.js +96 -22
  3. package/components/haptic.js +1 -0
  4. package/components/ion-datetime-button.js +4 -4
  5. package/components/ion-datetime.js +3 -3
  6. package/components/ion-header.js +1 -1
  7. package/components/ion-nav.js +1 -0
  8. package/components/ion-router.js +3 -0
  9. package/components/ion-select.js +1 -1
  10. package/components/ion-toast.js +150 -13
  11. package/components/ios.transition.js +1 -0
  12. package/components/overlays.js +1 -0
  13. package/dist/cjs/{app-globals-56164d1a.js → app-globals-84b6a756.js} +1 -1
  14. package/dist/cjs/{button-active-32f15660.js → button-active-f2147e85.js} +2 -2
  15. package/dist/cjs/{data-db832785.js → data-c8d21093.js} +96 -22
  16. package/dist/cjs/{haptic-c5f6b4d5.js → haptic-678abc9f.js} +1 -0
  17. package/dist/cjs/{index-6f887430.js → index-14a4821e.js} +47 -6
  18. package/dist/cjs/{index-5121bb90.js → index-97a3eade.js} +1 -1
  19. package/dist/cjs/{index-b183138a.js → index-e760ab42.js} +3 -3
  20. package/dist/cjs/index.cjs.js +7 -7
  21. package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
  22. package/dist/cjs/ion-action-sheet.cjs.entry.js +5 -5
  23. package/dist/cjs/ion-alert.cjs.entry.js +13 -5
  24. package/dist/cjs/ion-app_8.cjs.entry.js +5 -5
  25. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  26. package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
  27. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  28. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
  29. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  30. package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
  31. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
  32. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  33. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  34. package/dist/cjs/ion-datetime-button.cjs.entry.js +6 -6
  35. package/dist/cjs/ion-datetime_3.cjs.entry.js +7 -7
  36. package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
  37. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  38. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
  39. package/dist/cjs/ion-input.cjs.entry.js +2 -2
  40. package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
  41. package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
  42. package/dist/cjs/ion-loading.cjs.entry.js +3 -3
  43. package/dist/cjs/ion-menu_3.cjs.entry.js +4 -4
  44. package/dist/cjs/ion-modal.cjs.entry.js +4 -4
  45. package/dist/cjs/ion-nav_2.cjs.entry.js +4 -3
  46. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +3 -3
  47. package/dist/cjs/ion-picker-internal.cjs.entry.js +1 -1
  48. package/dist/cjs/ion-popover.cjs.entry.js +4 -4
  49. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  50. package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
  51. package/dist/cjs/ion-range.cjs.entry.js +2 -2
  52. package/dist/cjs/ion-refresher_2.cjs.entry.js +3 -3
  53. package/dist/cjs/ion-reorder_2.cjs.entry.js +3 -3
  54. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  55. package/dist/cjs/ion-route_4.cjs.entry.js +5 -2
  56. package/dist/cjs/ion-searchbar.cjs.entry.js +2 -2
  57. package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
  58. package/dist/cjs/ion-select_3.cjs.entry.js +4 -4
  59. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  60. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  61. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
  62. package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
  63. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  64. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  65. package/dist/cjs/ion-toast.cjs.entry.js +168 -33
  66. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  67. package/dist/cjs/{ionic-global-14a0604b.js → ionic-global-a71608df.js} +1 -1
  68. package/dist/cjs/ionic.cjs.js +5 -5
  69. package/dist/cjs/{ios.transition-4b93903d.js → ios.transition-1fec34e9.js} +3 -2
  70. package/dist/cjs/loader.cjs.js +4 -4
  71. package/dist/cjs/{md.transition-79f3a215.js → md.transition-cdc3f16f.js} +2 -2
  72. package/dist/cjs/{overlays-d3a13e61.js → overlays-9cab437c.js} +2 -1
  73. package/dist/cjs/{status-tap-e2e45ff8.js → status-tap-8c22e017.js} +1 -1
  74. package/dist/collection/collection-manifest.json +2 -2
  75. package/dist/collection/components/alert/alert.js +8 -0
  76. package/dist/collection/components/alert/test/a11y/alert.e2e.js +11 -0
  77. package/dist/collection/components/datetime/datetime.js +12 -6
  78. package/dist/collection/components/datetime/test/hour-cycle/datetime.e2e.js +14 -0
  79. package/dist/collection/components/datetime/utils/data.js +33 -7
  80. package/dist/collection/components/datetime/utils/format.js +27 -10
  81. package/dist/collection/components/datetime/utils/helpers.js +37 -5
  82. package/dist/collection/components/datetime-button/datetime-button.js +4 -4
  83. package/dist/collection/components/header/header.ios.css +0 -18
  84. package/dist/collection/components/nav/nav.js +1 -0
  85. package/dist/collection/components/router/router.js +2 -0
  86. package/dist/collection/components/router/utils/path.js +1 -0
  87. package/dist/collection/components/select/select.js +1 -1
  88. package/dist/collection/components/toast/animations/ios.enter.js +2 -3
  89. package/dist/collection/components/toast/animations/ios.leave.js +2 -3
  90. package/dist/collection/components/toast/animations/md.enter.js +2 -3
  91. package/dist/collection/components/toast/animations/utils.js +85 -0
  92. package/dist/collection/components/toast/test/position-anchor/toast.e2e.js +45 -0
  93. package/dist/collection/components/toast/toast.js +91 -9
  94. package/dist/collection/utils/native/haptic.js +1 -0
  95. package/dist/collection/utils/overlays.js +1 -0
  96. package/dist/collection/utils/transition/ios.transition.js +1 -0
  97. package/dist/docs.json +75 -12
  98. package/dist/esm/{app-globals-8ae762aa.js → app-globals-df292a32.js} +1 -1
  99. package/dist/esm/{button-active-513e9fff.js → button-active-3dd473a1.js} +2 -2
  100. package/dist/esm/{data-009dbf15.js → data-44d9e816.js} +96 -22
  101. package/dist/esm/{haptic-6447af60.js → haptic-1243b917.js} +1 -0
  102. package/dist/esm/{index-61bddc90.js → index-3d6aefa2.js} +1 -1
  103. package/dist/esm/{index-87684bba.js → index-9f5eacab.js} +3 -3
  104. package/dist/esm/{index-2d388930.js → index-cb894020.js} +47 -6
  105. package/dist/esm/index.js +7 -7
  106. package/dist/esm/ion-accordion_2.entry.js +2 -2
  107. package/dist/esm/ion-action-sheet.entry.js +5 -5
  108. package/dist/esm/ion-alert.entry.js +13 -5
  109. package/dist/esm/ion-app_8.entry.js +5 -5
  110. package/dist/esm/ion-avatar_3.entry.js +2 -2
  111. package/dist/esm/ion-back-button.entry.js +2 -2
  112. package/dist/esm/ion-backdrop.entry.js +2 -2
  113. package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
  114. package/dist/esm/ion-button_2.entry.js +2 -2
  115. package/dist/esm/ion-card_5.entry.js +2 -2
  116. package/dist/esm/ion-checkbox.entry.js +2 -2
  117. package/dist/esm/ion-chip.entry.js +2 -2
  118. package/dist/esm/ion-col_3.entry.js +2 -2
  119. package/dist/esm/ion-datetime-button.entry.js +6 -6
  120. package/dist/esm/ion-datetime_3.entry.js +7 -7
  121. package/dist/esm/ion-fab_3.entry.js +2 -2
  122. package/dist/esm/ion-img.entry.js +2 -2
  123. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
  124. package/dist/esm/ion-input.entry.js +2 -2
  125. package/dist/esm/ion-item-option_3.entry.js +2 -2
  126. package/dist/esm/ion-item_8.entry.js +2 -2
  127. package/dist/esm/ion-loading.entry.js +3 -3
  128. package/dist/esm/ion-menu_3.entry.js +4 -4
  129. package/dist/esm/ion-modal.entry.js +4 -4
  130. package/dist/esm/ion-nav_2.entry.js +4 -3
  131. package/dist/esm/ion-picker-column-internal.entry.js +3 -3
  132. package/dist/esm/ion-picker-internal.entry.js +1 -1
  133. package/dist/esm/ion-popover.entry.js +4 -4
  134. package/dist/esm/ion-progress-bar.entry.js +2 -2
  135. package/dist/esm/ion-radio_2.entry.js +2 -2
  136. package/dist/esm/ion-range.entry.js +2 -2
  137. package/dist/esm/ion-refresher_2.entry.js +3 -3
  138. package/dist/esm/ion-reorder_2.entry.js +3 -3
  139. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  140. package/dist/esm/ion-route_4.entry.js +5 -2
  141. package/dist/esm/ion-searchbar.entry.js +2 -2
  142. package/dist/esm/ion-segment_2.entry.js +2 -2
  143. package/dist/esm/ion-select_3.entry.js +4 -4
  144. package/dist/esm/ion-spinner.entry.js +2 -2
  145. package/dist/esm/ion-split-pane.entry.js +2 -2
  146. package/dist/esm/ion-tab-bar_2.entry.js +2 -2
  147. package/dist/esm/ion-tab_2.entry.js +1 -1
  148. package/dist/esm/ion-text.entry.js +2 -2
  149. package/dist/esm/ion-textarea.entry.js +2 -2
  150. package/dist/esm/ion-toast.entry.js +152 -17
  151. package/dist/esm/ion-toggle.entry.js +3 -3
  152. package/dist/esm/{ionic-global-b3fc28dd.js → ionic-global-63a8d8c9.js} +1 -1
  153. package/dist/esm/ionic.js +6 -6
  154. package/dist/esm/{ios.transition-81e1aed6.js → ios.transition-8ad209ea.js} +3 -2
  155. package/dist/esm/loader.js +5 -5
  156. package/dist/esm/{md.transition-5becd8b5.js → md.transition-43193ea7.js} +2 -2
  157. package/dist/esm/{overlays-8fc6656c.js → overlays-753933fc.js} +2 -1
  158. package/dist/esm/{status-tap-c5af0dba.js → status-tap-73e982b6.js} +1 -1
  159. package/dist/esm-es5/app-globals-df292a32.js +4 -0
  160. package/dist/esm-es5/{button-active-513e9fff.js → button-active-3dd473a1.js} +1 -1
  161. package/dist/esm-es5/data-44d9e816.js +4 -0
  162. package/dist/esm-es5/{index-61bddc90.js → index-3d6aefa2.js} +1 -1
  163. package/dist/esm-es5/{index-87684bba.js → index-9f5eacab.js} +1 -1
  164. package/dist/esm-es5/index.js +1 -1
  165. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  166. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  167. package/dist/esm-es5/ion-alert.entry.js +1 -1
  168. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  169. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  170. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  171. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  172. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  173. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  174. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  175. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  176. package/dist/esm-es5/ion-chip.entry.js +1 -1
  177. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  178. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  179. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  180. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  181. package/dist/esm-es5/ion-img.entry.js +1 -1
  182. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  183. package/dist/esm-es5/ion-input.entry.js +1 -1
  184. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  185. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  186. package/dist/esm-es5/ion-loading.entry.js +1 -1
  187. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  188. package/dist/esm-es5/ion-modal.entry.js +1 -1
  189. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  190. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  191. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  192. package/dist/esm-es5/ion-popover.entry.js +1 -1
  193. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  194. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  195. package/dist/esm-es5/ion-range.entry.js +1 -1
  196. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  197. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  198. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  199. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  200. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  201. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  202. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  203. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  204. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  205. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  206. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  207. package/dist/esm-es5/ion-text.entry.js +1 -1
  208. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  209. package/dist/esm-es5/ion-toast.entry.js +1 -1
  210. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  211. package/dist/esm-es5/{ionic-global-b3fc28dd.js → ionic-global-63a8d8c9.js} +1 -1
  212. package/dist/esm-es5/ionic.js +1 -1
  213. package/dist/esm-es5/{ios.transition-81e1aed6.js → ios.transition-8ad209ea.js} +1 -1
  214. package/dist/esm-es5/loader.js +1 -1
  215. package/dist/esm-es5/{md.transition-5becd8b5.js → md.transition-43193ea7.js} +1 -1
  216. package/dist/esm-es5/{overlays-8fc6656c.js → overlays-753933fc.js} +1 -1
  217. package/dist/esm-es5/{status-tap-c5af0dba.js → status-tap-73e982b6.js} +1 -1
  218. package/dist/html.html-data.json +11 -1
  219. package/dist/ionic/index.esm.js +1 -1
  220. package/dist/ionic/ionic.esm.js +1 -1
  221. package/dist/ionic/ionic.js +1 -1
  222. package/dist/ionic/{p-5c8c9748.system.entry.js → p-007168b8.system.entry.js} +1 -1
  223. package/dist/ionic/{p-ce7a651e.js → p-00cf2d6c.js} +1 -1
  224. package/dist/ionic/{p-6dfeeadf.entry.js → p-018ad59f.entry.js} +1 -1
  225. package/dist/ionic/{p-e89abe38.system.entry.js → p-037e2738.system.entry.js} +1 -1
  226. package/dist/ionic/{p-116641fe.entry.js → p-0793ebfd.entry.js} +1 -1
  227. package/dist/ionic/{p-972763df.js → p-0d198537.js} +1 -1
  228. package/dist/ionic/{p-37456282.system.entry.js → p-0e024f14.system.entry.js} +1 -1
  229. package/dist/ionic/{p-60838ce3.system.entry.js → p-10fcb3a3.system.entry.js} +1 -1
  230. package/dist/ionic/p-11eedecb.system.entry.js +4 -0
  231. package/dist/ionic/{p-605b085a.entry.js → p-138e06de.entry.js} +1 -1
  232. package/dist/ionic/p-17240d90.js +4 -0
  233. package/dist/ionic/{p-7e9e16bf.system.entry.js → p-17dd92fe.system.entry.js} +1 -1
  234. package/dist/ionic/{p-b95fd3c6.entry.js → p-26c9b9ba.entry.js} +1 -1
  235. package/dist/ionic/{p-6ca0e4b2.system.entry.js → p-28678af4.system.entry.js} +1 -1
  236. package/dist/ionic/{p-de676d36.system.entry.js → p-2dc6526e.system.entry.js} +1 -1
  237. package/dist/ionic/{p-c4d08d6d.system.entry.js → p-37fc0d22.system.entry.js} +1 -1
  238. package/dist/ionic/{p-42a7b112.entry.js → p-3bf7c0dc.entry.js} +1 -1
  239. package/dist/ionic/{p-e57a38f3.entry.js → p-3db27dec.entry.js} +1 -1
  240. package/dist/ionic/{p-83b7bbf9.entry.js → p-3dce88bf.entry.js} +1 -1
  241. package/dist/ionic/{p-ce24ddd7.system.entry.js → p-3e6b0330.system.entry.js} +1 -1
  242. package/dist/ionic/{p-3ae2faf0.entry.js → p-414a1506.entry.js} +1 -1
  243. package/dist/ionic/{p-13a91505.entry.js → p-454048da.entry.js} +1 -1
  244. package/dist/ionic/{p-c7fca267.entry.js → p-45e527e7.entry.js} +1 -1
  245. package/dist/ionic/{p-13ce151b.entry.js → p-469d6a98.entry.js} +1 -1
  246. package/dist/ionic/{p-a6d8476b.system.entry.js → p-47242aad.system.entry.js} +1 -1
  247. package/dist/ionic/p-4965f2d7.entry.js +4 -0
  248. package/dist/ionic/{p-88ad9cb6.entry.js → p-4c20879c.entry.js} +1 -1
  249. package/dist/ionic/{p-8fdd4a2f.system.js → p-4d6ea5f9.system.js} +1 -1
  250. package/dist/ionic/{p-08c5b9f4.system.entry.js → p-4e1b00c5.system.entry.js} +1 -1
  251. package/dist/ionic/{p-33630008.system.entry.js → p-4e76e29a.system.entry.js} +1 -1
  252. package/dist/ionic/{p-55b99166.entry.js → p-50327060.entry.js} +1 -1
  253. package/dist/ionic/{p-e24630f9.entry.js → p-50d83224.entry.js} +1 -1
  254. package/dist/ionic/p-534a1cbc.system.js +4 -0
  255. package/dist/ionic/{p-5e2dc8e0.js → p-54b06917.js} +1 -1
  256. package/dist/ionic/{p-4eab1bb4.entry.js → p-57743e20.entry.js} +1 -1
  257. package/dist/ionic/{p-d4cea1ba.system.js → p-57c5eca2.system.js} +1 -1
  258. package/dist/ionic/p-5aa99fb8.entry.js +4 -0
  259. package/dist/ionic/{p-ec102360.system.js → p-5c24c115.system.js} +1 -1
  260. package/dist/ionic/{p-47cb95be.system.entry.js → p-5f13271c.system.entry.js} +1 -1
  261. package/dist/ionic/{p-cd675d89.system.entry.js → p-5fd0a13e.system.entry.js} +1 -1
  262. package/dist/ionic/p-6641d7fa.js +4 -0
  263. package/dist/ionic/{p-8b79baf0.entry.js → p-68b405cc.entry.js} +1 -1
  264. package/dist/ionic/{p-bf9b1560.entry.js → p-6a49b57e.entry.js} +1 -1
  265. package/dist/ionic/{p-6522a762.system.entry.js → p-6c7d61b9.system.entry.js} +1 -1
  266. package/dist/ionic/{p-ebaeeee8.entry.js → p-6ce891b2.entry.js} +1 -1
  267. package/dist/ionic/{p-ee6d9730.entry.js → p-6d22c339.entry.js} +1 -1
  268. package/dist/ionic/{p-6bc9c436.system.entry.js → p-6f13b971.system.entry.js} +1 -1
  269. package/dist/ionic/{p-626f7142.system.entry.js → p-6f3099b6.system.entry.js} +1 -1
  270. package/dist/ionic/p-73eba881.system.js +4 -0
  271. package/dist/ionic/p-73f7e775.js +4 -0
  272. package/dist/ionic/{p-39715fcf.entry.js → p-7887ac7a.entry.js} +1 -1
  273. package/dist/ionic/{p-6b7e74ba.js → p-7a590a28.js} +1 -1
  274. package/dist/ionic/p-7b4e392c.js +4 -0
  275. package/dist/ionic/{p-de0f1af2.system.entry.js → p-7fd0f045.system.entry.js} +1 -1
  276. package/dist/ionic/{p-7a3caa4e.system.js → p-82c72668.system.js} +1 -1
  277. package/dist/ionic/{p-62428e04.system.entry.js → p-84549737.system.entry.js} +1 -1
  278. package/dist/ionic/{p-be321bb6.system.entry.js → p-8957b1de.system.entry.js} +1 -1
  279. package/dist/ionic/{p-6ba07931.system.entry.js → p-89e3d112.system.entry.js} +1 -1
  280. package/dist/ionic/{p-5e43aa8b.js → p-8a289322.js} +1 -1
  281. package/dist/ionic/{p-b5637aeb.system.entry.js → p-8f245bb0.system.entry.js} +1 -1
  282. package/dist/ionic/{p-70ab8b73.js → p-903c36fe.js} +1 -1
  283. package/dist/ionic/{p-04ef1ba6.entry.js → p-9201a4d3.entry.js} +1 -1
  284. package/dist/ionic/{p-a1a2dd4d.entry.js → p-92d72ad8.entry.js} +1 -1
  285. package/dist/ionic/{p-63a73b69.system.entry.js → p-9736406a.system.entry.js} +1 -1
  286. package/dist/ionic/{p-4616f20a.system.entry.js → p-98b108e2.system.entry.js} +1 -1
  287. package/dist/ionic/{p-03e2e541.system.entry.js → p-9a6f6789.system.entry.js} +1 -1
  288. package/dist/ionic/{p-3730f493.entry.js → p-9b796813.entry.js} +1 -1
  289. package/dist/ionic/{p-270aa06b.entry.js → p-9bd70bd2.entry.js} +1 -1
  290. package/dist/ionic/p-9e5bdf1a.entry.js +4 -0
  291. package/dist/ionic/{p-700a2cb1.system.entry.js → p-9e91c83f.system.entry.js} +1 -1
  292. package/dist/ionic/{p-93616477.system.js → p-9f9efb31.system.js} +1 -1
  293. package/dist/ionic/{p-cc3aa152.entry.js → p-a1d7f4ef.entry.js} +1 -1
  294. package/dist/ionic/{p-65a4c12f.system.entry.js → p-a39e9a0b.system.entry.js} +1 -1
  295. package/dist/ionic/{p-f920f5ca.entry.js → p-a3ea02d0.entry.js} +1 -1
  296. package/dist/ionic/{p-abf426cd.system.entry.js → p-a4e95028.system.entry.js} +1 -1
  297. package/dist/ionic/{p-ea88031d.entry.js → p-a51f5932.entry.js} +1 -1
  298. package/dist/ionic/{p-4912b933.entry.js → p-a7361c85.entry.js} +1 -1
  299. package/dist/ionic/{p-486b567b.system.entry.js → p-a9b13f18.system.entry.js} +1 -1
  300. package/dist/ionic/{p-0bd3cc92.entry.js → p-a9d7f984.entry.js} +1 -1
  301. package/dist/ionic/{p-53bbd357.system.entry.js → p-aa4b083c.system.entry.js} +1 -1
  302. package/dist/ionic/{p-6bbf2815.system.entry.js → p-abfd1f2e.system.entry.js} +1 -1
  303. package/dist/ionic/p-ac32f6ce.entry.js +4 -0
  304. package/dist/ionic/{p-5e84b718.system.entry.js → p-afafb6bf.system.entry.js} +1 -1
  305. package/dist/ionic/{p-918d5f19.system.js → p-b10f05b1.system.js} +1 -1
  306. package/dist/ionic/{p-40e16caa.system.entry.js → p-b1cf77e0.system.entry.js} +1 -1
  307. package/dist/ionic/{p-b49fe110.entry.js → p-b2397f35.entry.js} +1 -1
  308. package/dist/ionic/{p-1bce805b.entry.js → p-b27772bf.entry.js} +1 -1
  309. package/dist/ionic/{p-568fec78.entry.js → p-b4c0e9ee.entry.js} +1 -1
  310. package/dist/ionic/{p-bf8224f4.system.entry.js → p-b4daca17.system.entry.js} +1 -1
  311. package/dist/ionic/{p-7e46b6ab.entry.js → p-b7c158f8.entry.js} +1 -1
  312. package/dist/ionic/p-b8c3f071.system.js +4 -0
  313. package/dist/ionic/{p-b0dd4f33.entry.js → p-b9e2aede.entry.js} +1 -1
  314. package/dist/ionic/{p-8e28945a.system.entry.js → p-c09e1da9.system.entry.js} +1 -1
  315. package/dist/ionic/{p-4a1ac160.system.entry.js → p-c215a78a.system.entry.js} +1 -1
  316. package/dist/ionic/{p-d8b2c214.entry.js → p-c42d0ea3.entry.js} +1 -1
  317. package/dist/ionic/{p-73f50e29.system.js → p-c46fba6d.system.js} +1 -1
  318. package/dist/ionic/{p-c5729044.system.entry.js → p-c48d177b.system.entry.js} +1 -1
  319. package/dist/ionic/{p-3e5676b7.entry.js → p-ca655a7c.entry.js} +1 -1
  320. package/dist/ionic/{p-20e5eb3e.entry.js → p-d2a278b1.entry.js} +1 -1
  321. package/dist/ionic/{p-bfac43d7.system.entry.js → p-d90f0779.system.entry.js} +1 -1
  322. package/dist/ionic/{p-95f8cb47.entry.js → p-da024961.entry.js} +1 -1
  323. package/dist/ionic/{p-327fc1bf.entry.js → p-dd0c00ed.entry.js} +1 -1
  324. package/dist/ionic/{p-82f58c25.system.entry.js → p-e40b2cb4.system.entry.js} +1 -1
  325. package/dist/ionic/{p-82da795c.system.entry.js → p-e62d80e5.system.entry.js} +1 -1
  326. package/dist/ionic/{p-410beeda.system.entry.js → p-e6d2cca2.system.entry.js} +1 -1
  327. package/dist/ionic/{p-00aed720.system.js → p-ec25d547.system.js} +1 -1
  328. package/dist/ionic/{p-f0dcf99b.entry.js → p-ec29338e.entry.js} +1 -1
  329. package/dist/ionic/{p-1c406ee0.system.entry.js → p-ec451ef7.system.entry.js} +1 -1
  330. package/dist/ionic/{p-f9015336.js → p-ee8881d0.js} +1 -1
  331. package/dist/ionic/{p-a720dc73.entry.js → p-eff1ce2e.entry.js} +1 -1
  332. package/dist/ionic/{p-76e8336d.system.entry.js → p-f37d6823.system.entry.js} +1 -1
  333. package/dist/ionic/{p-c14fb011.system.entry.js → p-f6f4d4bb.system.entry.js} +1 -1
  334. package/dist/ionic/{p-cd12dcd9.entry.js → p-fa06c407.entry.js} +1 -1
  335. package/dist/ionic/{p-7dc0ee11.system.entry.js → p-fbc7995a.system.entry.js} +1 -1
  336. package/dist/ionic/{p-b098f738.system.js → p-fe813df6.system.js} +1 -1
  337. package/dist/types/components/datetime/datetime-interface.d.ts +1 -0
  338. package/dist/types/components/datetime/datetime.d.ts +2 -2
  339. package/dist/types/components/datetime/utils/data.d.ts +3 -3
  340. package/dist/types/components/datetime/utils/format.d.ts +3 -3
  341. package/dist/types/components/datetime/utils/helpers.d.ts +15 -1
  342. package/dist/types/components/toast/animations/ios.enter.d.ts +2 -1
  343. package/dist/types/components/toast/animations/ios.leave.d.ts +2 -2
  344. package/dist/types/components/toast/animations/md.enter.d.ts +2 -1
  345. package/dist/types/components/toast/animations/utils.d.ts +18 -0
  346. package/dist/types/components/toast/toast-interface.d.ts +11 -0
  347. package/dist/types/components/toast/toast.d.ts +21 -1
  348. package/dist/types/components.d.ts +16 -8
  349. package/hydrate/index.js +267 -42
  350. package/package.json +6 -7
  351. package/dist/esm-es5/app-globals-8ae762aa.js +0 -4
  352. package/dist/esm-es5/data-009dbf15.js +0 -4
  353. package/dist/ionic/p-05f10762.entry.js +0 -4
  354. package/dist/ionic/p-1a36bf45.system.entry.js +0 -4
  355. package/dist/ionic/p-2309dba2.system.js +0 -4
  356. package/dist/ionic/p-27614d55.entry.js +0 -4
  357. package/dist/ionic/p-44ef7224.system.js +0 -4
  358. package/dist/ionic/p-6edbc09b.system.js +0 -4
  359. package/dist/ionic/p-7129d04e.entry.js +0 -4
  360. package/dist/ionic/p-72a1cbc7.js +0 -4
  361. package/dist/ionic/p-78a293a5.js +0 -4
  362. package/dist/ionic/p-7cfd253c.js +0 -4
  363. package/dist/ionic/p-90d892fd.entry.js +0 -4
  364. package/dist/ionic/p-f978ccd1.js +0 -4
  365. /package/dist/esm-es5/{haptic-6447af60.js → haptic-1243b917.js} +0 -0
  366. /package/dist/esm-es5/{index-2d388930.js → index-cb894020.js} +0 -0
  367. /package/dist/ionic/{p-91546be9.system.js → p-26fbffd4.system.js} +0 -0
  368. /package/dist/ionic/{p-14d7b7e2.system.js → p-b4b4bb29.system.js} +0 -0
  369. /package/dist/ionic/{p-bb6f38ed.js → p-b923f3d7.js} +0 -0
@@ -5,17 +5,17 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-6f887430.js');
8
+ const index = require('./index-14a4821e.js');
9
9
  const formController = require('./form-controller-5e223b54.js');
10
10
  const notchController = require('./notch-controller-f4f6af5d.js');
11
11
  const helpers = require('./helpers-ea4ccbcb.js');
12
12
  const index$1 = require('./index-cc7dfb7c.js');
13
- const overlays = require('./overlays-d3a13e61.js');
13
+ const overlays = require('./overlays-9cab437c.js');
14
14
  const dir = require('./dir-f1e0ca26.js');
15
15
  const theme = require('./theme-fbc56b3b.js');
16
16
  const watchOptions = require('./watch-options-f3f77e54.js');
17
17
  const index$2 = require('./index-d8d1fc0b.js');
18
- const ionicGlobal = require('./ionic-global-14a0604b.js');
18
+ const ionicGlobal = require('./ionic-global-a71608df.js');
19
19
  require('./index-306a7476.js');
20
20
  require('./framework-delegate-c0873a6f.js');
21
21
  require('./hardware-back-button-b67c8e75.js');
@@ -616,7 +616,7 @@ Developers can use the "legacy" property to continue using the legacy form marku
616
616
  }
617
617
  renderListbox() {
618
618
  const { disabled, inputId, isExpanded } = this;
619
- return (index.h("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "listbox", "aria-expanded": `${isExpanded}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
619
+ return (index.h("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
620
620
  }
621
621
  render() {
622
622
  const { legacyFormController } = this;
@@ -5,9 +5,9 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-6f887430.js');
8
+ const index = require('./index-14a4821e.js');
9
9
  const theme = require('./theme-fbc56b3b.js');
10
- const ionicGlobal = require('./ionic-global-14a0604b.js');
10
+ const ionicGlobal = require('./ionic-global-a71608df.js');
11
11
  const spinnerConfigs = require('./spinner-configs-f7b5105b.js');
12
12
 
13
13
  const spinnerCss = ":host{display:inline-block;position:relative;width:28px;height:28px;color:var(--color);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host(.ion-color){color:var(--ion-color-base)}svg{-webkit-transform-origin:center;transform-origin:center;position:absolute;top:0;left:0;width:100%;height:100%;-webkit-transform:translateZ(0);transform:translateZ(0)}:host-context([dir=rtl]) svg{-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}[dir=rtl] svg{-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}@supports selector(:dir(rtl)){svg:dir(rtl){-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}}:host(.spinner-lines) line,:host(.spinner-lines-small) line{stroke-width:7px}:host(.spinner-lines-sharp) line,:host(.spinner-lines-sharp-small) line{stroke-width:4px}:host(.spinner-lines) line,:host(.spinner-lines-small) line,:host(.spinner-lines-sharp) line,:host(.spinner-lines-sharp-small) line{stroke-linecap:round;stroke:currentColor}:host(.spinner-lines) svg,:host(.spinner-lines-small) svg,:host(.spinner-lines-sharp) svg,:host(.spinner-lines-sharp-small) svg{-webkit-animation:spinner-fade-out 1s linear infinite;animation:spinner-fade-out 1s linear infinite}:host(.spinner-bubbles) svg{-webkit-animation:spinner-scale-out 1s linear infinite;animation:spinner-scale-out 1s linear infinite;fill:currentColor}:host(.spinner-circles) svg{-webkit-animation:spinner-fade-out 1s linear infinite;animation:spinner-fade-out 1s linear infinite;fill:currentColor}:host(.spinner-crescent) circle{fill:transparent;stroke-width:4px;stroke-dasharray:128px;stroke-dashoffset:82px;stroke:currentColor}:host(.spinner-crescent) svg{-webkit-animation:spinner-rotate 1s linear infinite;animation:spinner-rotate 1s linear infinite}:host(.spinner-dots) circle{stroke-width:0;fill:currentColor}:host(.spinner-dots) svg{-webkit-animation:spinner-dots 1s linear infinite;animation:spinner-dots 1s linear infinite}:host(.spinner-circular) svg{-webkit-animation:spinner-circular linear infinite;animation:spinner-circular linear infinite}:host(.spinner-circular) circle{-webkit-animation:spinner-circular-inner ease-in-out infinite;animation:spinner-circular-inner ease-in-out infinite;stroke:currentColor;stroke-dasharray:80px, 200px;stroke-dashoffset:0px;stroke-width:5.6;fill:none}:host(.spinner-paused),:host(.spinner-paused) svg,:host(.spinner-paused) circle{-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes spinner-fade-out{0%{opacity:1}100%{opacity:0}}@keyframes spinner-fade-out{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes spinner-scale-out{0%{-webkit-transform:scale(1, 1);transform:scale(1, 1)}100%{-webkit-transform:scale(0, 0);transform:scale(0, 0)}}@keyframes spinner-scale-out{0%{-webkit-transform:scale(1, 1);transform:scale(1, 1)}100%{-webkit-transform:scale(0, 0);transform:scale(0, 0)}}@-webkit-keyframes spinner-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes spinner-dots{0%{-webkit-transform:scale(1, 1);transform:scale(1, 1);opacity:0.9}50%{-webkit-transform:scale(0.4, 0.4);transform:scale(0.4, 0.4);opacity:0.3}100%{-webkit-transform:scale(1, 1);transform:scale(1, 1);opacity:0.9}}@keyframes spinner-dots{0%{-webkit-transform:scale(1, 1);transform:scale(1, 1);opacity:0.9}50%{-webkit-transform:scale(0.4, 0.4);transform:scale(0.4, 0.4);opacity:0.3}100%{-webkit-transform:scale(1, 1);transform:scale(1, 1);opacity:0.9}}@-webkit-keyframes spinner-circular{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-circular{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes spinner-circular-inner{0%{stroke-dasharray:1px, 200px;stroke-dashoffset:0px}50%{stroke-dasharray:100px, 200px;stroke-dashoffset:-15px}100%{stroke-dasharray:100px, 200px;stroke-dashoffset:-125px}}@keyframes spinner-circular-inner{0%{stroke-dasharray:1px, 200px;stroke-dashoffset:0px}50%{stroke-dasharray:100px, 200px;stroke-dashoffset:-15px}100%{stroke-dasharray:100px, 200px;stroke-dashoffset:-125px}}";
@@ -5,8 +5,8 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-6f887430.js');
9
- const ionicGlobal = require('./ionic-global-14a0604b.js');
8
+ const index = require('./index-14a4821e.js');
9
+ const ionicGlobal = require('./ionic-global-a71608df.js');
10
10
 
11
11
  const splitPaneIosCss = ":host{--side-width:100%;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;contain:strict}::slotted(ion-menu.menu-pane-visible){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width);min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.split-pane-visible) ::slotted(.split-pane-side),:host(.split-pane-visible) ::slotted(.split-pane-main){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none !important;box-shadow:none !important;z-index:0}:host(.split-pane-visible) ::slotted(.split-pane-main){-ms-flex:1;flex:1}:host(.split-pane-visible) ::slotted(.split-pane-side:not(ion-menu)),:host(.split-pane-visible) ::slotted(ion-menu.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}::slotted(.split-pane-side:not(ion-menu)){display:none}:host(.split-pane-visible) ::slotted(.split-pane-side){-ms-flex-order:-1;order:-1}:host(.split-pane-visible) ::slotted(.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host{--border:0.55px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));--side-min-width:270px;--side-max-width:28%}:host(.split-pane-visible) ::slotted(.split-pane-side){-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.split-pane-visible) ::slotted(.split-pane-side[side=end]){-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}";
12
12
 
@@ -5,10 +5,10 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-6f887430.js');
8
+ const index = require('./index-14a4821e.js');
9
9
  const keyboardController = require('./keyboard-controller-50beb83a.js');
10
10
  const theme = require('./theme-fbc56b3b.js');
11
- const ionicGlobal = require('./ionic-global-14a0604b.js');
11
+ const ionicGlobal = require('./ionic-global-a71608df.js');
12
12
  const helpers = require('./helpers-ea4ccbcb.js');
13
13
  require('./index-306a7476.js');
14
14
  require('./keyboard-fd7db491.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-6f887430.js');
8
+ const index = require('./index-14a4821e.js');
9
9
  const frameworkDelegate = require('./framework-delegate-c0873a6f.js');
10
10
  require('./helpers-ea4ccbcb.js');
11
11
 
@@ -5,9 +5,9 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-6f887430.js');
8
+ const index = require('./index-14a4821e.js');
9
9
  const theme = require('./theme-fbc56b3b.js');
10
- const ionicGlobal = require('./ionic-global-14a0604b.js');
10
+ const ionicGlobal = require('./ionic-global-a71608df.js');
11
11
 
12
12
  const textCss = ":host(.ion-color){color:var(--ion-color-base)}";
13
13
 
@@ -5,14 +5,14 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-6f887430.js');
8
+ const index = require('./index-14a4821e.js');
9
9
  const formController = require('./form-controller-5e223b54.js');
10
10
  const notchController = require('./notch-controller-f4f6af5d.js');
11
11
  const helpers = require('./helpers-ea4ccbcb.js');
12
12
  const index$1 = require('./index-cc7dfb7c.js');
13
13
  const input_utils = require('./input.utils-0fe3097c.js');
14
14
  const theme = require('./theme-fbc56b3b.js');
15
- const ionicGlobal = require('./ionic-global-14a0604b.js');
15
+ const ionicGlobal = require('./ionic-global-a71608df.js');
16
16
  require('./index-306a7476.js');
17
17
 
18
18
  const textareaIosCss = ".sc-ion-textarea-ios-h{--background:initial;--color:initial;--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:0.6;--padding-top:0;--padding-end:0;--padding-bottom:0;--padding-start:0;--border-radius:0;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #3880ff);--highlight-color-valid:var(--ion-color-success, #2dd36f);--highlight-color-invalid:var(--ion-color-danger, #eb445a);--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;color:var(--color);font-family:var(--ion-font-family, inherit);z-index:2;-webkit-box-sizing:border-box;box-sizing:border-box}[cols].sc-ion-textarea-ios-h:not([auto-grow]){width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.legacy-textarea.sc-ion-textarea-ios-h{-ms-flex:1;flex:1;background:var(--background);white-space:pre-wrap}.legacy-textarea.ion-color.sc-ion-textarea-ios-h{color:var(--ion-color-base)}.sc-ion-textarea-ios-h:not(.legacy-textarea){--padding-bottom:8px}.ion-color.sc-ion-textarea-ios-h{--highlight-color-focused:var(--ion-color-base);background:initial}ion-item.sc-ion-textarea-ios-h,ion-item .sc-ion-textarea-ios-h{-ms-flex-item-align:baseline;align-self:baseline}ion-item.sc-ion-textarea-ios-h:not(.item-label),ion-item:not(.item-label) .sc-ion-textarea-ios-h{--padding-start:0}ion-item[slot=start].sc-ion-textarea-ios-h,ion-item [slot=start].sc-ion-textarea-ios-h,ion-item[slot=end].sc-ion-textarea-ios-h,ion-item [slot=end].sc-ion-textarea-ios-h{width:auto}.native-textarea.sc-ion-textarea-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:block;position:relative;-ms-flex:1;flex:1;width:100%;max-width:100%;max-height:100%;border:0;outline:none;background:transparent;white-space:pre-wrap;z-index:1;-webkit-box-sizing:border-box;box-sizing:border-box;resize:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.native-textarea.sc-ion-textarea-ios::-webkit-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios::-moz-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios:-ms-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios::-ms-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios::placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.legacy-textarea.sc-ion-textarea-ios-h .native-textarea.sc-ion-textarea-ios{white-space:inherit}.legacy-textarea.sc-ion-textarea-ios-h .native-textarea.sc-ion-textarea-ios,.legacy-textarea.sc-ion-textarea-ios-h .textarea-legacy-wrapper.sc-ion-textarea-ios::after{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);border-radius:var(--border-radius)}.native-textarea.sc-ion-textarea-ios{color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;grid-area:1/1/2/2;word-break:break-word}.legacy-textarea.sc-ion-textarea-ios-h .textarea-legacy-wrapper.sc-ion-textarea-ios::after{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;grid-area:1/1/2/2;word-break:break-word}.cloned-input.sc-ion-textarea-ios{top:0;bottom:0;position:absolute;pointer-events:none}@supports (inset-inline-start: 0){.cloned-input.sc-ion-textarea-ios{inset-inline-start:0}}@supports not (inset-inline-start: 0){.cloned-input.sc-ion-textarea-ios{left:0}[dir=rtl].sc-ion-textarea-ios-h .cloned-input.sc-ion-textarea-ios,[dir=rtl] .sc-ion-textarea-ios-h .cloned-input.sc-ion-textarea-ios{left:unset;right:unset;right:0}[dir=rtl].sc-ion-textarea-ios .cloned-input.sc-ion-textarea-ios{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.cloned-input.sc-ion-textarea-ios:dir(rtl){left:unset;right:unset;right:0}}}.cloned-input.sc-ion-textarea-ios:disabled{opacity:1}.legacy-textarea[auto-grow].sc-ion-textarea-ios-h .cloned-input.sc-ion-textarea-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}[auto-grow].sc-ion-textarea-ios-h .cloned-input.sc-ion-textarea-ios{height:100%}[auto-grow].sc-ion-textarea-ios-h .native-textarea.sc-ion-textarea-ios{overflow:hidden}.item-label-floating.item-has-placeholder.sc-ion-textarea-ios-h:not(.item-has-value),.item-label-floating.item-has-placeholder:not(.item-has-value) .sc-ion-textarea-ios-h{opacity:0}.item-label-floating.item-has-placeholder.sc-ion-textarea-ios-h:not(.item-has-value).item-has-focus,.item-label-floating.item-has-placeholder:not(.item-has-value).item-has-focus .sc-ion-textarea-ios-h{-webkit-transition:opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1);opacity:1}.textarea-wrapper.sc-ion-textarea-ios{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:0px;padding-bottom:0px;border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:start;align-items:flex-start;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal}.native-wrapper.sc-ion-textarea-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;width:100%;height:100%}.has-focus.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios{caret-color:var(--highlight-color)}.native-wrapper.sc-ion-textarea-ios textarea.sc-ion-textarea-ios{-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom)}.native-wrapper.sc-ion-textarea-ios,.textarea-legacy-wrapper.sc-ion-textarea-ios{display:grid;min-width:inherit;max-width:inherit;min-height:inherit;max-height:inherit;grid-auto-rows:100%}.native-wrapper.sc-ion-textarea-ios::after,.textarea-legacy-wrapper.sc-ion-textarea-ios::after{white-space:pre-wrap;content:attr(data-replicated-value) \" \";visibility:hidden}.native-wrapper.sc-ion-textarea-ios::after{padding-left:0;padding-right:0;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;border-radius:var(--border-radius);color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;grid-area:1/1/2/2;word-break:break-word}.ion-touched.ion-invalid.sc-ion-textarea-ios-h{--highlight-color:var(--highlight-color-invalid)}.ion-valid.sc-ion-textarea-ios-h{--highlight-color:var(--highlight-color-valid)}.textarea-bottom.sc-ion-textarea-ios{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:12px}.has-focus.ion-valid.sc-ion-textarea-ios-h,.ion-touched.ion-invalid.sc-ion-textarea-ios-h{--border-color:var(--highlight-color)}.textarea-bottom.sc-ion-textarea-ios .error-text.sc-ion-textarea-ios{display:none;color:var(--highlight-color-invalid)}.textarea-bottom.sc-ion-textarea-ios .helper-text.sc-ion-textarea-ios{display:block;color:var(--ion-color-step-550, #737373)}.ion-touched.ion-invalid.sc-ion-textarea-ios-h .textarea-bottom.sc-ion-textarea-ios .error-text.sc-ion-textarea-ios{display:block}.ion-touched.ion-invalid.sc-ion-textarea-ios-h .textarea-bottom.sc-ion-textarea-ios .helper-text.sc-ion-textarea-ios{display:none}.textarea-bottom.sc-ion-textarea-ios .counter.sc-ion-textarea-ios{-webkit-margin-start:auto;margin-inline-start:auto;color:var(--ion-color-step-550, #737373);white-space:nowrap;-webkit-padding-start:16px;padding-inline-start:16px}.label-text-wrapper.sc-ion-textarea-ios{-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.label-text.sc-ion-textarea-ios,.sc-ion-textarea-ios-s>[slot=label]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden.sc-ion-textarea-ios,.textarea-outline-notch-hidden.sc-ion-textarea-ios{display:none}.textarea-wrapper.sc-ion-textarea-ios textarea.sc-ion-textarea-ios{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.textarea-label-placement-start.sc-ion-textarea-ios-h .textarea-wrapper.sc-ion-textarea-ios{-ms-flex-direction:row;flex-direction:row}.textarea-label-placement-start.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}.textarea-label-placement-end.sc-ion-textarea-ios-h .textarea-wrapper.sc-ion-textarea-ios{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.textarea-label-placement-end.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}.textarea-label-placement-fixed.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}.textarea-label-placement-fixed.sc-ion-textarea-ios-h .label-text.sc-ion-textarea-ios{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}.textarea-label-placement-stacked.sc-ion-textarea-ios-h .textarea-wrapper.sc-ion-textarea-ios,.textarea-label-placement-floating.sc-ion-textarea-ios-h .textarea-wrapper.sc-ion-textarea-ios{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}.textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform-origin:left top;transform-origin:left top;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;max-width:100%;z-index:2}[dir=rtl].sc-ion-textarea-ios-h -no-combinator.textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl] .sc-ion-textarea-ios-h -no-combinator.textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl].textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl] .textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl].sc-ion-textarea-ios-h -no-combinator.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl] .sc-ion-textarea-ios-h -no-combinator.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl].textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl] .textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios:dir(rtl),.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios:dir(rtl){-webkit-transform-origin:right top;transform-origin:right top}}.textarea-label-placement-stacked.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios,.textarea-label-placement-floating.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios,.textarea-label-placement-stacked[auto-grow].sc-ion-textarea-ios-h .native-wrapper.sc-ion-textarea-ios::after,.textarea-label-placement-floating[auto-grow].sc-ion-textarea-ios-h .native-wrapper.sc-ion-textarea-ios::after{-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:8px;margin-bottom:0px}.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}.textarea-label-placement-floating.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios{opacity:0}.has-focus.textarea-label-placement-floating.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios,.has-value.textarea-label-placement-floating.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios{opacity:1}.textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,.has-focus.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,.has-value.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}.sc-ion-textarea-ios-h{--border-width:0.55px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));--padding-top:10px;--padding-end:0px;--padding-bottom:8px;--padding-start:0px;font-size:inherit}.legacy-textarea.sc-ion-textarea-ios-h{--padding-top:10px;--padding-end:8px;--padding-bottom:10px;--padding-start:0}.item-label-stacked.sc-ion-textarea-ios-h,.item-label-stacked .sc-ion-textarea-ios-h,.item-label-floating.sc-ion-textarea-ios-h,.item-label-floating .sc-ion-textarea-ios-h{--padding-top:8px;--padding-bottom:8px;--padding-start:0px}.legacy-textarea.sc-ion-textarea-ios-h .native-textarea[disabled].sc-ion-textarea-ios,.textarea-disabled.sc-ion-textarea-ios-h{opacity:0.3}.sc-ion-textarea-ios-h:not(.legacy-textarea){min-height:44px}.textarea-label-placement-floating.sc-ion-textarea-ios-h,.textarea-label-placement-stacked.sc-ion-textarea-ios-h{--padding-top:0px;min-height:56px}";
@@ -5,29 +5,28 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-6f887430.js');
8
+ const index$2 = require('./index-14a4821e.js');
9
9
  const config = require('./config-d5882735.js');
10
10
  const helpers = require('./helpers-ea4ccbcb.js');
11
11
  const lockController = require('./lock-controller-4ae2eb59.js');
12
12
  const index$1 = require('./index-cc7dfb7c.js');
13
- const overlays = require('./overlays-d3a13e61.js');
13
+ const overlays = require('./overlays-9cab437c.js');
14
14
  const theme = require('./theme-fbc56b3b.js');
15
- const ionicGlobal = require('./ionic-global-14a0604b.js');
15
+ const ionicGlobal = require('./ionic-global-a71608df.js');
16
16
  const animation = require('./animation-2bb33618.js');
17
- require('./index-306a7476.js');
17
+ const index = require('./index-306a7476.js');
18
18
  require('./framework-delegate-c0873a6f.js');
19
19
  require('./hardware-back-button-b67c8e75.js');
20
20
 
21
21
  /**
22
22
  * iOS Toast Enter Animation
23
23
  */
24
- const iosEnterAnimation = (baseEl, position) => {
24
+ const iosEnterAnimation = (baseEl, opts) => {
25
25
  const baseAnimation = animation.createAnimation();
26
26
  const wrapperAnimation = animation.createAnimation();
27
+ const { position, top, bottom } = opts;
27
28
  const root = helpers.getElementRoot(baseEl);
28
29
  const wrapperEl = root.querySelector('.toast-wrapper');
29
- const bottom = `calc(-10px - var(--ion-safe-area-bottom, 0px))`;
30
- const top = `calc(10px + var(--ion-safe-area-top, 0px))`;
31
30
  wrapperAnimation.addElement(wrapperEl);
32
31
  switch (position) {
33
32
  case 'top':
@@ -48,13 +47,12 @@ const iosEnterAnimation = (baseEl, position) => {
48
47
  /**
49
48
  * iOS Toast Leave Animation
50
49
  */
51
- const iosLeaveAnimation = (baseEl, position) => {
50
+ const iosLeaveAnimation = (baseEl, opts) => {
52
51
  const baseAnimation = animation.createAnimation();
53
52
  const wrapperAnimation = animation.createAnimation();
53
+ const { position, top, bottom } = opts;
54
54
  const root = helpers.getElementRoot(baseEl);
55
55
  const wrapperEl = root.querySelector('.toast-wrapper');
56
- const bottom = `calc(-10px - var(--ion-safe-area-bottom, 0px))`;
57
- const top = `calc(10px + var(--ion-safe-area-top, 0px))`;
58
56
  wrapperAnimation.addElement(wrapperEl);
59
57
  switch (position) {
60
58
  case 'top':
@@ -73,13 +71,12 @@ const iosLeaveAnimation = (baseEl, position) => {
73
71
  /**
74
72
  * MD Toast Enter Animation
75
73
  */
76
- const mdEnterAnimation = (baseEl, position) => {
74
+ const mdEnterAnimation = (baseEl, opts) => {
77
75
  const baseAnimation = animation.createAnimation();
78
76
  const wrapperAnimation = animation.createAnimation();
77
+ const { position, top, bottom } = opts;
79
78
  const root = helpers.getElementRoot(baseEl);
80
79
  const wrapperEl = root.querySelector('.toast-wrapper');
81
- const bottom = `calc(8px + var(--ion-safe-area-bottom, 0px))`;
82
- const top = `calc(8px + var(--ion-safe-area-top, 0px))`;
83
80
  wrapperAnimation.addElement(wrapperEl);
84
81
  switch (position) {
85
82
  case 'top':
@@ -111,21 +108,102 @@ const mdLeaveAnimation = (baseEl) => {
111
108
  return baseAnimation.easing('cubic-bezier(.36,.66,.04,1)').duration(300).addAnimation(wrapperAnimation);
112
109
  };
113
110
 
111
+ /**
112
+ * Calculate the CSS top and bottom position of the toast, to be used
113
+ * as starting points for the animation keyframes.
114
+ *
115
+ * Note that MD animates bottom-positioned toasts using style.bottom,
116
+ * which calculates from the bottom edge of the screen, while iOS uses
117
+ * translateY, which calculates from the top edge of the screen. This
118
+ * is why the bottom calculates differ slightly between modes.
119
+ *
120
+ * @param position The value of the toast's position prop.
121
+ * @param positionAnchor The element the toast should be anchored to,
122
+ * if applicable.
123
+ * @param mode The toast component's mode (md, ios, etc).
124
+ * @param toast A reference to the toast element itself.
125
+ */
126
+ function getAnimationPosition(position, positionAnchor, mode, toast) {
127
+ /**
128
+ * Start with a predefined offset from the edge the toast will be
129
+ * positioned relative to, whether on the screen or anchor element.
130
+ */
131
+ let offset;
132
+ if (mode === 'md') {
133
+ offset = 8;
134
+ }
135
+ else {
136
+ offset = position === 'top' ? 10 : -10;
137
+ }
138
+ /**
139
+ * If positionAnchor is defined, add in the distance from the target
140
+ * screen edge to the target anchor edge. For position="top", the
141
+ * bottom anchor edge is targeted. For position="bottom", the top
142
+ * anchor edge is targeted.
143
+ */
144
+ if (positionAnchor && index.win) {
145
+ warnIfAnchorIsHidden(positionAnchor, toast);
146
+ const box = positionAnchor.getBoundingClientRect();
147
+ if (position === 'top') {
148
+ offset += box.bottom;
149
+ }
150
+ else if (position === 'bottom') {
151
+ /**
152
+ * Just box.top is the distance from the top edge of the screen
153
+ * to the top edge of the anchor. We want to calculate from the
154
+ * bottom edge of the screen instead.
155
+ */
156
+ if (mode === 'md') {
157
+ offset += index.win.innerHeight - box.top;
158
+ }
159
+ else {
160
+ offset -= index.win.innerHeight - box.top;
161
+ }
162
+ }
163
+ /**
164
+ * We don't include safe area here because that should already be
165
+ * accounted for when checking the position of the anchor.
166
+ */
167
+ return {
168
+ top: `${offset}px`,
169
+ bottom: `${offset}px`,
170
+ };
171
+ }
172
+ else {
173
+ return {
174
+ top: `calc(${offset}px + var(--ion-safe-area-top, 0px))`,
175
+ bottom: mode === 'md'
176
+ ? `calc(${offset}px + var(--ion-safe-area-bottom, 0px))`
177
+ : `calc(${offset}px - var(--ion-safe-area-bottom, 0px))`,
178
+ };
179
+ }
180
+ }
181
+ /**
182
+ * If the anchor element is hidden, getBoundingClientRect()
183
+ * will return all 0s for it, which can cause unexpected
184
+ * results in the position calculation when animating.
185
+ */
186
+ function warnIfAnchorIsHidden(positionAnchor, toast) {
187
+ if (positionAnchor.offsetParent === null) {
188
+ index$1.printIonWarning('The positionAnchor element for ion-toast was found in the DOM, but appears to be hidden. This may lead to unexpected positioning of the toast.', toast);
189
+ }
190
+ }
191
+
114
192
  const toastIosCss = ":host{--border-width:0;--border-style:none;--border-color:initial;--box-shadow:none;--min-width:auto;--width:auto;--min-height:auto;--height:auto;--max-height:auto;--white-space:normal;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);contain:strict;z-index:1001;pointer-events:none}@supports (inset-inline-start: 0){:host{inset-inline-start:0}}@supports not (inset-inline-start: 0){:host{left:0}:host-context([dir=rtl]){left:unset;right:unset;right:0}@supports selector(:dir(rtl)){:host:dir(rtl){left:unset;right:unset;right:0}}}:host(.overlay-hidden){display:none}:host(.ion-color){--button-color:inherit;color:var(--ion-color-contrast)}:host(.ion-color) .toast-button-cancel{color:inherit}:host(.ion-color) .toast-wrapper{background:var(--ion-color-base)}.toast-wrapper{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}@supports (inset-inline-start: 0){.toast-wrapper{inset-inline-start:var(--start);inset-inline-end:var(--end)}}@supports not (inset-inline-start: 0){.toast-wrapper{left:var(--start);right:var(--end)}:host-context([dir=rtl]) .toast-wrapper{left:unset;right:unset;left:var(--end);right:var(--start)}[dir=rtl] .toast-wrapper{left:unset;right:unset;left:var(--end);right:var(--start)}@supports selector(:dir(rtl)){.toast-wrapper:dir(rtl){left:unset;right:unset;left:var(--end);right:var(--start)}}}.toast-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;pointer-events:auto;height:inherit;min-height:inherit;max-height:inherit;contain:content}.toast-layout-stacked .toast-container{-ms-flex-wrap:wrap;flex-wrap:wrap}.toast-layout-baseline .toast-content{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center}.toast-icon{-webkit-margin-start:16px;margin-inline-start:16px}.toast-message{-ms-flex:1;flex:1;white-space:var(--white-space)}.toast-button-group{display:-ms-flexbox;display:flex}.toast-layout-stacked .toast-button-group{-ms-flex-pack:end;justify-content:end;width:100%}.toast-button{border:0;outline:none;color:var(--button-color);z-index:0}.toast-icon,.toast-button-icon{font-size:1.4em}.toast-button-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}@media (any-hover: hover){.toast-button:hover{cursor:pointer}}:host{--background:var(--ion-color-step-50, #f2f2f2);--border-radius:14px;--button-color:var(--ion-color-primary, #3880ff);--color:var(--ion-color-step-850, #262626);--max-width:700px;--start:10px;--end:10px;font-size:14px}.toast-wrapper{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;display:block;position:absolute;z-index:10}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){:host(.toast-translucent) .toast-wrapper{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}:host(.ion-color.toast-translucent) .toast-wrapper{background:rgba(var(--ion-color-base-rgb), 0.8)}}.toast-wrapper.toast-top{-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0);top:0}.toast-wrapper.toast-middle{opacity:0.01}.toast-wrapper.toast-bottom{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);bottom:0}.toast-content{-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px;padding-top:15px;padding-bottom:15px}.toast-header{margin-bottom:2px;font-weight:500}.toast-button{-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px;padding-top:10px;padding-bottom:10px;height:44px;-webkit-transition:background-color, opacity 100ms linear;transition:background-color, opacity 100ms linear;border:0;background-color:transparent;font-family:var(--ion-font-family);font-size:17px;font-weight:500;overflow:hidden}.toast-button.ion-activated{opacity:0.4}@media (any-hover: hover){.toast-button:hover{opacity:0.6}}";
115
193
 
116
194
  const toastMdCss = ":host{--border-width:0;--border-style:none;--border-color:initial;--box-shadow:none;--min-width:auto;--width:auto;--min-height:auto;--height:auto;--max-height:auto;--white-space:normal;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);contain:strict;z-index:1001;pointer-events:none}@supports (inset-inline-start: 0){:host{inset-inline-start:0}}@supports not (inset-inline-start: 0){:host{left:0}:host-context([dir=rtl]){left:unset;right:unset;right:0}@supports selector(:dir(rtl)){:host:dir(rtl){left:unset;right:unset;right:0}}}:host(.overlay-hidden){display:none}:host(.ion-color){--button-color:inherit;color:var(--ion-color-contrast)}:host(.ion-color) .toast-button-cancel{color:inherit}:host(.ion-color) .toast-wrapper{background:var(--ion-color-base)}.toast-wrapper{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}@supports (inset-inline-start: 0){.toast-wrapper{inset-inline-start:var(--start);inset-inline-end:var(--end)}}@supports not (inset-inline-start: 0){.toast-wrapper{left:var(--start);right:var(--end)}:host-context([dir=rtl]) .toast-wrapper{left:unset;right:unset;left:var(--end);right:var(--start)}[dir=rtl] .toast-wrapper{left:unset;right:unset;left:var(--end);right:var(--start)}@supports selector(:dir(rtl)){.toast-wrapper:dir(rtl){left:unset;right:unset;left:var(--end);right:var(--start)}}}.toast-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;pointer-events:auto;height:inherit;min-height:inherit;max-height:inherit;contain:content}.toast-layout-stacked .toast-container{-ms-flex-wrap:wrap;flex-wrap:wrap}.toast-layout-baseline .toast-content{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center}.toast-icon{-webkit-margin-start:16px;margin-inline-start:16px}.toast-message{-ms-flex:1;flex:1;white-space:var(--white-space)}.toast-button-group{display:-ms-flexbox;display:flex}.toast-layout-stacked .toast-button-group{-ms-flex-pack:end;justify-content:end;width:100%}.toast-button{border:0;outline:none;color:var(--button-color);z-index:0}.toast-icon,.toast-button-icon{font-size:1.4em}.toast-button-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}@media (any-hover: hover){.toast-button:hover{cursor:pointer}}:host{--background:var(--ion-color-step-800, #333333);--border-radius:4px;--box-shadow:0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12);--button-color:var(--ion-color-primary, #3880ff);--color:var(--ion-color-step-50, #f2f2f2);--max-width:700px;--start:8px;--end:8px;font-size:14px}.toast-wrapper{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;display:block;position:absolute;opacity:0.01;z-index:10}.toast-content{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:14px;padding-bottom:14px}.toast-header{margin-bottom:2px;font-weight:500;line-height:20px}.toast-message{line-height:20px}.toast-layout-baseline .toast-button-group-start{-webkit-margin-start:8px;margin-inline-start:8px}.toast-layout-stacked .toast-button-group-start{-webkit-margin-end:8px;margin-inline-end:8px;margin-top:8px}.toast-layout-baseline .toast-button-group-end{-webkit-margin-end:8px;margin-inline-end:8px}.toast-layout-stacked .toast-button-group-end{-webkit-margin-end:8px;margin-inline-end:8px;margin-bottom:8px}.toast-button{-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px;padding-top:10px;padding-bottom:10px;position:relative;background-color:transparent;font-family:var(--ion-font-family);font-size:14px;font-weight:500;letter-spacing:0.84px;text-transform:uppercase;overflow:hidden}.toast-button-cancel{color:var(--ion-color-step-100, #e6e6e6)}.toast-button-icon-only{border-radius:50%;-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px;padding-top:9px;padding-bottom:9px;width:36px;height:36px}@media (any-hover: hover){.toast-button:hover{background-color:rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.08)}.toast-button-cancel:hover{background-color:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.08)}}";
117
195
 
118
196
  const Toast = class {
119
197
  constructor(hostRef) {
120
- index.registerInstance(this, hostRef);
121
- this.didPresent = index.createEvent(this, "ionToastDidPresent", 7);
122
- this.willPresent = index.createEvent(this, "ionToastWillPresent", 7);
123
- this.willDismiss = index.createEvent(this, "ionToastWillDismiss", 7);
124
- this.didDismiss = index.createEvent(this, "ionToastDidDismiss", 7);
125
- this.didPresentShorthand = index.createEvent(this, "didPresent", 7);
126
- this.willPresentShorthand = index.createEvent(this, "willPresent", 7);
127
- this.willDismissShorthand = index.createEvent(this, "willDismiss", 7);
128
- this.didDismissShorthand = index.createEvent(this, "didDismiss", 7);
198
+ index$2.registerInstance(this, hostRef);
199
+ this.didPresent = index$2.createEvent(this, "ionToastDidPresent", 7);
200
+ this.willPresent = index$2.createEvent(this, "ionToastWillPresent", 7);
201
+ this.willDismiss = index$2.createEvent(this, "ionToastWillDismiss", 7);
202
+ this.didDismiss = index$2.createEvent(this, "ionToastDidDismiss", 7);
203
+ this.didPresentShorthand = index$2.createEvent(this, "didPresent", 7);
204
+ this.willPresentShorthand = index$2.createEvent(this, "willPresent", 7);
205
+ this.willDismissShorthand = index$2.createEvent(this, "willDismiss", 7);
206
+ this.didDismissShorthand = index$2.createEvent(this, "didDismiss", 7);
129
207
  this.delegateController = overlays.createDelegateController(this);
130
208
  this.lockController = lockController.createLockController();
131
209
  this.triggerController = overlays.createTriggerController();
@@ -152,6 +230,7 @@ const Toast = class {
152
230
  this.message = undefined;
153
231
  this.keyboardClose = false;
154
232
  this.position = 'bottom';
233
+ this.positionAnchor = undefined;
155
234
  this.buttons = undefined;
156
235
  this.translucent = false;
157
236
  this.animated = true;
@@ -199,7 +278,19 @@ const Toast = class {
199
278
  async present() {
200
279
  const unlock = await this.lockController.lock();
201
280
  await this.delegateController.attachViewToDom();
202
- await overlays.present(this, 'toastEnter', iosEnterAnimation, mdEnterAnimation, this.position);
281
+ const { el, position } = this;
282
+ const anchor = this.getAnchorElement();
283
+ const animationPosition = getAnimationPosition(position, anchor, ionicGlobal.getIonMode(this), el);
284
+ /**
285
+ * Cache the calculated position of the toast, so we can re-use it
286
+ * in the dismiss animation.
287
+ */
288
+ this.lastPresentedPosition = animationPosition;
289
+ await overlays.present(this, 'toastEnter', iosEnterAnimation, mdEnterAnimation, {
290
+ position,
291
+ top: animationPosition.top,
292
+ bottom: animationPosition.bottom,
293
+ });
203
294
  /**
204
295
  * Content is revealed to screen readers after
205
296
  * the transition to avoid jank since this
@@ -221,15 +312,28 @@ const Toast = class {
221
312
  * Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
222
313
  */
223
314
  async dismiss(data, role) {
315
+ var _a, _b;
224
316
  const unlock = await this.lockController.lock();
225
- if (this.durationTimeout) {
226
- clearTimeout(this.durationTimeout);
317
+ const { durationTimeout, position, lastPresentedPosition } = this;
318
+ if (durationTimeout) {
319
+ clearTimeout(durationTimeout);
227
320
  }
228
- const dismissed = await overlays.dismiss(this, data, role, 'toastLeave', iosLeaveAnimation, mdLeaveAnimation, this.position);
321
+ const dismissed = await overlays.dismiss(this, data, role, 'toastLeave', iosLeaveAnimation, mdLeaveAnimation,
322
+ /**
323
+ * Fetch the cached position that was calculated back in the present
324
+ * animation. We always want to animate the dismiss from the same
325
+ * position the present stopped at, so the animation looks continuous.
326
+ */
327
+ {
328
+ position,
329
+ top: (_a = lastPresentedPosition === null || lastPresentedPosition === void 0 ? void 0 : lastPresentedPosition.top) !== null && _a !== void 0 ? _a : '',
330
+ bottom: (_b = lastPresentedPosition === null || lastPresentedPosition === void 0 ? void 0 : lastPresentedPosition.bottom) !== null && _b !== void 0 ? _b : '',
331
+ });
229
332
  if (dismissed) {
230
333
  this.delegateController.removeViewFromDom();
231
334
  this.revealContentToScreenReader = false;
232
335
  }
336
+ this.lastPresentedPosition = undefined;
233
337
  unlock();
234
338
  return dismissed;
235
339
  }
@@ -253,6 +357,37 @@ const Toast = class {
253
357
  : [];
254
358
  return buttons;
255
359
  }
360
+ /**
361
+ * Returns the element specified by the positionAnchor prop,
362
+ * or undefined if prop's value is an ID string and the element
363
+ * is not found in the DOM.
364
+ */
365
+ getAnchorElement() {
366
+ const { position, positionAnchor, el } = this;
367
+ if (position === 'middle' && positionAnchor !== undefined) {
368
+ index$1.printIonWarning('The positionAnchor property is ignored when using position="middle".', this.el);
369
+ return undefined;
370
+ }
371
+ if (typeof positionAnchor === 'string') {
372
+ /**
373
+ * If the anchor is defined as an ID, find the element.
374
+ * We do this on every present so the toast doesn't need
375
+ * to account for the surrounding DOM changing since the
376
+ * last time it was presented.
377
+ */
378
+ const foundEl = document.getElementById(positionAnchor);
379
+ if (foundEl === null) {
380
+ index$1.printIonWarning(`An anchor element with an ID of "${positionAnchor}" was not found in the DOM.`, el);
381
+ return undefined;
382
+ }
383
+ return foundEl;
384
+ }
385
+ if (positionAnchor instanceof HTMLElement) {
386
+ return positionAnchor;
387
+ }
388
+ index$1.printIonWarning('Invalid positionAnchor value:', positionAnchor, el);
389
+ return undefined;
390
+ }
256
391
  async buttonClick(button) {
257
392
  const role = button.role;
258
393
  if (overlays.isCancel(role)) {
@@ -290,7 +425,7 @@ const Toast = class {
290
425
  'toast-button-group': true,
291
426
  [`toast-button-group-${side}`]: true,
292
427
  };
293
- return (index.h("div", { class: buttonGroupsClasses }, buttons.map((b) => (index.h("button", Object.assign({}, b.htmlAttributes, { type: "button", class: buttonClass(b), tabIndex: 0, onClick: () => this.buttonClick(b), part: buttonPart(b) }), index.h("div", { class: "toast-button-inner" }, b.icon && (index.h("ion-icon", { "aria-hidden": "true", icon: b.icon, slot: b.text === undefined ? 'icon-only' : undefined, class: "toast-button-icon" })), b.text), mode === 'md' && (index.h("ion-ripple-effect", { type: b.icon !== undefined && b.text === undefined ? 'unbounded' : 'bounded' })))))));
428
+ return (index$2.h("div", { class: buttonGroupsClasses }, buttons.map((b) => (index$2.h("button", Object.assign({}, b.htmlAttributes, { type: "button", class: buttonClass(b), tabIndex: 0, onClick: () => this.buttonClick(b), part: buttonPart(b) }), index$2.h("div", { class: "toast-button-inner" }, b.icon && (index$2.h("ion-icon", { "aria-hidden": "true", icon: b.icon, slot: b.text === undefined ? 'icon-only' : undefined, class: "toast-button-icon" })), b.text), mode === 'md' && (index$2.h("ion-ripple-effect", { type: b.icon !== undefined && b.text === undefined ? 'unbounded' : 'bounded' })))))));
294
429
  }
295
430
  /**
296
431
  * Render the `message` property.
@@ -300,9 +435,9 @@ const Toast = class {
300
435
  renderToastMessage(key, ariaHidden = null) {
301
436
  const { customHTMLEnabled, message } = this;
302
437
  if (customHTMLEnabled) {
303
- return (index.h("div", { key: key, "aria-hidden": ariaHidden, class: "toast-message", part: "message", innerHTML: config.sanitizeDOMString(message) }));
438
+ return (index$2.h("div", { key: key, "aria-hidden": ariaHidden, class: "toast-message", part: "message", innerHTML: config.sanitizeDOMString(message) }));
304
439
  }
305
- return (index.h("div", { key: key, "aria-hidden": ariaHidden, class: "toast-message", part: "message" }, message));
440
+ return (index$2.h("div", { key: key, "aria-hidden": ariaHidden, class: "toast-message", part: "message" }, message));
306
441
  }
307
442
  /**
308
443
  * Render the `header` property.
@@ -310,7 +445,7 @@ const Toast = class {
310
445
  * @param ariaHidden - If "true" then content will be hidden from screen readers.
311
446
  */
312
447
  renderHeader(key, ariaHidden = null) {
313
- return (index.h("div", { key: key, class: "toast-header", "aria-hidden": ariaHidden, part: "header" }, this.header));
448
+ return (index$2.h("div", { key: key, class: "toast-header", "aria-hidden": ariaHidden, part: "header" }, this.header));
314
449
  }
315
450
  render() {
316
451
  const { layout, el, revealContentToScreenReader, header, message } = this;
@@ -330,11 +465,11 @@ const Toast = class {
330
465
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
331
466
  index$1.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);
332
467
  }
333
- return (index.h(index.Host, Object.assign({ tabindex: "-1" }, this.htmlAttributes, { style: {
468
+ return (index$2.h(index$2.Host, Object.assign({ tabindex: "-1" }, this.htmlAttributes, { style: {
334
469
  zIndex: `${60000 + this.overlayIndex}`,
335
- }, class: theme.createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, theme.getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), index.h("div", { class: wrapperClass }, index.h("div", { class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (index.h("ion-icon", { class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), index.h("div", { 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')))));
470
+ }, class: theme.createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, theme.getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), index$2.h("div", { class: wrapperClass }, index$2.h("div", { class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (index$2.h("ion-icon", { class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), index$2.h("div", { 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')))));
336
471
  }
337
- get el() { return index.getElement(this); }
472
+ get el() { return index$2.getElement(this); }
338
473
  static get watchers() { return {
339
474
  "isOpen": ["onIsOpenChange"],
340
475
  "trigger": ["triggerChanged"]
@@ -5,15 +5,15 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-6f887430.js');
8
+ const index = require('./index-14a4821e.js');
9
9
  const formController = require('./form-controller-5e223b54.js');
10
10
  const helpers = require('./helpers-ea4ccbcb.js');
11
11
  const index$2 = require('./index-cc7dfb7c.js');
12
- const haptic = require('./haptic-c5f6b4d5.js');
12
+ const haptic = require('./haptic-678abc9f.js');
13
13
  const dir = require('./dir-f1e0ca26.js');
14
14
  const theme = require('./theme-fbc56b3b.js');
15
15
  const index$1 = require('./index-d8d1fc0b.js');
16
- const ionicGlobal = require('./ionic-global-14a0604b.js');
16
+ const ionicGlobal = require('./ionic-global-a71608df.js');
17
17
  require('./capacitor-2ffba62a.js');
18
18
  require('./index-306a7476.js');
19
19
 
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const index = require('./index-6f887430.js');
6
+ const index = require('./index-14a4821e.js');
7
7
 
8
8
  // TODO(FW-2832): types
9
9
  class Config {