@ionic/core 7.5.7-dev.11701203423.1b6a8829 → 7.5.7-dev.11701273756.1eb73d4c

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 (388) hide show
  1. package/components/animation.js +12 -11
  2. package/components/checkbox.js +2 -0
  3. package/components/icon.js +23 -14
  4. package/components/index4.js +10 -12
  5. package/components/index5.js +0 -22
  6. package/components/index7.js +1 -1
  7. package/components/input-shims.js +12 -7
  8. package/components/input.utils.js +3 -2
  9. package/components/ion-datetime.js +2 -2
  10. package/components/ion-input.js +31 -8
  11. package/components/ion-modal.js +2 -2
  12. package/components/ion-range.js +2 -0
  13. package/components/ion-select.js +44 -29
  14. package/components/ion-skeleton-text.js +14 -1
  15. package/components/ion-textarea.js +30 -7
  16. package/components/ion-toast.js +419 -74
  17. package/components/ion-toggle.js +2 -0
  18. package/components/item.js +2 -2
  19. package/components/label.js +2 -2
  20. package/components/overlays.js +2 -1
  21. package/components/radio-group.js +2 -0
  22. package/components/radio.js +42 -2
  23. package/dist/cjs/{animation-1083855c.js → animation-d101aa7a.js} +13 -12
  24. package/dist/cjs/{button-active-af897e0e.js → button-active-ba107e4e.js} +1 -1
  25. package/dist/cjs/{capacitor-2ffba62a.js → capacitor-f68447d3.js} +1 -1
  26. package/dist/cjs/compare-with-utils-c0444525.js +44 -0
  27. package/dist/cjs/{haptic-678abc9f.js → haptic-a74c2767.js} +1 -1
  28. package/dist/cjs/{index-5ea49600.js → index-09471526.js} +1 -1
  29. package/dist/cjs/{index-d7561763.js → index-4f0c67e1.js} +11 -13
  30. package/dist/cjs/{index-573877f3.js → index-56d41f51.js} +2 -2
  31. package/dist/cjs/index-c8d52405.js +10 -0
  32. package/dist/cjs/{index-9f379eaa.js → index-e9634bc9.js} +1 -1
  33. package/dist/cjs/index.cjs.js +8 -8
  34. package/dist/cjs/{input-shims-b0a75a01.js → input-shims-3e3f35b9.js} +15 -10
  35. package/dist/cjs/{input.utils-0fe3097c.js → input.utils-bdb6953c.js} +4 -3
  36. package/dist/cjs/ion-accordion_2.cjs.entry.js +1 -1
  37. package/dist/cjs/ion-action-sheet.cjs.entry.js +6 -6
  38. package/dist/cjs/ion-alert.cjs.entry.js +6 -6
  39. package/dist/cjs/ion-app_8.cjs.entry.js +8 -8
  40. package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
  41. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +1 -1
  42. package/dist/cjs/ion-button_2.cjs.entry.js +23 -14
  43. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -0
  44. package/dist/cjs/ion-datetime_3.cjs.entry.js +8 -8
  45. package/dist/cjs/ion-fab_3.cjs.entry.js +1 -1
  46. package/dist/cjs/ion-input.cjs.entry.js +35 -12
  47. package/dist/cjs/ion-item_8.cjs.entry.js +18 -5
  48. package/dist/cjs/ion-loading.cjs.entry.js +3 -3
  49. package/dist/cjs/ion-menu_3.cjs.entry.js +6 -6
  50. package/dist/cjs/ion-modal.cjs.entry.js +8 -8
  51. package/dist/cjs/ion-nav_2.cjs.entry.js +1 -1
  52. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +3 -3
  53. package/dist/cjs/ion-popover.cjs.entry.js +4 -4
  54. package/dist/cjs/ion-radio_2.cjs.entry.js +6 -1
  55. package/dist/cjs/ion-range.cjs.entry.js +2 -0
  56. package/dist/cjs/ion-refresher_2.cjs.entry.js +5 -5
  57. package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
  58. package/dist/cjs/ion-searchbar.cjs.entry.js +1 -1
  59. package/dist/cjs/ion-select_3.cjs.entry.js +52 -36
  60. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  61. package/dist/cjs/ion-textarea.cjs.entry.js +33 -10
  62. package/dist/cjs/ion-toast.cjs.entry.js +434 -92
  63. package/dist/cjs/ion-toggle.cjs.entry.js +6 -4
  64. package/dist/cjs/ionic.cjs.js +1 -1
  65. package/dist/cjs/{ios.transition-ac909bc8.js → ios.transition-f4caf640.js} +3 -3
  66. package/dist/cjs/{keyboard-fd7db491.js → keyboard-43df0428.js} +1 -1
  67. package/dist/cjs/{keyboard-38f2bb7b.js → keyboard-840107b3.js} +3 -3
  68. package/dist/cjs/{keyboard-controller-50beb83a.js → keyboard-controller-019f42df.js} +2 -2
  69. package/dist/cjs/loader.cjs.js +1 -1
  70. package/dist/cjs/{md.transition-907af519.js → md.transition-33331e93.js} +3 -3
  71. package/dist/cjs/{notch-controller-f4f6af5d.js → notch-controller-c22d1344.js} +1 -1
  72. package/dist/cjs/{overlays-2ffc5f27.js → overlays-4d8897dc.js} +3 -1
  73. package/dist/collection/components/checkbox/checkbox.js +2 -0
  74. package/dist/collection/components/datetime/datetime.ios.css +1 -0
  75. package/dist/collection/components/datetime/datetime.md.css +1 -0
  76. package/dist/collection/components/input/input.ios.css +10 -3
  77. package/dist/collection/components/input/input.js +31 -6
  78. package/dist/collection/components/input/input.md.css +13 -12
  79. package/dist/collection/components/input/test/slot/input.e2e.js +51 -0
  80. package/dist/collection/components/item/item.ios.css +25 -3
  81. package/dist/collection/components/item/item.md.css +25 -3
  82. package/dist/collection/components/item/test/basic/item.e2e.js +1 -1
  83. package/dist/collection/components/item/test/disabled/item.e2e.js +0 -1
  84. package/dist/collection/components/label/label.ios.css +14 -3
  85. package/dist/collection/components/label/label.md.css +14 -3
  86. package/dist/collection/components/modal/gestures/swipe-to-close.js +2 -1
  87. package/dist/collection/components/note/test/a11y/note.e2e.js +43 -0
  88. package/dist/collection/components/radio/radio.js +5 -2
  89. package/dist/collection/components/radio-group/radio-group.js +24 -0
  90. package/dist/collection/components/radio-group/test/radio-group.spec.js +69 -0
  91. package/dist/collection/components/range/range.js +2 -0
  92. package/dist/collection/components/select/select.ios.css +61 -7
  93. package/dist/collection/components/select/select.js +45 -28
  94. package/dist/collection/components/select/select.md.css +64 -19
  95. package/dist/collection/components/select/test/label/select.e2e.js +1 -1
  96. package/dist/collection/components/select/test/legacy/wrapping/select.e2e.js +1 -1
  97. package/dist/collection/components/select/test/slot/select.e2e.js +67 -0
  98. package/dist/collection/components/skeleton-text/skeleton-text.js +39 -0
  99. package/dist/collection/components/textarea/test/slot/textarea.e2e.js +51 -0
  100. package/dist/collection/components/textarea/textarea.ios.css +37 -5
  101. package/dist/collection/components/textarea/textarea.js +30 -5
  102. package/dist/collection/components/textarea/textarea.md.css +47 -14
  103. package/dist/collection/components/toast/animations/ios.enter.js +2 -1
  104. package/dist/collection/components/toast/animations/md.enter.js +4 -3
  105. package/dist/collection/components/toast/animations/utils.js +20 -14
  106. package/dist/collection/components/toast/gestures/swipe-to-dismiss.js +267 -0
  107. package/dist/collection/components/toast/test/swipe-gesture/toast.e2e.js +84 -0
  108. package/dist/collection/components/toast/test/toast-config.spec.js +25 -0
  109. package/dist/collection/components/toast/test/toast.spec.js +80 -0
  110. package/dist/collection/components/toast/toast.ios.css +10 -10
  111. package/dist/collection/components/toast/toast.js +104 -1
  112. package/dist/collection/components/toast/toast.md.css +10 -0
  113. package/dist/collection/components/toggle/toggle.js +2 -0
  114. package/dist/collection/utils/animation/animation.js +12 -11
  115. package/dist/collection/utils/animation/test/animation.spec.js +16 -0
  116. package/dist/collection/utils/browser/index.js +0 -22
  117. package/dist/collection/utils/forms/compare-with-utils.js +39 -0
  118. package/dist/collection/utils/forms/index.js +1 -0
  119. package/dist/collection/utils/input-shims/input-shims.js +12 -6
  120. package/dist/collection/utils/menu-controller/index.js +10 -12
  121. package/dist/collection/utils/overlays.js +1 -0
  122. package/dist/collection/utils/slot-mutation-controller.js +3 -2
  123. package/dist/docs.json +127 -2
  124. package/dist/esm/{animation-8aa13916.js → animation-cf3dd234.js} +13 -12
  125. package/dist/esm/{button-active-ce5cba4c.js → button-active-47196c40.js} +1 -1
  126. package/dist/esm/{capacitor-b4979570.js → capacitor-f1f25364.js} +1 -1
  127. package/dist/esm/compare-with-utils-4928c09d.js +41 -0
  128. package/dist/esm/{haptic-1243b917.js → haptic-1a66d69f.js} +1 -1
  129. package/dist/esm/{index-0aa6e61f.js → index-23c05a55.js} +11 -13
  130. package/dist/esm/{index-6a0ccabb.js → index-702b3cd3.js} +2 -2
  131. package/dist/esm/index-a5d50daf.js +7 -0
  132. package/dist/esm/{index-d1a56aed.js → index-c132c5f1.js} +1 -1
  133. package/dist/esm/{index-f0cc4e14.js → index-c9e82353.js} +1 -1
  134. package/dist/esm/index.js +8 -8
  135. package/dist/esm/{input-shims-d0c93e5d.js → input-shims-1d767845.js} +14 -9
  136. package/dist/esm/{input.utils-ec063df4.js → input.utils-2cf5e372.js} +4 -3
  137. package/dist/esm/ion-accordion_2.entry.js +1 -1
  138. package/dist/esm/ion-action-sheet.entry.js +6 -6
  139. package/dist/esm/ion-alert.entry.js +6 -6
  140. package/dist/esm/ion-app_8.entry.js +8 -8
  141. package/dist/esm/ion-back-button.entry.js +1 -1
  142. package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
  143. package/dist/esm/ion-button_2.entry.js +23 -14
  144. package/dist/esm/ion-checkbox.entry.js +2 -0
  145. package/dist/esm/ion-datetime_3.entry.js +8 -8
  146. package/dist/esm/ion-fab_3.entry.js +1 -1
  147. package/dist/esm/ion-input.entry.js +35 -12
  148. package/dist/esm/ion-item_8.entry.js +18 -5
  149. package/dist/esm/ion-loading.entry.js +3 -3
  150. package/dist/esm/ion-menu_3.entry.js +6 -6
  151. package/dist/esm/ion-modal.entry.js +8 -8
  152. package/dist/esm/ion-nav_2.entry.js +1 -1
  153. package/dist/esm/ion-picker-column-internal.entry.js +3 -3
  154. package/dist/esm/ion-popover.entry.js +4 -4
  155. package/dist/esm/ion-radio_2.entry.js +6 -1
  156. package/dist/esm/ion-range.entry.js +2 -0
  157. package/dist/esm/ion-refresher_2.entry.js +5 -5
  158. package/dist/esm/ion-reorder_2.entry.js +4 -4
  159. package/dist/esm/ion-searchbar.entry.js +1 -1
  160. package/dist/esm/ion-select_3.entry.js +48 -32
  161. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  162. package/dist/esm/ion-textarea.entry.js +33 -10
  163. package/dist/esm/ion-toast.entry.js +417 -75
  164. package/dist/esm/ion-toggle.entry.js +6 -4
  165. package/dist/esm/ionic.js +1 -1
  166. package/dist/esm/{ios.transition-1651c430.js → ios.transition-c3e77862.js} +3 -3
  167. package/dist/esm/{keyboard-b551279d.js → keyboard-9f771a04.js} +3 -3
  168. package/dist/esm/{keyboard-b063f012.js → keyboard-b6230bfb.js} +1 -1
  169. package/dist/esm/{keyboard-controller-0c2dce71.js → keyboard-controller-3f0faa10.js} +2 -2
  170. package/dist/esm/loader.js +1 -1
  171. package/dist/esm/{md.transition-66f18369.js → md.transition-1173eca9.js} +3 -3
  172. package/dist/esm/{notch-controller-8c9c0e54.js → notch-controller-3f79197e.js} +1 -1
  173. package/dist/esm/{overlays-6c9feb7e.js → overlays-34169295.js} +3 -2
  174. package/dist/esm-es5/{animation-8aa13916.js → animation-cf3dd234.js} +1 -1
  175. package/dist/esm-es5/{button-active-ce5cba4c.js → button-active-47196c40.js} +1 -1
  176. package/dist/esm-es5/{capacitor-b4979570.js → capacitor-f1f25364.js} +1 -1
  177. package/dist/esm-es5/compare-with-utils-4928c09d.js +4 -0
  178. package/dist/esm-es5/{haptic-1243b917.js → haptic-1a66d69f.js} +1 -1
  179. package/dist/esm-es5/index-23c05a55.js +4 -0
  180. package/dist/esm-es5/{index-6a0ccabb.js → index-702b3cd3.js} +1 -1
  181. package/dist/esm-es5/index-c9e82353.js +4 -0
  182. package/dist/esm-es5/index.js +1 -1
  183. package/dist/esm-es5/input-shims-1d767845.js +4 -0
  184. package/dist/esm-es5/input.utils-2cf5e372.js +4 -0
  185. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  186. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  187. package/dist/esm-es5/ion-alert.entry.js +1 -1
  188. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  189. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  190. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  191. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  192. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  193. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  194. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  195. package/dist/esm-es5/ion-input.entry.js +1 -1
  196. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  197. package/dist/esm-es5/ion-loading.entry.js +1 -1
  198. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  199. package/dist/esm-es5/ion-modal.entry.js +1 -1
  200. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  201. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  202. package/dist/esm-es5/ion-popover.entry.js +1 -1
  203. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  204. package/dist/esm-es5/ion-range.entry.js +1 -1
  205. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  206. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  207. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  208. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  209. package/dist/esm-es5/ion-tab-bar_2.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.js +1 -1
  214. package/dist/esm-es5/{ios.transition-1651c430.js → ios.transition-c3e77862.js} +1 -1
  215. package/dist/esm-es5/{keyboard-b551279d.js → keyboard-9f771a04.js} +1 -1
  216. package/dist/esm-es5/{keyboard-b063f012.js → keyboard-b6230bfb.js} +1 -1
  217. package/dist/esm-es5/{keyboard-controller-0c2dce71.js → keyboard-controller-3f0faa10.js} +1 -1
  218. package/dist/esm-es5/loader.js +1 -1
  219. package/dist/esm-es5/md.transition-1173eca9.js +4 -0
  220. package/dist/esm-es5/{notch-controller-8c9c0e54.js → notch-controller-3f79197e.js} +1 -1
  221. package/dist/esm-es5/{overlays-6c9feb7e.js → overlays-34169295.js} +1 -1
  222. package/dist/html.html-data.json +14 -1
  223. package/dist/ionic/index.esm.js +1 -1
  224. package/dist/ionic/ionic.esm.js +1 -1
  225. package/dist/ionic/{p-67e644bd.system.entry.js → p-03ed6107.system.entry.js} +1 -1
  226. package/dist/ionic/p-0547e914.entry.js +4 -0
  227. package/dist/ionic/{p-c429a314.system.entry.js → p-07d9e9cd.system.entry.js} +1 -1
  228. package/dist/ionic/{p-81c818e7.js → p-11cb4e19.js} +1 -1
  229. package/dist/ionic/p-131761b4.entry.js +4 -0
  230. package/dist/ionic/{p-04dca48d.entry.js → p-14aca3fb.entry.js} +1 -1
  231. package/dist/ionic/{p-ddfc4ef4.system.entry.js → p-196f2123.system.entry.js} +1 -1
  232. package/dist/ionic/{p-64ed03a3.entry.js → p-1abc74d9.entry.js} +1 -1
  233. package/dist/ionic/p-1cf5e8d6.entry.js +4 -0
  234. package/dist/ionic/p-1dc91702.entry.js +4 -0
  235. package/dist/ionic/{p-a43603ce.entry.js → p-1e86a71b.entry.js} +1 -1
  236. package/dist/ionic/{p-c4042875.system.js → p-21b4981c.system.js} +1 -1
  237. package/dist/ionic/p-2207f3c2.js +4 -0
  238. package/dist/ionic/p-27eb8a91.system.entry.js +4 -0
  239. package/dist/ionic/{p-800ef057.js → p-2a41d4d1.js} +1 -1
  240. package/dist/ionic/{p-b91fe549.entry.js → p-31189dae.entry.js} +1 -1
  241. package/dist/ionic/p-314c4dee.js +4 -0
  242. package/dist/ionic/{p-7d7fdaf0.system.entry.js → p-37c69d34.system.entry.js} +1 -1
  243. package/dist/ionic/p-385c51f8.system.entry.js +4 -0
  244. package/dist/ionic/{p-8d5a30dd.entry.js → p-3abf5b7a.entry.js} +1 -1
  245. package/dist/ionic/p-3bc3d880.system.js +4 -0
  246. package/dist/ionic/{p-8e1bded3.entry.js → p-3e655d4c.entry.js} +1 -1
  247. package/dist/ionic/{p-8659f9a9.system.entry.js → p-3fb57e1b.system.entry.js} +1 -1
  248. package/dist/ionic/p-40903d34.system.js +1 -1
  249. package/dist/ionic/p-43716898.js +4 -0
  250. package/dist/ionic/p-450a26bf.js +4 -0
  251. package/dist/ionic/p-485668f0.entry.js +4 -0
  252. package/dist/ionic/p-48c59094.system.entry.js +4 -0
  253. package/dist/ionic/{p-899fb2da.entry.js → p-48d9faa7.entry.js} +1 -1
  254. package/dist/ionic/p-494e75ad.js +4 -0
  255. package/dist/ionic/{p-0e23256e.system.entry.js → p-54824705.system.entry.js} +1 -1
  256. package/dist/ionic/p-561cc050.system.js +4 -0
  257. package/dist/ionic/{p-4a142496.system.entry.js → p-587afb80.system.entry.js} +1 -1
  258. package/dist/ionic/{p-8cf94fc1.js → p-5885e9af.js} +1 -1
  259. package/dist/ionic/{p-6594d76a.system.entry.js → p-5da0eb3e.system.entry.js} +1 -1
  260. package/dist/ionic/{p-61c30156.system.entry.js → p-5e6bc319.system.entry.js} +1 -1
  261. package/dist/ionic/{p-f37b4b79.entry.js → p-64ab3eb3.entry.js} +1 -1
  262. package/dist/ionic/{p-42435018.system.entry.js → p-664d2b07.system.entry.js} +1 -1
  263. package/dist/ionic/p-671dbd61.js +4 -0
  264. package/dist/ionic/{p-702d85d8.system.js → p-67951604.system.js} +1 -1
  265. package/dist/ionic/{p-68166ba6.entry.js → p-6797887a.entry.js} +1 -1
  266. package/dist/ionic/{p-b923f3d7.js → p-6a309574.js} +1 -1
  267. package/dist/ionic/{p-f3c82f74.system.entry.js → p-7047a40c.system.entry.js} +1 -1
  268. package/dist/ionic/p-70dcf429.js +4 -0
  269. package/dist/ionic/p-710cea83.system.js +4 -0
  270. package/dist/ionic/p-7b44e419.js +4 -0
  271. package/dist/ionic/p-80a9b397.entry.js +4 -0
  272. package/dist/ionic/{p-1cb5f2f8.system.entry.js → p-823890d5.system.entry.js} +1 -1
  273. package/dist/ionic/{p-09d142b3.system.js → p-83a455fd.system.js} +1 -1
  274. package/dist/ionic/{p-bd76524d.entry.js → p-8b15ca22.entry.js} +1 -1
  275. package/dist/ionic/p-8ddfecbf.entry.js +4 -0
  276. package/dist/ionic/{p-b4b4bb29.system.js → p-9292fd42.system.js} +1 -1
  277. package/dist/ionic/{p-41477ad9.system.js → p-958f1c70.system.js} +1 -1
  278. package/dist/ionic/{p-29fe18ef.entry.js → p-9c6787e2.entry.js} +1 -1
  279. package/dist/ionic/p-a11c1aff.system.entry.js +4 -0
  280. package/dist/ionic/{p-419eb426.js → p-a135e3ba.js} +1 -1
  281. package/dist/ionic/p-a31099a4.entry.js +4 -0
  282. package/dist/ionic/p-a6bc00ab.entry.js +4 -0
  283. package/dist/ionic/{p-0838e6bb.entry.js → p-a8e68fd9.entry.js} +1 -1
  284. package/dist/ionic/{p-14923cd7.system.entry.js → p-abacb44b.system.entry.js} +1 -1
  285. package/dist/ionic/p-ac668fb8.entry.js +4 -0
  286. package/dist/ionic/p-ad4b4f73.system.entry.js +4 -0
  287. package/dist/ionic/{p-ab4cff27.system.js → p-aec8a70a.system.js} +1 -1
  288. package/dist/ionic/{p-f54ddd19.entry.js → p-b673ee9b.entry.js} +1 -1
  289. package/dist/ionic/p-be0f6600.system.js +4 -0
  290. package/dist/ionic/{p-deab76dc.entry.js → p-c1e725db.entry.js} +1 -1
  291. package/dist/ionic/p-c2db1374.system.js +4 -0
  292. package/dist/ionic/p-c3547c7a.system.js +4 -0
  293. package/dist/ionic/{p-a936d224.system.js → p-c4de53af.system.js} +1 -1
  294. package/dist/ionic/p-c700acef.system.js +4 -0
  295. package/dist/ionic/{p-67ed452a.system.entry.js → p-cc615985.system.entry.js} +1 -1
  296. package/dist/ionic/{p-97e31c0a.system.js → p-d48872b1.system.js} +1 -1
  297. package/dist/ionic/p-d4fba36b.system.entry.js +4 -0
  298. package/dist/ionic/{p-dbf7d6e5.system.entry.js → p-d61a2cee.system.entry.js} +1 -1
  299. package/dist/ionic/p-e5b8f2f7.js +4 -0
  300. package/dist/ionic/{p-3bad5c1a.js → p-e5fd9f10.js} +1 -1
  301. package/dist/ionic/{p-ccdcb022.system.js → p-e7d20dfb.system.js} +1 -1
  302. package/dist/ionic/{p-14b4348c.system.js → p-e9e5755c.system.js} +1 -1
  303. package/dist/ionic/{p-18e01b30.system.entry.js → p-ea9addc8.system.entry.js} +1 -1
  304. package/dist/ionic/p-edd07654.system.entry.js +4 -0
  305. package/dist/ionic/{p-64296b15.entry.js → p-f36112b4.entry.js} +1 -1
  306. package/dist/ionic/p-f43f4102.entry.js +4 -0
  307. package/dist/ionic/{p-97a96f5f.entry.js → p-f4cc91f6.entry.js} +1 -1
  308. package/dist/ionic/{p-640efee6.system.entry.js → p-f5a750e4.system.entry.js} +1 -1
  309. package/dist/ionic/p-f5d78105.entry.js +4 -0
  310. package/dist/ionic/p-f7769c83.js +4 -0
  311. package/dist/ionic/{p-bba2ce59.system.js → p-f9a641fa.system.js} +1 -1
  312. package/dist/ionic/{p-cf425ec5.system.entry.js → p-fcb148dc.system.entry.js} +1 -1
  313. package/dist/ionic/p-fcc23f25.system.entry.js +4 -0
  314. package/dist/ionic/{p-7b4cd5fc.system.entry.js → p-fce6b76a.system.entry.js} +1 -1
  315. package/dist/ionic/{p-c56b6570.system.entry.js → p-fdcf04c3.system.entry.js} +1 -1
  316. package/dist/ionic/{p-a0b6d438.js → p-fe1f93f2.js} +1 -1
  317. package/dist/node_modules/ionicons/dist/collection/components/icon/icon.css +0 -1
  318. package/dist/types/components/input/input.d.ts +2 -0
  319. package/dist/types/components/radio-group/radio-group-interface.d.ts +1 -0
  320. package/dist/types/components/radio-group/radio-group.d.ts +8 -1
  321. package/dist/types/components/router/router.d.ts +2 -1
  322. package/dist/types/components/select/select.d.ts +6 -1
  323. package/dist/types/components/skeleton-text/skeleton-text.d.ts +9 -1
  324. package/dist/types/components/textarea/textarea.d.ts +2 -0
  325. package/dist/types/components/toast/animations/utils.d.ts +15 -4
  326. package/dist/types/components/toast/gestures/swipe-to-dismiss.d.ts +9 -0
  327. package/dist/types/components/toast/toast-interface.d.ts +2 -0
  328. package/dist/types/components/toast/toast.d.ts +28 -1
  329. package/dist/types/components.d.ts +37 -6
  330. package/dist/types/interface.d.ts +1 -5
  331. package/dist/types/utils/animation/animation-interface.d.ts +4 -4
  332. package/dist/types/utils/browser/index.d.ts +11 -2
  333. package/dist/types/utils/forms/compare-with-utils.d.ts +18 -0
  334. package/dist/types/utils/forms/index.d.ts +1 -0
  335. package/dist/types/utils/hardware-back-button.d.ts +4 -0
  336. package/dist/types/utils/overlays.d.ts +1 -0
  337. package/dist/types/utils/slot-mutation-controller.d.ts +2 -2
  338. package/hydrate/index.js +639 -184
  339. package/package.json +2 -2
  340. package/dist/cjs/index-306a7476.js +0 -32
  341. package/dist/collection/components/item/test/text/item.e2e.js +0 -14
  342. package/dist/esm/index-7a14ecec.js +0 -29
  343. package/dist/esm-es5/index-0aa6e61f.js +0 -4
  344. package/dist/esm-es5/index-f0cc4e14.js +0 -4
  345. package/dist/esm-es5/input-shims-d0c93e5d.js +0 -4
  346. package/dist/esm-es5/input.utils-ec063df4.js +0 -4
  347. package/dist/esm-es5/md.transition-66f18369.js +0 -4
  348. package/dist/ionic/p-0d8e9393.entry.js +0 -4
  349. package/dist/ionic/p-19a7c660.system.entry.js +0 -4
  350. package/dist/ionic/p-1e5165db.system.entry.js +0 -4
  351. package/dist/ionic/p-20cf4994.js +0 -4
  352. package/dist/ionic/p-276afddd.js +0 -4
  353. package/dist/ionic/p-29adc040.entry.js +0 -4
  354. package/dist/ionic/p-2e8e0045.js +0 -4
  355. package/dist/ionic/p-352c0232.system.entry.js +0 -4
  356. package/dist/ionic/p-3602001b.system.js +0 -4
  357. package/dist/ionic/p-3632220b.system.js +0 -4
  358. package/dist/ionic/p-431151f2.entry.js +0 -4
  359. package/dist/ionic/p-4cd588b3.system.entry.js +0 -4
  360. package/dist/ionic/p-4d786d1f.system.entry.js +0 -4
  361. package/dist/ionic/p-4fa201a7.entry.js +0 -4
  362. package/dist/ionic/p-52360c7a.entry.js +0 -4
  363. package/dist/ionic/p-67aab78f.js +0 -4
  364. package/dist/ionic/p-67eecef4.system.js +0 -4
  365. package/dist/ionic/p-6d812360.system.entry.js +0 -4
  366. package/dist/ionic/p-7176cea3.entry.js +0 -4
  367. package/dist/ionic/p-77e7a9c8.entry.js +0 -4
  368. package/dist/ionic/p-86b2394a.entry.js +0 -4
  369. package/dist/ionic/p-8cbf0979.entry.js +0 -4
  370. package/dist/ionic/p-97c65aa5.js +0 -4
  371. package/dist/ionic/p-9ab6f3e6.system.js +0 -4
  372. package/dist/ionic/p-9b89cbde.js +0 -4
  373. package/dist/ionic/p-b0cee324.entry.js +0 -4
  374. package/dist/ionic/p-b1142133.entry.js +0 -4
  375. package/dist/ionic/p-c6be7737.system.entry.js +0 -4
  376. package/dist/ionic/p-cc196b34.js +0 -4
  377. package/dist/ionic/p-cd2808f5.system.entry.js +0 -4
  378. package/dist/ionic/p-d1de1188.js +0 -4
  379. package/dist/ionic/p-dfa756ed.system.js +0 -4
  380. package/dist/ionic/p-e6b240a0.js +0 -4
  381. package/dist/ionic/p-ee2469c1.entry.js +0 -4
  382. package/dist/ionic/p-ff5a10f9.system.js +0 -4
  383. /package/dist/esm-es5/{index-7a14ecec.js → index-a5d50daf.js} +0 -0
  384. /package/dist/esm-es5/{index-d1a56aed.js → index-c132c5f1.js} +0 -0
  385. /package/dist/ionic/{p-0e94957a.system.js → p-792919fd.system.js} +0 -0
  386. /package/dist/ionic/{p-b347cfd1.js → p-7b30edcc.js} +0 -0
  387. /package/dist/ionic/{p-84c6dece.system.js → p-8050b9b9.system.js} +0 -0
  388. /package/dist/ionic/{p-6e383534.js → p-ea96fa73.js} +0 -0
