@ionic/core 7.4.3-dev.11696514206.1c9669de → 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 (378) 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/index4.js +15 -14
  5. package/components/ion-datetime-button.js +4 -4
  6. package/components/ion-datetime.js +3 -3
  7. package/components/ion-menu.js +12 -0
  8. package/components/ion-nav.js +1 -0
  9. package/components/ion-router.js +3 -0
  10. package/components/ion-select.js +1 -1
  11. package/components/ion-toast.js +150 -13
  12. package/components/ios.transition.js +1 -0
  13. package/components/overlays.js +1 -0
  14. package/dist/cjs/{app-globals-56164d1a.js → app-globals-84b6a756.js} +1 -1
  15. package/dist/cjs/{button-active-32f15660.js → button-active-f2147e85.js} +2 -2
  16. package/dist/cjs/{data-db832785.js → data-c8d21093.js} +96 -22
  17. package/dist/cjs/{haptic-c5f6b4d5.js → haptic-678abc9f.js} +1 -0
  18. package/dist/cjs/{index-6f887430.js → index-14a4821e.js} +47 -6
  19. package/dist/cjs/{index-7c1ae0f0.js → index-97a3eade.js} +16 -15
  20. package/dist/cjs/{index-b183138a.js → index-e760ab42.js} +3 -3
  21. package/dist/cjs/index.cjs.js +8 -8
  22. package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
  23. package/dist/cjs/ion-action-sheet.cjs.entry.js +5 -5
  24. package/dist/cjs/ion-alert.cjs.entry.js +13 -5
  25. package/dist/cjs/ion-app_8.cjs.entry.js +4 -4
  26. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  27. package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
  28. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  29. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
  30. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  31. package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
  32. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
  33. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  34. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  35. package/dist/cjs/ion-datetime-button.cjs.entry.js +6 -6
  36. package/dist/cjs/ion-datetime_3.cjs.entry.js +7 -7
  37. package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
  38. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  39. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
  40. package/dist/cjs/ion-input.cjs.entry.js +2 -2
  41. package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
  42. package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
  43. package/dist/cjs/ion-loading.cjs.entry.js +3 -3
  44. package/dist/cjs/ion-menu_3.cjs.entry.js +19 -8
  45. package/dist/cjs/ion-modal.cjs.entry.js +4 -4
  46. package/dist/cjs/ion-nav_2.cjs.entry.js +4 -3
  47. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +3 -3
  48. package/dist/cjs/ion-picker-internal.cjs.entry.js +1 -1
  49. package/dist/cjs/ion-popover.cjs.entry.js +4 -4
  50. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  51. package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
  52. package/dist/cjs/ion-range.cjs.entry.js +2 -2
  53. package/dist/cjs/ion-refresher_2.cjs.entry.js +3 -3
  54. package/dist/cjs/ion-reorder_2.cjs.entry.js +3 -3
  55. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  56. package/dist/cjs/ion-route_4.cjs.entry.js +5 -2
  57. package/dist/cjs/ion-searchbar.cjs.entry.js +2 -2
  58. package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
  59. package/dist/cjs/ion-select_3.cjs.entry.js +4 -4
  60. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  61. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  62. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
  63. package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
  64. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  65. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  66. package/dist/cjs/ion-toast.cjs.entry.js +168 -33
  67. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  68. package/dist/cjs/{ionic-global-14a0604b.js → ionic-global-a71608df.js} +1 -1
  69. package/dist/cjs/ionic.cjs.js +5 -5
  70. package/dist/cjs/{ios.transition-4b93903d.js → ios.transition-1fec34e9.js} +3 -2
  71. package/dist/cjs/loader.cjs.js +4 -4
  72. package/dist/cjs/{md.transition-79f3a215.js → md.transition-cdc3f16f.js} +2 -2
  73. package/dist/cjs/{overlays-d3a13e61.js → overlays-9cab437c.js} +2 -1
  74. package/dist/cjs/{status-tap-e2e45ff8.js → status-tap-8c22e017.js} +1 -1
  75. package/dist/collection/collection-manifest.json +2 -2
  76. package/dist/collection/components/alert/alert.js +8 -0
  77. package/dist/collection/components/alert/test/a11y/alert.e2e.js +11 -0
  78. package/dist/collection/components/datetime/datetime.js +12 -6
  79. package/dist/collection/components/datetime/test/hour-cycle/datetime.e2e.js +14 -0
  80. package/dist/collection/components/datetime/utils/data.js +33 -7
  81. package/dist/collection/components/datetime/utils/format.js +27 -10
  82. package/dist/collection/components/datetime/utils/helpers.js +37 -5
  83. package/dist/collection/components/datetime-button/datetime-button.js +4 -4
  84. package/dist/collection/components/menu/menu.js +12 -0
  85. package/dist/collection/components/nav/nav.js +1 -0
  86. package/dist/collection/components/router/router.js +2 -0
  87. package/dist/collection/components/router/utils/path.js +1 -0
  88. package/dist/collection/components/select/select.js +1 -1
  89. package/dist/collection/components/toast/animations/ios.enter.js +2 -3
  90. package/dist/collection/components/toast/animations/ios.leave.js +2 -3
  91. package/dist/collection/components/toast/animations/md.enter.js +2 -3
  92. package/dist/collection/components/toast/animations/utils.js +85 -0
  93. package/dist/collection/components/toast/test/position-anchor/toast.e2e.js +45 -0
  94. package/dist/collection/components/toast/toast.js +91 -9
  95. package/dist/collection/utils/menu-controller/index.js +15 -14
  96. package/dist/collection/utils/native/haptic.js +1 -0
  97. package/dist/collection/utils/overlays.js +1 -0
  98. package/dist/collection/utils/transition/ios.transition.js +1 -0
  99. package/dist/docs.json +75 -12
  100. package/dist/esm/{app-globals-8ae762aa.js → app-globals-df292a32.js} +1 -1
  101. package/dist/esm/{button-active-513e9fff.js → button-active-3dd473a1.js} +2 -2
  102. package/dist/esm/{data-009dbf15.js → data-44d9e816.js} +96 -22
  103. package/dist/esm/{haptic-6447af60.js → haptic-1243b917.js} +1 -0
  104. package/dist/esm/{index-c6640d16.js → index-3d6aefa2.js} +16 -15
  105. package/dist/esm/{index-87684bba.js → index-9f5eacab.js} +3 -3
  106. package/dist/esm/{index-2d388930.js → index-cb894020.js} +47 -6
  107. package/dist/esm/index.js +8 -8
  108. package/dist/esm/ion-accordion_2.entry.js +2 -2
  109. package/dist/esm/ion-action-sheet.entry.js +5 -5
  110. package/dist/esm/ion-alert.entry.js +13 -5
  111. package/dist/esm/ion-app_8.entry.js +4 -4
  112. package/dist/esm/ion-avatar_3.entry.js +2 -2
  113. package/dist/esm/ion-back-button.entry.js +2 -2
  114. package/dist/esm/ion-backdrop.entry.js +2 -2
  115. package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
  116. package/dist/esm/ion-button_2.entry.js +2 -2
  117. package/dist/esm/ion-card_5.entry.js +2 -2
  118. package/dist/esm/ion-checkbox.entry.js +2 -2
  119. package/dist/esm/ion-chip.entry.js +2 -2
  120. package/dist/esm/ion-col_3.entry.js +2 -2
  121. package/dist/esm/ion-datetime-button.entry.js +6 -6
  122. package/dist/esm/ion-datetime_3.entry.js +7 -7
  123. package/dist/esm/ion-fab_3.entry.js +2 -2
  124. package/dist/esm/ion-img.entry.js +2 -2
  125. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
  126. package/dist/esm/ion-input.entry.js +2 -2
  127. package/dist/esm/ion-item-option_3.entry.js +2 -2
  128. package/dist/esm/ion-item_8.entry.js +2 -2
  129. package/dist/esm/ion-loading.entry.js +3 -3
  130. package/dist/esm/ion-menu_3.entry.js +17 -6
  131. package/dist/esm/ion-modal.entry.js +4 -4
  132. package/dist/esm/ion-nav_2.entry.js +4 -3
  133. package/dist/esm/ion-picker-column-internal.entry.js +3 -3
  134. package/dist/esm/ion-picker-internal.entry.js +1 -1
  135. package/dist/esm/ion-popover.entry.js +4 -4
  136. package/dist/esm/ion-progress-bar.entry.js +2 -2
  137. package/dist/esm/ion-radio_2.entry.js +2 -2
  138. package/dist/esm/ion-range.entry.js +2 -2
  139. package/dist/esm/ion-refresher_2.entry.js +3 -3
  140. package/dist/esm/ion-reorder_2.entry.js +3 -3
  141. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  142. package/dist/esm/ion-route_4.entry.js +5 -2
  143. package/dist/esm/ion-searchbar.entry.js +2 -2
  144. package/dist/esm/ion-segment_2.entry.js +2 -2
  145. package/dist/esm/ion-select_3.entry.js +4 -4
  146. package/dist/esm/ion-spinner.entry.js +2 -2
  147. package/dist/esm/ion-split-pane.entry.js +2 -2
  148. package/dist/esm/ion-tab-bar_2.entry.js +2 -2
  149. package/dist/esm/ion-tab_2.entry.js +1 -1
  150. package/dist/esm/ion-text.entry.js +2 -2
  151. package/dist/esm/ion-textarea.entry.js +2 -2
  152. package/dist/esm/ion-toast.entry.js +152 -17
  153. package/dist/esm/ion-toggle.entry.js +3 -3
  154. package/dist/esm/{ionic-global-b3fc28dd.js → ionic-global-63a8d8c9.js} +1 -1
  155. package/dist/esm/ionic.js +6 -6
  156. package/dist/esm/{ios.transition-81e1aed6.js → ios.transition-8ad209ea.js} +3 -2
  157. package/dist/esm/loader.js +5 -5
  158. package/dist/esm/{md.transition-5becd8b5.js → md.transition-43193ea7.js} +2 -2
  159. package/dist/esm/{overlays-8fc6656c.js → overlays-753933fc.js} +2 -1
  160. package/dist/esm/{status-tap-c5af0dba.js → status-tap-73e982b6.js} +1 -1
  161. package/dist/esm-es5/app-globals-df292a32.js +4 -0
  162. package/dist/esm-es5/{button-active-513e9fff.js → button-active-3dd473a1.js} +1 -1
  163. package/dist/esm-es5/data-44d9e816.js +4 -0
  164. package/dist/esm-es5/index-3d6aefa2.js +4 -0
  165. package/dist/esm-es5/{index-87684bba.js → index-9f5eacab.js} +1 -1
  166. package/dist/esm-es5/index.js +1 -1
  167. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  168. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  169. package/dist/esm-es5/ion-alert.entry.js +1 -1
  170. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  171. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  172. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  173. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  174. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  175. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  176. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  177. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  178. package/dist/esm-es5/ion-chip.entry.js +1 -1
  179. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  180. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  181. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  182. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  183. package/dist/esm-es5/ion-img.entry.js +1 -1
  184. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  185. package/dist/esm-es5/ion-input.entry.js +1 -1
  186. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  187. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  188. package/dist/esm-es5/ion-loading.entry.js +1 -1
  189. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  190. package/dist/esm-es5/ion-modal.entry.js +1 -1
  191. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  192. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  193. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  194. package/dist/esm-es5/ion-popover.entry.js +1 -1
  195. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  196. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  197. package/dist/esm-es5/ion-range.entry.js +1 -1
  198. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  199. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  200. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  201. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  202. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  203. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  204. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  205. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  206. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  207. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  208. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  209. package/dist/esm-es5/ion-text.entry.js +1 -1
  210. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  211. package/dist/esm-es5/ion-toast.entry.js +1 -1
  212. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  213. package/dist/esm-es5/{ionic-global-b3fc28dd.js → ionic-global-63a8d8c9.js} +1 -1
  214. package/dist/esm-es5/ionic.js +1 -1
  215. package/dist/esm-es5/{ios.transition-81e1aed6.js → ios.transition-8ad209ea.js} +1 -1
  216. package/dist/esm-es5/loader.js +1 -1
  217. package/dist/esm-es5/{md.transition-5becd8b5.js → md.transition-43193ea7.js} +1 -1
  218. package/dist/esm-es5/{overlays-8fc6656c.js → overlays-753933fc.js} +1 -1
  219. package/dist/esm-es5/{status-tap-c5af0dba.js → status-tap-73e982b6.js} +1 -1
  220. package/dist/html.html-data.json +11 -1
  221. package/dist/ionic/index.esm.js +1 -1
  222. package/dist/ionic/ionic.esm.js +1 -1
  223. package/dist/ionic/ionic.js +1 -1
  224. package/dist/ionic/{p-5c8c9748.system.entry.js → p-007168b8.system.entry.js} +1 -1
  225. package/dist/ionic/{p-ce7a651e.js → p-00cf2d6c.js} +1 -1
  226. package/dist/ionic/{p-6dfeeadf.entry.js → p-018ad59f.entry.js} +1 -1
  227. package/dist/ionic/{p-e89abe38.system.entry.js → p-037e2738.system.entry.js} +1 -1
  228. package/dist/ionic/{p-116641fe.entry.js → p-0793ebfd.entry.js} +1 -1
  229. package/dist/ionic/{p-972763df.js → p-0d198537.js} +1 -1
  230. package/dist/ionic/{p-37456282.system.entry.js → p-0e024f14.system.entry.js} +1 -1
  231. package/dist/ionic/{p-60838ce3.system.entry.js → p-10fcb3a3.system.entry.js} +1 -1
  232. package/dist/ionic/p-11eedecb.system.entry.js +4 -0
  233. package/dist/ionic/{p-f547e62f.entry.js → p-138e06de.entry.js} +1 -1
  234. package/dist/ionic/p-17240d90.js +4 -0
  235. package/dist/ionic/{p-7e9e16bf.system.entry.js → p-17dd92fe.system.entry.js} +1 -1
  236. package/dist/ionic/p-26c9b9ba.entry.js +4 -0
  237. package/dist/ionic/{p-6ca0e4b2.system.entry.js → p-28678af4.system.entry.js} +1 -1
  238. package/dist/ionic/{p-de676d36.system.entry.js → p-2dc6526e.system.entry.js} +1 -1
  239. package/dist/ionic/{p-c4d08d6d.system.entry.js → p-37fc0d22.system.entry.js} +1 -1
  240. package/dist/ionic/{p-42a7b112.entry.js → p-3bf7c0dc.entry.js} +1 -1
  241. package/dist/ionic/{p-e57a38f3.entry.js → p-3db27dec.entry.js} +1 -1
  242. package/dist/ionic/{p-83b7bbf9.entry.js → p-3dce88bf.entry.js} +1 -1
  243. package/dist/ionic/{p-ce24ddd7.system.entry.js → p-3e6b0330.system.entry.js} +1 -1
  244. package/dist/ionic/{p-3ae2faf0.entry.js → p-414a1506.entry.js} +1 -1
  245. package/dist/ionic/{p-13a91505.entry.js → p-454048da.entry.js} +1 -1
  246. package/dist/ionic/{p-c7fca267.entry.js → p-45e527e7.entry.js} +1 -1
  247. package/dist/ionic/{p-13ce151b.entry.js → p-469d6a98.entry.js} +1 -1
  248. package/dist/ionic/{p-a6d8476b.system.entry.js → p-47242aad.system.entry.js} +1 -1
  249. package/dist/ionic/p-4965f2d7.entry.js +4 -0
  250. package/dist/ionic/{p-88ad9cb6.entry.js → p-4c20879c.entry.js} +1 -1
  251. package/dist/ionic/{p-8fdd4a2f.system.js → p-4d6ea5f9.system.js} +1 -1
  252. package/dist/ionic/{p-08c5b9f4.system.entry.js → p-4e1b00c5.system.entry.js} +1 -1
  253. package/dist/ionic/{p-33630008.system.entry.js → p-4e76e29a.system.entry.js} +1 -1
  254. package/dist/ionic/{p-55b99166.entry.js → p-50327060.entry.js} +1 -1
  255. package/dist/ionic/{p-e24630f9.entry.js → p-50d83224.entry.js} +1 -1
  256. package/dist/ionic/p-534a1cbc.system.js +4 -0
  257. package/dist/ionic/{p-5e2dc8e0.js → p-54b06917.js} +1 -1
  258. package/dist/ionic/{p-4eab1bb4.entry.js → p-57743e20.entry.js} +1 -1
  259. package/dist/ionic/p-57c5eca2.system.js +4 -0
  260. package/dist/ionic/p-5aa99fb8.entry.js +4 -0
  261. package/dist/ionic/{p-ec102360.system.js → p-5c24c115.system.js} +1 -1
  262. package/dist/ionic/{p-048d7153.system.entry.js → p-5f13271c.system.entry.js} +1 -1
  263. package/dist/ionic/{p-cd675d89.system.entry.js → p-5fd0a13e.system.entry.js} +1 -1
  264. package/dist/ionic/p-6641d7fa.js +4 -0
  265. package/dist/ionic/{p-8b79baf0.entry.js → p-68b405cc.entry.js} +1 -1
  266. package/dist/ionic/{p-bf9b1560.entry.js → p-6a49b57e.entry.js} +1 -1
  267. package/dist/ionic/{p-6522a762.system.entry.js → p-6c7d61b9.system.entry.js} +1 -1
  268. package/dist/ionic/{p-ebaeeee8.entry.js → p-6ce891b2.entry.js} +1 -1
  269. package/dist/ionic/{p-ee6d9730.entry.js → p-6d22c339.entry.js} +1 -1
  270. package/dist/ionic/{p-6bc9c436.system.entry.js → p-6f13b971.system.entry.js} +1 -1
  271. package/dist/ionic/{p-626f7142.system.entry.js → p-6f3099b6.system.entry.js} +1 -1
  272. package/dist/ionic/p-73eba881.system.js +4 -0
  273. package/dist/ionic/p-73f7e775.js +4 -0
  274. package/dist/ionic/{p-39715fcf.entry.js → p-7887ac7a.entry.js} +1 -1
  275. package/dist/ionic/{p-6b7e74ba.js → p-7a590a28.js} +1 -1
  276. package/dist/ionic/p-7b4e392c.js +4 -0
  277. package/dist/ionic/{p-de0f1af2.system.entry.js → p-7fd0f045.system.entry.js} +1 -1
  278. package/dist/ionic/{p-7a3caa4e.system.js → p-82c72668.system.js} +1 -1
  279. package/dist/ionic/{p-62428e04.system.entry.js → p-84549737.system.entry.js} +1 -1
  280. package/dist/ionic/{p-be321bb6.system.entry.js → p-8957b1de.system.entry.js} +1 -1
  281. package/dist/ionic/{p-6ba07931.system.entry.js → p-89e3d112.system.entry.js} +1 -1
  282. package/dist/ionic/{p-5e43aa8b.js → p-8a289322.js} +1 -1
  283. package/dist/ionic/{p-b5637aeb.system.entry.js → p-8f245bb0.system.entry.js} +1 -1
  284. package/dist/ionic/{p-70ab8b73.js → p-903c36fe.js} +1 -1
  285. package/dist/ionic/{p-04ef1ba6.entry.js → p-9201a4d3.entry.js} +1 -1
  286. package/dist/ionic/{p-a1a2dd4d.entry.js → p-92d72ad8.entry.js} +1 -1
  287. package/dist/ionic/{p-63a73b69.system.entry.js → p-9736406a.system.entry.js} +1 -1
  288. package/dist/ionic/{p-4616f20a.system.entry.js → p-98b108e2.system.entry.js} +1 -1
  289. package/dist/ionic/{p-03e2e541.system.entry.js → p-9a6f6789.system.entry.js} +1 -1
  290. package/dist/ionic/{p-3730f493.entry.js → p-9b796813.entry.js} +1 -1
  291. package/dist/ionic/{p-270aa06b.entry.js → p-9bd70bd2.entry.js} +1 -1
  292. package/dist/ionic/p-9e5bdf1a.entry.js +4 -0
  293. package/dist/ionic/{p-700a2cb1.system.entry.js → p-9e91c83f.system.entry.js} +1 -1
  294. package/dist/ionic/{p-93616477.system.js → p-9f9efb31.system.js} +1 -1
  295. package/dist/ionic/{p-cc3aa152.entry.js → p-a1d7f4ef.entry.js} +1 -1
  296. package/dist/ionic/{p-65a4c12f.system.entry.js → p-a39e9a0b.system.entry.js} +1 -1
  297. package/dist/ionic/{p-f920f5ca.entry.js → p-a3ea02d0.entry.js} +1 -1
  298. package/dist/ionic/{p-abf426cd.system.entry.js → p-a4e95028.system.entry.js} +1 -1
  299. package/dist/ionic/{p-ea88031d.entry.js → p-a51f5932.entry.js} +1 -1
  300. package/dist/ionic/{p-4912b933.entry.js → p-a7361c85.entry.js} +1 -1
  301. package/dist/ionic/{p-486b567b.system.entry.js → p-a9b13f18.system.entry.js} +1 -1
  302. package/dist/ionic/{p-0bd3cc92.entry.js → p-a9d7f984.entry.js} +1 -1
  303. package/dist/ionic/{p-53bbd357.system.entry.js → p-aa4b083c.system.entry.js} +1 -1
  304. package/dist/ionic/{p-6bbf2815.system.entry.js → p-abfd1f2e.system.entry.js} +1 -1
  305. package/dist/ionic/p-ac32f6ce.entry.js +4 -0
  306. package/dist/ionic/{p-5e84b718.system.entry.js → p-afafb6bf.system.entry.js} +1 -1
  307. package/dist/ionic/{p-918d5f19.system.js → p-b10f05b1.system.js} +1 -1
  308. package/dist/ionic/p-b1cf77e0.system.entry.js +4 -0
  309. package/dist/ionic/{p-b49fe110.entry.js → p-b2397f35.entry.js} +1 -1
  310. package/dist/ionic/{p-1bce805b.entry.js → p-b27772bf.entry.js} +1 -1
  311. package/dist/ionic/{p-568fec78.entry.js → p-b4c0e9ee.entry.js} +1 -1
  312. package/dist/ionic/{p-bf8224f4.system.entry.js → p-b4daca17.system.entry.js} +1 -1
  313. package/dist/ionic/{p-7e46b6ab.entry.js → p-b7c158f8.entry.js} +1 -1
  314. package/dist/ionic/p-b8c3f071.system.js +4 -0
  315. package/dist/ionic/{p-b0dd4f33.entry.js → p-b9e2aede.entry.js} +1 -1
  316. package/dist/ionic/{p-8e28945a.system.entry.js → p-c09e1da9.system.entry.js} +1 -1
  317. package/dist/ionic/{p-4a1ac160.system.entry.js → p-c215a78a.system.entry.js} +1 -1
  318. package/dist/ionic/{p-d8b2c214.entry.js → p-c42d0ea3.entry.js} +1 -1
  319. package/dist/ionic/{p-73f50e29.system.js → p-c46fba6d.system.js} +1 -1
  320. package/dist/ionic/{p-c5729044.system.entry.js → p-c48d177b.system.entry.js} +1 -1
  321. package/dist/ionic/{p-3e5676b7.entry.js → p-ca655a7c.entry.js} +1 -1
  322. package/dist/ionic/{p-20e5eb3e.entry.js → p-d2a278b1.entry.js} +1 -1
  323. package/dist/ionic/{p-bfac43d7.system.entry.js → p-d90f0779.system.entry.js} +1 -1
  324. package/dist/ionic/{p-95f8cb47.entry.js → p-da024961.entry.js} +1 -1
  325. package/dist/ionic/{p-327fc1bf.entry.js → p-dd0c00ed.entry.js} +1 -1
  326. package/dist/ionic/{p-82f58c25.system.entry.js → p-e40b2cb4.system.entry.js} +1 -1
  327. package/dist/ionic/{p-82da795c.system.entry.js → p-e62d80e5.system.entry.js} +1 -1
  328. package/dist/ionic/{p-410beeda.system.entry.js → p-e6d2cca2.system.entry.js} +1 -1
  329. package/dist/ionic/{p-00aed720.system.js → p-ec25d547.system.js} +1 -1
  330. package/dist/ionic/{p-f0dcf99b.entry.js → p-ec29338e.entry.js} +1 -1
  331. package/dist/ionic/{p-1c406ee0.system.entry.js → p-ec451ef7.system.entry.js} +1 -1
  332. package/dist/ionic/{p-f9015336.js → p-ee8881d0.js} +1 -1
  333. package/dist/ionic/{p-a720dc73.entry.js → p-eff1ce2e.entry.js} +1 -1
  334. package/dist/ionic/{p-76e8336d.system.entry.js → p-f37d6823.system.entry.js} +1 -1
  335. package/dist/ionic/{p-c14fb011.system.entry.js → p-f6f4d4bb.system.entry.js} +1 -1
  336. package/dist/ionic/{p-cd12dcd9.entry.js → p-fa06c407.entry.js} +1 -1
  337. package/dist/ionic/{p-7dc0ee11.system.entry.js → p-fbc7995a.system.entry.js} +1 -1
  338. package/dist/ionic/{p-95e6d10b.system.js → p-fe813df6.system.js} +1 -1
  339. package/dist/types/components/datetime/datetime-interface.d.ts +1 -0
  340. package/dist/types/components/datetime/datetime.d.ts +2 -2
  341. package/dist/types/components/datetime/utils/data.d.ts +3 -3
  342. package/dist/types/components/datetime/utils/format.d.ts +3 -3
  343. package/dist/types/components/datetime/utils/helpers.d.ts +15 -1
  344. package/dist/types/components/menu/menu-interface.d.ts +1 -0
  345. package/dist/types/components/toast/animations/ios.enter.d.ts +2 -1
  346. package/dist/types/components/toast/animations/ios.leave.d.ts +2 -2
  347. package/dist/types/components/toast/animations/md.enter.d.ts +2 -1
  348. package/dist/types/components/toast/animations/utils.d.ts +18 -0
  349. package/dist/types/components/toast/toast-interface.d.ts +11 -0
  350. package/dist/types/components/toast/toast.d.ts +21 -1
  351. package/dist/types/components.d.ts +16 -8
  352. package/dist/types/utils/menu-controller/index.d.ts +1 -0
  353. package/hydrate/index.js +292 -54
  354. package/package.json +6 -7
  355. package/dist/collection/components/menu/test/multiple/menu.e2e.js +0 -56
  356. package/dist/esm-es5/app-globals-8ae762aa.js +0 -4
  357. package/dist/esm-es5/data-009dbf15.js +0 -4
  358. package/dist/esm-es5/index-c6640d16.js +0 -4
  359. package/dist/ionic/p-05f10762.entry.js +0 -4
  360. package/dist/ionic/p-1406c382.system.entry.js +0 -4
  361. package/dist/ionic/p-1a36bf45.system.entry.js +0 -4
  362. package/dist/ionic/p-2309dba2.system.js +0 -4
  363. package/dist/ionic/p-27614d55.entry.js +0 -4
  364. package/dist/ionic/p-44ef7224.system.js +0 -4
  365. package/dist/ionic/p-6edbc09b.system.js +0 -4
  366. package/dist/ionic/p-7129d04e.entry.js +0 -4
  367. package/dist/ionic/p-72a1cbc7.js +0 -4
  368. package/dist/ionic/p-78a293a5.js +0 -4
  369. package/dist/ionic/p-7cea4407.js +0 -4
  370. package/dist/ionic/p-7cfd253c.js +0 -4
  371. package/dist/ionic/p-90d892fd.entry.js +0 -4
  372. package/dist/ionic/p-ad90d46b.system.js +0 -4
  373. package/dist/ionic/p-b3462f01.entry.js +0 -4
  374. /package/dist/esm-es5/{haptic-6447af60.js → haptic-1243b917.js} +0 -0
  375. /package/dist/esm-es5/{index-2d388930.js → index-cb894020.js} +0 -0
  376. /package/dist/ionic/{p-91546be9.system.js → p-26fbffd4.system.js} +0 -0
  377. /package/dist/ionic/{p-14d7b7e2.system.js → p-b4b4bb29.system.js} +0 -0
  378. /package/dist/ionic/{p-bb6f38ed.js → p-b923f3d7.js} +0 -0
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, e as readTask, w as writeTask, h, f as getElement, H as Host } from './index-2d388930.js';
5
- import { b as getIonMode } from './ionic-global-b3fc28dd.js';
4
+ import { r as registerInstance, e as readTask, w as writeTask, h, f as getElement, H as Host } from './index-cb894020.js';
5
+ import { b as getIonMode } from './ionic-global-63a8d8c9.js';
6
6
 
