@ionic/core 7.5.4-dev.11699037031.16f5cbc8 → 7.5.4-dev.11699282935.1db450b0

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 (321) 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/ion-datetime.js +2 -2
  7. package/components/ion-header.js +1 -1
  8. package/components/ion-input.js +0 -2
  9. package/components/ion-range.js +0 -2
  10. package/components/ion-select.js +25 -5
  11. package/components/ion-skeleton-text.js +1 -14
  12. package/components/ion-textarea.js +0 -2
  13. package/components/ion-toast.js +18 -13
  14. package/components/ion-toggle.js +0 -2
  15. package/components/item.js +2 -2
  16. package/components/label.js +2 -2
  17. package/components/list.js +2 -2
  18. package/components/radio-group.js +0 -2
  19. package/components/radio.js +2 -35
  20. package/dist/cjs/{animation-d101aa7a.js → animation-1083855c.js} +12 -13
  21. package/dist/cjs/{button-active-69c3bee4.js → button-active-625d1d77.js} +1 -1
  22. package/dist/cjs/{capacitor-f68447d3.js → capacitor-2ffba62a.js} +1 -1
  23. package/dist/cjs/{haptic-a74c2767.js → haptic-678abc9f.js} +1 -1
  24. package/dist/cjs/{index-adbcffee.js → index-135a6097.js} +2 -2
  25. package/dist/cjs/index-306a7476.js +32 -0
  26. package/dist/cjs/{index-9146d04a.js → index-3659e3a5.js} +13 -11
  27. package/dist/cjs/{index-e9634bc9.js → index-9f379eaa.js} +1 -1
  28. package/dist/cjs/index.cjs.js +8 -8
  29. package/dist/cjs/{input-shims-3e3f35b9.js → input-shims-b0a75a01.js} +10 -15
  30. package/dist/cjs/{input.utils-590f0f18.js → input.utils-0fe3097c.js} +1 -1
  31. package/dist/cjs/ion-action-sheet.cjs.entry.js +6 -6
  32. package/dist/cjs/ion-alert.cjs.entry.js +6 -6
  33. package/dist/cjs/ion-app_8.cjs.entry.js +9 -9
  34. package/dist/cjs/ion-checkbox.cjs.entry.js +0 -2
  35. package/dist/cjs/ion-datetime_3.cjs.entry.js +7 -7
  36. package/dist/cjs/ion-input.cjs.entry.js +3 -5
  37. package/dist/cjs/ion-item_8.cjs.entry.js +6 -19
  38. package/dist/cjs/ion-loading.cjs.entry.js +3 -3
  39. package/dist/cjs/ion-menu_3.cjs.entry.js +5 -5
  40. package/dist/cjs/ion-modal.cjs.entry.js +7 -7
  41. package/dist/cjs/ion-nav_2.cjs.entry.js +1 -1
  42. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +3 -3
  43. package/dist/cjs/ion-popover.cjs.entry.js +4 -4
  44. package/dist/cjs/ion-radio_2.cjs.entry.js +1 -6
  45. package/dist/cjs/ion-range.cjs.entry.js +0 -2
  46. package/dist/cjs/ion-refresher_2.cjs.entry.js +4 -4
  47. package/dist/cjs/ion-reorder_2.cjs.entry.js +3 -3
  48. package/dist/cjs/ion-select_3.cjs.entry.js +31 -12
  49. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  50. package/dist/cjs/ion-textarea.cjs.entry.js +3 -5
  51. package/dist/cjs/ion-toast.cjs.entry.js +21 -16
  52. package/dist/cjs/ion-toggle.cjs.entry.js +3 -5
  53. package/dist/cjs/ionic.cjs.js +1 -1
  54. package/dist/cjs/{ios.transition-7972d9e3.js → ios.transition-b71990aa.js} +3 -3
  55. package/dist/cjs/{keyboard-840107b3.js → keyboard-38f2bb7b.js} +3 -3
  56. package/dist/cjs/{keyboard-controller-019f42df.js → keyboard-controller-50beb83a.js} +2 -2
  57. package/dist/cjs/{keyboard-43df0428.js → keyboard-fd7db491.js} +1 -1
  58. package/dist/cjs/loader.cjs.js +1 -1
  59. package/dist/cjs/{md.transition-6e61a10f.js → md.transition-3caa648a.js} +3 -3
  60. package/dist/cjs/{notch-controller-c22d1344.js → notch-controller-f4f6af5d.js} +1 -1
  61. package/dist/cjs/{overlays-d80a2cf2.js → overlays-6d1daf80.js} +1 -1
  62. package/dist/collection/components/checkbox/checkbox.js +0 -2
  63. package/dist/collection/components/datetime/datetime.ios.css +0 -1
  64. package/dist/collection/components/datetime/datetime.md.css +0 -1
  65. package/dist/collection/components/header/header.ios.css +3 -1
  66. package/dist/collection/components/input/input.js +0 -2
  67. package/dist/collection/components/item/item.ios.css +3 -25
  68. package/dist/collection/components/item/item.md.css +3 -25
  69. package/dist/collection/components/item/test/basic/item.e2e.js +1 -1
  70. package/dist/collection/components/item/test/disabled/item.e2e.js +1 -0
  71. package/dist/collection/components/item/test/text/item.e2e.js +14 -0
  72. package/dist/collection/components/label/label.ios.css +3 -14
  73. package/dist/collection/components/label/label.md.css +3 -14
  74. package/dist/collection/components/list/list.ios.css +15 -1
  75. package/dist/collection/components/list/list.md.css +41 -3
  76. package/dist/collection/components/list/test/lines/list.e2e.js +143 -0
  77. package/dist/collection/components/note/test/a11y/note.e2e.js +0 -43
  78. package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +5 -0
  79. package/dist/collection/components/radio/radio.js +2 -5
  80. package/dist/collection/components/radio-group/radio-group.js +0 -24
  81. package/dist/collection/components/range/range.js +0 -2
  82. package/dist/collection/components/select/select.ios.css +0 -5
  83. package/dist/collection/components/select/select.js +24 -4
  84. package/dist/collection/components/select/select.md.css +0 -5
  85. package/dist/collection/components/select/test/legacy/wrapping/select.e2e.js +1 -1
  86. package/dist/collection/components/skeleton-text/skeleton-text.js +0 -39
  87. package/dist/collection/components/textarea/textarea.js +0 -2
  88. package/dist/collection/components/toast/animations/md.enter.js +2 -2
  89. package/dist/collection/components/toast/animations/utils.js +14 -9
  90. package/dist/collection/components/toast/toast.ios.css +10 -10
  91. package/dist/collection/components/toast/toast.md.css +0 -10
  92. package/dist/collection/components/toggle/toggle.js +0 -2
  93. package/dist/collection/utils/animation/animation.js +11 -12
  94. package/dist/collection/utils/browser/index.js +22 -0
  95. package/dist/collection/utils/forms/index.js +0 -1
  96. package/dist/collection/utils/input-shims/input-shims.js +6 -12
  97. package/dist/collection/utils/menu-controller/index.js +12 -10
  98. package/dist/docs.json +2 -43
  99. package/dist/esm/{animation-cf3dd234.js → animation-8aa13916.js} +12 -13
  100. package/dist/esm/{button-active-109ba60d.js → button-active-1fb561b0.js} +1 -1
  101. package/dist/esm/{capacitor-f1f25364.js → capacitor-b4979570.js} +1 -1
  102. package/dist/esm/{haptic-1a66d69f.js → haptic-1243b917.js} +1 -1
  103. package/dist/esm/{index-6a48e009.js → index-056b43e7.js} +13 -11
  104. package/dist/esm/{index-50582f1c.js → index-47a510cf.js} +2 -2
  105. package/dist/esm/index-7a14ecec.js +29 -0
  106. package/dist/esm/{index-c9e82353.js → index-f0cc4e14.js} +1 -1
  107. package/dist/esm/index.js +8 -8
  108. package/dist/esm/{input-shims-1d767845.js → input-shims-d0c93e5d.js} +9 -14
  109. package/dist/esm/{input.utils-d04a7212.js → input.utils-ec063df4.js} +1 -1
  110. package/dist/esm/ion-action-sheet.entry.js +6 -6
  111. package/dist/esm/ion-alert.entry.js +6 -6
  112. package/dist/esm/ion-app_8.entry.js +9 -9
  113. package/dist/esm/ion-checkbox.entry.js +0 -2
  114. package/dist/esm/ion-datetime_3.entry.js +7 -7
  115. package/dist/esm/ion-input.entry.js +3 -5
  116. package/dist/esm/ion-item_8.entry.js +6 -19
  117. package/dist/esm/ion-loading.entry.js +3 -3
  118. package/dist/esm/ion-menu_3.entry.js +5 -5
  119. package/dist/esm/ion-modal.entry.js +7 -7
  120. package/dist/esm/ion-nav_2.entry.js +1 -1
  121. package/dist/esm/ion-picker-column-internal.entry.js +3 -3
  122. package/dist/esm/ion-popover.entry.js +4 -4
  123. package/dist/esm/ion-radio_2.entry.js +1 -6
  124. package/dist/esm/ion-range.entry.js +0 -2
  125. package/dist/esm/ion-refresher_2.entry.js +4 -4
  126. package/dist/esm/ion-reorder_2.entry.js +3 -3
  127. package/dist/esm/ion-select_3.entry.js +27 -8
  128. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  129. package/dist/esm/ion-textarea.entry.js +3 -5
  130. package/dist/esm/ion-toast.entry.js +21 -16
  131. package/dist/esm/ion-toggle.entry.js +3 -5
  132. package/dist/esm/ionic.js +1 -1
  133. package/dist/esm/{ios.transition-e20d71bc.js → ios.transition-b53e19a3.js} +3 -3
  134. package/dist/esm/{keyboard-b6230bfb.js → keyboard-b063f012.js} +1 -1
  135. package/dist/esm/{keyboard-9f771a04.js → keyboard-b551279d.js} +3 -3
  136. package/dist/esm/{keyboard-controller-3f0faa10.js → keyboard-controller-0c2dce71.js} +2 -2
  137. package/dist/esm/loader.js +1 -1
  138. package/dist/esm/{md.transition-a8469407.js → md.transition-276c1159.js} +3 -3
  139. package/dist/esm/{notch-controller-3f79197e.js → notch-controller-8c9c0e54.js} +1 -1
  140. package/dist/esm/{overlays-a31c8878.js → overlays-928a4afe.js} +1 -1
  141. package/dist/esm-es5/{animation-cf3dd234.js → animation-8aa13916.js} +1 -1
  142. package/dist/esm-es5/{button-active-109ba60d.js → button-active-1fb561b0.js} +1 -1
  143. package/dist/esm-es5/{capacitor-f1f25364.js → capacitor-b4979570.js} +1 -1
  144. package/dist/esm-es5/{haptic-1a66d69f.js → haptic-1243b917.js} +1 -1
  145. package/dist/esm-es5/index-056b43e7.js +4 -0
  146. package/dist/esm-es5/{index-50582f1c.js → index-47a510cf.js} +1 -1
  147. package/dist/esm-es5/index-f0cc4e14.js +4 -0
  148. package/dist/esm-es5/index.js +1 -1
  149. package/dist/esm-es5/input-shims-d0c93e5d.js +4 -0
  150. package/dist/esm-es5/input.utils-ec063df4.js +4 -0
  151. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  152. package/dist/esm-es5/ion-alert.entry.js +1 -1
  153. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  154. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  155. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  156. package/dist/esm-es5/ion-input.entry.js +1 -1
  157. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  158. package/dist/esm-es5/ion-loading.entry.js +1 -1
  159. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  160. package/dist/esm-es5/ion-modal.entry.js +1 -1
  161. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  162. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  163. package/dist/esm-es5/ion-popover.entry.js +1 -1
  164. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  165. package/dist/esm-es5/ion-range.entry.js +1 -1
  166. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  167. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  168. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  169. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  170. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  171. package/dist/esm-es5/ion-toast.entry.js +1 -1
  172. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  173. package/dist/esm-es5/ionic.js +1 -1
  174. package/dist/esm-es5/{ios.transition-e20d71bc.js → ios.transition-b53e19a3.js} +1 -1
  175. package/dist/esm-es5/{keyboard-b6230bfb.js → keyboard-b063f012.js} +1 -1
  176. package/dist/esm-es5/{keyboard-9f771a04.js → keyboard-b551279d.js} +1 -1
  177. package/dist/esm-es5/{keyboard-controller-3f0faa10.js → keyboard-controller-0c2dce71.js} +1 -1
  178. package/dist/esm-es5/loader.js +1 -1
  179. package/dist/esm-es5/{md.transition-a8469407.js → md.transition-276c1159.js} +1 -1
  180. package/dist/esm-es5/{notch-controller-3f79197e.js → notch-controller-8c9c0e54.js} +1 -1
  181. package/dist/esm-es5/{overlays-a31c8878.js → overlays-928a4afe.js} +1 -1
  182. package/dist/html.html-data.json +1 -5
  183. package/dist/ionic/index.esm.js +1 -1
  184. package/dist/ionic/ionic.esm.js +1 -1
  185. package/dist/ionic/p-02663394.system.js +1 -1
  186. package/dist/ionic/p-0816f061.entry.js +4 -0
  187. package/dist/ionic/{p-e91c7eb4.system.entry.js → p-084413f2.system.entry.js} +1 -1
  188. package/dist/ionic/{p-c32a6c04.entry.js → p-09ec6b90.entry.js} +1 -1
  189. package/dist/ionic/p-0e7712cb.entry.js +4 -0
  190. package/dist/ionic/{p-a03566c4.system.entry.js → p-1589d649.system.entry.js} +1 -1
  191. package/dist/ionic/{p-bc48e521.system.entry.js → p-16b94c87.system.entry.js} +1 -1
  192. package/dist/ionic/p-17ebfee6.entry.js +4 -0
  193. package/dist/ionic/{p-47826f19.entry.js → p-18532ed6.entry.js} +1 -1
  194. package/dist/ionic/{p-4c75cb48.system.js → p-1a1fcc8b.system.js} +1 -1
  195. package/dist/ionic/p-1ad8ddc1.system.entry.js +4 -0
  196. package/dist/ionic/{p-1667596c.js → p-276afddd.js} +1 -1
  197. package/dist/ionic/p-28acf48d.system.entry.js +4 -0
  198. package/dist/ionic/p-2e8e0045.js +4 -0
  199. package/dist/ionic/{p-50375f3b.system.entry.js → p-30d6fb24.system.entry.js} +1 -1
  200. package/dist/ionic/{p-3fc0b7ba.entry.js → p-33986d02.entry.js} +1 -1
  201. package/dist/ionic/p-3602001b.system.js +4 -0
  202. package/dist/ionic/{p-7def197f.system.js → p-3632220b.system.js} +1 -1
  203. package/dist/ionic/{p-e5fd9f10.js → p-3bad5c1a.js} +1 -1
  204. package/dist/ionic/p-40762835.entry.js +4 -0
  205. package/dist/ionic/{p-3a769110.system.entry.js → p-40c0c580.system.entry.js} +1 -1
  206. package/dist/ionic/{p-958f1c70.system.js → p-41477ad9.system.js} +1 -1
  207. package/dist/ionic/{p-a135e3ba.js → p-419eb426.js} +1 -1
  208. package/dist/ionic/p-4eb8645b.system.entry.js +4 -0
  209. package/dist/ionic/{p-75338011.entry.js → p-565d1dc5.entry.js} +1 -1
  210. package/dist/ionic/{p-35787a6f.entry.js → p-59f491c5.entry.js} +1 -1
  211. package/dist/ionic/p-5f4c4347.system.entry.js +4 -0
  212. package/dist/ionic/p-5feb31c6.entry.js +4 -0
  213. package/dist/ionic/{p-1e59dd04.system.entry.js → p-60f55715.system.entry.js} +1 -1
  214. package/dist/ionic/{p-957f3028.system.entry.js → p-677a233c.system.entry.js} +1 -1
  215. package/dist/ionic/p-67eecef4.system.js +4 -0
  216. package/dist/ionic/{p-98c70e3c.system.js → p-7d3be70f.system.js} +1 -1
  217. package/dist/ionic/{p-53b1930e.entry.js → p-80baef4f.entry.js} +1 -1
  218. package/dist/ionic/{p-11cb4e19.js → p-81c818e7.js} +1 -1
  219. package/dist/ionic/{p-ce20c101.entry.js → p-82c503f7.entry.js} +1 -1
  220. package/dist/ionic/{p-59107f99.system.entry.js → p-8704e922.system.entry.js} +1 -1
  221. package/dist/ionic/{p-0c40f7d3.system.js → p-8cc04bea.system.js} +1 -1
  222. package/dist/ionic/{p-5885e9af.js → p-8cf94fc1.js} +1 -1
  223. package/dist/ionic/{p-abaa9b48.system.js → p-940a581d.system.js} +1 -1
  224. package/dist/ionic/p-97c65aa5.js +4 -0
  225. package/dist/ionic/p-9ab6f3e6.system.js +4 -0
  226. package/dist/ionic/{p-9b34caa0.system.entry.js → p-9bb21465.system.entry.js} +1 -1
  227. package/dist/ionic/{p-13dd7d20.system.js → p-a07cd4aa.system.js} +1 -1
  228. package/dist/ionic/{p-edd568c5.js → p-a2200630.js} +1 -1
  229. package/dist/ionic/{p-c09fa14d.entry.js → p-a3545dad.entry.js} +1 -1
  230. package/dist/ionic/{p-b86c6c05.entry.js → p-a5b3aa82.entry.js} +1 -1
  231. package/dist/ionic/{p-9939c98e.entry.js → p-a843f88e.entry.js} +1 -1
  232. package/dist/ionic/p-a8e2b2b0.js +4 -0
  233. package/dist/ionic/p-aa310f38.entry.js +4 -0
  234. package/dist/ionic/{p-aec8a70a.system.js → p-ab4cff27.system.js} +1 -1
  235. package/dist/ionic/p-ae590bcd.entry.js +4 -0
  236. package/dist/ionic/{p-90020ef0.system.entry.js → p-af589369.system.entry.js} +1 -1
  237. package/dist/ionic/p-b1075d53.system.js +4 -0
  238. package/dist/ionic/{p-9292fd42.system.js → p-b4b4bb29.system.js} +1 -1
  239. package/dist/ionic/p-b6be9a42.system.js +4 -0
  240. package/dist/ionic/{p-6a309574.js → p-b923f3d7.js} +1 -1
  241. package/dist/ionic/{p-f9a641fa.system.js → p-bba2ce59.system.js} +1 -1
  242. package/dist/ionic/{p-0becf7b5.system.entry.js → p-bf731526.system.entry.js} +1 -1
  243. package/dist/ionic/p-c3278d57.js +4 -0
  244. package/dist/ionic/p-c6e9ffd6.js +4 -0
  245. package/dist/ionic/{p-e66f7d10.system.entry.js → p-cbbefe72.system.entry.js} +1 -1
  246. package/dist/ionic/p-cc196b34.js +4 -0
  247. package/dist/ionic/{p-e7d20dfb.system.js → p-ccdcb022.system.js} +1 -1
  248. package/dist/ionic/p-d1de1188.js +4 -0
  249. package/dist/ionic/{p-4c50b357.system.entry.js → p-d40d3245.system.entry.js} +1 -1
  250. package/dist/ionic/p-d6c6b195.system.entry.js +4 -0
  251. package/dist/ionic/{p-2fb115dc.entry.js → p-da3e5259.entry.js} +1 -1
  252. package/dist/ionic/p-daf71560.entry.js +4 -0
  253. package/dist/ionic/{p-9471d511.system.entry.js → p-dbc066cd.system.entry.js} +1 -1
  254. package/dist/ionic/p-df9d7fe1.entry.js +4 -0
  255. package/dist/ionic/{p-71e70a57.system.entry.js → p-e1e64156.system.entry.js} +1 -1
  256. package/dist/ionic/{p-ed8a02a2.system.entry.js → p-e96da585.system.entry.js} +1 -1
  257. package/dist/ionic/{p-999a7271.entry.js → p-eb5283b6.entry.js} +1 -1
  258. package/dist/ionic/{p-3962542f.system.entry.js → p-ec8347e0.system.entry.js} +1 -1
  259. package/dist/ionic/p-f2ad4b10.entry.js +4 -0
  260. package/dist/ionic/{p-df18d20d.js → p-f87219d2.js} +1 -1
  261. package/dist/ionic/{p-307963db.js → p-fb10190f.js} +1 -1
  262. package/dist/ionic/p-ff5a10f9.system.js +4 -0
  263. package/dist/types/components/radio-group/radio-group-interface.d.ts +0 -1
  264. package/dist/types/components/radio-group/radio-group.d.ts +1 -8
  265. package/dist/types/components/router/router.d.ts +1 -2
  266. package/dist/types/components/select/select.d.ts +1 -4
  267. package/dist/types/components/skeleton-text/skeleton-text.d.ts +1 -9
  268. package/dist/types/components/toast/animations/utils.d.ts +4 -6
  269. package/dist/types/components.d.ts +4 -27
  270. package/dist/types/interface.d.ts +5 -1
  271. package/dist/types/utils/animation/animation-interface.d.ts +4 -4
  272. package/dist/types/utils/browser/index.d.ts +2 -11
  273. package/dist/types/utils/forms/index.d.ts +0 -1
  274. package/dist/types/utils/hardware-back-button.d.ts +0 -4
  275. package/hydrate/index.js +96 -105
  276. package/package.json +1 -1
  277. package/dist/cjs/compare-with-utils-50c82573.js +0 -37
  278. package/dist/cjs/index-c8d52405.js +0 -10
  279. package/dist/collection/components/radio-group/test/compare-with/radio-group.e2e.js +0 -93
  280. package/dist/collection/utils/forms/compare-with-utils.js +0 -32
  281. package/dist/esm/compare-with-utils-363d00b3.js +0 -34
  282. package/dist/esm/index-a5d50daf.js +0 -7
  283. package/dist/esm-es5/compare-with-utils-363d00b3.js +0 -4
  284. package/dist/esm-es5/index-6a48e009.js +0 -4
  285. package/dist/esm-es5/index-c9e82353.js +0 -4
  286. package/dist/esm-es5/input-shims-1d767845.js +0 -4
  287. package/dist/esm-es5/input.utils-d04a7212.js +0 -4
  288. package/dist/ionic/p-11104d0d.entry.js +0 -4
  289. package/dist/ionic/p-139bd79d.system.entry.js +0 -4
  290. package/dist/ionic/p-265fec8a.entry.js +0 -4
  291. package/dist/ionic/p-314c4dee.js +0 -4
  292. package/dist/ionic/p-3554b264.js +0 -4
  293. package/dist/ionic/p-3afb9c3d.entry.js +0 -4
  294. package/dist/ionic/p-494e75ad.js +0 -4
  295. package/dist/ionic/p-4e3c07a6.system.js +0 -4
  296. package/dist/ionic/p-4e4ee05e.js +0 -4
  297. package/dist/ionic/p-561cc050.system.js +0 -4
  298. package/dist/ionic/p-57b14769.js +0 -4
  299. package/dist/ionic/p-6d3ba3ba.system.entry.js +0 -4
  300. package/dist/ionic/p-70dcf429.js +0 -4
  301. package/dist/ionic/p-710cea83.system.js +0 -4
  302. package/dist/ionic/p-73df8d76.system.js +0 -4
  303. package/dist/ionic/p-7acd17bc.entry.js +0 -4
  304. package/dist/ionic/p-7d68e4ea.entry.js +0 -4
  305. package/dist/ionic/p-8140a084.entry.js +0 -4
  306. package/dist/ionic/p-8e7ff561.entry.js +0 -4
  307. package/dist/ionic/p-92ac915c.system.js +0 -4
  308. package/dist/ionic/p-a6b819ca.entry.js +0 -4
  309. package/dist/ionic/p-c2db1374.system.js +0 -4
  310. package/dist/ionic/p-c3547c7a.system.js +0 -4
  311. package/dist/ionic/p-d54a8393.system.entry.js +0 -4
  312. package/dist/ionic/p-e9fe3c8b.system.entry.js +0 -4
  313. package/dist/ionic/p-ea78392c.js +0 -4
  314. package/dist/ionic/p-f7769c83.js +0 -4
  315. package/dist/ionic/p-f7bc6157.system.entry.js +0 -4
  316. package/dist/ionic/p-fa67d712.entry.js +0 -4
  317. package/dist/ionic/p-fdcd4618.entry.js +0 -4
  318. package/dist/types/utils/forms/compare-with-utils.d.ts +0 -11
  319. /package/dist/esm-es5/{index-a5d50daf.js → index-7a14ecec.js} +0 -0
  320. /package/dist/ionic/{p-792919fd.system.js → p-0e94957a.system.js} +0 -0
  321. /package/dist/ionic/{p-7b30edcc.js → p-b347cfd1.js} +0 -0