@@ -123,6 +123,8 @@ export class Toggle {
123
123
  if (this.legacyFormController.hasLegacyControl()) {
124
124
  this.ionStyle.emit({
125
125
  'interactive-disabled': this.disabled,
126
+ // TODO(FW-2990): remove this
127
+ legacy: !!this.legacy,
126
128
  });
127
129
  }
128
130
  }
@@ -463,6 +463,16 @@ export const createAnimation = (animationId) => {
463
463
  }
464
464
  }
465
465
  });
466
+ /**
467
+ * Clean up any value coercion before
468
+ * the user callbacks fire otherwise
469
+ * they may get stale values. For example,
470
+ * if someone calls progressStart(0) the
471
+ * animation may still be reversed.
472
+ */
473
+ forceDurationValue = undefined;
474
+ forceDirectionValue = undefined;
475
+ forceDelayValue = undefined;
466
476
  onFinishCallbacks.forEach((onFinishCallback) => {
467
477
  return onFinishCallback.c(currentStep, ani);
468
478
  });
@@ -667,17 +677,8 @@ export const createAnimation = (animationId) => {
667
677
  update(false, false);
668
678
  }
669
679
  }
670
- if (playTo !== undefined) {
671
- onFinish(() => {
672
- forceDurationValue = undefined;
673
- forceDirectionValue = undefined;
674
- forceDelayValue = undefined;
675
- }, {
676
- oneTimeCallback: true,
677
- });
678
- if (!parentAnimation) {
679
- play();
680
- }
680
+ if (playTo !== undefined && !parentAnimation) {
681
+ play();
681
682
  }
682
683
  return ani;
683
684
  };