7
7
  const rippleEffectCss = ":host{left:0;right:0;top:0;bottom:0;position:absolute;contain:strict;pointer-events:none}:host(.unbounded){contain:layout size style}.ripple-effect{border-radius:50%;position:absolute;background-color:currentColor;color:inherit;contain:strict;opacity:0;-webkit-animation:225ms rippleAnimation forwards, 75ms fadeInAnimation forwards;animation:225ms rippleAnimation forwards, 75ms fadeInAnimation forwards;will-change:transform, opacity;pointer-events:none}.fade-out{-webkit-transform:translate(var(--translate-end)) scale(var(--final-scale, 1));transform:translate(var(--translate-end)) scale(var(--final-scale, 1));-webkit-animation:150ms fadeOutAnimation forwards;animation:150ms fadeOutAnimation forwards}@-webkit-keyframes rippleAnimation{from{-webkit-animation-timing-function:cubic-bezier(0.4, 0, 0.2, 1);animation-timing-function:cubic-bezier(0.4, 0, 0.2, 1);-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:translate(var(--translate-end)) scale(var(--final-scale, 1));transform:translate(var(--translate-end)) scale(var(--final-scale, 1))}}@keyframes rippleAnimation{from{-webkit-animation-timing-function:cubic-bezier(0.4, 0, 0.2, 1);animation-timing-function:cubic-bezier(0.4, 0, 0.2, 1);-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:translate(var(--translate-end)) scale(var(--final-scale, 1));transform:translate(var(--translate-end)) scale(var(--final-scale, 1))}}@-webkit-keyframes fadeInAnimation{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:0.16}}@keyframes fadeInAnimation{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:0.16}}@-webkit-keyframes fadeOutAnimation{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0.16}to{opacity:0}}@keyframes fadeOutAnimation{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0.16}to{opacity:0}}";
