@ionic/core 7.5.8-dev.11701876182.1e71e7a0 → 7.5.8-dev.11701894917.1c1465bd

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 (442) hide show
  1. package/components/animation.js +11 -12
  2. package/components/backdrop.js +0 -12
  3. package/components/checkbox.js +3 -5
  4. package/components/gesture-controller.js +1 -1
  5. package/components/index4.js +12 -10
  6. package/components/index5.js +22 -0
  7. package/components/input-shims.js +7 -12
  8. package/components/input.utils.js +2 -3
  9. package/components/ion-content.js +1 -1
  10. package/components/ion-datetime.js +15 -48
  11. package/components/ion-infinite-scroll.js +3 -11
  12. package/components/ion-input.js +8 -31
  13. package/components/ion-modal.js +2 -2
  14. package/components/ion-range.js +3 -5
  15. package/components/ion-select.js +29 -44
  16. package/components/ion-skeleton-text.js +1 -14
  17. package/components/ion-textarea.js +7 -30
  18. package/components/ion-toast.js +74 -419
  19. package/components/ion-toggle.js +3 -5
  20. package/components/item.js +2 -2
  21. package/components/label.js +2 -2
  22. package/components/overlays.js +6 -3
  23. package/components/radio-group.js +0 -2
  24. package/components/radio.js +5 -45
  25. package/dist/cjs/{animation-9b401d39.js → animation-cc40e39c.js} +12 -13
  26. package/dist/cjs/{button-active-a5185907.js → button-active-9d7e0640.js} +2 -2
  27. package/dist/cjs/{capacitor-c04564bf.js → capacitor-46980811.js} +1 -1
  28. package/dist/cjs/{gesture-controller-c40c045a.js → gesture-controller-9436f482.js} +1 -0
  29. package/dist/cjs/{haptic-b882e0bb.js → haptic-216df36c.js} +1 -1
  30. package/dist/cjs/index-306a7476.js +32 -0
  31. package/dist/cjs/{index-ce101dc9.js → index-5cbb20f9.js} +13 -11
  32. package/dist/cjs/{index-b4f986cd.js → index-8c1e77d6.js} +1 -1
  33. package/dist/cjs/{index-f8f13389.js → index-d4c2e02c.js} +2 -2
  34. package/dist/cjs/{index-d1b59ffa.js → index-ee07ed59.js} +1 -1
  35. package/dist/cjs/index.cjs.js +10 -10
  36. package/dist/cjs/{input-shims-a23bb0f4.js → input-shims-87102b6a.js} +10 -15
  37. package/dist/cjs/{input.utils-3d0166a2.js → input.utils-2a11c1fe.js} +3 -4
  38. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
  39. package/dist/cjs/ion-alert.cjs.entry.js +8 -8
  40. package/dist/cjs/ion-app_8.cjs.entry.js +10 -10
  41. package/dist/cjs/ion-backdrop.cjs.entry.js +0 -12
  42. package/dist/cjs/ion-checkbox.cjs.entry.js +3 -5
  43. package/dist/cjs/ion-datetime_3.cjs.entry.js +14 -28
  44. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -11
  45. package/dist/cjs/ion-input.cjs.entry.js +11 -34
  46. package/dist/cjs/ion-item-option_3.cjs.entry.js +1 -1
  47. package/dist/cjs/ion-item_8.cjs.entry.js +4 -17
  48. package/dist/cjs/ion-loading.cjs.entry.js +4 -3
  49. package/dist/cjs/ion-menu_3.cjs.entry.js +7 -7
  50. package/dist/cjs/ion-modal.cjs.entry.js +10 -10
  51. package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
  52. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +3 -3
  53. package/dist/cjs/ion-popover.cjs.entry.js +5 -4
  54. package/dist/cjs/ion-radio_2.cjs.entry.js +4 -9
  55. package/dist/cjs/ion-range.cjs.entry.js +4 -6
  56. package/dist/cjs/ion-refresher_2.cjs.entry.js +7 -7
  57. package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
  58. package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
  59. package/dist/cjs/ion-select_3.cjs.entry.js +36 -51
  60. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  61. package/dist/cjs/ion-textarea.cjs.entry.js +10 -33
  62. package/dist/cjs/ion-toast.cjs.entry.js +93 -434
  63. package/dist/cjs/ion-toggle.cjs.entry.js +7 -9
  64. package/dist/cjs/ionic.cjs.js +1 -1
  65. package/dist/cjs/{ios.transition-6787b799.js → ios.transition-a4ffb5a2.js} +3 -3
  66. package/dist/cjs/{keyboard-af1bb365.js → keyboard-7d621ee9.js} +3 -3
  67. package/dist/cjs/{keyboard-0272231f.js → keyboard-9390928c.js} +1 -1
  68. package/dist/cjs/{keyboard-controller-c05e747a.js → keyboard-controller-2158b478.js} +2 -2
  69. package/dist/cjs/loader.cjs.js +1 -1
  70. package/dist/cjs/{md.transition-e033d20a.js → md.transition-292abe1c.js} +3 -3
  71. package/dist/cjs/{notch-controller-9735e7ac.js → notch-controller-1dce508a.js} +1 -1
  72. package/dist/cjs/{overlays-27a6fb16.js → overlays-2c6b1072.js} +6 -4
  73. package/dist/cjs/{swipe-back-2a858bbd.js → swipe-back-b8f2330b.js} +2 -2
  74. package/dist/collection/components/backdrop/backdrop.js +0 -12
  75. package/dist/collection/components/checkbox/checkbox.ios.css +6 -0
  76. package/dist/collection/components/checkbox/checkbox.js +1 -4
  77. package/dist/collection/components/checkbox/checkbox.md.css +6 -0
  78. package/dist/collection/components/checkbox/test/checkbox.spec.js +0 -14
  79. package/dist/collection/components/content/content.css +0 -4
  80. package/dist/collection/components/datetime/datetime.ios.css +83 -25
  81. package/dist/collection/components/datetime/datetime.js +5 -20
  82. package/dist/collection/components/datetime/datetime.md.css +88 -25
  83. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +1 -1
  84. package/dist/collection/components/datetime/test/a11y/datetime.spec.js +6 -9
  85. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +10 -0
  86. package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +1 -1
  87. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +2 -2
  88. package/dist/collection/components/infinite-scroll/infinite-scroll.js +3 -11
  89. package/dist/collection/components/input/input.ios.css +3 -10
  90. package/dist/collection/components/input/input.js +6 -31
  91. package/dist/collection/components/input/input.md.css +12 -13
  92. package/dist/collection/components/item/item.ios.css +3 -41
  93. package/dist/collection/components/item/item.md.css +3 -41
  94. package/dist/collection/components/item/test/basic/item.e2e.js +1 -1
  95. package/dist/collection/components/item/test/disabled/item.e2e.js +1 -0
  96. package/dist/collection/components/item/test/text/item.e2e.js +14 -0
  97. package/dist/collection/components/label/label.ios.css +3 -14
  98. package/dist/collection/components/label/label.md.css +3 -14
  99. package/dist/collection/components/modal/gestures/swipe-to-close.js +1 -2
  100. package/dist/collection/components/note/test/a11y/note.e2e.js +0 -43
  101. package/dist/collection/components/radio/radio.ios.css +6 -0
  102. package/dist/collection/components/radio/radio.js +3 -7
  103. package/dist/collection/components/radio/radio.md.css +6 -0
  104. package/dist/collection/components/radio/test/radio.spec.js +0 -14
  105. package/dist/collection/components/radio-group/radio-group.js +0 -24
  106. package/dist/collection/components/range/range.ios.css +6 -0
  107. package/dist/collection/components/range/range.js +1 -4
  108. package/dist/collection/components/range/range.md.css +6 -0
  109. package/dist/collection/components/range/test/range.spec.js +0 -16
  110. package/dist/collection/components/select/select.ios.css +7 -60
  111. package/dist/collection/components/select/select.js +28 -45
  112. package/dist/collection/components/select/select.md.css +19 -63
  113. package/dist/collection/components/select/test/item/select.e2e.js +0 -15
  114. package/dist/collection/components/select/test/label/select.e2e.js +1 -1
  115. package/dist/collection/components/select/test/legacy/wrapping/select.e2e.js +1 -1
  116. package/dist/collection/components/skeleton-text/skeleton-text.js +0 -39
  117. package/dist/collection/components/textarea/textarea.ios.css +5 -37
  118. package/dist/collection/components/textarea/textarea.js +5 -30
  119. package/dist/collection/components/textarea/textarea.md.css +14 -47
  120. package/dist/collection/components/toast/animations/ios.enter.js +1 -2
  121. package/dist/collection/components/toast/animations/md.enter.js +3 -4
  122. package/dist/collection/components/toast/animations/utils.js +14 -20
  123. package/dist/collection/components/toast/test/toast.spec.js +0 -80
  124. package/dist/collection/components/toast/toast.ios.css +10 -10
  125. package/dist/collection/components/toast/toast.js +1 -104
  126. package/dist/collection/components/toast/toast.md.css +0 -10
  127. package/dist/collection/components/toggle/test/toggle.spec.js +0 -12
  128. package/dist/collection/components/toggle/toggle.ios.css +6 -0
  129. package/dist/collection/components/toggle/toggle.js +1 -4
  130. package/dist/collection/components/toggle/toggle.md.css +6 -0
  131. package/dist/collection/utils/animation/animation.js +11 -12
  132. package/dist/collection/utils/animation/test/animation.spec.js +0 -16
  133. package/dist/collection/utils/browser/index.js +22 -0
  134. package/dist/collection/utils/forms/index.js +0 -1
  135. package/dist/collection/utils/gesture/gesture-controller.js +1 -1
  136. package/dist/collection/utils/input-shims/input-shims.js +6 -12
  137. package/dist/collection/utils/menu-controller/index.js +12 -10
  138. package/dist/collection/utils/overlays.js +5 -2
  139. package/dist/collection/utils/slot-mutation-controller.js +2 -3
  140. package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +65 -0
  141. package/dist/docs.json +8 -176
  142. package/dist/esm/{animation-dde8cc0d.js → animation-fb0e0f6f.js} +12 -13
  143. package/dist/esm/{button-active-c6ee4f50.js → button-active-ed9d848c.js} +2 -2
  144. package/dist/esm/{capacitor-59395cbd.js → capacitor-b0e5fe83.js} +1 -1
  145. package/dist/esm/{gesture-controller-1bf57181.js → gesture-controller-314a54f6.js} +1 -1
  146. package/dist/esm/{haptic-554688a5.js → haptic-152c4172.js} +1 -1
  147. package/dist/esm/{index-2cf77112.js → index-39782642.js} +2 -2
  148. package/dist/esm/index-7a14ecec.js +29 -0
  149. package/dist/esm/{index-0c12c22b.js → index-80492ed3.js} +13 -11
  150. package/dist/esm/{index-82eeb47f.js → index-ba9976bb.js} +1 -1
  151. package/dist/esm/{index-1932b201.js → index-d8817fb0.js} +2 -2
  152. package/dist/esm/index.js +10 -10
  153. package/dist/esm/{input-shims-6539ce13.js → input-shims-0a2e541d.js} +9 -14
  154. package/dist/esm/{input.utils-a5a2d164.js → input.utils-2846d430.js} +3 -4
  155. package/dist/esm/ion-action-sheet.entry.js +8 -8
  156. package/dist/esm/ion-alert.entry.js +8 -8
  157. package/dist/esm/ion-app_8.entry.js +10 -10
  158. package/dist/esm/ion-backdrop.entry.js +0 -12
  159. package/dist/esm/ion-checkbox.entry.js +3 -5
  160. package/dist/esm/ion-datetime_3.entry.js +14 -28
  161. package/dist/esm/ion-infinite-scroll_2.entry.js +3 -11
  162. package/dist/esm/ion-input.entry.js +11 -34
  163. package/dist/esm/ion-item-option_3.entry.js +1 -1
  164. package/dist/esm/ion-item_8.entry.js +4 -17
  165. package/dist/esm/ion-loading.entry.js +4 -3
  166. package/dist/esm/ion-menu_3.entry.js +7 -7
  167. package/dist/esm/ion-modal.entry.js +10 -10
  168. package/dist/esm/ion-nav_2.entry.js +2 -2
  169. package/dist/esm/ion-picker-column-internal.entry.js +3 -3
  170. package/dist/esm/ion-popover.entry.js +5 -4
  171. package/dist/esm/ion-radio_2.entry.js +4 -9
  172. package/dist/esm/ion-range.entry.js +4 -6
  173. package/dist/esm/ion-refresher_2.entry.js +7 -7
  174. package/dist/esm/ion-reorder_2.entry.js +4 -4
  175. package/dist/esm/ion-segment_2.entry.js +1 -1
  176. package/dist/esm/ion-select_3.entry.js +32 -47
  177. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  178. package/dist/esm/ion-textarea.entry.js +10 -33
  179. package/dist/esm/ion-toast.entry.js +76 -417
  180. package/dist/esm/ion-toggle.entry.js +7 -9
  181. package/dist/esm/ionic.js +1 -1
  182. package/dist/esm/{ios.transition-802a84a6.js → ios.transition-fd16bec1.js} +3 -3
  183. package/dist/esm/{keyboard-52278bd7.js → keyboard-c402e885.js} +3 -3
  184. package/dist/esm/{keyboard-controller-ec5c2bfa.js → keyboard-controller-5d90929a.js} +2 -2
  185. package/dist/esm/{keyboard-73175e24.js → keyboard-dbb05fb9.js} +1 -1
  186. package/dist/esm/loader.js +1 -1
  187. package/dist/esm/{md.transition-43c2874d.js → md.transition-94ac93e1.js} +3 -3
  188. package/dist/esm/{notch-controller-fea7f9c5.js → notch-controller-d09b6aca.js} +1 -1
  189. package/dist/esm/{overlays-32ef481d.js → overlays-d23ea6e1.js} +7 -4
  190. package/dist/esm/{swipe-back-a6f386fc.js → swipe-back-a8ca7f93.js} +2 -2
  191. package/dist/esm-es5/{animation-dde8cc0d.js → animation-fb0e0f6f.js} +1 -1
  192. package/dist/esm-es5/{button-active-c6ee4f50.js → button-active-ed9d848c.js} +1 -1
  193. package/dist/esm-es5/{capacitor-59395cbd.js → capacitor-b0e5fe83.js} +1 -1
  194. package/dist/esm-es5/{gesture-controller-1bf57181.js → gesture-controller-314a54f6.js} +1 -1
  195. package/dist/esm-es5/{haptic-554688a5.js → haptic-152c4172.js} +1 -1
  196. package/dist/esm-es5/{index-2cf77112.js → index-39782642.js} +1 -1
  197. package/dist/esm-es5/index-80492ed3.js +4 -0
  198. package/dist/esm-es5/{index-82eeb47f.js → index-ba9976bb.js} +1 -1
  199. package/dist/esm-es5/{index-1932b201.js → index-d8817fb0.js} +1 -1
  200. package/dist/esm-es5/index.js +1 -1
  201. package/dist/esm-es5/input-shims-0a2e541d.js +4 -0
  202. package/dist/esm-es5/input.utils-2846d430.js +4 -0
  203. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  204. package/dist/esm-es5/ion-alert.entry.js +1 -1
  205. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  206. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  207. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  208. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  209. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  210. package/dist/esm-es5/ion-input.entry.js +1 -1
  211. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  212. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  213. package/dist/esm-es5/ion-loading.entry.js +1 -1
  214. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  215. package/dist/esm-es5/ion-modal.entry.js +1 -1
  216. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  217. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  218. package/dist/esm-es5/ion-popover.entry.js +1 -1
  219. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  220. package/dist/esm-es5/ion-range.entry.js +1 -1
  221. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  222. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  223. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  224. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  225. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  226. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  227. package/dist/esm-es5/ion-toast.entry.js +1 -1
  228. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  229. package/dist/esm-es5/ionic.js +1 -1
  230. package/dist/esm-es5/{ios.transition-802a84a6.js → ios.transition-fd16bec1.js} +1 -1
  231. package/dist/esm-es5/{keyboard-52278bd7.js → keyboard-c402e885.js} +1 -1
  232. package/dist/esm-es5/{keyboard-controller-ec5c2bfa.js → keyboard-controller-5d90929a.js} +1 -1
  233. package/dist/esm-es5/{keyboard-73175e24.js → keyboard-dbb05fb9.js} +1 -1
  234. package/dist/esm-es5/loader.js +1 -1
  235. package/dist/esm-es5/md.transition-94ac93e1.js +4 -0
  236. package/dist/esm-es5/{notch-controller-fea7f9c5.js → notch-controller-d09b6aca.js} +1 -1
  237. package/dist/esm-es5/overlays-d23ea6e1.js +4 -0
  238. package/dist/esm-es5/swipe-back-a8ca7f93.js +4 -0
  239. package/dist/html.html-data.json +1 -14
  240. package/dist/ionic/index.esm.js +1 -1
  241. package/dist/ionic/ionic.esm.js +1 -1
  242. package/dist/ionic/{p-8985cdb6.system.js → p-0e4f2e17.system.js} +1 -1
  243. package/dist/ionic/{p-33a37fad.system.js → p-1d624e03.system.js} +1 -1
  244. package/dist/ionic/p-1e57bd24.entry.js +4 -0
  245. package/dist/ionic/p-1f620cd4.system.entry.js +4 -0
  246. package/dist/ionic/{p-3dd98a73.entry.js → p-1fc72959.entry.js} +1 -1
  247. package/dist/ionic/{p-c7c8429a.system.js → p-20d469d0.system.js} +1 -1
  248. package/dist/ionic/p-22e5af95.entry.js +4 -0
  249. package/dist/ionic/p-232d1f22.entry.js +4 -0
  250. package/dist/ionic/{p-4d67d27a.entry.js → p-27ea6f4e.entry.js} +1 -1
  251. package/dist/ionic/p-2ab4e925.system.entry.js +4 -0
  252. package/dist/ionic/p-2d5aeccc.js +4 -0
  253. package/dist/ionic/p-2d600c25.system.js +4 -0
  254. package/dist/ionic/{p-a9978d08.entry.js → p-2dc43d20.entry.js} +1 -1
  255. package/dist/ionic/p-2f2293da.system.entry.js +4 -0
  256. package/dist/ionic/{p-251666e2.entry.js → p-2f300cca.entry.js} +1 -1
  257. package/dist/ionic/{p-31fcb233.system.js → p-30029cc2.system.js} +1 -1
  258. package/dist/ionic/{p-cabad15b.system.js → p-304383f9.system.js} +1 -1
  259. package/dist/ionic/p-308e1341.js +4 -0
  260. package/dist/ionic/{p-cdbeaadc.js → p-31158892.js} +1 -1
  261. package/dist/ionic/p-32303650.system.entry.js +4 -0
  262. package/dist/ionic/{p-0bd51c34.system.js → p-32e19bee.system.js} +1 -1
  263. package/dist/ionic/p-34c39c48.entry.js +4 -0
  264. package/dist/ionic/p-39a335b6.system.entry.js +4 -0
  265. package/dist/ionic/p-3b568d18.entry.js +4 -0
  266. package/dist/ionic/p-3ba01a9c.system.entry.js +4 -0
  267. package/dist/ionic/p-3c58a71b.js +4 -0
  268. package/dist/ionic/{p-31b2326e.system.js → p-3e1e14d9.system.js} +1 -1
  269. package/dist/ionic/{p-fba0a6e7.system.entry.js → p-3e3d06a6.system.entry.js} +1 -1
  270. package/dist/ionic/{p-78aadecb.entry.js → p-3f6270b3.entry.js} +1 -1
  271. package/dist/ionic/p-3fd26bd6.system.entry.js +4 -0
  272. package/dist/ionic/p-3fe96156.system.js +4 -0
  273. package/dist/ionic/p-42ba3902.entry.js +4 -0
  274. package/dist/ionic/{p-6de472cb.js → p-4890093d.js} +1 -1
  275. package/dist/ionic/{p-88fde0e0.entry.js → p-4911a5d6.entry.js} +1 -1
  276. package/dist/ionic/p-4a31c99f.entry.js +4 -0
  277. package/dist/ionic/{p-8acae6b0.system.entry.js → p-4df97e3c.system.entry.js} +1 -1
  278. package/dist/ionic/{p-27281edd.js → p-4e8e09e1.js} +1 -1
  279. package/dist/ionic/p-51abefb7.system.js +4 -0
  280. package/dist/ionic/{p-4f3ae45a.entry.js → p-535d2a67.entry.js} +1 -1
  281. package/dist/ionic/{p-5e745192.system.js → p-57477107.system.js} +1 -1
  282. package/dist/ionic/p-5a68960f.entry.js +4 -0
  283. package/dist/ionic/p-60502e3f.system.entry.js +4 -0
  284. package/dist/ionic/p-60b386c9.system.entry.js +4 -0
  285. package/dist/ionic/{p-42f189f4.js → p-643a8fae.js} +1 -1
  286. package/dist/ionic/{p-b6f9d32a.entry.js → p-67da080d.entry.js} +1 -1
  287. package/dist/ionic/p-6c37f051.js +4 -0
  288. package/dist/ionic/{p-a1987850.entry.js → p-6d72fb44.entry.js} +1 -1
  289. package/dist/ionic/{p-e6d68e02.system.entry.js → p-6fd64e7c.system.entry.js} +1 -1
  290. package/dist/ionic/{p-dee7c1d0.system.entry.js → p-73ea8f82.system.entry.js} +1 -1
  291. package/dist/ionic/{p-3a75d7fd.js → p-75445583.js} +1 -1
  292. package/dist/ionic/{p-f70970cf.js → p-76d3765d.js} +1 -1
  293. package/dist/ionic/{p-a0bb7b92.system.entry.js → p-77965464.system.entry.js} +1 -1
  294. package/dist/ionic/p-7b725280.entry.js +4 -0
  295. package/dist/ionic/p-83af3685.system.js +4 -0
  296. package/dist/ionic/p-856c430d.js +4 -0
  297. package/dist/ionic/p-8780cc2a.entry.js +4 -0
  298. package/dist/ionic/p-8c97cdc0.entry.js +4 -0
  299. package/dist/ionic/{p-f5d2dc9b.js → p-8ededb41.js} +1 -1
  300. package/dist/ionic/p-93000a81.system.entry.js +4 -0
  301. package/dist/ionic/{p-1cca10d6.system.js → p-95c26010.system.js} +1 -1
  302. package/dist/ionic/{p-ddbb2d5b.system.js → p-98d82c73.system.js} +1 -1
  303. package/dist/ionic/p-990ffd0e.js +4 -0
  304. package/dist/ionic/{p-bb3615f7.js → p-9b97df10.js} +1 -1
  305. package/dist/ionic/{p-3137c025.system.entry.js → p-9c229210.system.entry.js} +2 -2
  306. package/dist/ionic/p-a225bf0f.system.entry.js +4 -0
  307. package/dist/ionic/p-a60a1ce5.js +4 -0
  308. package/dist/ionic/p-a98dc0c1.entry.js +4 -0
  309. package/dist/ionic/{p-5eda1d7d.entry.js → p-a9a80f5b.entry.js} +1 -1
  310. package/dist/ionic/p-a9e3b5be.system.entry.js +4 -0
  311. package/dist/ionic/p-ab11130c.system.js +4 -0
  312. package/dist/ionic/p-ab9456e9.system.entry.js +4 -0
  313. package/dist/ionic/p-af16fe62.entry.js +4 -0
  314. package/dist/ionic/p-af19a573.entry.js +4 -0
  315. package/dist/ionic/{p-6de62649.system.entry.js → p-b4d31b30.system.entry.js} +1 -1
  316. package/dist/ionic/{p-46d400b4.system.entry.js → p-b752714f.system.entry.js} +1 -1
  317. package/dist/ionic/p-c14f8ac8.js +4 -0
  318. package/dist/ionic/p-cde52378.system.entry.js +4 -0
  319. package/dist/ionic/p-d43f1f3d.system.js +4 -0
  320. package/dist/ionic/p-d662d908.js +4 -0
  321. package/dist/ionic/p-d9695ad9.system.js +4 -0
  322. package/dist/ionic/p-da15f571.system.entry.js +4 -0
  323. package/dist/ionic/p-e1e5afe1.system.entry.js +4 -0
  324. package/dist/ionic/p-e3584231.system.js +1 -1
  325. package/dist/ionic/{p-ada96dd0.system.entry.js → p-e3ad9607.system.entry.js} +1 -1
  326. package/dist/ionic/p-e4d90573.js +4 -0
  327. package/dist/ionic/{p-6577aea9.system.entry.js → p-e8e86f69.system.entry.js} +1 -1
  328. package/dist/ionic/p-f54c72b0.system.js +4 -0
  329. package/dist/ionic/p-f78efbd1.entry.js +4 -0
  330. package/dist/ionic/p-f7a36cd0.system.js +4 -0
  331. package/dist/ionic/p-f967631d.js +4 -0
  332. package/dist/ionic/p-fe4dde76.entry.js +4 -0
  333. package/dist/ionic/{p-e24ce1e5.system.js → p-fff7a57e.system.js} +1 -1
  334. package/dist/types/components/backdrop/backdrop.d.ts +0 -3
  335. package/dist/types/components/checkbox/checkbox.d.ts +0 -1
  336. package/dist/types/components/datetime/datetime.d.ts +0 -1
  337. package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +0 -7
  338. package/dist/types/components/input/input.d.ts +0 -2
  339. package/dist/types/components/menu/menu.d.ts +1 -1
  340. package/dist/types/components/radio/radio.d.ts +0 -1
  341. package/dist/types/components/radio-group/radio-group-interface.d.ts +0 -1
  342. package/dist/types/components/radio-group/radio-group.d.ts +1 -8
  343. package/dist/types/components/range/range.d.ts +0 -1
  344. package/dist/types/components/router/router.d.ts +1 -2
  345. package/dist/types/components/select/select.d.ts +1 -6
  346. package/dist/types/components/skeleton-text/skeleton-text.d.ts +1 -9
  347. package/dist/types/components/textarea/textarea.d.ts +0 -2
  348. package/dist/types/components/toast/animations/utils.d.ts +4 -15
  349. package/dist/types/components/toast/toast-interface.d.ts +0 -2
  350. package/dist/types/components/toast/toast.d.ts +1 -28
  351. package/dist/types/components/toggle/toggle.d.ts +0 -1
  352. package/dist/types/components.d.ts +6 -37
  353. package/dist/types/interface.d.ts +5 -1
  354. package/dist/types/utils/animation/animation-interface.d.ts +4 -4
  355. package/dist/types/utils/browser/index.d.ts +2 -11
  356. package/dist/types/utils/forms/index.d.ts +0 -1
  357. package/dist/types/utils/gesture/gesture-controller.d.ts +1 -0
  358. package/dist/types/utils/hardware-back-button.d.ts +0 -4
  359. package/dist/types/utils/overlays.d.ts +0 -1
  360. package/dist/types/utils/slot-mutation-controller.d.ts +2 -2
  361. package/hydrate/index.js +194 -676
  362. package/package.json +1 -1
  363. package/dist/cjs/compare-with-utils-df1001d7.js +0 -44
  364. package/dist/cjs/index-c8d52405.js +0 -10
  365. package/dist/collection/components/infinite-scroll/test/small-dom-update/infinite-scroll.e2e.js +0 -31
  366. package/dist/collection/components/input/test/slot/input.e2e.js +0 -51
  367. package/dist/collection/components/radio-group/test/radio-group.spec.js +0 -69
  368. package/dist/collection/components/select/test/slot/select.e2e.js +0 -67
  369. package/dist/collection/components/textarea/test/slot/textarea.e2e.js +0 -51
  370. package/dist/collection/components/toast/gestures/swipe-to-dismiss.js +0 -267
  371. package/dist/collection/components/toast/test/swipe-gesture/toast.e2e.js +0 -84
  372. package/dist/collection/components/toast/test/toast-config.spec.js +0 -25
  373. package/dist/collection/utils/forms/compare-with-utils.js +0 -39
  374. package/dist/esm/compare-with-utils-a96ff2ea.js +0 -41
  375. package/dist/esm/index-a5d50daf.js +0 -7
  376. package/dist/esm-es5/compare-with-utils-a96ff2ea.js +0 -4
  377. package/dist/esm-es5/index-0c12c22b.js +0 -4
  378. package/dist/esm-es5/input-shims-6539ce13.js +0 -4
  379. package/dist/esm-es5/input.utils-a5a2d164.js +0 -4
  380. package/dist/esm-es5/md.transition-43c2874d.js +0 -4
  381. package/dist/esm-es5/overlays-32ef481d.js +0 -4
  382. package/dist/esm-es5/swipe-back-a6f386fc.js +0 -4
  383. package/dist/ionic/p-01d14eba.system.entry.js +0 -4
  384. package/dist/ionic/p-042e6f4b.entry.js +0 -4
  385. package/dist/ionic/p-05d83227.system.entry.js +0 -4
  386. package/dist/ionic/p-16756e94.system.entry.js +0 -4
  387. package/dist/ionic/p-1b19c04b.entry.js +0 -4
  388. package/dist/ionic/p-1e4371bd.js +0 -4
  389. package/dist/ionic/p-28249b10.system.entry.js +0 -4
  390. package/dist/ionic/p-28a2c2a2.entry.js +0 -4
  391. package/dist/ionic/p-29d03b3a.js +0 -4
  392. package/dist/ionic/p-2b7827c7.js +0 -4
  393. package/dist/ionic/p-2d3b9fa3.system.entry.js +0 -4
  394. package/dist/ionic/p-2d539df1.entry.js +0 -4
  395. package/dist/ionic/p-35ce400e.system.js +0 -4
  396. package/dist/ionic/p-36d187af.js +0 -4
  397. package/dist/ionic/p-376a6063.js +0 -4
  398. package/dist/ionic/p-38f2c6bb.system.js +0 -4
  399. package/dist/ionic/p-39c31982.system.entry.js +0 -4
  400. package/dist/ionic/p-3e6b47e8.system.entry.js +0 -4
  401. package/dist/ionic/p-3f5179b5.entry.js +0 -4
  402. package/dist/ionic/p-40f68333.system.js +0 -4
  403. package/dist/ionic/p-438e1b8a.entry.js +0 -4
  404. package/dist/ionic/p-47b6ba5b.js +0 -4
  405. package/dist/ionic/p-517a9885.system.entry.js +0 -4
  406. package/dist/ionic/p-53ec4f1c.system.js +0 -4
  407. package/dist/ionic/p-5e4eec2e.entry.js +0 -4
  408. package/dist/ionic/p-6a6477b2.js +0 -4
  409. package/dist/ionic/p-72f6ff89.js +0 -4
  410. package/dist/ionic/p-765f4dde.entry.js +0 -4
  411. package/dist/ionic/p-7d92bf15.system.entry.js +0 -4
  412. package/dist/ionic/p-7ee0f3f2.entry.js +0 -4
  413. package/dist/ionic/p-8314281e.system.js +0 -4
  414. package/dist/ionic/p-88d5fbd3.js +0 -4
  415. package/dist/ionic/p-8d69a624.entry.js +0 -4
  416. package/dist/ionic/p-8de17614.system.entry.js +0 -4
  417. package/dist/ionic/p-908475e7.system.entry.js +0 -4
  418. package/dist/ionic/p-91d33c4a.js +0 -4
  419. package/dist/ionic/p-979d4f5c.system.js +0 -4
  420. package/dist/ionic/p-9b7f0b0f.entry.js +0 -4
  421. package/dist/ionic/p-9e447eb1.system.js +0 -4
  422. package/dist/ionic/p-9f6ee2c0.system.entry.js +0 -4
  423. package/dist/ionic/p-a0d7bb5e.system.js +0 -4
  424. package/dist/ionic/p-a3277a67.entry.js +0 -4
  425. package/dist/ionic/p-afd6ca9d.entry.js +0 -4
  426. package/dist/ionic/p-b56d0866.system.entry.js +0 -4
  427. package/dist/ionic/p-c61cc894.js +0 -4
  428. package/dist/ionic/p-d032f825.system.entry.js +0 -4
  429. package/dist/ionic/p-d51674c5.system.js +0 -4
  430. package/dist/ionic/p-de6f8b28.system.js +0 -4
  431. package/dist/ionic/p-de756e5c.js +0 -4
  432. package/dist/ionic/p-dfd9432a.entry.js +0 -4
  433. package/dist/ionic/p-e94c392d.entry.js +0 -4
  434. package/dist/ionic/p-f0445d82.system.entry.js +0 -4
  435. package/dist/ionic/p-f656e032.system.entry.js +0 -4
  436. package/dist/ionic/p-feae5133.entry.js +0 -4
  437. package/dist/types/components/toast/gestures/swipe-to-dismiss.d.ts +0 -9
  438. package/dist/types/jest.d.ts +0 -5
  439. package/dist/types/utils/forms/compare-with-utils.d.ts +0 -18
  440. /package/dist/esm-es5/{index-a5d50daf.js → index-7a14ecec.js} +0 -0
  441. /package/dist/ionic/{p-792919fd.system.js → p-0e94957a.system.js} +0 -0
  442. /package/dist/ionic/{p-7b30edcc.js → p-b347cfd1.js} +0 -0
