@ionic/core 7.5.4-dev.11699037031.16f5cbc8 → 7.5.4-dev.11699300051.122a36ad

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 (314) 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-input.js +0 -2
  8. package/components/ion-range.js +0 -2
  9. package/components/ion-select.js +25 -5
  10. package/components/ion-skeleton-text.js +1 -14
  11. package/components/ion-textarea.js +0 -2
  12. package/components/ion-toast.js +18 -13
  13. package/components/ion-toggle.js +0 -2
  14. package/components/item.js +2 -2
  15. package/components/label.js +2 -2
  16. package/components/radio-group.js +0 -2
  17. package/components/radio.js +2 -35
  18. package/dist/cjs/{animation-d101aa7a.js → animation-1083855c.js} +12 -13
  19. package/dist/cjs/{button-active-69c3bee4.js → button-active-625d1d77.js} +1 -1
  20. package/dist/cjs/{capacitor-f68447d3.js → capacitor-2ffba62a.js} +1 -1
  21. package/dist/cjs/{haptic-a74c2767.js → haptic-678abc9f.js} +1 -1
  22. package/dist/cjs/{index-adbcffee.js → index-135a6097.js} +2 -2
  23. package/dist/cjs/index-306a7476.js +32 -0
  24. package/dist/cjs/{index-9146d04a.js → index-3659e3a5.js} +13 -11
  25. package/dist/cjs/{index-e9634bc9.js → index-9f379eaa.js} +1 -1
  26. package/dist/cjs/index.cjs.js +8 -8
  27. package/dist/cjs/{input-shims-3e3f35b9.js → input-shims-b0a75a01.js} +10 -15
  28. package/dist/cjs/{input.utils-590f0f18.js → input.utils-0fe3097c.js} +1 -1
  29. package/dist/cjs/ion-action-sheet.cjs.entry.js +6 -6
  30. package/dist/cjs/ion-alert.cjs.entry.js +6 -6
  31. package/dist/cjs/ion-app_8.cjs.entry.js +8 -8
  32. package/dist/cjs/ion-checkbox.cjs.entry.js +0 -2
  33. package/dist/cjs/ion-datetime_3.cjs.entry.js +7 -7
  34. package/dist/cjs/ion-input.cjs.entry.js +3 -5
  35. package/dist/cjs/ion-item_8.cjs.entry.js +4 -17
  36. package/dist/cjs/ion-loading.cjs.entry.js +3 -3
  37. package/dist/cjs/ion-menu_3.cjs.entry.js +5 -5
  38. package/dist/cjs/ion-modal.cjs.entry.js +7 -7
  39. package/dist/cjs/ion-nav_2.cjs.entry.js +1 -1
  40. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +3 -3
  41. package/dist/cjs/ion-popover.cjs.entry.js +4 -4
  42. package/dist/cjs/ion-radio_2.cjs.entry.js +1 -6
  43. package/dist/cjs/ion-range.cjs.entry.js +0 -2
  44. package/dist/cjs/ion-refresher_2.cjs.entry.js +4 -4
  45. package/dist/cjs/ion-reorder_2.cjs.entry.js +3 -3
  46. package/dist/cjs/ion-select_3.cjs.entry.js +31 -12
  47. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  48. package/dist/cjs/ion-textarea.cjs.entry.js +3 -5
  49. package/dist/cjs/ion-toast.cjs.entry.js +21 -16
  50. package/dist/cjs/ion-toggle.cjs.entry.js +3 -5
  51. package/dist/cjs/ionic.cjs.js +1 -1
  52. package/dist/cjs/{ios.transition-7972d9e3.js → ios.transition-b71990aa.js} +3 -3
  53. package/dist/cjs/{keyboard-840107b3.js → keyboard-38f2bb7b.js} +3 -3
  54. package/dist/cjs/{keyboard-controller-019f42df.js → keyboard-controller-50beb83a.js} +2 -2
  55. package/dist/cjs/{keyboard-43df0428.js → keyboard-fd7db491.js} +1 -1
  56. package/dist/cjs/loader.cjs.js +1 -1
  57. package/dist/cjs/{md.transition-6e61a10f.js → md.transition-3caa648a.js} +3 -3
  58. package/dist/cjs/{notch-controller-c22d1344.js → notch-controller-f4f6af5d.js} +1 -1
  59. package/dist/cjs/{overlays-d80a2cf2.js → overlays-6d1daf80.js} +1 -1
  60. package/dist/collection/components/checkbox/checkbox.js +0 -2
  61. package/dist/collection/components/datetime/datetime.ios.css +0 -1
  62. package/dist/collection/components/datetime/datetime.md.css +0 -1
  63. package/dist/collection/components/input/input.js +0 -2
  64. package/dist/collection/components/item/item.ios.css +15 -85
  65. package/dist/collection/components/item/item.md.css +15 -85
  66. package/dist/collection/components/item/test/basic/item.e2e.js +0 -26
  67. package/dist/collection/components/item/test/disabled/item.e2e.js +1 -0
  68. package/dist/collection/components/item/test/text/item.e2e.js +14 -0
  69. package/dist/collection/components/label/label.ios.css +3 -14
  70. package/dist/collection/components/label/label.md.css +3 -14
  71. package/dist/collection/components/note/test/a11y/note.e2e.js +0 -43
  72. package/dist/collection/components/radio/radio.js +2 -5
  73. package/dist/collection/components/radio-group/radio-group.js +0 -24
  74. package/dist/collection/components/range/range.js +0 -2
  75. package/dist/collection/components/select/select.ios.css +0 -5
  76. package/dist/collection/components/select/select.js +24 -4
  77. package/dist/collection/components/select/select.md.css +0 -5
  78. package/dist/collection/components/select/test/legacy/wrapping/select.e2e.js +1 -1
  79. package/dist/collection/components/skeleton-text/skeleton-text.js +0 -39
  80. package/dist/collection/components/textarea/textarea.js +0 -2
  81. package/dist/collection/components/toast/animations/md.enter.js +2 -2
  82. package/dist/collection/components/toast/animations/utils.js +14 -9
  83. package/dist/collection/components/toast/toast.ios.css +10 -10
  84. package/dist/collection/components/toast/toast.md.css +0 -10
  85. package/dist/collection/components/toggle/toggle.js +0 -2
  86. package/dist/collection/utils/animation/animation.js +11 -12
  87. package/dist/collection/utils/browser/index.js +22 -0
  88. package/dist/collection/utils/forms/index.js +0 -1
  89. package/dist/collection/utils/input-shims/input-shims.js +6 -12
  90. package/dist/collection/utils/menu-controller/index.js +12 -10
  91. package/dist/docs.json +2 -43
  92. package/dist/esm/{animation-cf3dd234.js → animation-8aa13916.js} +12 -13
  93. package/dist/esm/{button-active-109ba60d.js → button-active-1fb561b0.js} +1 -1
  94. package/dist/esm/{capacitor-f1f25364.js → capacitor-b4979570.js} +1 -1
  95. package/dist/esm/{haptic-1a66d69f.js → haptic-1243b917.js} +1 -1
  96. package/dist/esm/{index-6a48e009.js → index-056b43e7.js} +13 -11
  97. package/dist/esm/{index-50582f1c.js → index-47a510cf.js} +2 -2
  98. package/dist/esm/index-7a14ecec.js +29 -0
  99. package/dist/esm/{index-c9e82353.js → index-f0cc4e14.js} +1 -1
  100. package/dist/esm/index.js +8 -8
  101. package/dist/esm/{input-shims-1d767845.js → input-shims-d0c93e5d.js} +9 -14
  102. package/dist/esm/{input.utils-d04a7212.js → input.utils-ec063df4.js} +1 -1
  103. package/dist/esm/ion-action-sheet.entry.js +6 -6
  104. package/dist/esm/ion-alert.entry.js +6 -6
  105. package/dist/esm/ion-app_8.entry.js +8 -8
  106. package/dist/esm/ion-checkbox.entry.js +0 -2
  107. package/dist/esm/ion-datetime_3.entry.js +7 -7
  108. package/dist/esm/ion-input.entry.js +3 -5
  109. package/dist/esm/ion-item_8.entry.js +4 -17
  110. package/dist/esm/ion-loading.entry.js +3 -3
  111. package/dist/esm/ion-menu_3.entry.js +5 -5
  112. package/dist/esm/ion-modal.entry.js +7 -7
  113. package/dist/esm/ion-nav_2.entry.js +1 -1
  114. package/dist/esm/ion-picker-column-internal.entry.js +3 -3
  115. package/dist/esm/ion-popover.entry.js +4 -4
  116. package/dist/esm/ion-radio_2.entry.js +1 -6
  117. package/dist/esm/ion-range.entry.js +0 -2
  118. package/dist/esm/ion-refresher_2.entry.js +4 -4
  119. package/dist/esm/ion-reorder_2.entry.js +3 -3
  120. package/dist/esm/ion-select_3.entry.js +27 -8
  121. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  122. package/dist/esm/ion-textarea.entry.js +3 -5
  123. package/dist/esm/ion-toast.entry.js +21 -16
  124. package/dist/esm/ion-toggle.entry.js +3 -5
  125. package/dist/esm/ionic.js +1 -1
  126. package/dist/esm/{ios.transition-e20d71bc.js → ios.transition-b53e19a3.js} +3 -3
  127. package/dist/esm/{keyboard-b6230bfb.js → keyboard-b063f012.js} +1 -1
  128. package/dist/esm/{keyboard-9f771a04.js → keyboard-b551279d.js} +3 -3
  129. package/dist/esm/{keyboard-controller-3f0faa10.js → keyboard-controller-0c2dce71.js} +2 -2
  130. package/dist/esm/loader.js +1 -1
  131. package/dist/esm/{md.transition-a8469407.js → md.transition-276c1159.js} +3 -3
  132. package/dist/esm/{notch-controller-3f79197e.js → notch-controller-8c9c0e54.js} +1 -1
  133. package/dist/esm/{overlays-a31c8878.js → overlays-928a4afe.js} +1 -1
  134. package/dist/esm-es5/{animation-cf3dd234.js → animation-8aa13916.js} +1 -1
  135. package/dist/esm-es5/{button-active-109ba60d.js → button-active-1fb561b0.js} +1 -1
  136. package/dist/esm-es5/{capacitor-f1f25364.js → capacitor-b4979570.js} +1 -1
  137. package/dist/esm-es5/{haptic-1a66d69f.js → haptic-1243b917.js} +1 -1
  138. package/dist/esm-es5/index-056b43e7.js +4 -0
  139. package/dist/esm-es5/{index-50582f1c.js → index-47a510cf.js} +1 -1
  140. package/dist/esm-es5/index-f0cc4e14.js +4 -0
  141. package/dist/esm-es5/index.js +1 -1
  142. package/dist/esm-es5/input-shims-d0c93e5d.js +4 -0
  143. package/dist/esm-es5/input.utils-ec063df4.js +4 -0
  144. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  145. package/dist/esm-es5/ion-alert.entry.js +1 -1
  146. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  147. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  148. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  149. package/dist/esm-es5/ion-input.entry.js +1 -1
  150. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  151. package/dist/esm-es5/ion-loading.entry.js +1 -1
  152. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  153. package/dist/esm-es5/ion-modal.entry.js +1 -1
  154. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  155. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  156. package/dist/esm-es5/ion-popover.entry.js +1 -1
  157. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  158. package/dist/esm-es5/ion-range.entry.js +1 -1
  159. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  160. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  161. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  162. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  163. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  164. package/dist/esm-es5/ion-toast.entry.js +1 -1
  165. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  166. package/dist/esm-es5/ionic.js +1 -1
  167. package/dist/esm-es5/{ios.transition-e20d71bc.js → ios.transition-b53e19a3.js} +1 -1
  168. package/dist/esm-es5/{keyboard-b6230bfb.js → keyboard-b063f012.js} +1 -1
  169. package/dist/esm-es5/{keyboard-9f771a04.js → keyboard-b551279d.js} +1 -1
  170. package/dist/esm-es5/{keyboard-controller-3f0faa10.js → keyboard-controller-0c2dce71.js} +1 -1
  171. package/dist/esm-es5/loader.js +1 -1
  172. package/dist/esm-es5/{md.transition-a8469407.js → md.transition-276c1159.js} +1 -1
  173. package/dist/esm-es5/{notch-controller-3f79197e.js → notch-controller-8c9c0e54.js} +1 -1
  174. package/dist/esm-es5/{overlays-a31c8878.js → overlays-928a4afe.js} +1 -1
  175. package/dist/html.html-data.json +1 -5
  176. package/dist/ionic/index.esm.js +1 -1
  177. package/dist/ionic/ionic.esm.js +1 -1
  178. package/dist/ionic/p-02663394.system.js +1 -1
  179. package/dist/ionic/p-0816f061.entry.js +4 -0
  180. package/dist/ionic/{p-e91c7eb4.system.entry.js → p-084413f2.system.entry.js} +1 -1
  181. package/dist/ionic/{p-c32a6c04.entry.js → p-09ec6b90.entry.js} +1 -1
  182. package/dist/ionic/p-0e7712cb.entry.js +4 -0
  183. package/dist/ionic/{p-a03566c4.system.entry.js → p-1589d649.system.entry.js} +1 -1
  184. package/dist/ionic/{p-bc48e521.system.entry.js → p-16b94c87.system.entry.js} +1 -1
  185. package/dist/ionic/p-17ebfee6.entry.js +4 -0
  186. package/dist/ionic/{p-4c75cb48.system.js → p-1a1fcc8b.system.js} +1 -1
  187. package/dist/ionic/p-1ad8ddc1.system.entry.js +4 -0
  188. package/dist/ionic/{p-1667596c.js → p-276afddd.js} +1 -1
  189. package/dist/ionic/p-28acf48d.system.entry.js +4 -0
  190. package/dist/ionic/p-2e8e0045.js +4 -0
  191. package/dist/ionic/{p-50375f3b.system.entry.js → p-30d6fb24.system.entry.js} +1 -1
  192. package/dist/ionic/{p-3fc0b7ba.entry.js → p-33986d02.entry.js} +1 -1
  193. package/dist/ionic/p-3602001b.system.js +4 -0
  194. package/dist/ionic/{p-7def197f.system.js → p-3632220b.system.js} +1 -1
  195. package/dist/ionic/{p-e5fd9f10.js → p-3bad5c1a.js} +1 -1
  196. package/dist/ionic/p-40762835.entry.js +4 -0
  197. package/dist/ionic/{p-3a769110.system.entry.js → p-40c0c580.system.entry.js} +1 -1
  198. package/dist/ionic/{p-958f1c70.system.js → p-41477ad9.system.js} +1 -1
  199. package/dist/ionic/{p-a135e3ba.js → p-419eb426.js} +1 -1
  200. package/dist/ionic/p-4eb8645b.system.entry.js +4 -0
  201. package/dist/ionic/{p-75338011.entry.js → p-565d1dc5.entry.js} +1 -1
  202. package/dist/ionic/{p-35787a6f.entry.js → p-59f491c5.entry.js} +1 -1
  203. package/dist/ionic/p-5feb31c6.entry.js +4 -0
  204. package/dist/ionic/{p-1e59dd04.system.entry.js → p-60f55715.system.entry.js} +1 -1
  205. package/dist/ionic/{p-957f3028.system.entry.js → p-677a233c.system.entry.js} +1 -1
  206. package/dist/ionic/p-67eecef4.system.js +4 -0
  207. package/dist/ionic/{p-98c70e3c.system.js → p-7d3be70f.system.js} +1 -1
  208. package/dist/ionic/{p-53b1930e.entry.js → p-80baef4f.entry.js} +1 -1
  209. package/dist/ionic/{p-11cb4e19.js → p-81c818e7.js} +1 -1
  210. package/dist/ionic/{p-ce20c101.entry.js → p-82c503f7.entry.js} +1 -1
  211. package/dist/ionic/{p-59107f99.system.entry.js → p-8704e922.system.entry.js} +1 -1
  212. package/dist/ionic/{p-0c40f7d3.system.js → p-8cc04bea.system.js} +1 -1
  213. package/dist/ionic/{p-5885e9af.js → p-8cf94fc1.js} +1 -1
  214. package/dist/ionic/p-936657e3.entry.js +4 -0
  215. package/dist/ionic/{p-abaa9b48.system.js → p-940a581d.system.js} +1 -1
  216. package/dist/ionic/p-97c65aa5.js +4 -0
  217. package/dist/ionic/p-9ab6f3e6.system.js +4 -0
  218. package/dist/ionic/{p-9b34caa0.system.entry.js → p-9bb21465.system.entry.js} +1 -1
  219. package/dist/ionic/{p-13dd7d20.system.js → p-a07cd4aa.system.js} +1 -1
  220. package/dist/ionic/{p-edd568c5.js → p-a2200630.js} +1 -1
  221. package/dist/ionic/{p-c09fa14d.entry.js → p-a3545dad.entry.js} +1 -1
  222. package/dist/ionic/{p-b86c6c05.entry.js → p-a5b3aa82.entry.js} +1 -1
  223. package/dist/ionic/{p-9939c98e.entry.js → p-a843f88e.entry.js} +1 -1
  224. package/dist/ionic/p-a8e2b2b0.js +4 -0
  225. package/dist/ionic/p-aa310f38.entry.js +4 -0
  226. package/dist/ionic/{p-aec8a70a.system.js → p-ab4cff27.system.js} +1 -1
  227. package/dist/ionic/p-ae590bcd.entry.js +4 -0
  228. package/dist/ionic/{p-90020ef0.system.entry.js → p-af589369.system.entry.js} +1 -1
  229. package/dist/ionic/p-b1075d53.system.js +4 -0
  230. package/dist/ionic/{p-9292fd42.system.js → p-b4b4bb29.system.js} +1 -1
  231. package/dist/ionic/p-b6be9a42.system.js +4 -0
  232. package/dist/ionic/{p-6a309574.js → p-b923f3d7.js} +1 -1
  233. package/dist/ionic/{p-f9a641fa.system.js → p-bba2ce59.system.js} +1 -1
  234. package/dist/ionic/{p-3962542f.system.entry.js → p-bf5a7db2.system.entry.js} +1 -1
  235. package/dist/ionic/{p-0becf7b5.system.entry.js → p-bf731526.system.entry.js} +1 -1
  236. package/dist/ionic/p-c3278d57.js +4 -0
  237. package/dist/ionic/{p-47826f19.entry.js → p-c4e61a72.entry.js} +1 -1
  238. package/dist/ionic/p-c6e9ffd6.js +4 -0
  239. package/dist/ionic/{p-e66f7d10.system.entry.js → p-cbbefe72.system.entry.js} +1 -1
  240. package/dist/ionic/p-cc196b34.js +4 -0
  241. package/dist/ionic/{p-e7d20dfb.system.js → p-ccdcb022.system.js} +1 -1
  242. package/dist/ionic/p-ceb8e1a6.system.entry.js +4 -0
  243. package/dist/ionic/p-d1de1188.js +4 -0
  244. package/dist/ionic/{p-4c50b357.system.entry.js → p-d40d3245.system.entry.js} +1 -1
  245. package/dist/ionic/p-d6c6b195.system.entry.js +4 -0
  246. package/dist/ionic/{p-2fb115dc.entry.js → p-da3e5259.entry.js} +1 -1
  247. package/dist/ionic/p-daf71560.entry.js +4 -0
  248. package/dist/ionic/{p-9471d511.system.entry.js → p-dbc066cd.system.entry.js} +1 -1
  249. package/dist/ionic/{p-71e70a57.system.entry.js → p-e1e64156.system.entry.js} +1 -1
  250. package/dist/ionic/{p-ed8a02a2.system.entry.js → p-e96da585.system.entry.js} +1 -1
  251. package/dist/ionic/{p-999a7271.entry.js → p-eb5283b6.entry.js} +1 -1
  252. package/dist/ionic/p-f2ad4b10.entry.js +4 -0
  253. package/dist/ionic/{p-df18d20d.js → p-f87219d2.js} +1 -1
  254. package/dist/ionic/{p-307963db.js → p-fb10190f.js} +1 -1
  255. package/dist/ionic/p-ff5a10f9.system.js +4 -0
  256. package/dist/types/components/radio-group/radio-group-interface.d.ts +0 -1
  257. package/dist/types/components/radio-group/radio-group.d.ts +1 -8
  258. package/dist/types/components/router/router.d.ts +1 -2
  259. package/dist/types/components/select/select.d.ts +1 -4
  260. package/dist/types/components/skeleton-text/skeleton-text.d.ts +1 -9
  261. package/dist/types/components/toast/animations/utils.d.ts +4 -6
  262. package/dist/types/components.d.ts +4 -27
  263. package/dist/types/interface.d.ts +5 -1
  264. package/dist/types/utils/animation/animation-interface.d.ts +4 -4
  265. package/dist/types/utils/browser/index.d.ts +2 -11
  266. package/dist/types/utils/forms/index.d.ts +0 -1
  267. package/dist/types/utils/hardware-back-button.d.ts +0 -4
  268. package/hydrate/index.js +93 -102
  269. package/package.json +1 -1
  270. package/dist/cjs/compare-with-utils-50c82573.js +0 -37
  271. package/dist/cjs/index-c8d52405.js +0 -10
  272. package/dist/collection/components/radio-group/test/compare-with/radio-group.e2e.js +0 -93
  273. package/dist/collection/utils/forms/compare-with-utils.js +0 -32
  274. package/dist/esm/compare-with-utils-363d00b3.js +0 -34
  275. package/dist/esm/index-a5d50daf.js +0 -7
  276. package/dist/esm-es5/compare-with-utils-363d00b3.js +0 -4
  277. package/dist/esm-es5/index-6a48e009.js +0 -4
  278. package/dist/esm-es5/index-c9e82353.js +0 -4
  279. package/dist/esm-es5/input-shims-1d767845.js +0 -4
  280. package/dist/esm-es5/input.utils-d04a7212.js +0 -4
  281. package/dist/ionic/p-11104d0d.entry.js +0 -4
  282. package/dist/ionic/p-139bd79d.system.entry.js +0 -4
  283. package/dist/ionic/p-265fec8a.entry.js +0 -4
  284. package/dist/ionic/p-314c4dee.js +0 -4
  285. package/dist/ionic/p-3554b264.js +0 -4
  286. package/dist/ionic/p-3afb9c3d.entry.js +0 -4
  287. package/dist/ionic/p-494e75ad.js +0 -4
  288. package/dist/ionic/p-4e3c07a6.system.js +0 -4
  289. package/dist/ionic/p-4e4ee05e.js +0 -4
  290. package/dist/ionic/p-561cc050.system.js +0 -4
  291. package/dist/ionic/p-57b14769.js +0 -4
  292. package/dist/ionic/p-6d3ba3ba.system.entry.js +0 -4
  293. package/dist/ionic/p-70dcf429.js +0 -4
  294. package/dist/ionic/p-710cea83.system.js +0 -4
  295. package/dist/ionic/p-73df8d76.system.js +0 -4
  296. package/dist/ionic/p-7acd17bc.entry.js +0 -4
  297. package/dist/ionic/p-7d68e4ea.entry.js +0 -4
  298. package/dist/ionic/p-8140a084.entry.js +0 -4
  299. package/dist/ionic/p-8e7ff561.entry.js +0 -4
  300. package/dist/ionic/p-92ac915c.system.js +0 -4
  301. package/dist/ionic/p-a6b819ca.entry.js +0 -4
  302. package/dist/ionic/p-c2db1374.system.js +0 -4
  303. package/dist/ionic/p-c3547c7a.system.js +0 -4
  304. package/dist/ionic/p-d54a8393.system.entry.js +0 -4
  305. package/dist/ionic/p-e9fe3c8b.system.entry.js +0 -4
  306. package/dist/ionic/p-ea78392c.js +0 -4
  307. package/dist/ionic/p-f7769c83.js +0 -4
  308. package/dist/ionic/p-f7bc6157.system.entry.js +0 -4
  309. package/dist/ionic/p-fa67d712.entry.js +0 -4
  310. package/dist/ionic/p-fdcd4618.entry.js +0 -4
  311. package/dist/types/utils/forms/compare-with-utils.d.ts +0 -11
  312. /package/dist/esm-es5/{index-a5d50daf.js → index-7a14ecec.js} +0 -0
  313. /package/dist/ionic/{p-792919fd.system.js → p-0e94957a.system.js} +0 -0
  314. /package/dist/ionic/{p-7b30edcc.js → p-b347cfd1.js} +0 -0