8
8
 
@@ -1,10 +1,10 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, d as createEvent, f as getElement, h, H as Host } from './index-2d388930.js';
4
+ import { r as registerInstance, d as createEvent, f as getElement, h, H as Host } from './index-cb894020.js';
5
5
  import { c as componentOnReady, q as debounce } from './helpers-3379ba19.js';
6
6
  import { o as openURL, c as createColorClasses } from './theme-17531cdf.js';
7
- import { b as getIonMode } from './ionic-global-b3fc28dd.js';
7
+ import { b as getIonMode } from './ionic-global-63a8d8c9.js';
8
8
 
9
9
  const Route = class {
10
10
  constructor(hostRef) {
@@ -105,6 +105,7 @@ const chainToSegments = (chain) => {
105
105
  for (const route of chain) {
106
106
  for (const segment of route.segments) {
107
107
  if (segment[0] === ':') {
108
+ // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
108
109
  const param = route.params && route.params[segment.slice(1)];
109
110
  if (!param) {
110
111
  return null;
@@ -800,12 +801,14 @@ const Router = class {
800
801
  }
801
802
  const routes = readRoutes(this.el);
802
803
  const fromChain = findChainForSegments(from, routes);
804
+ // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
803
805
  const beforeLeaveHook = fromChain && fromChain[fromChain.length - 1].beforeLeave;
804
806
  const canLeave = beforeLeaveHook ? await beforeLeaveHook() : true;
805
807
  if (canLeave === false || typeof canLeave === 'object') {
806
808
  return canLeave;
807
809
  }
808
810
  const toChain = findChainForSegments(to, routes);
811
+ // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
809
812
  const beforeEnterHook = toChain && toChain[toChain.length - 1].beforeEnter;
810
813
  return beforeEnterHook ? beforeEnterHook() : true;
811
814
  }
@@ -1,12 +1,12 @@
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-2d388930.js';
4
+ import { r as registerInstance, d as createEvent, i as forceUpdate, h, H as Host, f as getElement } from './index-cb894020.js';
5
5
  import { j as debounceEvent, r as raf } from './helpers-3379ba19.js';
6
6
  import { i as isRTL } from './dir-912e3e13.js';
7
7
  import { c as createColorClasses } from './theme-17531cdf.js';
8
8
  import { a as arrowBackSharp, b as closeCircle, d as closeSharp, s as searchOutline, e as searchSharp } from './index-ecfc2c9f.js';
9
- import { c as config, b as getIonMode } from './ionic-global-b3fc28dd.js';
9
+ import { c as config, b as getIonMode } from './ionic-global-63a8d8c9.js';
10
10
 
11
11
  const searchbarIosCss = ".sc-ion-searchbar-ios-h{--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:0.6;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;width:100%;color:var(--color);font-family:var(--ion-font-family, inherit);-webkit-box-sizing:border-box;box-sizing:border-box}.ion-color.sc-ion-searchbar-ios-h{color:var(--ion-color-contrast)}.ion-color.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios{background:var(--ion-color-base)}.ion-color.sc-ion-searchbar-ios-h .searchbar-clear-button.sc-ion-searchbar-ios,.ion-color.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios,.ion-color.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios{color:inherit}.searchbar-search-icon.sc-ion-searchbar-ios{color:var(--icon-color);pointer-events:none}.searchbar-input-container.sc-ion-searchbar-ios{display:block;position:relative;-ms-flex-negative:1;flex-shrink:1;width:100%}.searchbar-input.sc-ion-searchbar-ios{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;border-radius:var(--border-radius);display:block;width:100%;border:0;outline:none;background:var(--background);font-family:inherit;-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-input.sc-ion-searchbar-ios::-webkit-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios::-moz-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios:-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios::-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios::placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios::-webkit-search-cancel-button,.searchbar-input.sc-ion-searchbar-ios::-ms-clear{display:none}.searchbar-cancel-button.sc-ion-searchbar-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:none;height:100%;border:0;outline:none;color:var(--cancel-button-color);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-cancel-button.sc-ion-searchbar-ios>div.sc-ion-searchbar-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%}.searchbar-clear-button.sc-ion-searchbar-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:none;min-height:0;outline:none;color:var(--clear-button-color);-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-clear-button.sc-ion-searchbar-ios:focus{opacity:0.5}.searchbar-has-value.searchbar-should-show-clear.sc-ion-searchbar-ios-h .searchbar-clear-button.sc-ion-searchbar-ios{display:block}.searchbar-disabled.sc-ion-searchbar-ios-h{cursor:default;opacity:0.4;pointer-events:none}.sc-ion-searchbar-ios-h{--background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.07);--border-radius:10px;--box-shadow:none;--cancel-button-color:var(--ion-color-primary, #3880ff);--clear-button-color:var(--ion-color-step-600, #666666);--color:var(--ion-text-color, #000);--icon-color:var(--ion-color-step-600, #666666);-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:12px;padding-bottom:12px;height:60px;contain:strict}.searchbar-input-container.sc-ion-searchbar-ios{height:36px}.searchbar-search-icon.sc-ion-searchbar-ios{-webkit-margin-start:calc(50% - 60px);margin-inline-start:calc(50% - 60px);top:0;position:absolute;width:22px;height:100%;contain:strict}@supports (inset-inline-start: 0){.searchbar-search-icon.sc-ion-searchbar-ios{inset-inline-start:5px}}@supports not (inset-inline-start: 0){.searchbar-search-icon.sc-ion-searchbar-ios{left:5px}[dir=rtl].sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios,[dir=rtl] .sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios{left:unset;right:unset;right:5px}[dir=rtl].sc-ion-searchbar-ios .searchbar-search-icon.sc-ion-searchbar-ios{left:unset;right:unset;right:5px}@supports selector(:dir(rtl)){.searchbar-search-icon.sc-ion-searchbar-ios:dir(rtl){left:unset;right:unset;right:5px}}}.searchbar-input.sc-ion-searchbar-ios{-webkit-padding-start:28px;padding-inline-start:28px;-webkit-padding-end:28px;padding-inline-end:28px;padding-top:0;padding-bottom:0;height:100%;font-size:17px;font-weight:400;contain:strict}.searchbar-clear-button.sc-ion-searchbar-ios{top:0;background-position:center;position:absolute;width:30px;height:100%;border:0;background-color:transparent}@supports (inset-inline-start: 0){.searchbar-clear-button.sc-ion-searchbar-ios{inset-inline-end:0}}@supports not (inset-inline-start: 0){.searchbar-clear-button.sc-ion-searchbar-ios{right:0}[dir=rtl].sc-ion-searchbar-ios-h .searchbar-clear-button.sc-ion-searchbar-ios,[dir=rtl] .sc-ion-searchbar-ios-h .searchbar-clear-button.sc-ion-searchbar-ios{left:unset;right:unset;left:0}[dir=rtl].sc-ion-searchbar-ios .searchbar-clear-button.sc-ion-searchbar-ios{left:unset;right:unset;left:0}@supports selector(:dir(rtl)){.searchbar-clear-button.sc-ion-searchbar-ios:dir(rtl){left:unset;right:unset;left:0}}}.searchbar-clear-icon.sc-ion-searchbar-ios{width:18px;height:100%}.searchbar-cancel-button.sc-ion-searchbar-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0;-ms-flex-negative:0;flex-shrink:0;background-color:transparent;font-size:16px}.searchbar-left-aligned.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios{-webkit-margin-start:0;margin-inline-start:0}.searchbar-left-aligned.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios{-webkit-padding-start:30px;padding-inline-start:30px}.searchbar-has-focus.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios,.searchbar-should-show-cancel.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios,.searchbar-animated.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{display:block}.searchbar-animated.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios,.searchbar-animated.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios{-webkit-transition:all 300ms ease;transition:all 300ms ease}.searchbar-animated.searchbar-has-focus.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios,.searchbar-animated.searchbar-should-show-cancel.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{opacity:1;pointer-events:auto}.searchbar-animated.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{-webkit-margin-end:-100%;margin-inline-end:-100%;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);-webkit-transition:all 300ms ease;transition:all 300ms ease;opacity:0;pointer-events:none}.searchbar-no-animate.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios,.searchbar-no-animate.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios,.searchbar-no-animate.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{-webkit-transition-duration:0ms;transition-duration:0ms}.ion-color.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{color:var(--ion-color-base)}@media (any-hover: hover){.ion-color.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios:hover{color:var(--ion-color-tint)}}ion-toolbar.sc-ion-searchbar-ios-h,ion-toolbar .sc-ion-searchbar-ios-h{padding-top:1px;padding-bottom:15px;height:52px}ion-toolbar.ion-color.sc-ion-searchbar-ios-h:not(.ion-color),ion-toolbar.ion-color .sc-ion-searchbar-ios-h:not(.ion-color){color:inherit}ion-toolbar.ion-color.sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-cancel-button.sc-ion-searchbar-ios,ion-toolbar.ion-color .sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-cancel-button.sc-ion-searchbar-ios{color:currentColor}ion-toolbar.ion-color.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios,ion-toolbar.ion-color .sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios{color:currentColor;opacity:0.5}ion-toolbar.ion-color.sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-input.sc-ion-searchbar-ios,ion-toolbar.ion-color .sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-input.sc-ion-searchbar-ios{background:rgba(var(--ion-color-contrast-rgb), 0.07);color:currentColor}ion-toolbar.ion-color.sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-clear-button.sc-ion-searchbar-ios,ion-toolbar.ion-color .sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-clear-button.sc-ion-searchbar-ios{color:currentColor;opacity:0.5}";
12
12
 
@@ -1,10 +1,10 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, d as createEvent, w as writeTask, h, H as Host, f as getElement, i as forceUpdate } from './index-2d388930.js';
4
+ import { r as registerInstance, d as createEvent, w as writeTask, h, H as Host, f as getElement, i as forceUpdate } from './index-cb894020.js';
5
5
  import { i as isRTL } from './dir-912e3e13.js';
6
6
  import { c as createColorClasses, h as hostContext } from './theme-17531cdf.js';
7
- import { b as getIonMode } from './ionic-global-b3fc28dd.js';
7
+ import { b as getIonMode } from './ionic-global-63a8d8c9.js';
8
8
  import { a as addEventListener, b as removeEventListener, k as inheritAttributes } from './helpers-3379ba19.js';
9
9
 
10
10
  const segmentIosCss = ":host{--ripple-color:currentColor;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:grid;grid-auto-columns:1fr;position:relative;-ms-flex-align:stretch;align-items:stretch;-ms-flex-pack:center;justify-content:center;width:100%;background:var(--background);font-family:var(--ion-font-family, inherit);text-align:center;contain:paint;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host(.segment-scrollable){-ms-flex-pack:start;justify-content:start;width:auto;overflow-x:auto;grid-auto-columns:minmax(-webkit-min-content, 1fr);grid-auto-columns:minmax(min-content, 1fr)}:host(.segment-scrollable::-webkit-scrollbar){display:none}:host{--background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.065);border-radius:8px;overflow:hidden;z-index:0}:host(.ion-color){background:rgba(var(--ion-color-base-rgb), 0.065)}:host(.in-toolbar){-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;width:auto}:host(.in-toolbar:not(.ion-color)){background:var(--ion-toolbar-segment-background, var(--background))}:host(.in-toolbar-color:not(.ion-color)){background:rgba(var(--ion-color-contrast-rgb), 0.11)}";
@@ -1,17 +1,17 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, d as createEvent, h, H as Host, f as getElement, i as forceUpdate } from './index-2d388930.js';
4
+ import { r as registerInstance, d as createEvent, h, H as Host, f as getElement, i as forceUpdate } from './index-cb894020.js';
5
5
  import { c as createLegacyFormController } from './form-controller-ed77647a.js';
6
6
  import { c as createNotchController } from './notch-controller-8c9c0e54.js';
7
7
  import { k as inheritAttributes, f as focusElement, h as findItemLabel, d as renderHiddenInput, e as getAriaLabel } from './helpers-3379ba19.js';
8
8
  import { p as printIonWarning } from './index-595d62c9.js';
9
- import { c as popoverController, b as actionSheetController, a as alertController, s as safeCall } from './overlays-8fc6656c.js';
9
+ import { c as popoverController, b as actionSheetController, a as alertController, s as safeCall } from './overlays-753933fc.js';
10
10
  import { i as isRTL } from './dir-912e3e13.js';
11
11
  import { h as hostContext, c as createColorClasses, g as getClassMap } from './theme-17531cdf.js';
12
12
  import { w as watchForOptions } from './watch-options-355a920a.js';
13
13
  import { w as chevronExpand, q as caretDownSharp } from './index-ecfc2c9f.js';
14
- import { b as getIonMode } from './ionic-global-b3fc28dd.js';
14
+ import { b as getIonMode } from './ionic-global-63a8d8c9.js';
15
15
  import './index-7a14ecec.js';
16
16
  import './framework-delegate-aa433dea.js';
17
17
  import './hardware-back-button-39299f84.js';
@@ -612,7 +612,7 @@ Developers can use the "legacy" property to continue using the legacy form marku
612
612
  }
613
613
  renderListbox() {
614
614
  const { disabled, inputId, isExpanded } = this;
615
- return (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) }));
615
+ return (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) }));
616
616
  }