@@ -208,7 +208,6 @@
208
208
  /* stylelint-enable */
209
209
  display: flex;
210
210
  position: relative;
211
- flex-wrap: wrap;
212
211
  align-items: inherit;
213
212
  justify-content: inherit;
214
213
  width: 100%;
@@ -220,8 +219,8 @@
220
219
  outline: none;
221
220
  background: var(--background);
222
221
  overflow: inherit;
223
- z-index: 1;
224
222
  box-sizing: border-box;
223
+ z-index: 1;
225
224
  }
226
225
  :host-context([dir=rtl]) .item-native {
227
226
  padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
@@ -240,10 +239,6 @@
240
239
  }
241
240
  }
242
241
 
243
- :host(.item-legacy) .item-native {
244
- flex-wrap: unset;
245
- }
246
-
247
242
  .item-native::-moz-focus-inner {
248
243
  border: 0;
249
244
  }
@@ -279,12 +274,10 @@ button, a {
279
274
  /* stylelint-enable */
280
275
  display: flex;
281
276
  position: relative;
282
- flex: 1 0 auto;
277
+ flex: 1;
283
278
  flex-direction: inherit;
284
- flex-wrap: wrap;
285
279
  align-items: inherit;
286
280
  align-self: stretch;
287
- max-width: 100%;
288
281
  min-height: inherit;
289
282
  border-width: var(--inner-border-width);
290
283
  border-style: var(--border-style);
@@ -310,12 +303,6 @@ button, a {
310
303
  }
311
304
  }