@@ -188,6 +188,10 @@
188
188
  margin-right: 0;
189
189
  margin-top: 0;
190
190
  margin-bottom: 0;
191
+ -webkit-padding-start: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
192
+ padding-inline-start: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
193
+ -webkit-padding-end: var(--padding-end);
194
+ padding-inline-end: var(--padding-end);
191
195
  padding-top: var(--padding-top);
192
196
  padding-bottom: var(--padding-bottom);
193
197
  font-family: inherit;
@@ -202,13 +206,8 @@
202
206
  text-align: inherit;
203
207
  white-space: inherit;
204
208
  color: inherit;
205
- /* stylelint-disable */
206
- padding-right: var(--padding-end);
207
- padding-left: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
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,28 +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;
225
- }
226
- :host-context([dir=rtl]) .item-native {
227
- padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
228
- padding-left: var(--padding-end);
229
- }
230
-
231
- [dir=rtl] .item-native {
232
- padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
233
- padding-left: var(--padding-end);
234
- }
235
-
236
- @supports selector(:dir(rtl)) {
237
- .item-native:dir(rtl) {
238
- padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
239
- padding-left: var(--padding-end);
240
- }
241
- }
242
-
243
- :host(.item-legacy) .item-native {
244
- flex-wrap: unset;
223
+ z-index: 1;
245
224
  }