617
617
  render() {
618
618
  const { legacyFormController } = this;
@@ -1,9 +1,9 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, h, H as Host } from './index-2d388930.js';
4
+ import { r as registerInstance, h, H as Host } from './index-cb894020.js';
5
5
  import { c as createColorClasses } from './theme-17531cdf.js';
6
- import { c as config, b as getIonMode } from './ionic-global-b3fc28dd.js';
6
+ import { c as config, b as getIonMode } from './ionic-global-63a8d8c9.js';
7
7
  import { S as SPINNERS } from './spinner-configs-d09fbbbb.js';
8
8
 
9
9
  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}}";
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, d as createEvent, h, H as Host, f as getElement } from './index-2d388930.js';
5
- import { b as getIonMode } from './ionic-global-b3fc28dd.js';
4
+ import { r as registerInstance, d as createEvent, h, H as Host, f as getElement } from './index-cb894020.js';
5
+ import { b as getIonMode } from './ionic-global-63a8d8c9.js';
6
6
 
7
7
  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)}";
8
8
 
@@ -1,10 +1,10 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, d as createEvent, h, H as Host, f as getElement } from './index-2d388930.js';
4
+ import { r as registerInstance, d as createEvent, h, H as Host, f as getElement } from './index-cb894020.js';
5
5
  import { c as createKeyboardController } from './keyboard-controller-0c2dce71.js';
