@ionic/core 7.5.4-dev.11701112913.1ea61220 → 7.5.4-dev.11702935369.11a4baba

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 (507) hide show
  1. package/components/animation.js +11 -12
  2. package/components/checkbox.js +0 -2
  3. package/components/index4.js +12 -10
  4. package/components/index5.js +22 -0
  5. package/components/input-shims.js +7 -12
  6. package/components/input.utils.js +2 -3
  7. package/components/ion-datetime.js +2 -2
  8. package/components/ion-input.js +8 -31
  9. package/components/ion-modal.js +2 -2
  10. package/components/ion-range.js +0 -2
  11. package/components/ion-select.js +29 -44
  12. package/components/ion-skeleton-text.js +1 -14
  13. package/components/ion-textarea.js +7 -30
  14. package/components/ion-toast.js +74 -419
  15. package/components/ion-toggle.js +0 -2
  16. package/components/item.js +2 -2
  17. package/components/label.js +2 -2
  18. package/components/overlays.js +1 -2
  19. package/components/radio-group.js +0 -2
  20. package/components/radio.js +2 -42
  21. package/dist/cjs/{animation-d101aa7a.js → animation-1083855c.js} +12 -13
  22. package/dist/cjs/{app-globals-ef077808.js → app-globals-d1892126.js} +1 -1
  23. package/dist/cjs/{button-active-69c3bee4.js → button-active-e93ab34d.js} +2 -2
  24. package/dist/cjs/{capacitor-f68447d3.js → capacitor-2ffba62a.js} +1 -1
  25. package/dist/cjs/{haptic-a74c2767.js → haptic-678abc9f.js} +1 -1
  26. package/dist/cjs/index-306a7476.js +32 -0
  27. package/dist/cjs/{index-9146d04a.js → index-4323b635.js} +14 -12
  28. package/dist/cjs/{index-adbcffee.js → index-84c4c696.js} +3 -3
  29. package/dist/cjs/{index-e9634bc9.js → index-9f379eaa.js} +1 -1
  30. package/dist/cjs/index.cjs.js +10 -10
  31. package/dist/cjs/{input-shims-3e3f35b9.js → input-shims-b0a75a01.js} +10 -15
  32. package/dist/cjs/{input.utils-bdb6953c.js → input.utils-0fe3097c.js} +3 -4
  33. package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
  34. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
  35. package/dist/cjs/ion-alert.cjs.entry.js +8 -8
  36. package/dist/cjs/ion-app_8.cjs.entry.js +11 -11
  37. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  38. package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
  39. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  40. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
  41. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  42. package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
  43. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -4
  44. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  45. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  46. package/dist/cjs/ion-datetime-button.cjs.entry.js +2 -2
  47. package/dist/cjs/ion-datetime_3.cjs.entry.js +10 -10
  48. package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
  49. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  50. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
  51. package/dist/cjs/ion-input.cjs.entry.js +14 -37
  52. package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
  53. package/dist/cjs/ion-item_8.cjs.entry.js +7 -20
  54. package/dist/cjs/ion-loading.cjs.entry.js +5 -5
  55. package/dist/cjs/ion-menu_3.cjs.entry.js +8 -8
  56. package/dist/cjs/ion-modal.cjs.entry.js +10 -10
  57. package/dist/cjs/ion-nav_2.cjs.entry.js +3 -3
  58. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +5 -5
  59. package/dist/cjs/ion-picker-internal.cjs.entry.js +1 -1
  60. package/dist/cjs/ion-popover.cjs.entry.js +6 -6
  61. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  62. package/dist/cjs/ion-radio_2.cjs.entry.js +3 -8
  63. package/dist/cjs/ion-range.cjs.entry.js +2 -4
  64. package/dist/cjs/ion-refresher_2.cjs.entry.js +7 -7
  65. package/dist/cjs/ion-reorder_2.cjs.entry.js +6 -6
  66. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  67. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  68. package/dist/cjs/ion-searchbar.cjs.entry.js +3 -3
  69. package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
  70. package/dist/cjs/ion-select_3.cjs.entry.js +38 -54
  71. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  72. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  73. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +6 -6
  74. package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
  75. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  76. package/dist/cjs/ion-textarea.cjs.entry.js +12 -35
  77. package/dist/cjs/ion-toast.cjs.entry.js +93 -435
  78. package/dist/cjs/ion-toggle.cjs.entry.js +6 -8
  79. package/dist/cjs/{ionic-global-4538d91c.js → ionic-global-91f1f8f2.js} +1 -1
  80. package/dist/cjs/ionic.cjs.js +4 -4
  81. package/dist/cjs/{ios.transition-7972d9e3.js → ios.transition-facbe500.js} +4 -4
  82. package/dist/cjs/{keyboard-840107b3.js → keyboard-38f2bb7b.js} +3 -3
  83. package/dist/cjs/{keyboard-controller-019f42df.js → keyboard-controller-50beb83a.js} +2 -2
  84. package/dist/cjs/{keyboard-43df0428.js → keyboard-fd7db491.js} +1 -1
  85. package/dist/cjs/loader.cjs.js +4 -4
  86. package/dist/cjs/{md.transition-6e61a10f.js → md.transition-0a7d53f1.js} +4 -4
  87. package/dist/cjs/{notch-controller-c22d1344.js → notch-controller-f4f6af5d.js} +1 -1
  88. package/dist/cjs/{overlays-ba1a1e21.js → overlays-91bb8ff7.js} +2 -4
  89. package/dist/cjs/{status-tap-2e9f9c86.js → status-tap-a9d8edcf.js} +1 -1
  90. package/dist/collection/components/checkbox/checkbox.js +0 -2
  91. package/dist/collection/components/datetime/datetime.ios.css +0 -1
  92. package/dist/collection/components/datetime/datetime.md.css +0 -1
  93. package/dist/collection/components/icon/test/dir/heart-broken.svg +0 -0
  94. package/dist/collection/components/input/input.ios.css +3 -10
  95. package/dist/collection/components/input/input.js +6 -31
  96. package/dist/collection/components/input/input.md.css +12 -13
  97. package/dist/collection/components/item/item.ios.css +15 -85
  98. package/dist/collection/components/item/item.md.css +15 -85
  99. package/dist/collection/components/item/test/basic/item.e2e.js +0 -26
  100. package/dist/collection/components/item/test/disabled/item.e2e.js +1 -0
  101. package/dist/collection/components/item/test/icons/heart-broken.svg +0 -0
  102. package/dist/collection/components/item/test/text/item.e2e.js +14 -0
  103. package/dist/collection/components/label/label.ios.css +3 -14
  104. package/dist/collection/components/label/label.md.css +3 -14
  105. package/dist/collection/components/modal/gestures/swipe-to-close.js +1 -2
  106. package/dist/collection/components/note/test/a11y/note.e2e.js +0 -43
  107. package/dist/collection/components/radio/radio.js +2 -5
  108. package/dist/collection/components/radio-group/radio-group.js +0 -24
  109. package/dist/collection/components/range/range.js +0 -2
  110. package/dist/collection/components/select/select.ios.css +7 -61
  111. package/dist/collection/components/select/select.js +28 -45
  112. package/dist/collection/components/select/select.md.css +19 -64
  113. package/dist/collection/components/select/test/label/select.e2e.js +1 -1
  114. package/dist/collection/components/select/test/legacy/wrapping/select.e2e.js +1 -1
  115. package/dist/collection/components/skeleton-text/skeleton-text.js +0 -39
  116. package/dist/collection/components/textarea/textarea.ios.css +5 -37
  117. package/dist/collection/components/textarea/textarea.js +5 -30
  118. package/dist/collection/components/textarea/textarea.md.css +14 -47
  119. package/dist/collection/components/toast/animations/ios.enter.js +1 -2
  120. package/dist/collection/components/toast/animations/md.enter.js +3 -4
  121. package/dist/collection/components/toast/animations/utils.js +14 -20
  122. package/dist/collection/components/toast/toast.ios.css +10 -10
  123. package/dist/collection/components/toast/toast.js +1 -104
  124. package/dist/collection/components/toast/toast.md.css +0 -10
  125. package/dist/collection/components/toggle/toggle.js +0 -2
  126. package/dist/collection/utils/animation/animation.js +11 -12
  127. package/dist/collection/utils/browser/index.js +22 -0
  128. package/dist/collection/utils/forms/index.js +0 -1
  129. package/dist/collection/utils/input-shims/input-shims.js +6 -12
  130. package/dist/collection/utils/menu-controller/index.js +12 -10
  131. package/dist/collection/utils/overlays.js +0 -1
  132. package/dist/collection/utils/slot-mutation-controller.js +2 -3
  133. package/dist/docs.json +2 -127
  134. package/dist/esm/{animation-cf3dd234.js → animation-8aa13916.js} +12 -13
  135. package/dist/esm/{app-globals-ba8b3a06.js → app-globals-8d413354.js} +1 -1
  136. package/dist/esm/{button-active-109ba60d.js → button-active-c7a04c9a.js} +2 -2
  137. package/dist/esm/{capacitor-f1f25364.js → capacitor-b4979570.js} +1 -1
  138. package/dist/esm/{haptic-1a66d69f.js → haptic-1243b917.js} +1 -1
  139. package/dist/esm/index-7a14ecec.js +29 -0
  140. package/dist/esm/{index-50582f1c.js → index-d62333a6.js} +3 -3
  141. package/dist/esm/{index-6a48e009.js → index-e2052f20.js} +14 -12
  142. package/dist/esm/{index-c9e82353.js → index-f0cc4e14.js} +1 -1
  143. package/dist/esm/index.js +10 -10
  144. package/dist/esm/{input-shims-1d767845.js → input-shims-d0c93e5d.js} +9 -14
  145. package/dist/esm/{input.utils-2cf5e372.js → input.utils-ec063df4.js} +3 -4
  146. package/dist/esm/ion-accordion_2.entry.js +3 -3
  147. package/dist/esm/ion-action-sheet.entry.js +8 -8
  148. package/dist/esm/ion-alert.entry.js +8 -8
  149. package/dist/esm/ion-app_8.entry.js +11 -11
  150. package/dist/esm/ion-avatar_3.entry.js +2 -2
  151. package/dist/esm/ion-back-button.entry.js +3 -3
  152. package/dist/esm/ion-backdrop.entry.js +2 -2
  153. package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
  154. package/dist/esm/ion-button_2.entry.js +2 -2
  155. package/dist/esm/ion-card_5.entry.js +2 -2
  156. package/dist/esm/ion-checkbox.entry.js +2 -4
  157. package/dist/esm/ion-chip.entry.js +2 -2
  158. package/dist/esm/ion-col_3.entry.js +2 -2
  159. package/dist/esm/ion-datetime-button.entry.js +2 -2
  160. package/dist/esm/ion-datetime_3.entry.js +10 -10
  161. package/dist/esm/ion-fab_3.entry.js +3 -3
  162. package/dist/esm/ion-img.entry.js +2 -2
  163. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
  164. package/dist/esm/ion-input.entry.js +14 -37
  165. package/dist/esm/ion-item-option_3.entry.js +2 -2
  166. package/dist/esm/ion-item_8.entry.js +7 -20
  167. package/dist/esm/ion-loading.entry.js +5 -5
  168. package/dist/esm/ion-menu_3.entry.js +8 -8
  169. package/dist/esm/ion-modal.entry.js +10 -10
  170. package/dist/esm/ion-nav_2.entry.js +3 -3
  171. package/dist/esm/ion-picker-column-internal.entry.js +5 -5
  172. package/dist/esm/ion-picker-internal.entry.js +1 -1
  173. package/dist/esm/ion-popover.entry.js +6 -6
  174. package/dist/esm/ion-progress-bar.entry.js +2 -2
  175. package/dist/esm/ion-radio_2.entry.js +3 -8
  176. package/dist/esm/ion-range.entry.js +2 -4
  177. package/dist/esm/ion-refresher_2.entry.js +7 -7
  178. package/dist/esm/ion-reorder_2.entry.js +6 -6
  179. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  180. package/dist/esm/ion-route_4.entry.js +2 -2
  181. package/dist/esm/ion-searchbar.entry.js +3 -3
  182. package/dist/esm/ion-segment_2.entry.js +2 -2
  183. package/dist/esm/ion-select_3.entry.js +34 -50
  184. package/dist/esm/ion-spinner.entry.js +2 -2
  185. package/dist/esm/ion-split-pane.entry.js +2 -2
  186. package/dist/esm/ion-tab-bar_2.entry.js +6 -6
  187. package/dist/esm/ion-tab_2.entry.js +1 -1
  188. package/dist/esm/ion-text.entry.js +2 -2
  189. package/dist/esm/ion-textarea.entry.js +12 -35
  190. package/dist/esm/ion-toast.entry.js +77 -419
  191. package/dist/esm/ion-toggle.entry.js +6 -8
  192. package/dist/esm/{ionic-global-7efdecd0.js → ionic-global-8673c5ce.js} +1 -1
  193. package/dist/esm/ionic.js +5 -5
  194. package/dist/esm/{ios.transition-e20d71bc.js → ios.transition-2fdb6f26.js} +4 -4
  195. package/dist/esm/{keyboard-b6230bfb.js → keyboard-b063f012.js} +1 -1
  196. package/dist/esm/{keyboard-9f771a04.js → keyboard-b551279d.js} +3 -3
  197. package/dist/esm/{keyboard-controller-3f0faa10.js → keyboard-controller-0c2dce71.js} +2 -2
  198. package/dist/esm/loader.js +5 -5
  199. package/dist/esm/{md.transition-a8469407.js → md.transition-6f8b3cd0.js} +4 -4
  200. package/dist/esm/{notch-controller-3f79197e.js → notch-controller-8c9c0e54.js} +1 -1
  201. package/dist/esm/{overlays-d79b34b4.js → overlays-d4c45da6.js} +3 -4
  202. package/dist/esm/polyfills/core-js.js +0 -0
  203. package/dist/esm/polyfills/dom.js +0 -0
  204. package/dist/esm/polyfills/es5-html-element.js +0 -0
  205. package/dist/esm/polyfills/index.js +0 -0
  206. package/dist/esm/polyfills/system.js +0 -0
  207. package/dist/esm/{status-tap-7ca28a1c.js → status-tap-71db1a8f.js} +1 -1
  208. package/dist/esm-es5/{animation-cf3dd234.js → animation-8aa13916.js} +1 -1
  209. package/dist/esm-es5/app-globals-8d413354.js +4 -0
  210. package/dist/esm-es5/{button-active-109ba60d.js → button-active-c7a04c9a.js} +1 -1
  211. package/dist/esm-es5/{capacitor-f1f25364.js → capacitor-b4979570.js} +1 -1
  212. package/dist/esm-es5/{haptic-1a66d69f.js → haptic-1243b917.js} +1 -1
  213. package/dist/esm-es5/{index-50582f1c.js → index-d62333a6.js} +1 -1
  214. package/dist/esm-es5/index-e2052f20.js +4 -0
  215. package/dist/esm-es5/index-f0cc4e14.js +4 -0
  216. package/dist/esm-es5/index.js +1 -1
  217. package/dist/esm-es5/input-shims-d0c93e5d.js +4 -0
  218. package/dist/esm-es5/input.utils-ec063df4.js +4 -0
  219. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  220. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  221. package/dist/esm-es5/ion-alert.entry.js +1 -1
  222. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  223. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  224. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  225. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  226. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  227. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  228. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  229. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  230. package/dist/esm-es5/ion-chip.entry.js +1 -1
  231. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  232. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  233. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  234. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  235. package/dist/esm-es5/ion-img.entry.js +1 -1
  236. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  237. package/dist/esm-es5/ion-input.entry.js +1 -1
  238. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  239. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  240. package/dist/esm-es5/ion-loading.entry.js +1 -1
  241. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  242. package/dist/esm-es5/ion-modal.entry.js +1 -1
  243. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  244. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  245. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  246. package/dist/esm-es5/ion-popover.entry.js +1 -1
  247. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  248. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  249. package/dist/esm-es5/ion-range.entry.js +1 -1
  250. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  251. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  252. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  253. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  254. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  255. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  256. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  257. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  258. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  259. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  260. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  261. package/dist/esm-es5/ion-text.entry.js +1 -1
  262. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  263. package/dist/esm-es5/ion-toast.entry.js +1 -1
  264. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  265. package/dist/esm-es5/{ionic-global-7efdecd0.js → ionic-global-8673c5ce.js} +1 -1
  266. package/dist/esm-es5/ionic.js +1 -1
  267. package/dist/esm-es5/{ios.transition-e20d71bc.js → ios.transition-2fdb6f26.js} +1 -1
  268. package/dist/esm-es5/{keyboard-b6230bfb.js → keyboard-b063f012.js} +1 -1
  269. package/dist/esm-es5/{keyboard-9f771a04.js → keyboard-b551279d.js} +1 -1
  270. package/dist/esm-es5/{keyboard-controller-3f0faa10.js → keyboard-controller-0c2dce71.js} +1 -1
  271. package/dist/esm-es5/loader.js +1 -1
  272. package/dist/esm-es5/md.transition-6f8b3cd0.js +4 -0
  273. package/dist/esm-es5/{notch-controller-3f79197e.js → notch-controller-8c9c0e54.js} +1 -1
  274. package/dist/esm-es5/{overlays-d79b34b4.js → overlays-d4c45da6.js} +1 -1
  275. package/dist/esm-es5/{status-tap-7ca28a1c.js → status-tap-71db1a8f.js} +1 -1
  276. package/dist/html.html-data.json +1 -14
  277. package/dist/ionic/index.esm.js +1 -1
  278. package/dist/ionic/ionic.esm.js +1 -1
  279. package/dist/ionic/ionic.js +1 -1
  280. package/dist/ionic/p-02863edb.system.js +4 -0
  281. package/dist/ionic/{p-bf3396e1.entry.js → p-0335e66c.entry.js} +1 -1
  282. package/dist/ionic/{p-1b5b6845.system.entry.js → p-076e622f.system.entry.js} +1 -1
  283. package/dist/ionic/{p-35787a6f.entry.js → p-08dcf03a.entry.js} +1 -1
  284. package/dist/ionic/{p-4c50b357.system.entry.js → p-091702af.system.entry.js} +1 -1
  285. package/dist/ionic/{p-e53f2605.entry.js → p-094dbfa5.entry.js} +1 -1
  286. package/dist/ionic/{p-1fc6b5a5.system.entry.js → p-0993782a.system.entry.js} +1 -1
  287. package/dist/ionic/p-0d8e9076.system.entry.js +4 -0
  288. package/dist/ionic/p-0f23c3a5.entry.js +4 -0
  289. package/dist/ionic/p-0f4f11eb.entry.js +4 -0
  290. package/dist/ionic/{p-8a9760f7.system.entry.js → p-10a2ab8c.system.entry.js} +1 -1
  291. package/dist/ionic/{p-3fc0b7ba.entry.js → p-1289df52.entry.js} +1 -1
  292. package/dist/ionic/{p-35e25602.system.entry.js → p-14be0381.system.entry.js} +1 -1
  293. package/dist/ionic/{p-2151a4a4.system.entry.js → p-153ea88b.system.entry.js} +1 -1
  294. package/dist/ionic/{p-e4d66e2d.system.entry.js → p-176a386b.system.entry.js} +1 -1
  295. package/dist/ionic/{p-15512a5e.system.entry.js → p-1acd1607.system.entry.js} +1 -1
  296. package/dist/ionic/{p-eec1aa12.system.entry.js → p-1b16c2ef.system.entry.js} +1 -1
  297. package/dist/ionic/{p-a3434028.system.entry.js → p-1df460d5.system.entry.js} +1 -1
  298. package/dist/ionic/{p-0148306b.system.js → p-1e87e3fb.system.js} +1 -1
  299. package/dist/ionic/{p-3962542f.system.entry.js → p-202654b4.system.entry.js} +1 -1
  300. package/dist/ionic/p-276afddd.js +4 -0
  301. package/dist/ionic/{p-ce20c101.entry.js → p-287d76e0.entry.js} +1 -1
  302. package/dist/ionic/{p-20ff4d7f.system.entry.js → p-2954d245.system.entry.js} +1 -1
  303. package/dist/ionic/p-2ac243b7.entry.js +4 -0
  304. package/dist/ionic/p-2e8e0045.js +4 -0
  305. package/dist/ionic/{p-138a4a93.entry.js → p-31589ed7.entry.js} +1 -1
  306. package/dist/ionic/{p-70bf6086.system.entry.js → p-3299adbf.system.entry.js} +1 -1
  307. package/dist/ionic/p-3602001b.system.js +4 -0
  308. package/dist/ionic/p-3632220b.system.js +4 -0
  309. package/dist/ionic/{p-3dedd258.system.entry.js → p-3878d22f.system.entry.js} +1 -1
  310. package/dist/ionic/{p-957f3028.system.entry.js → p-38fbf9f5.system.entry.js} +1 -1
  311. package/dist/ionic/{p-13dd7d20.system.js → p-3b3046e8.system.js} +1 -1
  312. package/dist/ionic/{p-e5fd9f10.js → p-3bad5c1a.js} +1 -1
  313. package/dist/ionic/{p-0c40f7d3.system.js → p-3d074f21.system.js} +1 -1
  314. package/dist/ionic/p-3daa6ecf.js +4 -0
  315. package/dist/ionic/{p-510bc27b.entry.js → p-40f5a803.entry.js} +1 -1
  316. package/dist/ionic/{p-958f1c70.system.js → p-41477ad9.system.js} +1 -1
  317. package/dist/ionic/{p-a135e3ba.js → p-419eb426.js} +1 -1
  318. package/dist/ionic/{p-0e8335b9.entry.js → p-44723fa5.entry.js} +1 -1
  319. package/dist/ionic/{p-5b978c94.system.js → p-4639874e.system.js} +2 -2
  320. package/dist/ionic/p-4c724478.entry.js +4 -0
  321. package/dist/ionic/{p-f6d089a7.entry.js → p-4d06fd5b.entry.js} +1 -1
  322. package/dist/ionic/{p-938c4956.js → p-4f91b9c6.js} +1 -1
  323. package/dist/ionic/{p-ed8a02a2.system.entry.js → p-51086b36.system.entry.js} +1 -1
  324. package/dist/ionic/{p-abaa9b48.system.js → p-5504ca9b.system.js} +1 -1
  325. package/dist/ionic/{p-020dd47f.entry.js → p-55a8f9a3.entry.js} +1 -1
  326. package/dist/ionic/p-5916b355.system.entry.js +4 -0
  327. package/dist/ionic/{p-bedc16f0.system.entry.js → p-5b9cb91d.system.entry.js} +1 -1
  328. package/dist/ionic/{p-2d86b19a.entry.js → p-6008efa0.entry.js} +1 -1
  329. package/dist/ionic/{p-cb6c380e.system.entry.js → p-664cb3ad.system.entry.js} +1 -1
  330. package/dist/ionic/p-67eecef4.system.js +4 -0
  331. package/dist/ionic/{p-27923249.system.entry.js → p-6a61d423.system.entry.js} +1 -1
  332. package/dist/ionic/{p-e525dbea.entry.js → p-6e4225ed.entry.js} +1 -1
  333. package/dist/ionic/{p-00a10b94.system.entry.js → p-793625e5.system.entry.js} +1 -1
  334. package/dist/ionic/{p-89703003.entry.js → p-7e6cf80c.entry.js} +1 -1
  335. package/dist/ionic/{p-c7138053.system.entry.js → p-7eaa28eb.system.entry.js} +1 -1
  336. package/dist/ionic/{p-696c63fb.system.entry.js → p-7fd77f56.system.entry.js} +1 -1
  337. package/dist/ionic/{p-11cb4e19.js → p-81c818e7.js} +1 -1
  338. package/dist/ionic/p-843fe6e3.entry.js +4 -0
  339. package/dist/ionic/p-8708a93c.entry.js +4 -0
  340. package/dist/ionic/{p-ab1908ba.system.entry.js → p-889118cf.system.entry.js} +1 -1
  341. package/dist/ionic/{p-9471d511.system.entry.js → p-88cfa8f1.system.entry.js} +1 -1
  342. package/dist/ionic/{p-edd568c5.js → p-8bda8767.js} +1 -1
  343. package/dist/ionic/p-8c44e074.system.entry.js +4 -0
  344. package/dist/ionic/{p-53f75103.system.js → p-8c63eccf.system.js} +1 -1
  345. package/dist/ionic/{p-5885e9af.js → p-8cf94fc1.js} +1 -1
  346. package/dist/ionic/p-8d9c5be5.system.entry.js +4 -0
  347. package/dist/ionic/{p-5a7df436.entry.js → p-8f518e79.entry.js} +1 -1
  348. package/dist/ionic/p-910c1904.system.entry.js +4 -0
  349. package/dist/ionic/{p-47826f19.entry.js → p-93a2c76b.entry.js} +1 -1
  350. package/dist/ionic/p-94154db4.js +4 -0
  351. package/dist/ionic/{p-c4381a06.entry.js → p-952c64ea.entry.js} +1 -1
  352. package/dist/ionic/{p-60f25049.js → p-959e7a7a.js} +1 -1
  353. package/dist/ionic/p-97c65aa5.js +4 -0
  354. package/dist/ionic/p-9ab6f3e6.system.js +4 -0
  355. package/dist/ionic/p-9c7a56f0.entry.js +4 -0
  356. package/dist/ionic/{p-51b94085.system.entry.js → p-9c933855.system.entry.js} +1 -1
  357. package/dist/ionic/{p-c2e199ac.entry.js → p-9da6eef4.entry.js} +1 -1
  358. package/dist/ionic/p-9e4bb700.entry.js +4 -0
  359. package/dist/ionic/{p-50375f3b.system.entry.js → p-a134a81b.system.entry.js} +1 -1
  360. package/dist/ionic/p-a30595f3.system.entry.js +4 -0
  361. package/dist/ionic/p-a3b6e1b2.entry.js +4 -0
  362. package/dist/ionic/{p-d3278cb8.entry.js → p-a7c33806.entry.js} +1 -1
  363. package/dist/ionic/p-a809a205.js +4 -0
  364. package/dist/ionic/{p-aec8a70a.system.js → p-ab4cff27.system.js} +1 -1
  365. package/dist/ionic/p-ad227931.system.js +4 -0
  366. package/dist/ionic/{p-5c7107b4.system.entry.js → p-ae2e4e30.system.entry.js} +1 -1
  367. package/dist/ionic/{p-8be2b964.entry.js → p-b1200f55.entry.js} +1 -1
  368. package/dist/ionic/{p-400a78f3.system.entry.js → p-b4085a03.system.entry.js} +1 -1
  369. package/dist/ionic/{p-9292fd42.system.js → p-b4b4bb29.system.js} +1 -1
  370. package/dist/ionic/{p-6a309574.js → p-b923f3d7.js} +1 -1
  371. package/dist/ionic/{p-25b8d65c.entry.js → p-b95cc39b.entry.js} +1 -1
  372. package/dist/ionic/{p-3e8d7ed8.js → p-b977b57a.js} +1 -1
  373. package/dist/ionic/{p-f9a641fa.system.js → p-bba2ce59.system.js} +1 -1
  374. package/dist/ionic/{p-d73eb00e.entry.js → p-bd946be0.entry.js} +1 -1
  375. package/dist/ionic/p-c096895d.system.js +4 -0
  376. package/dist/ionic/{p-a03566c4.system.entry.js → p-c2af8468.system.entry.js} +2 -2
  377. package/dist/ionic/p-c3b62be8.system.entry.js +4 -0
  378. package/dist/ionic/{p-2fb115dc.entry.js → p-c5106edf.entry.js} +1 -1
  379. package/dist/ionic/p-c75422d5.entry.js +4 -0
  380. package/dist/ionic/p-c87d155e.entry.js +4 -0
  381. package/dist/ionic/p-cbe7738f.entry.js +4 -0
  382. package/dist/ionic/p-cc196b34.js +4 -0
  383. package/dist/ionic/{p-1511dc35.system.js → p-cc68ad40.system.js} +1 -1
  384. package/dist/ionic/{p-e7d20dfb.system.js → p-ccdcb022.system.js} +1 -1
  385. package/dist/ionic/{p-6825ff8d.entry.js → p-cd1c8ab2.entry.js} +1 -1
  386. package/dist/ionic/{p-a6880f79.system.entry.js → p-cd3a87bd.system.entry.js} +1 -1
  387. package/dist/ionic/{p-7dafac2c.system.entry.js → p-ce62bf2c.system.entry.js} +1 -1
  388. package/dist/ionic/{p-ebdaf11b.entry.js → p-ce9bf0ed.entry.js} +1 -1
  389. package/dist/ionic/p-d05b431a.system.entry.js +4 -0
  390. package/dist/ionic/{p-71e70a57.system.entry.js → p-d0c701d0.system.entry.js} +1 -1
  391. package/dist/ionic/{p-03a36678.entry.js → p-d1ac0094.entry.js} +1 -1
  392. package/dist/ionic/p-d1de1188.js +4 -0
  393. package/dist/ionic/{p-f8febce9.system.entry.js → p-d27ade6f.system.entry.js} +1 -1
  394. package/dist/ionic/p-d37d3ebc.system.entry.js +4 -0
  395. package/dist/ionic/{p-b3d50a72.entry.js → p-d59f70db.entry.js} +1 -1
  396. package/dist/ionic/{p-152998a6.system.entry.js → p-d9c86724.system.entry.js} +1 -1
  397. package/dist/ionic/{p-df18d20d.js → p-da26ba41.js} +1 -1
  398. package/dist/ionic/{p-4430713b.entry.js → p-da6b2907.entry.js} +1 -1
  399. package/dist/ionic/p-dee844d7.js +4 -0
  400. package/dist/ionic/{p-9939c98e.entry.js → p-e23c3d22.entry.js} +1 -1
  401. package/dist/ionic/{p-bc48e521.system.entry.js → p-ecbc7728.system.entry.js} +1 -1
  402. package/dist/ionic/{p-12d62aa9.entry.js → p-ef0d410f.entry.js} +1 -1
  403. package/dist/ionic/{p-6abde4f1.system.entry.js → p-f2743f0f.system.entry.js} +1 -1
  404. package/dist/ionic/{p-a9424586.entry.js → p-f30dabf4.entry.js} +1 -1
  405. package/dist/ionic/{p-3e1deb37.system.entry.js → p-f323209c.system.entry.js} +1 -1
  406. package/dist/ionic/{p-664cc492.entry.js → p-f33808d4.entry.js} +1 -1
  407. package/dist/ionic/{p-bc6e32d2.entry.js → p-f3d770d2.entry.js} +1 -1
  408. package/dist/ionic/p-f47f2024.entry.js +4 -0
  409. package/dist/ionic/p-f9336ef9.system.js +4 -0
  410. package/dist/ionic/{p-d2de097b.entry.js → p-fc758470.entry.js} +1 -1
  411. package/dist/ionic/p-ff5a10f9.system.js +4 -0
  412. package/dist/types/components/input/input.d.ts +0 -2
  413. package/dist/types/components/radio-group/radio-group-interface.d.ts +0 -1
  414. package/dist/types/components/radio-group/radio-group.d.ts +1 -8
  415. package/dist/types/components/router/router.d.ts +1 -2
  416. package/dist/types/components/select/select.d.ts +1 -6
  417. package/dist/types/components/skeleton-text/skeleton-text.d.ts +1 -9
  418. package/dist/types/components/textarea/textarea.d.ts +0 -2
  419. package/dist/types/components/toast/animations/utils.d.ts +4 -15
  420. package/dist/types/components/toast/toast-interface.d.ts +0 -2
  421. package/dist/types/components/toast/toast.d.ts +1 -28
  422. package/dist/types/components.d.ts +6 -37
  423. package/dist/types/interface.d.ts +5 -1
  424. package/dist/types/utils/animation/animation-interface.d.ts +4 -4
  425. package/dist/types/utils/browser/index.d.ts +2 -11
  426. package/dist/types/utils/forms/index.d.ts +0 -1
  427. package/dist/types/utils/hardware-back-button.d.ts +0 -4
  428. package/dist/types/utils/overlays.d.ts +0 -1
  429. package/dist/types/utils/slot-mutation-controller.d.ts +2 -2
  430. package/dist/types/utils/test/playwright/page/utils/goto.d.ts +1 -1
  431. package/hydrate/index.js +169 -616
  432. package/package.json +31 -30
  433. package/dist/cjs/compare-with-utils-c0444525.js +0 -44
  434. package/dist/cjs/index-c8d52405.js +0 -10
  435. package/dist/collection/components/input/test/slot/input.e2e.js +0 -51
  436. package/dist/collection/components/select/test/slot/select.e2e.js +0 -67
  437. package/dist/collection/components/textarea/test/slot/textarea.e2e.js +0 -51
  438. package/dist/collection/components/toast/gestures/swipe-to-dismiss.js +0 -267
  439. package/dist/collection/components/toast/test/swipe-gesture/toast.e2e.js +0 -84
  440. package/dist/collection/utils/forms/compare-with-utils.js +0 -39
  441. package/dist/esm/compare-with-utils-4928c09d.js +0 -41
  442. package/dist/esm/index-a5d50daf.js +0 -7
  443. package/dist/esm-es5/app-globals-ba8b3a06.js +0 -4
  444. package/dist/esm-es5/compare-with-utils-4928c09d.js +0 -4
  445. package/dist/esm-es5/index-6a48e009.js +0 -4
  446. package/dist/esm-es5/index-c9e82353.js +0 -4
  447. package/dist/esm-es5/input-shims-1d767845.js +0 -4
  448. package/dist/esm-es5/input.utils-2cf5e372.js +0 -4
  449. package/dist/esm-es5/md.transition-a8469407.js +0 -4
  450. package/dist/ionic/p-02663394.system.js +0 -4
  451. package/dist/ionic/p-0fa05d7a.system.entry.js +0 -4
  452. package/dist/ionic/p-11104d0d.entry.js +0 -4
  453. package/dist/ionic/p-314c4dee.js +0 -4
  454. package/dist/ionic/p-33c650c5.entry.js +0 -4
  455. package/dist/ionic/p-3554b264.js +0 -4
  456. package/dist/ionic/p-37afecd5.entry.js +0 -4
  457. package/dist/ionic/p-3afb9c3d.entry.js +0 -4
  458. package/dist/ionic/p-3bc3d880.system.js +0 -4
  459. package/dist/ionic/p-40dd5937.system.js +0 -4
  460. package/dist/ionic/p-43716898.js +0 -4
  461. package/dist/ionic/p-494e75ad.js +0 -4
  462. package/dist/ionic/p-4e3c07a6.system.js +0 -4
  463. package/dist/ionic/p-4e4ee05e.js +0 -4
  464. package/dist/ionic/p-561cc050.system.js +0 -4
  465. package/dist/ionic/p-57b14769.js +0 -4
  466. package/dist/ionic/p-647fcea8.entry.js +0 -4
  467. package/dist/ionic/p-6b45cfd0.system.entry.js +0 -4
  468. package/dist/ionic/p-6c89025e.system.entry.js +0 -4
  469. package/dist/ionic/p-6dc21cd1.system.entry.js +0 -4
  470. package/dist/ionic/p-70dcf429.js +0 -4
  471. package/dist/ionic/p-710cea83.system.js +0 -4
  472. package/dist/ionic/p-78a8e1e8.entry.js +0 -4
  473. package/dist/ionic/p-79841aa8.entry.js +0 -4
  474. package/dist/ionic/p-7ac30f6a.entry.js +0 -4
  475. package/dist/ionic/p-7acd17bc.entry.js +0 -4
  476. package/dist/ionic/p-7b44e419.js +0 -4
  477. package/dist/ionic/p-81bdfa1c.system.entry.js +0 -4
  478. package/dist/ionic/p-8414ed31.entry.js +0 -4
  479. package/dist/ionic/p-92ac915c.system.js +0 -4
  480. package/dist/ionic/p-a6b819ca.entry.js +0 -4
  481. package/dist/ionic/p-ad6ed7ab.system.entry.js +0 -4
  482. package/dist/ionic/p-be499f29.entry.js +0 -4
  483. package/dist/ionic/p-c2db1374.system.js +0 -4
  484. package/dist/ionic/p-c3547c7a.system.js +0 -4
  485. package/dist/ionic/p-c700acef.system.js +0 -4
  486. package/dist/ionic/p-cd73cfd1.system.entry.js +0 -4
  487. package/dist/ionic/p-e3b7a2d0.system.entry.js +0 -4
  488. package/dist/ionic/p-e9fe3c8b.system.entry.js +0 -4
  489. package/dist/ionic/p-f2d4e3c8.entry.js +0 -4
  490. package/dist/ionic/p-f4ccdc77.js +0 -4
  491. package/dist/ionic/p-f7769c83.js +0 -4
  492. package/dist/node_modules/ionicons/dist/collection/components/icon/icon.css +0 -144
  493. package/dist/types/components/toast/gestures/swipe-to-dismiss.d.ts +0 -9
  494. package/dist/types/utils/forms/compare-with-utils.d.ts +0 -18
  495. /package/dist/cjs/{index-73186843.js → index-53026db1.js} +0 -0
  496. /package/dist/cjs/{index-09471526.js → index-677c4d13.js} +0 -0
  497. /package/dist/esm/{index-c132c5f1.js → index-4d016006.js} +0 -0
  498. /package/dist/esm/{index-4392ebcb.js → index-8eb0239b.js} +0 -0
  499. /package/dist/esm-es5/{index-c132c5f1.js → index-4d016006.js} +0 -0
  500. /package/dist/esm-es5/{index-a5d50daf.js → index-7a14ecec.js} +0 -0
  501. /package/dist/esm-es5/{index-4392ebcb.js → index-8eb0239b.js} +0 -0
  502. /package/dist/ionic/{p-8050b9b9.system.js → p-0c55ffe1.system.js} +0 -0
  503. /package/dist/ionic/{p-792919fd.system.js → p-0e94957a.system.js} +0 -0
  504. /package/dist/ionic/{p-dab42c1b.system.js → p-2814c8e5.system.js} +0 -0
  505. /package/dist/ionic/{p-f5e886cd.js → p-8a40746c.js} +0 -0
  506. /package/dist/ionic/{p-7b30edcc.js → p-b347cfd1.js} +0 -0
  507. /package/dist/ionic/{p-ea96fa73.js → p-e90d610c.js} +0 -0