246
225
 
247
226
  .item-native::-moz-focus-inner {
@@ -271,20 +250,18 @@ button, a {
271
250
  margin-right: 0;
272
251
  margin-top: 0;
273
252
  margin-bottom: 0;
253
+ -webkit-padding-start: var(--inner-padding-start);
254
+ padding-inline-start: var(--inner-padding-start);
255
+ -webkit-padding-end: calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));
256
+ padding-inline-end: calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));
274
257
  padding-top: var(--inner-padding-top);
275
258
  padding-bottom: var(--inner-padding-bottom);
276
- /* stylelint-disable */
277
- padding-right: calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));
278
- padding-left: var(--inner-padding-start);
279
- /* stylelint-enable */
280
259
  display: flex;
281
260
  position: relative;
282
- flex: 1 0 auto;
261
+ flex: 1;
283
262
  flex-direction: inherit;
284
- flex-wrap: wrap;
285
263
  align-items: inherit;
286
264
  align-self: stretch;
287
- max-width: 100%;
288
265
  min-height: inherit;
289
266
  border-width: var(--inner-border-width);
290
267
  border-style: var(--border-style);
@@ -293,59 +270,21 @@ button, a {
293
270
  overflow: inherit;
294
271
  box-sizing: border-box;
295
272
  }