6
6
  import { c as createColorClasses } from './theme-17531cdf.js';
7
- import { b as getIonMode, c as config } from './ionic-global-b3fc28dd.js';
7
+ import { b as getIonMode, c as config } from './ionic-global-63a8d8c9.js';
8
8
  import { k as inheritAttributes } from './helpers-3379ba19.js';
9
9
  import './index-7a14ecec.js';
10
10
  import './keyboard-b063f012.js';
@@ -1,7 +1,7 @@
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-2d388930.js';
4
+ import { r as registerInstance, h, H as Host, f as getElement, d as createEvent } from './index-cb894020.js';
5
5
  import { a as attachComponent } from './framework-delegate-aa433dea.js';
6
6
  import './helpers-3379ba19.js';
7
7
 
@@ -1,9 +1,9 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, h, H as Host } from './index-2d388930.js';
4
+ import { r as registerInstance, h, H as Host } from './index-cb894020.js';
5
5
  import { c as createColorClasses } from './theme-17531cdf.js';
6
- import { b as getIonMode } from './ionic-global-b3fc28dd.js';
6
+ import { b as getIonMode } from './ionic-global-63a8d8c9.js';
7
7
 
8
8
  const textCss = ":host(.ion-color){color:var(--ion-color-base)}";
9
9
 