@@ -14,8 +14,6 @@ import { getCounterText } from "./input.utils";
14
14
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
15
15
  *
16
16
  * @slot 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)
17
- * @slot start - Content to display at the leading edge of the input. (EXPERIMENTAL)
18
- * @slot end - Content to display at the trailing edge of the input. (EXPERIMENTAL)
19
17
  */
20
18
  export class Input {
21
19
  constructor() {
@@ -159,7 +157,7 @@ export class Input {
159
157
  connectedCallback() {
160
158
  const { el } = this;
161
159
  this.legacyFormController = createLegacyFormController(el);
162
- this.slotMutationController = createSlotMutationController(el, ['label', 'start', 'end'], () => forceUpdate(this));
160
+ this.slotMutationController = createSlotMutationController(el, 'label', () => forceUpdate(this));
163
161
  this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
164
162
  this.emitStyle();
165
163
  this.debounceChanged();
@@ -260,8 +258,6 @@ export class Input {
260
258
  'has-value': this.hasValue(),
261
259
  'has-focus': this.hasFocus,
262
260
  'interactive-disabled': this.disabled,
263
- // TODO(FW-2764): remove this
264
- legacy: !!this.legacy,
265
261
  });
266
262
  }
267
263
  }
@@ -367,50 +363,29 @@ export class Input {
367
363
  return this.renderLabel();
368
364
  }
369
365
  renderInput() {
370
- const { disabled, fill, readonly, shape, inputId, labelPlacement, el, hasFocus } = this;
366
+ const { disabled, fill, readonly, shape, inputId, labelPlacement } = this;
371
367
  const mode = getIonMode(this);
372
368
  const value = this.getValue();
373
369
  const inItem = hostContext('ion-item', this.el);
374
370
  const shouldRenderHighlight = mode === 'md' && fill !== 'outline' && !inItem;
375
- const hasValue = this.hasValue();
376
- const hasStartEndSlots = el.querySelector('[slot="start"], [slot="end"]') !== null;
377
- /**
378
- * If the label is stacked, it should always sit above the input.
379
- * For floating labels, the label should move above the input if
380
- * the input has a value, is focused, or has anything in either
381
- * the start or end slot.
382
- *
383
- * If there is content in the start slot, the label would overlap
384
- * it if not forced to float. This is also applied to the end slot
385
- * because with the default or solid fills, the input is not
386
- * vertically centered in the container, but the label is. This
387
- * causes the slots and label to appear vertically offset from each
388
- * other when the label isn't floating above the input. This doesn't
389
- * apply to the outline fill, but this was not accounted for to keep
390
- * things consistent.
391
- *
392
- * TODO(FW-5592): Remove hasStartEndSlots condition
393
- */
394
- const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
395
371
  return (h(Host, { class: createColorClasses(this.color, {
396
372
  [mode]: true,
397
- 'has-value': hasValue,
398
- 'has-focus': hasFocus,
399
- 'label-floating': labelShouldFloat,
373
+ 'has-value': this.hasValue(),
374
+ 'has-focus': this.hasFocus,
400
375
  [`input-fill-${fill}`]: fill !== undefined,
401
376
  [`input-shape-${shape}`]: shape !== undefined,
402
377
  [`input-label-placement-${labelPlacement}`]: true,
403
378
  'in-item': inItem,
404
379
  'in-item-color': hostContext('ion-item.ion-color', this.el),
405
380
  'input-disabled': disabled,
406
- }) }, h("label", { class: "input-wrapper", htmlFor: inputId }, this.renderLabelContainer(), h("div", { class: "native-wrapper" }, h("slot", { name: "start" }), h("input", Object.assign({ class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, accept: this.accept, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, size: this.size, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (h("button", { "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
381
+ }) }, h("label", { class: "input-wrapper" }, this.renderLabelContainer(), h("div", { class: "native-wrapper" }, h("input", Object.assign({ class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, accept: this.accept, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, size: this.size, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (h("button", { "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
407
382
  /**
408
383
  * This prevents mobile browsers from
409
384
  * blurring the input when the clear
410
385
  * button is activated.
411
386
  */
412
387
  ev.preventDefault();
413
- }, onClick: this.clearTextInput }, h("ion-icon", { "aria-hidden": "true", icon: mode === 'ios' ? closeCircle : closeSharp }))), h("slot", { name: "end" })), shouldRenderHighlight && h("div", { class: "input-highlight" })), this.renderBottomContent()));
388
+ }, onClick: this.clearTextInput }, h("ion-icon", { "aria-hidden": "true", icon: mode === 'ios' ? closeCircle : closeSharp })))), shouldRenderHighlight && h("div", { class: "input-highlight" })), this.renderBottomContent()));
414
389
  }