296
- :host-context([dir=rtl]) .item-inner {
297
- padding-right: var(--inner-padding-start);
298
- padding-left: calc(var(--ion-safe-area-left, 0px) + var(--inner-padding-end));
299
- }
300
-
301
- [dir=rtl] .item-inner {
302
- padding-right: var(--inner-padding-start);
303
- padding-left: calc(var(--ion-safe-area-left, 0px) + var(--inner-padding-end));
304
- }
305
-
306
- @supports selector(:dir(rtl)) {
307
- .item-inner:dir(rtl) {
308
- padding-right: var(--inner-padding-start);
309
- padding-left: calc(var(--ion-safe-area-left, 0px) + var(--inner-padding-end));
310
- }
311
- }
312
-
313
- :host(.item-legacy) .item-inner {
314
- flex: 1;
315
- flex-wrap: unset;
316
- max-width: unset;
317
- }
318
273
 
319
274
  .item-bottom {
320
275
  margin-left: 0;
321
276
  margin-right: 0;
322
277
  margin-top: 0;
323
278
  margin-bottom: 0;
279
+ -webkit-padding-start: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
280
+ padding-inline-start: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
281
+ -webkit-padding-end: var(--inner-padding-end);
282
+ padding-inline-end: var(--inner-padding-end);
324
283
  padding-top: 0;
325
284
  padding-bottom: 0;
326
- /* stylelint-disable */
327
- padding-left: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
328
- padding-right: calc(var(--inner-padding-end) + var(--ion-safe-area-right, 0px));
329
- /* stylelint-enable */
330
285
  display: flex;
331
286
  justify-content: space-between;
332
287
  }