@@ -5,6 +5,22 @@ import { createAnimation } from "../animation";
5
5
  import { processKeyframes } from "../animation-utils";
6
6
  import { getTimeGivenProgression } from "../cubic-bezier";
7
7
  describe('Animation Class', () => {
8
+ describe('progressEnd callbacks', () => {
9
+ test('coerced state should be reset before onFinish runs', (done) => {
10
+ const el = document.createElement('div');
11
+ const animation = createAnimation()
12
+ .addElement(el)
13
+ .fromTo('transform', 'translateX(0px)', 'translateX(100px)')
14
+ .duration(50);
15
+ animation
16
+ .onFinish(() => {
17
+ expect(animation.getDirection()).toBe('normal');
18
+ expect(animation.getDuration()).toBe(50);
19
+ done();
20
+ })
21
+ .progressEnd(0, 0.5, 10);
22
+ });
23
+ });
8
24
  describe('play()', () => {
9
25
  it('should resolve when the animation is cancelled', async () => {
10
26
  // Tell Jest to expect 1 assertion for async code
@@ -1,27 +1,5 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- /**
5
- * When accessing the document or window, it is important
6
- * to account for SSR applications where the
7
- * window is not available. Code that accesses
8
- * window when it is not available will crash.
9
- * Even checking if `window === undefined` will cause
10
- * apps to crash in SSR.
11
- *
12
- * Use win below to access an SSR-safe version
13
- * of the window.
14
- *
15
- * Example 1:
16
- * Before:
17
- * if (window.innerWidth > 768) { ... }
18
- *
19
- * After:
20
- * import { win } from 'path/to/this/file';
21
- * if (win?.innerWidth > 768) { ... }
22
- *
23
- * Note: Code inside of this if-block will
24
- * not run in an SSR environment.
25
- */
26
4
  export const win = typeof window !== 'undefined' ? window : undefined;
27
5
  export const doc = typeof document !== 'undefined' ? document : undefined;
@@ -0,0 +1,39 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ /**
5
+ * Uses the compareWith param to compare two values to determine if they are equal.
6
+ *
7
+ * @param currentValue The current value of the control.
8
+ * @param compareValue The value to compare against.
9
+ * @param compareWith The function or property name to use to compare values.
10
+ */
11
+ export const compareOptions = (currentValue, compareValue, compareWith) => {
12
+ if (typeof compareWith === 'function') {
13
+ return compareWith(currentValue, compareValue);
14
+ }
15
+ else if (typeof compareWith === 'string') {
16
+ return currentValue[compareWith] === compareValue[compareWith];
17
+ }
18
+ else {
19
+ return Array.isArray(compareValue) ? compareValue.includes(currentValue) : currentValue === compareValue;
20
+ }
21
+ };
22
+ /**
23
+ * Compares a value against the current value(s) to determine if it is selected.
24
+ *
25
+ * @param currentValue The current value of the control.
26
+ * @param compareValue The value to compare against.
27
+ * @param compareWith The function or property name to use to compare values.
28
+ */
29
+ export const isOptionSelected = (currentValue, compareValue, compareWith) => {
30
+ if (currentValue === undefined) {
31
+ return false;
32
+ }
33
+ if (Array.isArray(currentValue)) {
34
+ return currentValue.some((val) => compareOptions(val, compareValue, compareWith));
35
+ }
36
+ else {
37
+ return compareOptions(currentValue, compareValue, compareWith);
38
+ }
39
+ };
@@ -3,3 +3,4 @@
3
3
  */
4
4
  export * from './form-controller';
5
5
  export * from './notch-controller';
6
+ export * from './compare-with-utils';
@@ -1,6 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
+ import { doc } from "../browser/index";
4
5
  import { findClosestIonContent } from "../content";
5
6
  import { componentOnReady } from "../helpers";
6
7
  import { Keyboard } from "../native/keyboard";
@@ -11,7 +12,13 @@ const INPUT_BLURRING = true;
11
12
  const SCROLL_ASSIST = true;
12
13
  const HIDE_CARET = true;
13
14
  export const startInputShims = async (config, platform) => {
14
- const doc = document;
15
+ /**
16
+ * If doc is undefined then we are in an SSR environment
17
+ * where input shims do not apply.
18
+ */
19
+ if (doc === undefined) {
20
+ return;
21
+ }
15
22
  const isIOS = platform === 'ios';
16
23
  const isAndroid = platform === 'android';
17
24
  /**
@@ -90,11 +97,10 @@ export const startInputShims = async (config, platform) => {
90
97
  for (const input of inputs) {
91
98
  registerInput(input);
92
99
  }
93
- // TODO(FW-2832): types
94
- doc.addEventListener('ionInputDidLoad', ((ev) => {
100
+ doc.addEventListener('ionInputDidLoad', (ev) => {
95
101
  registerInput(ev.detail);
96
- }));
97
- doc.addEventListener('ionInputDidUnload', ((ev) => {
102
+ });
103
+ doc.addEventListener('ionInputDidUnload', (ev) => {
98
104
  unregisterInput(ev.detail);
99
- }));
105
+ });
100
106
  };
@@ -1,8 +1,9 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { printIonWarning } from "../logging/index";
4
+ import { doc } from "../browser/index";
5
5
  import { MENU_BACK_BUTTON_PRIORITY } from "../hardware-back-button";
6
+ import { printIonWarning } from "../logging/index";
6
7
  import { componentOnReady } from "../helpers";
7
8
  import { menuOverlayAnimation } from "./animations/overlay";
8
9
  import { menuPushAnimation } from "./animations/push";
@@ -184,17 +185,14 @@ const createMenuController = () => {
184
185
  registerAnimation('reveal', menuRevealAnimation);
185
186
  registerAnimation('push', menuPushAnimation);
186
187
  registerAnimation('overlay', menuOverlayAnimation);
187
- if (typeof document !== 'undefined') {
188
- document.addEventListener('ionBackButton', (ev) => {
189
- // TODO(FW-2832): type
190
- const openMenu = _getOpenSync();
191
- if (openMenu) {
192
- ev.detail.register(MENU_BACK_BUTTON_PRIORITY, () => {
193
- return openMenu.close();
194
- });
195
- }
196
- });
197
- }
188
+ doc === null || doc === void 0 ? void 0 : doc.addEventListener('ionBackButton', (ev) => {
189
+ const openMenu = _getOpenSync();
190
+ if (openMenu) {
191
+ ev.detail.register(MENU_BACK_BUTTON_PRIORITY, () => {
192
+ return openMenu.close();
193
+ });
194
+ }
195
+ });
198
196
  return {
199
197
  registerAnimation,
200
198
  get,
@@ -562,6 +562,7 @@ export const safeCall = (handler, arg) => {
562
562
  };
563
563
  export const BACKDROP = 'backdrop';
564
564
  export const GESTURE = 'gesture';
565
+ export const OVERLAY_GESTURE_PRIORITY = 39;
565
566
  /**
566
567
  * Creates a delegate controller.
567
568
  *
@@ -9,13 +9,14 @@ import { raf } from "./helpers";
9
9
  * This is not needed for components using native slots in the Shadow DOM.
10
10
  * @internal
11
11
  * @param el The host element to observe
12
- * @param slotName mutationCallback will fire when nodes on this slot change
12
+ * @param slotName mutationCallback will fire when nodes on these slot(s) change
13
13
  * @param mutationCallback The callback to fire whenever the slotted content changes
14
14
  */
15
15
  export const createSlotMutationController = (el, slotName, mutationCallback) => {
16
16
  let hostMutationObserver;
17
17
  let slottedContentMutationObserver;
18
18
  if (win !== undefined && 'MutationObserver' in win) {
19
+ const slots = Array.isArray(slotName) ? slotName : [slotName];
19
20
  hostMutationObserver = new MutationObserver((entries) => {
20
21
  for (const entry of entries) {
21
22
  for (const node of entry.addedNodes) {
@@ -23,7 +24,7 @@ export const createSlotMutationController = (el, slotName, mutationCallback) =>
23
24
  * Check to see if the added node
24
25
  * is our slotted content.
25
26
  */
26
- if (node.nodeType === Node.ELEMENT_NODE && node.slot === slotName) {
27
+ if (node.nodeType === Node.ELEMENT_NODE && slots.includes(node.slot)) {
27
28
  /**
28
29
  * If so, we want to watch the slotted
29
30
  * content itself for changes. This lets us
package/dist/docs.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2023-11-28T20:32:36",
2
+ "timestamp": "2023-11-29T16:04:28",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.7.2",
@@ -9657,6 +9657,14 @@
9657
9657
  {
9658
9658
  "name": "slot",
9659
9659
  "text": "label - The label text to associate with the input. Use the `labelPlacement` property to control where the label is placed relative to the input. Use this if you need to render a label with custom HTML. (EXPERIMENTAL)"
9660
+ },
9661
+ {
9662
+ "name": "slot",
9663
+ "text": "start - Content to display at the leading edge of the input. (EXPERIMENTAL)"
9664
+ },
9665
+ {
9666
+ "name": "slot",
9667
+ "text": "end - Content to display at the trailing edge of the input. (EXPERIMENTAL)"
9660
9668
  }
9661
9669
  ],
9662
9670
  "usage": {},
@@ -11151,9 +11159,17 @@
11151
11159
  }
11152
11160
  ],
11153
11161
  "slots": [
11162
+ {
11163
+ "name": "end",
11164
+ "docs": "Content to display at the trailing edge of the input. (EXPERIMENTAL)"
11165
+ },
11154
11166
  {
11155
11167
  "name": "label",
11156
11168
  "docs": "The label text to associate with the input. Use the `labelPlacement` property to control where the label is placed relative to the input. Use this if you need to render a label with custom HTML. (EXPERIMENTAL)"
11169
+ },
11170
+ {
11171
+ "name": "start",
11172
+ "docs": "Content to display at the leading edge of the input. (EXPERIMENTAL)"
11157
11173
  }
11158
11174
  ],
11159
11175
  "parts": [],
@@ -19711,6 +19727,42 @@
19711
19727
  "optional": false,
19712
19728
  "required": false
19713
19729
  },
19730
+ {
19731
+ "name": "compareWith",
19732
+ "type": "((currentValue: any, compareValue: any) => boolean) | null | string | undefined",
19733
+ "complexType": {
19734
+ "original": "string | RadioGroupCompareFn | null",
19735
+ "resolved": "((currentValue: any, compareValue: any) => boolean) | null | string | undefined",
19736
+ "references": {
19737
+ "RadioGroupCompareFn": {
19738
+ "location": "import",
19739
+ "path": "./radio-group-interface",
19740
+ "id": "src/components/radio-group/radio-group-interface.ts::RadioGroupCompareFn"
19741
+ }
19742
+ }
19743
+ },
19744
+ "mutable": false,
19745
+ "attr": "compare-with",
19746
+ "reflectToAttr": false,
19747
+ "docs": "This property allows developers to specify a custom function or property\nname for comparing objects when determining the selected option in the\nion-radio-group. When not specified, the default behavior will use strict\nequality (===) for comparison.",
19748
+ "docsTags": [],
19749
+ "values": [
19750
+ {
19751
+ "type": "((currentValue: any, compareValue: any) => boolean)"
19752
+ },
19753
+ {
19754
+ "type": "null"
19755
+ },
19756
+ {
19757
+ "type": "string"
19758
+ },
19759
+ {
19760
+ "type": "undefined"
19761
+ }
19762
+ ],
19763
+ "optional": true,
19764
+ "required": false
19765
+ },
19714
19766
  {
19715
19767
  "name": "name",
19716
19768
  "type": "string",
@@ -23781,6 +23833,14 @@
23781
23833
  "name": "slot",
23782
23834
  "text": "label - The label text to associate with the select. Use the `labelPlacement` property to control where the label is placed relative to the select. Use this if you need to render a label with custom HTML."
23783
23835
  },
23836
+ {
23837
+ "name": "slot",
23838
+ "text": "start - Content to display at the leading edge of the select."
23839
+ },
23840
+ {
23841
+ "name": "slot",
23842
+ "text": "end - Content to display at the trailing edge of the select."
23843
+ },
23784
23844
  {
23785
23845
  "name": "part",
23786
23846
  "text": "placeholder - The text displayed in the select when there is no value."
@@ -23909,7 +23969,7 @@
23909
23969
  "mutable": false,
23910
23970
  "attr": "compare-with",
23911
23971
  "reflectToAttr": false,
23912
- "docs": "A property name or function used to compare object values",
23972
+ "docs": "This property allows developers to specify a custom function or property\nname for comparing objects when determining the selected option in the\nion-select. When not specified, the default behavior will use strict\nequality (===) for comparison.",
23913
23973
  "docsTags": [],
23914
23974
  "values": [
23915
23975
  {
@@ -24596,9 +24656,17 @@
24596
24656
  }
24597
24657
  ],
24598
24658
  "slots": [
24659
+ {
24660
+ "name": "end",
24661
+ "docs": "Content to display at the trailing edge of the select."
24662
+ },
24599
24663
  {
24600
24664
  "name": "label",
24601
24665
  "docs": "The label text to associate with the select. Use the `labelPlacement` property to control where the label is placed relative to the select. Use this if you need to render a label with custom HTML."
24666
+ },
24667
+ {
24668
+ "name": "start",
24669
+ "docs": "Content to display at the leading edge of the select."
24602
24670
  }
24603
24671
  ],
24604
24672
  "parts": [
@@ -26041,6 +26109,14 @@
26041
26109
  {
26042
26110
  "name": "slot",
26043
26111
  "text": "label - The label text to associate with the textarea. Use the `labelPlacement` property to control where the label is placed relative to the textarea. Use this if you need to render a label with custom HTML. (EXPERIMENTAL)"
26112
+ },
26113
+ {
26114
+ "name": "slot",
26115
+ "text": "start - Content to display at the leading edge of the textarea. (EXPERIMENTAL)"
26116
+ },
26117
+ {
26118
+ "name": "slot",
26119
+ "text": "end - Content to display at the trailing edge of the textarea. (EXPERIMENTAL)"
26044
26120
  }
26045
26121
  ],
26046
26122
  "usage": {},
@@ -27091,9 +27167,17 @@
27091
27167
  }
27092
27168
  ],
27093
27169
  "slots": [
27170
+ {
27171
+ "name": "end",
27172
+ "docs": "Content to display at the trailing edge of the textarea. (EXPERIMENTAL)"
27173
+ },
27094
27174
  {
27095
27175
  "name": "label",
27096
27176
  "docs": "The label text to associate with the textarea. Use the `labelPlacement` property to control where the label is placed relative to the textarea. Use this if you need to render a label with custom HTML. (EXPERIMENTAL)"
27177
+ },
27178
+ {
27179
+ "name": "start",
27180
+ "docs": "Content to display at the leading edge of the textarea. (EXPERIMENTAL)"
27097
27181
  }
27098
27182
  ],
27099
27183
  "parts": [],
@@ -27785,6 +27869,37 @@
27785
27869
  "optional": true,
27786
27870
  "required": false
27787
27871
  },
27872
+ {
27873
+ "name": "swipeGesture",
27874
+ "type": "\"vertical\" | undefined",
27875
+ "complexType": {
27876
+ "original": "ToastSwipeGestureDirection",
27877
+ "resolved": "\"vertical\" | undefined",
27878
+ "references": {
27879
+ "ToastSwipeGestureDirection": {
27880
+ "location": "import",
27881
+ "path": "./toast-interface",
27882
+ "id": "src/components/toast/toast-interface.ts::ToastSwipeGestureDirection"
27883
+ }
27884
+ }
27885
+ },
27886
+ "mutable": false,
27887
+ "attr": "swipe-gesture",
27888
+ "reflectToAttr": false,
27889
+ "docs": "If set to 'vertical', the Toast can be dismissed with\na swipe gesture. The swipe direction is determined by\nthe value of the `position` property:\n`top`: The Toast can be swiped up to dismiss.\n`bottom`: The Toast can be swiped down to dismiss.\n`middle`: The Toast can be swiped up or down to dismiss.",
27890
+ "docsTags": [],
27891
+ "values": [
27892
+ {
27893
+ "value": "vertical",
27894
+ "type": "string"
27895
+ },
27896
+ {
27897
+ "type": "undefined"
27898
+ }
27899
+ ],
27900
+ "optional": true,
27901
+ "required": false
27902
+ },
27788
27903
  {
27789
27904
  "name": "translucent",
27790
27905
  "type": "boolean",
@@ -29093,6 +29208,11 @@
29093
29208
  "docstring": "Values are converted to strings when emitted which is\nwhy we do not have a `number` type here even though the\n`value` prop accepts a `number` type.",
29094
29209
  "path": "src/components/input/input-interface.ts"
29095
29210
  },
29211
+ "src/components/radio-group/radio-group-interface.ts::RadioGroupCompareFn": {
29212
+ "declaration": "(currentValue: any, compareValue: any) => boolean",
29213
+ "docstring": "",
29214
+ "path": "src/components/radio-group/radio-group-interface.ts"
29215
+ },
29096
29216
  "src/components/radio-group/radio-group-interface.ts::RadioGroupChangeEventDetail": {
29097
29217
  "declaration": "export interface RadioGroupChangeEventDetail<T = any> {\n value: T;\n event?: Event;\n}",
29098
29218
  "docstring": "",
@@ -29343,6 +29463,11 @@
29343
29463
  "docstring": "",
29344
29464
  "path": "src/components/toast/toast-interface.ts"
29345
29465
  },
29466
+ "src/components/toast/toast-interface.ts::ToastSwipeGestureDirection": {
29467
+ "declaration": "\"vertical\"",
29468
+ "docstring": "",
29469
+ "path": "src/components/toast/toast-interface.ts"
29470
+ },
29346
29471
  "src/components/toast/toast-interface.ts::ToastPresentOptions": {
29347
29472
  "declaration": "export type ToastPresentOptions = ToastPositionAlias & ToastAnimationPosition;",
29348
29473
  "docstring": "",
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { w as win } from './index-7a14ecec.js';
4
+ import { w as win } from './index-a5d50daf.js';
5
5
  import { r as raf } from './helpers-3379ba19.js';
6
6
 
7
7
  let animationPrefix;
@@ -586,6 +586,16 @@ const createAnimation = (animationId) => {
586
586
  }
587
587
  }
588
588
  });
589
+ /**
590
+ * Clean up any value coercion before
591
+ * the user callbacks fire otherwise
592
+ * they may get stale values. For example,
593
+ * if someone calls progressStart(0) the
594
+ * animation may still be reversed.
595
+ */
596
+ forceDurationValue = undefined;
597
+ forceDirectionValue = undefined;
598
+ forceDelayValue = undefined;
589
599
  onFinishCallbacks.forEach((onFinishCallback) => {
590
600
  return onFinishCallback.c(currentStep, ani);
591
601
  });
@@ -790,17 +800,8 @@ const createAnimation = (animationId) => {
790
800
  update(false, false);
791
801
  }
792
802
  }
793
- if (playTo !== undefined) {
794
- onFinish(() => {
795
- forceDurationValue = undefined;
796
- forceDirectionValue = undefined;
797
- forceDelayValue = undefined;
798
- }, {
799
- oneTimeCallback: true,
800
- });
801
- if (!parentAnimation) {
802
- play();
803
- }
803
+ if (playTo !== undefined && !parentAnimation) {
804
+ play();
804
805
  }
805
806
  return ani;
806
807
  };
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { w as writeTask } from './index-7c9b1bca.js';
5
- import { h as hapticSelectionEnd, a as hapticSelectionStart, b as hapticSelectionChanged } from './haptic-1243b917.js';
5
+ import { h as hapticSelectionEnd, a as hapticSelectionStart, b as hapticSelectionChanged } from './haptic-1a66d69f.js';
6
6
  import { createGesture } from './index-ff313b19.js';
7
7
 
8
8
  const createButtonActiveGesture = (el, isButton) => {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { w as win } from './index-7a14ecec.js';
4
+ import { w as win } from './index-a5d50daf.js';
5
5
 
6
6
  const getCapacitor = () => {
7
7
  if (win !== undefined) {
@@ -0,0 +1,41 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ /**
5
+ * Uses the compareWith param to compare two values to determine if they are equal.
6
+ *
7
+ * @param currentValue The current value of the control.
8
+ * @param compareValue The value to compare against.
9
+ * @param compareWith The function or property name to use to compare values.
10
+ */
11
+ const compareOptions = (currentValue, compareValue, compareWith) => {
12
+ if (typeof compareWith === 'function') {
13
+ return compareWith(currentValue, compareValue);
14
+ }
15
+ else if (typeof compareWith === 'string') {
16
+ return currentValue[compareWith] === compareValue[compareWith];
17
+ }
18
+ else {
19
+ return Array.isArray(compareValue) ? compareValue.includes(currentValue) : currentValue === compareValue;
20
+ }
21
+ };
22
+ /**
23
+ * Compares a value against the current value(s) to determine if it is selected.
24
+ *
25
+ * @param currentValue The current value of the control.
26
+ * @param compareValue The value to compare against.
27
+ * @param compareWith The function or property name to use to compare values.
28
+ */
29
+ const isOptionSelected = (currentValue, compareValue, compareWith) => {
30
+ if (currentValue === undefined) {
31
+ return false;
32
+ }
33
+ if (Array.isArray(currentValue)) {
34
+ return currentValue.some((val) => compareOptions(val, compareValue, compareWith));
35
+ }
36
+ else {
37
+ return compareOptions(currentValue, compareValue, compareWith);
38
+ }
39
+ };
40
+
41
+ export { compareOptions as c, isOptionSelected as i };
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { g as getCapacitor } from './capacitor-b4979570.js';
4
+ import { g as getCapacitor } from './capacitor-f1f25364.js';
5
5
 
6
6
  var ImpactStyle;
7
7
  (function (ImpactStyle) {
@@ -1,11 +1,12 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { p as printIonWarning } from './index-595d62c9.js';
4
+ import { d as doc } from './index-a5d50daf.js';
5
5
  import { MENU_BACK_BUTTON_PRIORITY } from './hardware-back-button-39299f84.js';
6
+ import { p as printIonWarning } from './index-595d62c9.js';
6
7
  import { c as componentOnReady } from './helpers-3379ba19.js';
7
8
  import { b as getIonMode } from './ionic-global-40e42e7f.js';
8
- import { c as createAnimation } from './animation-8aa13916.js';
9
+ import { c as createAnimation } from './animation-cf3dd234.js';
9
10
 
10
11
  /**
11
12
  * baseAnimation
@@ -272,17 +273,14 @@ const createMenuController = () => {
272
273
  registerAnimation('reveal', menuRevealAnimation);
273
274
  registerAnimation('push', menuPushAnimation);
274
275
  registerAnimation('overlay', menuOverlayAnimation);
275
- if (typeof document !== 'undefined') {
276
- document.addEventListener('ionBackButton', (ev) => {
277
- // TODO(FW-2832): type
278
- const openMenu = _getOpenSync();
279
- if (openMenu) {
280
- ev.detail.register(MENU_BACK_BUTTON_PRIORITY, () => {
281
- return openMenu.close();
282
- });
283
- }
284
- });
285
- }
276
+ doc === null || doc === void 0 ? void 0 : doc.addEventListener('ionBackButton', (ev) => {
277
+ const openMenu = _getOpenSync();
278
+ if (openMenu) {
279
+ ev.detail.register(MENU_BACK_BUTTON_PRIORITY, () => {
280
+ return openMenu.close();
281
+ });
282
+ }
283
+ });
286
284
  return {
287
285
  registerAnimation,
288
286
  get,
@@ -10,8 +10,8 @@ const LIFECYCLE_WILL_LEAVE = 'ionViewWillLeave';
10
10
  const LIFECYCLE_DID_LEAVE = 'ionViewDidLeave';
11
11
  const LIFECYCLE_WILL_UNLOAD = 'ionViewWillUnload';
12
12
 
13
- const iosTransitionAnimation = () => import('./ios.transition-1651c430.js');
14
- const mdTransitionAnimation = () => import('./md.transition-66f18369.js');
13
+ const iosTransitionAnimation = () => import('./ios.transition-c3e77862.js');
14
+ const mdTransitionAnimation = () => import('./md.transition-1173eca9.js');
15
15
  // TODO(FW-2832): types
16
16
  const transition = (opts) => {
17
17
  return new Promise((resolve, reject) => {
@@ -0,0 +1,7 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ const win = typeof window !== 'undefined' ? window : undefined;
5
+ const doc = typeof document !== 'undefined' ? document : undefined;
6
+
7
+ export { doc as d, win as w };
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- /* Ionicons v7.1.3-dev.11699459714.11b7e8aa, ES Modules */
4
+ /* Ionicons v7.2.1, ES Modules */
5
5
  const arrowBackSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path stroke-linecap='square' stroke-miterlimit='10' stroke-width='48' d='M244 400L100 256l144-144M120 256h292' class='ionicon-fill-none'/></svg>";
6
6
  const arrowDown = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M112 268l144 144 144-144M256 392V100' class='ionicon-fill-none'/></svg>";
7
7
  const caretBackSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path d='M368 64L144 256l224 192V64z'/></svg>";