@@ -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, w as writeTask, h, H as Host, f as getElement, i as forceUpdate } from './index-2d388930.js';
4
+ import { r as registerInstance, d as createEvent, w as writeTask, h, H as Host, f as getElement, i as forceUpdate } from './index-cb894020.js';
5
5
  import { c as createLegacyFormController } from './form-controller-ed77647a.js';
6
6
  import { c as createNotchController } from './notch-controller-8c9c0e54.js';
7
7
  import { j as debounceEvent, i as inheritAriaAttributes, k as inheritAttributes, h as findItemLabel } from './helpers-3379ba19.js';
8
8
  import { p as printIonWarning } from './index-595d62c9.js';
9
9
  import { c as createSlotMutationController, g as getCounterText } from './input.utils-ec063df4.js';
10
10
  import { c as createColorClasses, h as hostContext } from './theme-17531cdf.js';
11
- import { b as getIonMode } from './ionic-global-b3fc28dd.js';
11
+ import { b as getIonMode } from './ionic-global-63a8d8c9.js';
12
12
  import './index-7a14ecec.js';
13
13
 
14
14
  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}";
@@ -1,29 +1,28 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, d as createEvent, h, H as Host, f as getElement } from './index-2d388930.js';
4
+ import { r as registerInstance, d as createEvent, h, H as Host, f as getElement } from './index-cb894020.js';
5
5
  import { E as ENABLE_HTML_CONTENT_DEFAULT, a as sanitizeDOMString } from './config-96c9ace3.js';