333
- :host-context([dir=rtl]) .item-bottom {
334
- padding-left: calc(var(--inner-padding-end) + var(--ion-safe-area-left, 0px));
335
- padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
336
- }
337
-
338
- [dir=rtl] .item-bottom {
339
- padding-left: calc(var(--inner-padding-end) + var(--ion-safe-area-left, 0px));
340
- padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
341
- }
342
-
343
- @supports selector(:dir(rtl)) {
344
- .item-bottom:dir(rtl) {
345
- padding-left: calc(var(--inner-padding-end) + var(--ion-safe-area-left, 0px));
346
- padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
347
- }
348
- }
349
288
 
350
289
  .item-detail-icon {
351
290
  /**
@@ -379,7 +318,6 @@ button, a {
379
318
 
380
319
  ::slotted(ion-label:not([slot=end])) {
381
320
  flex: 1;
382
- width: min-content;
383
321
  }
384
322
 
385
323
  :host(.item-input) {
@@ -388,23 +326,15 @@ button, a {
388
326
 
389
327
  .input-wrapper {
390
328
  display: flex;
391
- flex: 1 0 auto;
329
+ flex: 1;
392
330
  flex-direction: inherit;
393
- flex-wrap: wrap;
394
331
  align-items: inherit;
395
332
  align-self: stretch;
396
- max-width: 100%;
397
333
  text-overflow: ellipsis;
398
334
  overflow: inherit;
399
335
  box-sizing: border-box;
400
336
  }
401
337
 
402
- :host(.item-legacy) .input-wrapper {
403
- flex: 1;
404
- flex-wrap: unset;
405
- max-width: unset;
406
- }
407
-
408
338
  :host(.item-label-stacked),
409
339
  :host(.item-label-floating) {
410
340
  align-items: start;
@@ -188,6 +188,10 @@
188
188
  margin-right: 0;
189
189
  margin-top: 0;
190
190
  margin-bottom: 0;
191
+ -webkit-padding-start: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
192
+ padding-inline-start: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
193
+ -webkit-padding-end: var(--padding-end);
194
+ padding-inline-end: var(--padding-end);
191
195
  padding-top: var(--padding-top);
192
196
  padding-bottom: var(--padding-bottom);
193
197
  font-family: inherit;
@@ -202,13 +206,8 @@
202
206
  text-align: inherit;
203
207
  white-space: inherit;
204
208
  color: inherit;
205
- /* stylelint-disable */
206
- padding-right: var(--padding-end);
207
- padding-left: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
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,28 +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;
225
- }
226
- :host-context([dir=rtl]) .item-native {
227
- padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
228
- padding-left: var(--padding-end);
229
- }
230
-
231
- [dir=rtl] .item-native {
232
- padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
233
- padding-left: var(--padding-end);
234
- }
235
-
236
- @supports selector(:dir(rtl)) {
237
- .item-native:dir(rtl) {
238
- padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
239
- padding-left: var(--padding-end);
240
- }
241
- }
242
-
243
- :host(.item-legacy) .item-native {
244
- flex-wrap: unset;
223
+ z-index: 1;
245
224
  }