312
305
 
313
- :host(.item-legacy) .item-inner {
314
- flex: 1;
315
- flex-wrap: unset;
316
- max-width: unset;
317
- }
318
-
319
306
  .item-bottom {
320
307
  margin-left: 0;
321
308
  margin-right: 0;
@@ -379,7 +366,6 @@ button, a {
379
366
 
380
367
  ::slotted(ion-label:not([slot=end])) {
381
368
  flex: 1;
382
- width: min-content;
383
369
  }
384
370
 
385
371
  :host(.item-input) {
@@ -388,23 +374,15 @@ button, a {
388
374
 
389
375
  .input-wrapper {
390
376
  display: flex;
391
- flex: 1 0 auto;
377
+ flex: 1;
392
378
  flex-direction: inherit;
393
- flex-wrap: wrap;
394
379
  align-items: inherit;
395
380
  align-self: stretch;
396
- max-width: 100%;
397
381
  text-overflow: ellipsis;
398
382
  overflow: inherit;
399
383
  box-sizing: border-box;
400
384
  }
401
385
 
402
- :host(.item-legacy) .input-wrapper {
403
- flex: 1;
404
- flex-wrap: unset;
405
- max-width: unset;
406
- }
407
-
408
386
  :host(.item-label-stacked),
409
387
  :host(.item-label-floating) {
410
388
  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
+ });
@@ -41,24 +41,17 @@
41
41
  font-family: var(--ion-font-family, inherit);
42
42
  font-size: inherit;
43
43
  text-overflow: ellipsis;
44
- box-sizing: border-box;
45
- }
46
-
47
- :host-context(.item-legacy) {
48
44
  white-space: nowrap;
49
45
  overflow: hidden;
50
- }
51
-
52
- :host-context(.item:not(.item-input):not(.item-legacy)) {
53
- flex-grow: 1;
46
+ box-sizing: border-box;
54
47
  }
55
48
 
56
49
  :host(.ion-color) {
57
50
  color: var(--ion-color-base);
58
51
  }
59
52
 
60
- :host(.ion-text-nowrap) {
61
- overflow: hidden;
53
+ :host(.ion-text-wrap) {
54
+ white-space: normal;
62
55
  }
63
56
 
64
57
  :host-context(.item-interactive-disabled:not(.item-multiple-inputs)) {
@@ -77,10 +70,6 @@
77
70
  align-self: baseline;
78
71
  }
79
72
 
80
- :host-context(.item-skeleton-text) {
81
- overflow: hidden;
82
- }
83
-
84
73
  :host(.label-fixed) {
85
74
  flex: 0 0 100px;
86
75
  width: 100px;
@@ -41,24 +41,17 @@
41
41
  font-family: var(--ion-font-family, inherit);
42
42
  font-size: inherit;
43
43
  text-overflow: ellipsis;
44
- box-sizing: border-box;
45
- }
46
-
47
- :host-context(.item-legacy) {
48
44
  white-space: nowrap;
49
45
  overflow: hidden;
50
- }
51
-
52
- :host-context(.item:not(.item-input):not(.item-legacy)) {
53
- flex-grow: 1;
46
+ box-sizing: border-box;
54
47
  }
55
48
 
56
49
  :host(.ion-color) {
57
50
  color: var(--ion-color-base);
58
51
  }
59
52
 
60
- :host(.ion-text-nowrap) {
61
- overflow: hidden;
53
+ :host(.ion-text-wrap) {
54
+ white-space: normal;
62
55
  }
63
56
 
64
57
  :host-context(.item-interactive-disabled:not(.item-multiple-inputs)) {
@@ -77,10 +70,6 @@
77
70
  align-self: baseline;
78
71
  }
79
72
 
80
- :host-context(.item-skeleton-text) {
81
- overflow: hidden;
82
- }
83
-
84
73
  :host(.label-fixed) {
85
74
  flex: 0 0 100px;
86
75
  width: 100px;
@@ -130,7 +130,21 @@ ion-list.list-inset {
130
130
  border-radius: 10px;
131
131
  }
132
132
 
133
- .list-ios.list-inset ion-item:last-child {
133
+ /**
134
+ * These selectors ensure the last item in the list
135
+ * has the correct border.
136
+ * We need to consider the following scenarios:
137
+ 1. The only item in a list.
138
+ 2. The last item in a list as long as it is not the only item.
139
+ 3. The item in the last item-sliding in a list.
140
+ * Note that we do not select ion-item:last-of-type
141
+ * because that will cause the borders to disappear on
142
+ * items in an item-sliding when the item is the last
143
+ * element in the item-sliding container.
144
+ */
145
+ .list-ios.list-inset ion-item:only-child,
146
+ .list-ios.list-inset ion-item:not(:only-of-type):last-of-type,
147
+ .list-ios.list-inset ion-item-sliding:last-of-type ion-item {
134
148
  --border-width: 0;
135
149
  --inner-border-width: 0;
136
150
  }
@@ -166,12 +166,50 @@ ion-list.list-inset {
166
166
  border-radius: 2px;
167
167
  }
168
168
 
169
- .list-md.list-inset ion-item:first-child {
169
+ /**
170
+ * These selectors ensure the first item in the list
171
+ * has the correct radius.
172
+ * We need to consider the following scenarios:
173
+ 1. The first item in a list as long as it is not the only item.
174
+ 2. The item in the first item-sliding in a list.
175
+ * Note that we do not select "ion-item-sliding ion-item:first-of-type"
176
+ * because that will cause the borders to disappear on
177
+ * items in an item-sliding when the item is the first
178
+ * element in the item-sliding container.
179
+ */
180
+ .list-md.list-inset ion-item:not(:only-of-type):first-of-type,
181
+ .list-md.list-inset ion-item-sliding:first-of-type ion-item {
170
182
  --border-radius: 2px 2px 0 0;
171
183
  }
172
184
 
173
- .list-md.list-inset ion-item:last-child {
174
- --border-radius: 0 0 2px, 2px;
185
+ /**
186
+ * These selectors ensure the last item in the list
187
+ * has the correct radius and border.
188
+ * We need to consider the following scenarios:
189
+ 1. The last item in a list as long as it is not the only item.
190
+ 2. The item in the last item-sliding in a list.
191
+ * Note that we do not select "ion-item-sliding ion-item:last-of-type"
192
+ * because that will cause the borders to disappear on
193
+ * items in an item-sliding when the item is the last
194
+ * element in the item-sliding container.
195
+ */
196
+ .list-md.list-inset ion-item:not(:only-of-type):last-of-type,
197
+ .list-md.list-inset ion-item-sliding:last-of-type ion-item {
198
+ --border-radius: 0 0 2px 2px;
199
+ --border-width: 0;
200
+ --inner-border-width: 0;
201
+ }
202
+
203
+ /**
204
+ * The only item in a list should have a border radius
205
+ * on all corners.
206
+ * We target :only-child instead of :only-of-type
207
+ * otherwise borders will disappear on items inside of
208
+ * ion-item-sliding because the item will be the only
209
+ * one of its type inside of the ion-item-sliding group.
210
+ */
211
+ .list-md.list-inset ion-item:only-child {
212
+ --border-radius: 2px;
175
213
  --border-width: 0;
176
214
  --inner-border-width: 0;
177
215
  }
@@ -22,3 +22,146 @@ configs().forEach(({ title, screenshot, config }) => {
22
22
  });
23
23
  });
24
24
  });
25
+ /**
26
+ * Padding and border color ensures the bottom border can be easily seen if it regresses.
27
+ * The background color ensures that any border radius values can be seen.
28
+ */
29
+ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
30
+ test.describe(title('list: lines with children'), () => {
31
+ test('only item in inset list should not have line', async ({ page }) => {
32
+ test.info().annotations.push({
33
+ type: 'issue',
34
+ description: 'https://github.com/ionic-team/ionic-framework/issues/28435',
35
+ });
36
+ await page.setContent(`
37
+ <style>
38
+ #container {
39
+ padding: 10px;
40
+ background: #0088cc;
41
+ }
42
+
43
+ ion-item {
44
+ --border-color: red;
45
+ }
46
+ </style>
47
+ <div id="container">
48
+ <ion-list inset="true">
49
+ <ion-item>
50
+ <ion-label>Item 0</ion-label>
51
+ </ion-item>
52
+ </ion-list>
53
+ </div>
54
+ `, config);
55
+ const container = page.locator('#container');
56
+ await expect(container).toHaveScreenshot(screenshot('inset-list-only-item-no-lines'));
57
+ });
58
+ test('last item in inset list with end options should not have line', async ({ page }) => {
59
+ test.info().annotations.push({
60
+ type: 'issue',
61
+ description: 'https://github.com/ionic-team/ionic-framework/issues/28435',
62
+ });
63
+ await page.setContent(`
64
+ <style>
65
+ #container {
66
+ padding: 10px;
67
+ background: #0088cc;
68
+ }
69
+
70
+ ion-item {
71
+ --border-color: red;
72
+ }
73
+ </style>
74
+ <div id="container">
75
+ <ion-list inset="true">
76
+ <ion-item-sliding>
77
+ <ion-item>
78
+ <ion-label>Item 0</ion-label>
79
+ </ion-item>
80
+ <ion-item-options slot="end">
81
+ <ion-item-option color="warning">
82
+ <ion-icon slot="icon-only" name="pin"></ion-icon>
83
+ </ion-item-option>
84
+ </ion-item-options>
85
+ </ion-item-sliding>
86
+
87
+ <ion-item-sliding>
88
+ <ion-item>
89
+ <ion-label>Item 1</ion-label>
90
+ </ion-item>
91
+ <ion-item-options slot="end">
92
+ <ion-item-option color="warning">
93
+ <ion-icon slot="icon-only" name="pin"></ion-icon>
94
+ </ion-item-option>
95
+ </ion-item-options>
96
+ </ion-item-sliding>
97
+
98
+ <ion-item-sliding>
99
+ <ion-item>
100
+ <ion-label>Item 2</ion-label>
101
+ </ion-item>
102
+ <ion-item-options slot="end">
103
+ <ion-item-option color="warning">
104
+ <ion-icon slot="icon-only" name="pin"></ion-icon>
105
+ </ion-item-option>
106
+ </ion-item-options>
107
+ </ion-item-sliding>
108
+ </ion-list>
109
+ </div>
110
+ `, config);
111
+ const container = page.locator('#container');
112
+ await expect(container).toHaveScreenshot(screenshot('inset-list-end-options-no-lines'));
113
+ });
114
+ test('last item in inset list with start options should not have line', async ({ page }) => {
115
+ await page.setContent(`
116
+ <style>
117
+ #container {
118
+ padding: 10px;
119
+ background: #0088cc;
120
+ }
121
+
122
+ ion-item {
123
+ --border-color: red;
124
+ }
125
+ </style>
126
+ <div id="container">
127
+ <ion-list inset="true">
128
+ <ion-item-sliding>
129
+ <ion-item-options slot="start">
130
+ <ion-item-option color="warning">
131
+ <ion-icon slot="icon-only" name="pin"></ion-icon>
132
+ </ion-item-option>
133
+ </ion-item-options>
134
+ <ion-item>
135
+ <ion-label>Item 0</ion-label>
136
+ </ion-item>
137
+ </ion-item-sliding>
138
+
139
+ <ion-item-sliding>
140
+ <ion-item-options slot="start">
141
+ <ion-item-option color="warning">
142
+ <ion-icon slot="icon-only" name="pin"></ion-icon>
143
+ </ion-item-option>
144
+ </ion-item-options>
145
+ <ion-item>
146
+ <ion-label>Item 1</ion-label>
147
+ </ion-item>
148
+ </ion-item-sliding>
149
+
150
+ <ion-item-sliding>
151
+ <ion-item-options slot="start">
152
+ <ion-item-option color="warning">
153
+ <ion-icon slot="icon-only" name="pin"></ion-icon>
154
+ </ion-item-option>
155
+ </ion-item-options>
156
+ <ion-item>
157
+ <ion-label>Item 2</ion-label>
158
+ </ion-item>
159
+ </ion-item-sliding>
160
+ </ion-list>
161
+ </div>
162
+ `, config);
163
+ const container = page.locator('#container');
164
+ await expect(container).toHaveScreenshot(screenshot('inset-list-start-options-no-lines'));
165
+ });
166
+ });
167
+ });
@@ -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
  });