415
390
  // TODO FW-2764 Remove this
416
391
  renderLegacyInput() {
@@ -350,7 +350,6 @@
350
350
  display: flex;
351
351
  position: relative;
352
352
  flex-grow: 1;
353
- align-items: center;
354
353
  width: 100%;
355
354
  }
356
355
 
@@ -655,7 +654,9 @@
655
654
  /**
656
655
  * This makes the label sit above the input.
657
656
  */
658
- :host(.label-floating) .label-text-wrapper {
657
+ :host(.input-label-placement-stacked) .label-text-wrapper,
658
+ :host(.has-focus.input-label-placement-floating) .label-text-wrapper,
659
+ :host(.has-value.input-label-placement-floating) .label-text-wrapper {
659
660
  transform: translateY(50%) scale(0.75);
660
661
  /**
661
662
  * Label text should not extend
@@ -664,14 +665,6 @@
664
665
  max-width: calc(100% / 0.75);
665
666
  }
666
667
 
667
- ::slotted([slot=start]) {
668
- margin-inline-end: 16px;
669
- }
670
-
671
- ::slotted([slot=end]) {
672
- margin-inline-start: 16px;
673
- }
674
-
675
668
  /**
676
669
  * Convert a font size to a dynamic font size.
677
670
  * Fonts that participate in Dynamic Type should use
@@ -914,7 +907,9 @@
914
907
  }
915
908
  }
916
909
 
917
- :host(.label-floating.input-fill-solid.input-label-placement-floating) .label-text-wrapper {
910
+ :host(.input-fill-solid.input-label-placement-stacked) .label-text-wrapper,
911
+ :host(.has-focus.input-fill-solid.input-label-placement-floating) .label-text-wrapper,
912
+ :host(.has-value.input-fill-solid.input-label-placement-floating) .label-text-wrapper {
918
913
  /**
919
914
  * Label text should not extend
920
915
  * beyond the bounds of the input.
@@ -1068,7 +1063,9 @@
1068
1063
  /**
1069
1064
  * This makes the label sit above the input.
1070
1065
  */
1071
- :host(.label-floating.input-fill-outline) .label-text-wrapper {
1066
+ :host(.has-focus.input-fill-outline.input-label-placement-floating) .label-text-wrapper,
1067
+ :host(.has-value.input-fill-outline.input-label-placement-floating) .label-text-wrapper,
1068
+ :host(.input-fill-outline.input-label-placement-stacked) .label-text-wrapper {
1072
1069
  transform: translateY(-32%) scale(0.75);
1073
1070
  margin-left: 0;
1074
1071
  margin-right: 0;
@@ -1229,7 +1226,9 @@
1229
1226
  * the floating/stacked label. We simulate this "cut out"
1230
1227
  * by removing the top border from the notch fragment.
1231
1228
  */
1232
- :host(.label-floating.input-fill-outline) .input-outline-notch {
1229
+ :host(.has-focus.input-fill-outline.input-label-placement-floating) .input-outline-notch,
1230
+ :host(.has-value.input-fill-outline.input-label-placement-floating) .input-outline-notch,
1231
+ :host(.input-fill-outline.input-label-placement-stacked) .input-outline-notch {
1233
1232
  border-top: none;
1234
1233
  }
1235
1234
 
@@ -100,14 +100,6 @@
100
100
  * @prop --highlight-color-valid: The color of the highlight on the item when valid. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
101
101
  * @prop --highlight-color-invalid: The color of the highlight on the item when invalid. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
102
102
  */
103
- /**
104
- * We change the minimum width as the
105
- * font size changes. Using a fixed minimum
106
- * width means that fewer and fewer characters
107
- * can be displayed in the same space as the
108
- * text grows.
109
- */
110
- --inner-min-width: 4rem;
111
103
  --border-radius: 0px;
112
104
  --border-width: 0px;
113
105
  --border-style: solid;
@@ -238,7 +230,6 @@
238
230
  /* stylelint-enable */
239
231
  display: flex;
240
232
  position: relative;
241
- flex-wrap: wrap;
242
233
  align-items: inherit;
243
234
  justify-content: inherit;
244
235
  width: 100%;
@@ -250,8 +241,8 @@
250
241
  outline: none;
251
242
  background: var(--background);
252
243
  overflow: inherit;
253
- z-index: 1;
254
244
  box-sizing: border-box;
245
+ z-index: 1;
255
246
  }
256
247
  :host-context([dir=rtl]) .item-native {
257
248
  padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
@@ -270,10 +261,6 @@
270
261
  }
271
262
  }
272
263
 
273
- :host(.item-legacy) .item-native {
274
- flex-wrap: unset;
275
- }
276
-
277
264
  .item-native::-moz-focus-inner {
278
265
  border: 0;
279
266
  }
@@ -309,20 +296,10 @@ button, a {
309
296
  /* stylelint-enable */
310
297
  display: flex;
311
298
  position: relative;
312
- flex: 1 0 0;
299
+ flex: 1;
313
300
  flex-direction: inherit;
314
- flex-wrap: wrap;
315
301
  align-items: inherit;
316
302
  align-self: stretch;
317
- /**
318
- * The min-width defines when the
319
- * content in the default slot should
320
- * stop wrapping/truncating within its own
321
- * container. At this point the entire
322
- * container will wrap to the next line.
323
- */
324
- min-width: var(--inner-min-width);
325
- max-width: 100%;
326
303
  min-height: inherit;
327
304
  border-width: var(--inner-border-width);
328
305
  border-style: var(--border-style);
@@ -348,12 +325,6 @@ button, a {
348
325
  }
349
326
  }
350
327
 
351
- :host(.item-legacy) .item-inner {
352
- flex: 1;
353
- flex-wrap: unset;
354
- max-width: unset;
355
- }
356
-
357
328
  .item-bottom {
358
329
  margin-left: 0;
359
330
  margin-right: 0;
@@ -417,7 +388,6 @@ button, a {
417
388
 
418
389
  ::slotted(ion-label:not([slot=end])) {
419
390
  flex: 1;
420
- width: min-content;
421
391
  }
422
392
 
423
393
  :host(.item-input) {
@@ -426,23 +396,15 @@ button, a {
426
396
 
427
397
  .input-wrapper {
428
398
  display: flex;
429
- flex: 1 0 auto;
399
+ flex: 1;
430
400
  flex-direction: inherit;
431
- flex-wrap: wrap;
432
401
  align-items: inherit;
433
402
  align-self: stretch;
434
- max-width: 100%;
435
403
  text-overflow: ellipsis;
436
404
  overflow: inherit;
437
405
  box-sizing: border-box;
438
406
  }
439
407
 
440
- :host(.item-legacy) .input-wrapper {
441
- flex: 1;
442
- flex-wrap: unset;
443
- max-width: unset;
444
- }
445
-
446
408
  :host(.item-label-stacked),
447
409
  :host(.item-label-floating) {
448
410
  align-items: start;
@@ -100,14 +100,6 @@
100
100
  * @prop --highlight-color-valid: The color of the highlight on the item when valid. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
101
101
  * @prop --highlight-color-invalid: The color of the highlight on the item when invalid. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
102
102
  */
103
- /**
104
- * We change the minimum width as the
105
- * font size changes. Using a fixed minimum
106
- * width means that fewer and fewer characters
107
- * can be displayed in the same space as the
108
- * text grows.
109
- */
110
- --inner-min-width: 4rem;
111
103
  --border-radius: 0px;
112
104
  --border-width: 0px;
113
105
  --border-style: solid;
@@ -238,7 +230,6 @@
238
230
  /* stylelint-enable */
239
231
  display: flex;
240
232
  position: relative;
241
- flex-wrap: wrap;
242
233
  align-items: inherit;
243
234
  justify-content: inherit;
244
235
  width: 100%;
@@ -250,8 +241,8 @@
250
241
  outline: none;
251
242
  background: var(--background);
252
243
  overflow: inherit;
253
- z-index: 1;
254
244
  box-sizing: border-box;
245
+ z-index: 1;
255
246
  }
256
247
  :host-context([dir=rtl]) .item-native {
257
248
  padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
@@ -270,10 +261,6 @@
270
261
  }
271
262
  }
272
263
 
273
- :host(.item-legacy) .item-native {
274
- flex-wrap: unset;
275
- }
276
-
277
264
  .item-native::-moz-focus-inner {
278
265
  border: 0;
279
266
  }
@@ -309,20 +296,10 @@ button, a {
309
296
  /* stylelint-enable */
310
297
  display: flex;
311
298
  position: relative;
312
- flex: 1 0 0;
299
+ flex: 1;
313
300
  flex-direction: inherit;
314
- flex-wrap: wrap;
315
301
  align-items: inherit;
316
302
  align-self: stretch;
317
- /**
318
- * The min-width defines when the
319
- * content in the default slot should
320
- * stop wrapping/truncating within its own
321
- * container. At this point the entire
322
- * container will wrap to the next line.
323
- */
324
- min-width: var(--inner-min-width);
325
- max-width: 100%;
326
303
  min-height: inherit;
327
304
  border-width: var(--inner-border-width);
328
305
  border-style: var(--border-style);
@@ -348,12 +325,6 @@ button, a {
348
325
  }
349
326
  }
350
327
 
351
- :host(.item-legacy) .item-inner {
352
- flex: 1;
353
- flex-wrap: unset;
354
- max-width: unset;
355
- }
356
-
357
328
  .item-bottom {
358
329
  margin-left: 0;
359
330
  margin-right: 0;
@@ -417,7 +388,6 @@ button, a {
417
388
 
418
389
  ::slotted(ion-label:not([slot=end])) {
419
390
  flex: 1;
420
- width: min-content;
421
391
  }
422
392
 
423
393
  :host(.item-input) {
@@ -426,23 +396,15 @@ button, a {
426
396
 
427
397
  .input-wrapper {
428
398
  display: flex;
429
- flex: 1 0 auto;
399
+ flex: 1;
430
400
  flex-direction: inherit;
431
- flex-wrap: wrap;
432
401
  align-items: inherit;
433
402
  align-self: stretch;
434
- max-width: 100%;
435
403
  text-overflow: ellipsis;
436
404
  overflow: inherit;
437
405
  box-sizing: border-box;
438
406
  }
439
407
 
440
- :host(.item-legacy) .input-wrapper {
441
- flex: 1;
442
- flex-wrap: unset;
443
- max-width: unset;
444
- }
445
-
446
408
  :host(.item-label-stacked),
447
409
  :host(.item-label-floating) {
448
410
  align-items: start;
@@ -29,7 +29,7 @@ configs().forEach(({ title, screenshot, config }) => {
29
29
  </ion-item>
30
30
 
31
31
  <ion-item>
32
- <ion-label class="ion-text-nowrap"> Single line text that should have ellipses when it doesn't all fit in the item</ion-label>
32
+ <ion-label> Single line text that should have ellipses when it doesn't all fit in the item</ion-label>
33
33
  </ion-item>
34
34
  </ion-list>
35
35
  `, config);
@@ -11,6 +11,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
11
11
  test('should not have visual regressions', async ({ page }) => {
12
12
  await page.goto(`/src/components/item/test/disabled`, config);
13
13
  await page.setIonViewport();
14
+ // TODO: FW-4037 - Fix label color inconsistency between disabled controls
14
15
  await expect(page).toHaveScreenshot(screenshot(`item-disabled-diff`));
15
16
  });
16
17
  });
@@ -0,0 +1,14 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { expect } from "@playwright/test";
5
+ import { configs, test } from "../../../../utils/test/playwright/index";
6
+ configs().forEach(({ title, screenshot, config }) => {
7
+ test.describe(title('item: text'), () => {
8
+ test('should not have visual regressions', async ({ page }) => {
9
+ await page.goto(`/src/components/item/test/text`, config);
10
+ await page.setIonViewport();
11
+ await expect(page).toHaveScreenshot(screenshot(`item-text-diff`));
12
+ });
13
+ });
14
+ });
@@ -63,24 +63,17 @@
63
63
  font-family: var(--ion-font-family, inherit);
64
64
  font-size: inherit;
65
65
  text-overflow: ellipsis;
66
- box-sizing: border-box;
67
- }
68
-
69
- :host-context(.item-legacy) {
70
66
  white-space: nowrap;
71
67
  overflow: hidden;
72
- }
73
-
74
- :host-context(.item:not(.item-input):not(.item-legacy)) {
75
- flex-grow: 1;
68
+ box-sizing: border-box;
76
69
  }
77
70
 
78
71
  :host(.ion-color) {
79
72
  color: var(--ion-color-base);
80
73
  }
81
74
 
82
- :host(.ion-text-nowrap) {
83
- overflow: hidden;
75
+ :host(.ion-text-wrap) {
76
+ white-space: normal;
84
77
  }
85
78
 
86
79
  :host-context(.item-interactive-disabled:not(.item-multiple-inputs)) {
@@ -99,10 +92,6 @@
99
92
  align-self: baseline;
100
93
  }
101
94
 
102
- :host-context(.item-skeleton-text) {
103
- overflow: hidden;
104
- }
105
-
106
95
  :host(.label-fixed) {
107
96
  flex: 0 0 100px;
108
97
  width: 100px;
@@ -63,24 +63,17 @@
63
63
  font-family: var(--ion-font-family, inherit);
64
64
  font-size: inherit;
65
65
  text-overflow: ellipsis;
66
- box-sizing: border-box;
67
- }
68
-
69
- :host-context(.item-legacy) {
70
66
  white-space: nowrap;
71
67
  overflow: hidden;
72
- }
73
-
74
- :host-context(.item:not(.item-input):not(.item-legacy)) {
75
- flex-grow: 1;
68
+ box-sizing: border-box;
76
69
  }
77
70
 
78
71
  :host(.ion-color) {
79
72
  color: var(--ion-color-base);
80
73
  }
81
74
 
82
- :host(.ion-text-nowrap) {
83
- overflow: hidden;
75
+ :host(.ion-text-wrap) {
76
+ white-space: normal;
84
77
  }
85
78
 
86
79
  :host-context(.item-interactive-disabled:not(.item-multiple-inputs)) {
@@ -99,10 +92,6 @@
99
92
  align-self: baseline;
100
93
  }
101
94
 
102
- :host-context(.item-skeleton-text) {
103
- overflow: hidden;
104
- }
105
-
106
95
  :host(.label-fixed) {
107
96
  flex: 0 0 100px;
108
97
  width: 100px;
@@ -5,7 +5,6 @@ import { getTimeGivenProgression } from "../../../utils/animation/cubic-bezier";
5
5
  import { isIonContent, findClosestIonContent, disableContentScrollY, resetContentScrollY } from "../../../utils/content/index";
6
6
  import { createGesture } from "../../../utils/gesture/index";
7
7
  import { clamp, getElementRoot } from "../../../utils/helpers";
8
- import { OVERLAY_GESTURE_PRIORITY } from "../../../utils/overlays";
9
8
  import { setCardStatusBarDark, setCardStatusBarDefault } from "../utils";
10
9
  import { calculateSpringStep, handleCanDismiss } from "./utils";
11
10
  // Defaults for the card swipe animation
@@ -251,7 +250,7 @@ export const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismi
251
250
  const gesture = createGesture({
252
251
  el,
253
252
  gestureName: 'modalSwipeToClose',
254
- gesturePriority: OVERLAY_GESTURE_PRIORITY,
253
+ gesturePriority: 39,
255
254
  direction: 'y',
256
255
  threshold: 10,
257
256
  canStart,
@@ -48,48 +48,5 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
48
48
  const note = page.locator('ion-note');
49
49
  await expect(note).toHaveScreenshot(screenshot(`note-item-divider-scale`));
50
50
  });
51
- test('should wrap label to the next line without truncating', async ({ page }) => {
52
- await page.setContent(`
53
- <style>
54
- html {
55
- font-size: 310%;
56
- }
57
- </style>
58
-
59
- <ion-list>
60
- <ion-item>
61
- <ion-note slot="start">Really really long note</ion-note>
62
- <ion-label>Label</ion-label>
63
- </ion-item>
64
-
65
- <ion-item>
66
- <ion-label>Label</ion-label>
67
- <ion-note slot="end">Really really long note</ion-note>
68
- </ion-item>
69
-
70
- <ion-item>
71
- <ion-note slot="start">Note</ion-note>
72
- <ion-label>Really really long label</ion-label>
73
- </ion-item>
74
-
75
- <ion-item>
76
- <ion-label>Really really long label</ion-label>
77
- <ion-note slot="end">Note</ion-note>
78
- </ion-item>
79
-
80
- <ion-item>
81
- <ion-note slot="start">Really really long note</ion-note>
82
- <ion-label>Really really long label</ion-label>
83
- </ion-item>
84
-
85
- <ion-item>
86
- <ion-label>Really really long label</ion-label>
87
- <ion-note slot="end">Really really long note</ion-note>
88
- </ion-item>
89
- </ion-list>
90
- `, config);
91
- const list = page.locator('ion-list');
92
- await expect(list).toHaveScreenshot(screenshot(`note-wrapping-label-scale`));
93
- });
94
51
  });
95
52
  });
@@ -186,6 +186,12 @@ input {
186
186
  }
187
187
 
188
188
  .label-text-wrapper {
189
+ /**
190
+ * This ensures that double tapping this text
191
+ * clicks the <label> and focuses the radio
192
+ * when a screen reader is enabled.
193
+ */
194
+ pointer-events: none;
189
195
  text-overflow: ellipsis;
190
196
  white-space: nowrap;
191
197
  overflow: hidden;
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { Host, h } from "@stencil/core";
5
- import { createLegacyFormController, isOptionSelected } from "../../utils/forms/index";
5
+ import { createLegacyFormController } from "../../utils/forms/index";
6
6
  import { addEventListener, getAriaLabel, removeEventListener } from "../../utils/helpers";
7
7
  import { printIonWarning } from "../../utils/logging/index";
8
8
  import { createColorClasses, hostContext } from "../../utils/theme";
@@ -13,7 +13,6 @@ import { getIonMode } from "../../global/ionic-global";
13
13
  * @slot - The label text to associate with the radio. Use the "labelPlacement" property to control where the label is placed relative to the radio.
14
14
  *
15
15
  * @part container - The container for the radio mark.
16
- * @part label - The label text describing the radio.
17
16
  * @part mark - The checkmark or dot used to indicate the checked state.
18
17
  */
19
18
  export class Radio {
@@ -24,8 +23,7 @@ export class Radio {
24
23
  this.hasLoggedDeprecationWarning = false;
25
24
  this.updateState = () => {
26
25
  if (this.radioGroup) {
27
- const { compareWith, value: radioGroupValue } = this.radioGroup;
28
- this.checked = isOptionSelected(radioGroupValue, this.value, compareWith);
26
+ this.checked = this.radioGroup.value === this.value;
29
27
  }
30
28
  };
31
29
  this.onClick = () => {
@@ -122,8 +120,6 @@ export class Radio {
122
120
  emitStyle() {
123
121
  const style = {
124
122
  'interactive-disabled': this.disabled,
125
- // TODO(FW-3125): remove this
126
- legacy: !!this.legacy,
127
123
  };
128
124
  if (this.legacyFormController.hasLegacyControl()) {
129
125
  style['radio-checked'] = this.checked;
@@ -158,7 +154,7 @@ export class Radio {
158
154
  }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, h("label", { class: "radio-wrapper" }, h("div", { class: {
159
155
  'label-text-wrapper': true,
160
156
  'label-text-wrapper-hidden': !hasLabel,
161
- }, part: "label" }, h("slot", null)), h("div", { class: "native-wrapper" }, this.renderRadioControl()))));
157
+ } }, h("slot", null)), h("div", { class: "native-wrapper" }, this.renderRadioControl()))));
162
158
  }
163
159
  renderLegacyRadio() {
164
160
  if (!this.hasLoggedDeprecationWarning) {
@@ -186,6 +186,12 @@ input {
186
186
  }
187
187
 
188
188
  .label-text-wrapper {
189
+ /**
190
+ * This ensures that double tapping this text
191
+ * clicks the <label> and focuses the radio
192
+ * when a screen reader is enabled.
193
+ */
194
+ pointer-events: none;
189
195
  text-overflow: ellipsis;
190
196
  white-space: nowrap;
191
197
  overflow: hidden;
@@ -25,20 +25,6 @@ describe('ion-radio', () => {
25
25
  await page.waitForChanges();
26
26
  expect(radio.classList.contains('radio-checked')).toBe(true);
27
27
  });
28
- it('should render the radio with shadow parts', async () => {
29
- const page = await newSpecPage({
30
- components: [Radio, RadioGroup],
31
- html: `
32
- <ion-radio-group>
33
- <ion-radio value="value"></ion-radio>
34
- </ion-radio-group>
35
- `,
36
- });
37
- const radio = page.body.querySelector('ion-radio');
38
- expect(radio).toHaveShadowPart('container');
39
- expect(radio).toHaveShadowPart('label');
40
- expect(radio).toHaveShadowPart('mark');
41
- });
42
28
  });
43
29
  describe('ion-radio: disabled', () => {
44
30
  it('clicking disabled radio should not set checked state', async () => {