246
225
 
247
226
  .item-native::-moz-focus-inner {
@@ -271,20 +250,18 @@ button, a {
271
250
  margin-right: 0;
272
251
  margin-top: 0;
273
252
  margin-bottom: 0;
253
+ -webkit-padding-start: var(--inner-padding-start);
254
+ padding-inline-start: var(--inner-padding-start);
255
+ -webkit-padding-end: calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));
256
+ padding-inline-end: calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));
274
257
  padding-top: var(--inner-padding-top);
275
258
  padding-bottom: var(--inner-padding-bottom);
276
- /* stylelint-disable */
277
- padding-right: calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));
278
- padding-left: var(--inner-padding-start);
279
- /* stylelint-enable */
280
259
  display: flex;
281
260
  position: relative;
282
- flex: 1 0 auto;
261
+ flex: 1;
283
262
  flex-direction: inherit;
284
- flex-wrap: wrap;
285
263
  align-items: inherit;
286
264
  align-self: stretch;
287
- max-width: 100%;
288
265
  min-height: inherit;
289
266
  border-width: var(--inner-border-width);
290
267
  border-style: var(--border-style);
@@ -293,59 +270,21 @@ button, a {
293
270
  overflow: inherit;
294
271
  box-sizing: border-box;
295
272
  }