@@ -10,6 +10,11 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
10
10
  test.describe(title('picker-internal: rendering'), () => {
11
11
  test('inline pickers should not have visual regression', async ({ page }) => {
12
12
  await page.goto(`/src/components/picker-internal/test/basic`, config);
13
+ const fullStack = page.locator('#inline button[data-value="full-stack"]');
14
+ const onion = page.locator('#inline button[data-value="onion"]');
15
+ await expect(fullStack).toHaveClass(/picker-item-active/);
16
+ await expect(onion).toHaveClass(/picker-item-active/);
17
+ await page.waitForChanges();
13
18
  await expect(page.locator('#inline')).toHaveScreenshot(screenshot(`picker-internal-inline-diff`));
14
19
  });
15
20
  });
@@ -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 object\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%;
@@ -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";
@@ -465,8 +465,6 @@ export class Select {
465
465
  style['has-placeholder'] = this.placeholder !== undefined;
466
466
  style['has-value'] = this.hasValue();
467
467
  style['has-focus'] = this.isExpanded;
468
- // TODO(FW-3194): remove this
469
- style['legacy'] = !!this.legacy;
470
468
  }
471
469
  this.ionStyle.emit(style);
472
470
  }
@@ -739,7 +737,7 @@ Developers can use the "legacy" property to continue using the legacy form marku
739
737
  "optional": true,
740
738
  "docs": {
741
739
  "tags": [],
742
- "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 object\nequality (===) for comparison."
740
+ "text": "A property name or function used to compare object values"
743
741
  },
744
742
  "attribute": "compare-with",
745
743
  "reflect": false
@@ -1217,6 +1215,17 @@ Developers can use the "legacy" property to continue using the legacy form marku
1217
1215
  }];
1218
1216
  }
1219
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
+ };
1220
1229
  const getOptionValue = (el) => {
1221
1230
  const value = el.value;
1222
1231
  return value === undefined ? el.textContent || '' : value;
@@ -1230,6 +1239,17 @@ const parseValue = (value) => {
1230
1239
  }
1231
1240
  return value.toString();
1232
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
+ };
1233
1253
  const generateText = (opts, value, compareWith) => {
1234
1254
  if (value === undefined) {
1235
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%;
@@ -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>