@@ -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
  });
@@ -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";
@@ -23,8 +23,7 @@ export class Radio {
23
23
  this.hasLoggedDeprecationWarning = false;
24
24
  this.updateState = () => {
25
25
  if (this.radioGroup) {
26
- const { compareWith, value: radioGroupValue } = this.radioGroup;
27
- this.checked = isOptionSelected(radioGroupValue, this.value, compareWith);
26
+ this.checked = this.radioGroup.value === this.value;
28
27
  }
29
28
  };
30
29
  this.onClick = () => {
@@ -121,8 +120,6 @@ export class Radio {
121
120
  emitStyle() {
122
121
  const style = {
123
122
  'interactive-disabled': this.disabled,
124
- // TODO(FW-3125): remove this
125
- legacy: !!this.legacy,
126
123
  };
127
124
  if (this.legacyFormController.hasLegacyControl()) {
128
125
  style['radio-checked'] = this.checked;
@@ -47,7 +47,6 @@ export class RadioGroup {
47
47
  }
48
48
  };
49
49
  this.allowEmptySelection = false;
50
- this.compareWith = undefined;
51
50
  this.name = this.inputId;
52
51
  this.value = undefined;
53
52
  }
@@ -159,29 +158,6 @@ export class RadioGroup {
159
158
  "reflect": false,
160
159
  "defaultValue": "false"
161
160
  },
162
- "compareWith": {
163
- "type": "string",
164
- "mutable": false,
165
- "complexType": {
166
- "original": "string | RadioGroupCompareFn | null",
167
- "resolved": "((currentValue: any, compareValue: any) => boolean) | null | string | undefined",
168
- "references": {
169
- "RadioGroupCompareFn": {
170
- "location": "import",
171
- "path": "./radio-group-interface",
172
- "id": "src/components/radio-group/radio-group-interface.ts::RadioGroupCompareFn"
173
- }
174
- }
175
- },
176
- "required": false,
177
- "optional": true,
178
- "docs": {
179
- "tags": [],
180
- "text": "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."
181
- },
182
- "attribute": "compare-with",
183
- "reflect": false
184
- },
185
161
  "name": {
186
162
  "type": "string",
187
163
  "mutable": false,
@@ -226,8 +226,6 @@ export class Range {
226
226
  this.ionStyle.emit({
227
227
  interactive: true,
228
228
  'interactive-disabled': this.disabled,
229
- // TODO(FW-2997): remove this
230
- legacy: !!this.legacy,
231
229
  });
232
230
  }
233
231
  }
@@ -110,11 +110,6 @@
110
110
  overflow: hidden;
111
111
  }
112
112
 
113
- :host(.in-item:not(.legacy-select)) {
114
- flex: 1 1 0;
115
- width: 0;
116
- }
117
-
118
113
  :host(.in-item.legacy-select) {
119
114
  position: static;
120
115
  max-width: 45%;
@@ -215,12 +210,6 @@ button {
215
210
  margin-top: 0;
216
211
  margin-bottom: 0;
217
212
  position: relative;
218
- /**
219
- * Prevent the icon from shrinking when the label and/or
220
- * selected item text is long enough to fill the rest of
221
- * the container.
222
- */
223
- flex-shrink: 0;
224
213
  }
225
214
 
226
215
  /**
@@ -304,23 +293,6 @@ button {
304
293
  transition: opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);
305
294
  }
306
295
 
307
- .select-wrapper-inner {
308
- display: flex;
309
- align-items: center;
310
- overflow: hidden;
311
- }
312
-
313
- :host(.select-label-placement-stacked) .select-wrapper-inner,
314
- :host(.select-label-placement-floating) .select-wrapper-inner {
315
- /**
316
- * When using a stacked/floating label, the inner wrapper is
317
- * stacked vertically under the label container. This line
318
- * ensures that the inner wrapper fills all the remaining height
319
- * of the component.
320
- */
321
- flex-grow: 1;
322
- }
323
-
324
296
  :host(.ion-touched.ion-invalid) {
325
297
  --highlight-color: var(--highlight-color-invalid);
326
298
  }
@@ -561,23 +533,11 @@ button {
561
533
  * The placeholder should be hidden when the label
562
534
  * is on top of the select. This prevents the label
563
535
  * from overlapping any placeholder value.
564
- *
565
- * TODO(FW-5592): Remove :not(.label-floating) piece
566
536
  */
567
- :host(.select-label-placement-floating:not(.label-floating)) .native-wrapper .select-placeholder {
537
+ :host(.select-label-placement-floating) .native-wrapper .select-placeholder {
568
538
  opacity: 0;
569
539
  }
570
540
 
571
- /**
572
- * We don't use .label-floating here because that would
573
- * also include the case where the label is floating due
574
- * to content in the start/end slot. We want the opacity
575
- * to remain at the default in this case, since the select
576
- * isn't being actively interacted with.
577
- *
578
- * TODO(FW-5592): Change entire selector to:
579
- * :host(.label-floating.select-label-placement-floating) .native-wrapper .select-placeholder
580
- */
581
541
  :host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,
582
542
  :host(.ion-focused.select-label-placement-floating) .native-wrapper .select-placeholder,
583
543
  :host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder {
@@ -587,7 +547,10 @@ button {
587
547
  /**
588
548
  * This makes the label sit above the input.
589
549
  */
590
- :host(.label-floating) .label-text-wrapper {
550
+ :host(.select-label-placement-stacked) .label-text-wrapper,
551
+ :host(.select-expanded.select-label-placement-floating) .label-text-wrapper,
552
+ :host(.ion-focused.select-label-placement-floating) .label-text-wrapper,
553
+ :host(.has-value.select-label-placement-floating) .label-text-wrapper {
591
554
  transform: translateY(50%) scale(0.75);
592
555
  /**
593
556
  * Label text should not extend
@@ -596,23 +559,6 @@ button {
596
559
  max-width: calc(100% / 0.75);
597
560
  }
598
561
 
599
- ::slotted([slot=start]), ::slotted([slot=end]) {
600
- /**
601
- * Prevent the slots from shrinking when the label and/or
602
- * selected item text is long enough to fill the rest of
603
- * the container.
604
- */
605
- flex-shrink: 0;
606
- }
607
-
608
- ::slotted([slot=start]) {
609
- margin-inline-end: 16px;
610
- }
611
-
612
- ::slotted([slot=end]) {
613
- margin-inline-start: 16px;
614
- }
615
-
616
562
  /**
617
563
  * Convert a font size to a dynamic font size.
618
564
  * Fonts that participate in Dynamic Type should use
@@ -692,8 +638,8 @@ button {
692
638
  color: var(--ion-color-step-650, #595959);
693
639
  }
694
640
 
695
- :host(.select-label-placement-stacked) .select-wrapper-inner,
696
- :host(.select-label-placement-floating) .select-wrapper-inner {
641
+ :host(.select-label-placement-stacked) .native-wrapper,
642
+ :host(.select-label-placement-floating) .native-wrapper {
697
643
  width: calc(100% - 1.125rem - 4px);
698
644
  }
699
645
 
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { Host, h, forceUpdate } from "@stencil/core";
5
- import { compareOptions, createLegacyFormController, createNotchController, isOptionSelected } from "../../utils/forms/index";
5
+ import { createLegacyFormController, createNotchController } from "../../utils/forms/index";
6
6
  import { findItemLabel, focusElement, getAriaLabel, renderHiddenInput, inheritAttributes } from "../../utils/helpers";
7
7
  import { printIonWarning } from "../../utils/logging/index";
8
8
  import { actionSheetController, alertController, popoverController } from "../../utils/overlays";
@@ -16,8 +16,6 @@ import { getIonMode } from "../../global/ionic-global";
16
16
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
17
17
  *
18
18
  * @slot 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.
19
- * @slot start - Content to display at the leading edge of the select.
20
- * @slot end - Content to display at the trailing edge of the select.
21
19
  *
22
20
  * @part placeholder - The text displayed in the select when there is no value.
23
21
  * @part text - The displayed value of the select.
@@ -32,22 +30,8 @@ export class Select {
32
30
  // This flag ensures we log the deprecation warning at most once.
33
31
  this.hasLoggedDeprecationWarning = false;
34
32
  this.onClick = (ev) => {
35
- const target = ev.target;
36
- const closestSlot = target.closest('[slot="start"], [slot="end"]');
37
- if (target === this.el || closestSlot === null) {
38
- this.setFocus();
39
- this.open(ev);
40
- }
41
- else {
42
- /**
43
- * Prevent clicks to the start/end slots from opening the select.
44
- * We ensure the target isn't this element in case the select is slotted
45
- * in, for example, an item. This would prevent the select from ever
46
- * being opened since the element itself has slot="start"/"end".
47
- */
48
- ev.stopPropagation();
49
- ev.preventDefault();
50
- }
33
+ this.setFocus();
34
+ this.open(ev);
51
35
  };
52
36
  this.onFocus = () => {
53
37
  this.ionFocus.emit();
@@ -481,8 +465,6 @@ export class Select {
481
465
  style['has-placeholder'] = this.placeholder !== undefined;
482
466
  style['has-value'] = this.hasValue();
483
467
  style['has-focus'] = this.isExpanded;
484
- // TODO(FW-3194): remove this
485
- style['legacy'] = !!this.legacy;
486
468
  }
487
469
  this.ionStyle.emit(style);
488
470
  }
@@ -550,27 +532,7 @@ export class Select {
550
532
  const rtl = isRTL(el) ? 'rtl' : 'ltr';
551
533
  const inItem = hostContext('ion-item', this.el);
552
534
  const shouldRenderHighlight = mode === 'md' && fill !== 'outline' && !inItem;
553
- const hasValue = this.hasValue();
554
- const hasStartEndSlots = el.querySelector('[slot="start"], [slot="end"]') !== null;
555
535
  renderHiddenInput(true, el, name, parseValue(value), disabled);
556
- /**
557
- * If the label is stacked, it should always sit above the select.
558
- * For floating labels, the label should move above the select if
559
- * the select has a value, is open, or has anything in either
560
- * the start or end slot.
561
- *
562
- * If there is content in the start slot, the label would overlap
563
- * it if not forced to float. This is also applied to the end slot
564
- * because with the default or solid fills, the select is not
565
- * vertically centered in the container, but the label is. This
566
- * causes the slots and label to appear vertically offset from each
567
- * other when the label isn't floating above the input. This doesn't
568
- * apply to the outline fill, but this was not accounted for to keep
569
- * things consistent.
570
- *
571
- * TODO(FW-5592): Remove hasStartEndSlots condition
572
- */
573
- const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
574
536
  return (h(Host, { onClick: this.onClick, class: createColorClasses(this.color, {
575
537
  [mode]: true,
576
538
  'in-item': inItem,
@@ -578,8 +540,7 @@ export class Select {
578
540
  'select-disabled': disabled,
579
541
  'select-expanded': isExpanded,
580
542
  'has-expanded-icon': expandedIcon !== undefined,
581
- 'has-value': hasValue,
582
- 'label-floating': labelShouldFloat,
543
+ 'has-value': this.hasValue(),
583
544
  'has-placeholder': placeholder !== undefined,
584
545
  'ion-focusable': true,
585
546
  [`select-${rtl}`]: true,
@@ -587,7 +548,7 @@ export class Select {
587
548
  [`select-justify-${justify}`]: justifyEnabled,
588
549
  [`select-shape-${shape}`]: shape !== undefined,
589
550
  [`select-label-placement-${labelPlacement}`]: true,
590
- }) }, h("label", { class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), h("div", { class: "select-wrapper-inner" }, h("slot", { name: "start" }), h("div", { class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { class: "select-highlight" }))));
551
+ }) }, h("label", { class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), h("div", { class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), !hasFloatingOrStackedLabel && this.renderSelectIcon(), this.renderListbox()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { class: "select-highlight" }))));
591
552
  }
592
553
  // TODO FW-3194 - Remove this
593
554
  renderLegacySelect() {
@@ -776,7 +737,7 @@ Developers can use the "legacy" property to continue using the legacy form marku
776
737
  "optional": true,
777
738
  "docs": {
778
739
  "tags": [],
779
- "text": "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."
740
+ "text": "A property name or function used to compare object values"
780
741
  },
781
742
  "attribute": "compare-with",
782
743
  "reflect": false
@@ -1254,6 +1215,17 @@ Developers can use the "legacy" property to continue using the legacy form marku
1254
1215
  }];
1255
1216
  }
1256
1217
  }
1218
+ const isOptionSelected = (currentValue, compareValue, compareWith) => {
1219
+ if (currentValue === undefined) {
1220
+ return false;
1221
+ }
1222
+ if (Array.isArray(currentValue)) {
1223
+ return currentValue.some((val) => compareOptions(val, compareValue, compareWith));
1224
+ }
1225
+ else {
1226
+ return compareOptions(currentValue, compareValue, compareWith);
1227
+ }
1228
+ };
1257
1229
  const getOptionValue = (el) => {
1258
1230
  const value = el.value;
1259
1231
  return value === undefined ? el.textContent || '' : value;
@@ -1267,6 +1239,17 @@ const parseValue = (value) => {
1267
1239
  }
1268
1240
  return value.toString();
1269
1241
  };
1242
+ const compareOptions = (currentValue, compareValue, compareWith) => {
1243
+ if (typeof compareWith === 'function') {
1244
+ return compareWith(currentValue, compareValue);
1245
+ }
1246
+ else if (typeof compareWith === 'string') {
1247
+ return currentValue[compareWith] === compareValue[compareWith];
1248
+ }
1249
+ else {
1250
+ return Array.isArray(compareValue) ? compareValue.includes(currentValue) : currentValue === compareValue;
1251
+ }
1252
+ };
1270
1253
  const generateText = (opts, value, compareWith) => {
1271
1254
  if (value === undefined) {
1272
1255
  return '';
@@ -110,11 +110,6 @@
110
110
  overflow: hidden;
111
111
  }
112
112
 
113
- :host(.in-item:not(.legacy-select)) {
114
- flex: 1 1 0;
115
- width: 0;
116
- }
117
-
118
113
  :host(.in-item.legacy-select) {
119
114
  position: static;
120
115
  max-width: 45%;
@@ -215,12 +210,6 @@ button {
215
210
  margin-top: 0;
216
211
  margin-bottom: 0;
217
212
  position: relative;
218
- /**
219
- * Prevent the icon from shrinking when the label and/or
220
- * selected item text is long enough to fill the rest of
221
- * the container.
222
- */
223
- flex-shrink: 0;
224
213
  }
225
214
 
226
215
  /**
@@ -304,23 +293,6 @@ button {
304
293
  transition: opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);
305
294
  }
306
295
 
307
- .select-wrapper-inner {
308
- display: flex;
309
- align-items: center;
310
- overflow: hidden;
311
- }
312
-
313
- :host(.select-label-placement-stacked) .select-wrapper-inner,
314
- :host(.select-label-placement-floating) .select-wrapper-inner {
315
- /**
316
- * When using a stacked/floating label, the inner wrapper is
317
- * stacked vertically under the label container. This line
318
- * ensures that the inner wrapper fills all the remaining height
319
- * of the component.
320
- */
321
- flex-grow: 1;
322
- }
323
-
324
296
  :host(.ion-touched.ion-invalid) {
325
297
  --highlight-color: var(--highlight-color-invalid);
326
298
  }
@@ -561,23 +533,11 @@ button {
561
533
  * The placeholder should be hidden when the label
562
534
  * is on top of the select. This prevents the label
563
535
  * from overlapping any placeholder value.
564
- *
565
- * TODO(FW-5592): Remove :not(.label-floating) piece
566
536
  */
567
- :host(.select-label-placement-floating:not(.label-floating)) .native-wrapper .select-placeholder {
537
+ :host(.select-label-placement-floating) .native-wrapper .select-placeholder {
568
538
  opacity: 0;
569
539
  }
570
540
 
571
- /**
572
- * We don't use .label-floating here because that would
573
- * also include the case where the label is floating due
574
- * to content in the start/end slot. We want the opacity
575
- * to remain at the default in this case, since the select
576
- * isn't being actively interacted with.
577
- *
578
- * TODO(FW-5592): Change entire selector to:
579
- * :host(.label-floating.select-label-placement-floating) .native-wrapper .select-placeholder
580
- */
581
541
  :host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,
582
542
  :host(.ion-focused.select-label-placement-floating) .native-wrapper .select-placeholder,
583
543
  :host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder {
@@ -587,7 +547,10 @@ button {
587
547
  /**
588
548
  * This makes the label sit above the input.
589
549
  */
590
- :host(.label-floating) .label-text-wrapper {
550
+ :host(.select-label-placement-stacked) .label-text-wrapper,
551
+ :host(.select-expanded.select-label-placement-floating) .label-text-wrapper,
552
+ :host(.ion-focused.select-label-placement-floating) .label-text-wrapper,
553
+ :host(.has-value.select-label-placement-floating) .label-text-wrapper {
591
554
  transform: translateY(50%) scale(0.75);
592
555
  /**
593
556
  * Label text should not extend
@@ -596,23 +559,6 @@ button {
596
559
  max-width: calc(100% / 0.75);
597
560
  }
598
561
 
599
- ::slotted([slot=start]), ::slotted([slot=end]) {
600
- /**
601
- * Prevent the slots from shrinking when the label and/or
602
- * selected item text is long enough to fill the rest of
603
- * the container.
604
- */
605
- flex-shrink: 0;
606
- }
607
-
608
- ::slotted([slot=start]) {
609
- margin-inline-end: 16px;
610
- }
611
-
612
- ::slotted([slot=end]) {
613
- margin-inline-start: 16px;
614
- }
615
-
616
562
  /**
617
563
  * Convert a font size to a dynamic font size.
618
564
  * Fonts that participate in Dynamic Type should use
@@ -790,7 +736,10 @@ button {
790
736
  }
791
737
  }
792
738
 
793
- :host(.label-floating.select-fill-solid) .label-text-wrapper {
739
+ :host(.select-fill-solid.select-label-placement-stacked) .label-text-wrapper,
740
+ :host(.select-expanded.select-fill-solid.select-label-placement-floating) .label-text-wrapper,
741
+ :host(.ion-focused.select-fill-solid.select-label-placement-floating) .label-text-wrapper,
742
+ :host(.has-value.select-fill-solid.select-label-placement-floating) .label-text-wrapper {
794
743
  /**
795
744
  * Label text should not extend
796
745
  * beyond the bounds of the select.
@@ -924,7 +873,10 @@ button {
924
873
  /**
925
874
  * This makes the label sit above the select.
926
875
  */
927
- :host(.label-floating.select-fill-outline) .label-text-wrapper {
876
+ :host(.select-expanded.select-fill-outline.select-label-placement-floating) .label-text-wrapper,
877
+ :host(.ion-focused.select-fill-outline.select-label-placement-floating) .label-text-wrapper,
878
+ :host(.has-value.select-fill-outline.select-label-placement-floating) .label-text-wrapper,
879
+ :host(.select-fill-outline.select-label-placement-stacked) .label-text-wrapper {
928
880
  transform: translateY(-32%) scale(0.75);
929
881
  margin-left: 0;
930
882
  margin-right: 0;
@@ -1069,7 +1021,10 @@ button {
1069
1021
  * the floating/stacked label. We simulate this "cut out"
1070
1022
  * by removing the top border from the notch fragment.
1071
1023
  */
1072
- :host(.label-floating.select-fill-outline) .select-outline-notch {
1024
+ :host(.select-expanded.select-fill-outline.select-label-placement-floating) .select-outline-notch,
1025
+ :host(.ion-focused.select-fill-outline.select-label-placement-floating) .select-outline-notch,
1026
+ :host(.has-value.select-fill-outline.select-label-placement-floating) .select-outline-notch,
1027
+ :host(.select-fill-outline.select-label-placement-stacked) .select-outline-notch {
1073
1028
  border-top: none;
1074
1029
  }
1075
1030
 
@@ -1234,8 +1189,8 @@ button {
1234
1189
  --border-radius: 16px;
1235
1190
  }
1236
1191
 
1237
- :host(.select-label-placement-stacked) .select-wrapper-inner,
1238
- :host(.select-label-placement-floating) .select-wrapper-inner {
1192
+ :host(.select-label-placement-stacked) .native-wrapper,
1193
+ :host(.select-label-placement-floating) .native-wrapper {
1239
1194
  width: calc(100% - 0.8125rem - 4px);
1240
1195
  }
1241
1196
 
@@ -121,7 +121,7 @@ configs().forEach(({ title, screenshot, config }) => {
121
121
  });
122
122
  test('label should appear on top of the select when the select is expanded', async ({ page }) => {
123
123
  await page.setContent(`
124
- <ion-select class="select-expanded label-floating" label="Label" label-placement="floating" placeholder="Select a Fruit">
124
+ <ion-select class="select-expanded" label="Label" label-placement="floating" placeholder="Select a Fruit">
125
125
  <ion-select-option value="apples">Apples</ion-select-option>
126
126
  </ion-select>
127
127
  `, config);
@@ -27,7 +27,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
27
27
  await page.setContent(`
28
28
  <ion-item>
29
29
  <ion-label>Really long label should not wrap</ion-label>
30
- <ion-select value="wrap" legacy="true" class="ion-text-wrap">
30
+ <ion-select value="wrap" class="ion-text-wrap">
31
31
  <ion-select-option value="wrap">Should wrap value only when label exists and really long text exists to make it wrap the text</ion-select-option>
32
32
  </ion-select>
33
33
  </ion-item>
@@ -9,18 +9,6 @@ export class SkeletonText {
9
9
  constructor() {
10
10
  this.animated = false;
11
11
  }
12
- componentWillLoad() {
13
- this.emitStyle();
14
- }
15
- emitStyle() {
16
- // The emitted property is used by item in order
17
- // to add the item-skeleton-text class which applies
18
- // overflow: hidden to its label
19
- const style = {
20
- 'skeleton-text': true,
21
- };
22
- this.ionStyle.emit(style);
23
- }
24
12
  render() {
25
13
  const animated = this.animated && config.getBoolean('animated', true);
26
14
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
@@ -65,32 +53,5 @@ export class SkeletonText {
65
53
  }
66
54
  };
67
55
  }
68
- static get events() {
69
- return [{
70
- "method": "ionStyle",
71
- "name": "ionStyle",
72
- "bubbles": true,
73
- "cancelable": true,
74
- "composed": true,
75
- "docs": {
76
- "tags": [{
77
- "name": "internal",
78
- "text": undefined
79
- }],
80
- "text": "Emitted when the styles change."
81
- },
82
- "complexType": {
83
- "original": "StyleEventDetail",
84
- "resolved": "StyleEventDetail",
85
- "references": {
86
- "StyleEventDetail": {
87
- "location": "import",
88
- "path": "../../interface",
89
- "id": "src/interface.d.ts::StyleEventDetail"
90
- }
91
- }
92
- }
93
- }];
94
- }
95
56
  static get elementRef() { return "el"; }
96
57
  }