296
- :host-context([dir=rtl]) .item-inner {
297
- padding-right: var(--inner-padding-start);
298
- padding-left: calc(var(--ion-safe-area-left, 0px) + var(--inner-padding-end));
299
- }
300
-
301
- [dir=rtl] .item-inner {
302
- padding-right: var(--inner-padding-start);
303
- padding-left: calc(var(--ion-safe-area-left, 0px) + var(--inner-padding-end));
304
- }
305
-
306
- @supports selector(:dir(rtl)) {
307
- .item-inner:dir(rtl) {
308
- padding-right: var(--inner-padding-start);
309
- padding-left: calc(var(--ion-safe-area-left, 0px) + var(--inner-padding-end));
310
- }
311
- }
312
-
313
- :host(.item-legacy) .item-inner {
314
- flex: 1;
315
- flex-wrap: unset;
316
- max-width: unset;
317
- }
318
273
 
319
274
  .item-bottom {
320
275
  margin-left: 0;
321
276
  margin-right: 0;
322
277
  margin-top: 0;
323
278
  margin-bottom: 0;
279
+ -webkit-padding-start: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
280
+ padding-inline-start: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
281
+ -webkit-padding-end: var(--inner-padding-end);
282
+ padding-inline-end: var(--inner-padding-end);
324
283
  padding-top: 0;
325
284
  padding-bottom: 0;
326
- /* stylelint-disable */
327
- padding-left: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
328
- padding-right: calc(var(--inner-padding-end) + var(--ion-safe-area-right, 0px));
329
- /* stylelint-enable */
330
285
  display: flex;
331
286
  justify-content: space-between;
332
287
  }