6
6
  import { g as getElementRoot, r as raf } from './helpers-3379ba19.js';
7
7
  import { c as createLockController } from './lock-controller-e8c6c051.js';
8
8
  import { p as printIonWarning } from './index-595d62c9.js';
9
- import { d as createDelegateController, e as createTriggerController, i as isCancel, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod, s as safeCall } from './overlays-8fc6656c.js';
9
+ import { d as createDelegateController, e as createTriggerController, i as isCancel, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod, s as safeCall } from './overlays-753933fc.js';
10
10
  import { g as getClassMap, c as createColorClasses } from './theme-17531cdf.js';
11
- import { c as config, b as getIonMode } from './ionic-global-b3fc28dd.js';
11
+ import { c as config, b as getIonMode } from './ionic-global-63a8d8c9.js';
12
12
  import { c as createAnimation } from './animation-a1d9e088.js';
13
- import './index-7a14ecec.js';
13
+ import { w as win } from './index-7a14ecec.js';
14
14
  import './framework-delegate-aa433dea.js';
15
15
  import './hardware-back-button-39299f84.js';
16
16
 
17
17
  /**
18
18
  * iOS Toast Enter Animation
19
19
  */
20
- const iosEnterAnimation = (baseEl, position) => {
20
+ const iosEnterAnimation = (baseEl, opts) => {
21
21
  const baseAnimation = createAnimation();
22
22
  const wrapperAnimation = createAnimation();
23
+ const { position, top, bottom } = opts;
23
24
  const root = getElementRoot(baseEl);
24
25
  const wrapperEl = root.querySelector('.toast-wrapper');
25
- const bottom = `calc(-10px - var(--ion-safe-area-bottom, 0px))`;
26
- const top = `calc(10px + var(--ion-safe-area-top, 0px))`;
27
26
  wrapperAnimation.addElement(wrapperEl);
28
27
  switch (position) {
29
28
  case 'top':
@@ -44,13 +43,12 @@ const iosEnterAnimation = (baseEl, position) => {
44
43
  /**
45
44
  * iOS Toast Leave Animation
46
45
  */
47
- const iosLeaveAnimation = (baseEl, position) => {
46
+ const iosLeaveAnimation = (baseEl, opts) => {
48
47
  const baseAnimation = createAnimation();
49
48
  const wrapperAnimation = createAnimation();
49
+ const { position, top, bottom } = opts;
50
50
  const root = getElementRoot(baseEl);
51
51
  const wrapperEl = root.querySelector('.toast-wrapper');
52
- const bottom = `calc(-10px - var(--ion-safe-area-bottom, 0px))`;
53
- const top = `calc(10px + var(--ion-safe-area-top, 0px))`;
54
52
  wrapperAnimation.addElement(wrapperEl);
55
53
  switch (position) {
56
54
  case 'top':
@@ -69,13 +67,12 @@ const iosLeaveAnimation = (baseEl, position) => {
69
67
  /**
70
68
  * MD Toast Enter Animation
71
69
  */
72
- const mdEnterAnimation = (baseEl, position) => {
70
+ const mdEnterAnimation = (baseEl, opts) => {
73
71
  const baseAnimation = createAnimation();
74
72
  const wrapperAnimation = createAnimation();
73
+ const { position, top, bottom } = opts;
75
74
  const root = getElementRoot(baseEl);
76
75
  const wrapperEl = root.querySelector('.toast-wrapper');
77
- const bottom = `calc(8px + var(--ion-safe-area-bottom, 0px))`;
78
- const top = `calc(8px + var(--ion-safe-area-top, 0px))`;
79
76
  wrapperAnimation.addElement(wrapperEl);
80
77
  switch (position) {
81
78
  case 'top':
@@ -107,6 +104,87 @@ const mdLeaveAnimation = (baseEl) => {
107
104
  return baseAnimation.easing('cubic-bezier(.36,.66,.04,1)').duration(300).addAnimation(wrapperAnimation);
108
105
  };
109
106
 
107
+ /**
108
+ * Calculate the CSS top and bottom position of the toast, to be used
109
+ * as starting points for the animation keyframes.
110
+ *
111
+ * Note that MD animates bottom-positioned toasts using style.bottom,
112
+ * which calculates from the bottom edge of the screen, while iOS uses
113
+ * translateY, which calculates from the top edge of the screen. This
114
+ * is why the bottom calculates differ slightly between modes.
115
+ *
116
+ * @param position The value of the toast's position prop.
117
+ * @param positionAnchor The element the toast should be anchored to,
118
+ * if applicable.
119
+ * @param mode The toast component's mode (md, ios, etc).
120
+ * @param toast A reference to the toast element itself.
121
+ */
122
+ function getAnimationPosition(position, positionAnchor, mode, toast) {
123
+ /**
124
+ * Start with a predefined offset from the edge the toast will be
125
+ * positioned relative to, whether on the screen or anchor element.
126
+ */
127
+ let offset;
128
+ if (mode === 'md') {
129
+ offset = 8;
130
+ }
131
+ else {
132
+ offset = position === 'top' ? 10 : -10;
133
+ }
134
+ /**
135
+ * If positionAnchor is defined, add in the distance from the target
136
+ * screen edge to the target anchor edge. For position="top", the
137
+ * bottom anchor edge is targeted. For position="bottom", the top
138
+ * anchor edge is targeted.
139
+ */
140
+ if (positionAnchor && win) {
141
+ warnIfAnchorIsHidden(positionAnchor, toast);
142
+ const box = positionAnchor.getBoundingClientRect();
143
+ if (position === 'top') {
144
+ offset += box.bottom;
145
+ }
146
+ else if (position === 'bottom') {
147
+ /**
148
+ * Just box.top is the distance from the top edge of the screen
149
+ * to the top edge of the anchor. We want to calculate from the
150
+ * bottom edge of the screen instead.
151
+ */
152
+ if (mode === 'md') {
153
+ offset += win.innerHeight - box.top;
154
+ }
155
+ else {
156
+ offset -= win.innerHeight - box.top;
157
+ }
158
+ }
159
+ /**
160
+ * We don't include safe area here because that should already be
161
+ * accounted for when checking the position of the anchor.
162
+ */
163
+ return {
164
+ top: `${offset}px`,
165
+ bottom: `${offset}px`,
166
+ };
167
+ }
168
+ else {
169
+ return {
170
+ top: `calc(${offset}px + var(--ion-safe-area-top, 0px))`,
171
+ bottom: mode === 'md'
172
+ ? `calc(${offset}px + var(--ion-safe-area-bottom, 0px))`
173
+ : `calc(${offset}px - var(--ion-safe-area-bottom, 0px))`,
174
+ };
175
+ }
176
+ }
177
+ /**
178
+ * If the anchor element is hidden, getBoundingClientRect()
179
+ * will return all 0s for it, which can cause unexpected
180
+ * results in the position calculation when animating.
181
+ */
182
+ function warnIfAnchorIsHidden(positionAnchor, toast) {
183
+ if (positionAnchor.offsetParent === null) {
184
+ 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);
185
+ }
186
+ }
187
+
110
188
  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}}";
111
189
 
112
190
  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)}}";
@@ -148,6 +226,7 @@ const Toast = class {
148
226
  this.message = undefined;
149
227
  this.keyboardClose = false;
150
228
  this.position = 'bottom';
229
+ this.positionAnchor = undefined;
151
230
  this.buttons = undefined;
152
231
  this.translucent = false;
153
232
  this.animated = true;
@@ -195,7 +274,19 @@ const Toast = class {
195
274
  async present() {
196
275
  const unlock = await this.lockController.lock();
197
276
  await this.delegateController.attachViewToDom();
198
- await present(this, 'toastEnter', iosEnterAnimation, mdEnterAnimation, this.position);
277
+ const { el, position } = this;
278
+ const anchor = this.getAnchorElement();
279
+ const animationPosition = getAnimationPosition(position, anchor, getIonMode(this), el);
280
+ /**
281
+ * Cache the calculated position of the toast, so we can re-use it
282
+ * in the dismiss animation.
283
+ */
284
+ this.lastPresentedPosition = animationPosition;
285
+ await present(this, 'toastEnter', iosEnterAnimation, mdEnterAnimation, {
286
+ position,
287
+ top: animationPosition.top,
288
+ bottom: animationPosition.bottom,
289
+ });
199
290
  /**
200
291
  * Content is revealed to screen readers after
201
292
  * the transition to avoid jank since this
@@ -217,15 +308,28 @@ const Toast = class {
217
308
  * Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
218
309
  */
219
310
  async dismiss(data, role) {
311
+ var _a, _b;
220
312
  const unlock = await this.lockController.lock();
221
- if (this.durationTimeout) {
222
- clearTimeout(this.durationTimeout);
313
+ const { durationTimeout, position, lastPresentedPosition } = this;
314
+ if (durationTimeout) {
315
+ clearTimeout(durationTimeout);
223
316
  }
224
- const dismissed = await dismiss(this, data, role, 'toastLeave', iosLeaveAnimation, mdLeaveAnimation, this.position);
317
+ const dismissed = await dismiss(this, data, role, 'toastLeave', iosLeaveAnimation, mdLeaveAnimation,
318
+ /**
319
+ * Fetch the cached position that was calculated back in the present
320
+ * animation. We always want to animate the dismiss from the same
321
+ * position the present stopped at, so the animation looks continuous.
322
+ */
323
+ {
324
+ position,
325
+ top: (_a = lastPresentedPosition === null || lastPresentedPosition === void 0 ? void 0 : lastPresentedPosition.top) !== null && _a !== void 0 ? _a : '',
326
+ bottom: (_b = lastPresentedPosition === null || lastPresentedPosition === void 0 ? void 0 : lastPresentedPosition.bottom) !== null && _b !== void 0 ? _b : '',
327
+ });
225
328
  if (dismissed) {
226
329
  this.delegateController.removeViewFromDom();
227
330
  this.revealContentToScreenReader = false;
228
331
  }
332
+ this.lastPresentedPosition = undefined;
229
333
  unlock();
230
334
  return dismissed;
231
335
  }
@@ -249,6 +353,37 @@ const Toast = class {
249
353
  : [];
250
354
  return buttons;
251
355
  }
356
+ /**
357
+ * Returns the element specified by the positionAnchor prop,
358
+ * or undefined if prop's value is an ID string and the element
359
+ * is not found in the DOM.
360
+ */
361
+ getAnchorElement() {
362
+ const { position, positionAnchor, el } = this;
363
+ if (position === 'middle' && positionAnchor !== undefined) {
364
+ printIonWarning('The positionAnchor property is ignored when using position="middle".', this.el);
365
+ return undefined;
366
+ }
367
+ if (typeof positionAnchor === 'string') {
368
+ /**
369
+ * If the anchor is defined as an ID, find the element.
370
+ * We do this on every present so the toast doesn't need
371
+ * to account for the surrounding DOM changing since the
372
+ * last time it was presented.
373
+ */
374
+ const foundEl = document.getElementById(positionAnchor);
375
+ if (foundEl === null) {
376
+ printIonWarning(`An anchor element with an ID of "${positionAnchor}" was not found in the DOM.`, el);
377
+ return undefined;
378
+ }
379
+ return foundEl;
380
+ }
381
+ if (positionAnchor instanceof HTMLElement) {
382
+ return positionAnchor;
383
+ }
384
+ printIonWarning('Invalid positionAnchor value:', positionAnchor, el);
385
+ return undefined;
386
+ }
252
387
  async buttonClick(button) {
253
388
  const role = button.role;
254
389
  if (isCancel(role)) {
@@ -1,15 +1,15 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, d as createEvent, h, H as Host, f as getElement } from './index-2d388930.js';
4
+ import { r as registerInstance, d as createEvent, h, H as Host, f as getElement } from './index-cb894020.js';
5
5
  import { c as createLegacyFormController } from './form-controller-ed77647a.js';
6
6
  import { i as inheritAriaAttributes, d as renderHiddenInput, e as getAriaLabel } from './helpers-3379ba19.js';
7
7
  import { p as printIonWarning } from './index-595d62c9.js';
8
- import { c as hapticSelection } from './haptic-6447af60.js';
8
+ import { c as hapticSelection } from './haptic-1243b917.js';
9
9
  import { i as isRTL } from './dir-912e3e13.js';
10
10
  import { c as createColorClasses, h as hostContext } from './theme-17531cdf.js';
11
11
  import { f as checkmarkOutline, r as removeOutline, g as ellipseOutline } from './index-ecfc2c9f.js';
12
- import { c as config, b as getIonMode } from './ionic-global-b3fc28dd.js';
12
+ import { c as config, b as getIonMode } from './ionic-global-63a8d8c9.js';
13
13
  import './capacitor-b4979570.js';
14
14
  import './index-7a14ecec.js';
15
15
 
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { a as setPlatformHelpers, g as getMode, c as setMode } from './index-2d388930.js';
4
+ import { a as setPlatformHelpers, g as getMode, c as setMode } from './index-cb894020.js';
5
5
 
6
6
  // TODO(FW-2832): types
7
7
  class Config {