333
- :host-context([dir=rtl]) .item-bottom {
334
- padding-left: calc(var(--inner-padding-end) + var(--ion-safe-area-left, 0px));
335
- padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
336
- }
337
-
338
- [dir=rtl] .item-bottom {
339
- padding-left: calc(var(--inner-padding-end) + var(--ion-safe-area-left, 0px));
340
- padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
341
- }
342
-
343
- @supports selector(:dir(rtl)) {
344
- .item-bottom:dir(rtl) {
345
- padding-left: calc(var(--inner-padding-end) + var(--ion-safe-area-left, 0px));
346
- padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
347
- }
348
- }
349
288
 
350
289
  .item-detail-icon {
351
290
  /**
@@ -379,7 +318,6 @@ button, a {
379
318
 
380
319
  ::slotted(ion-label:not([slot=end])) {
381
320
  flex: 1;
382
- width: min-content;
383
321
  }
384
322
 
385
323
  :host(.item-input) {
@@ -388,23 +326,15 @@ button, a {
388
326
 
389
327
  .input-wrapper {
390
328
  display: flex;
391
- flex: 1 0 auto;
329
+ flex: 1;
392
330
  flex-direction: inherit;
393
- flex-wrap: wrap;
394
331
  align-items: inherit;
395
332
  align-self: stretch;
396
- max-width: 100%;
397
333
  text-overflow: ellipsis;
398
334
  overflow: inherit;
399
335
  box-sizing: border-box;
400
336
  }
401
337
 
402
- :host(.item-legacy) .input-wrapper {
403
- flex: 1;
404
- flex-wrap: unset;
405
- max-width: unset;
406
- }
407
-
408
338
  :host(.item-label-stacked),
409
339
  :host(.item-label-floating) {
410
340
  align-items: start;
@@ -10,31 +10,5 @@ configs().forEach(({ title, screenshot, config }) => {
10
10
  await page.setIonViewport();
11
11
  await expect(page).toHaveScreenshot(screenshot(`item-diff`));
12
12
  });
13
- /**
14
- * This behavior needs to be tested for all modes & directions
15
- * Safe padding should stay on the same side when the direction changes
16
- */
17
- test('should have safe area padding', async ({ page }) => {
18
- await page.setContent(`
19
- <style>
20
- :root {
21
- --ion-safe-area-left: 40px;
22
- --ion-safe-area-right: 20px;
23
- }
24
- </style>
25
- <ion-list>
26
- <ion-item>
27
- <ion-label>Item with helper</ion-label>
28
- <div slot="helper">Helper</div>
29
- </ion-item>
30
-
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>
33
- </ion-item>
34
- </ion-list>
35
- `, config);
36
- const list = page.locator('ion-list');
37
- await expect(list).toHaveScreenshot(screenshot('item-safe-area'));
38
- });
39
13
  });
40
14
  });
@@ -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;
@@ -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 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 '';