@ionic/core 7.6.7-dev.11706571117.1bcbc36b → 7.6.7-dev.11706824245.18d35376

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 (616) hide show
  1. package/components/action-sheet.js +2 -2
  2. package/components/alert.js +2 -2
  3. package/components/backdrop.js +0 -12
  4. package/components/button.js +2 -2
  5. package/components/checkbox.js +2 -2
  6. package/components/data.js +1 -1
  7. package/components/gesture-controller.js +1 -1
  8. package/components/ion-back-button.js +1 -1
  9. package/components/ion-badge.js +2 -2
  10. package/components/ion-breadcrumb.js +2 -2
  11. package/components/ion-card-subtitle.js +2 -2
  12. package/components/ion-card-title.js +1 -1
  13. package/components/ion-card.js +2 -2
  14. package/components/ion-content.js +3 -4
  15. package/components/ion-datetime-button.js +2 -2
  16. package/components/ion-datetime.js +40 -64
  17. package/components/ion-fab-button.js +2 -2
  18. package/components/ion-infinite-scroll-content.js +2 -2
  19. package/components/ion-input.js +2 -2
  20. package/components/ion-item-divider.js +2 -2
  21. package/components/ion-item-option.js +2 -2
  22. package/components/ion-item-options.js +2 -2
  23. package/components/ion-loading.js +2 -2
  24. package/components/ion-menu-button.js +1 -1
  25. package/components/ion-menu.js +21 -15
  26. package/components/ion-modal.js +2 -2
  27. package/components/ion-nav.js +7 -3
  28. package/components/ion-picker-column-option.d.ts +11 -0
  29. package/components/ion-picker-column-option.js +9 -0
  30. package/components/ion-picker-column.js +2 -2
  31. package/components/ion-picker-legacy-column.d.ts +11 -0
  32. package/components/ion-picker-legacy-column.js +9 -0
  33. package/components/{ion-picker-internal.d.ts → ion-picker-legacy.d.ts} +4 -4
  34. package/components/ion-picker-legacy.js +309 -0
  35. package/components/ion-picker.js +1 -309
  36. package/components/ion-progress-bar.js +2 -2
  37. package/components/ion-range.js +2 -2
  38. package/components/ion-refresher-content.js +1 -1
  39. package/components/ion-refresher.js +2 -2
  40. package/components/ion-router-link.js +1 -1
  41. package/components/ion-searchbar.js +2 -2
  42. package/components/ion-segment-button.js +2 -2
  43. package/components/ion-select.js +2 -2
  44. package/components/ion-split-pane.js +26 -15
  45. package/components/ion-tab-bar.js +2 -2
  46. package/components/ion-textarea.js +2 -2
  47. package/components/ion-toast.js +2 -2
  48. package/components/ion-toggle.js +2 -2
  49. package/components/ion-toolbar.js +2 -2
  50. package/components/item.js +2 -8
  51. package/components/label.js +1 -1
  52. package/components/list-header.js +2 -2
  53. package/components/note.js +2 -2
  54. package/components/overlays.js +11 -4
  55. package/components/picker-column-option.js +122 -0
  56. package/components/picker-column.js +351 -322
  57. package/components/picker-column2.js +379 -0
  58. package/components/{picker-internal.js → picker.js} +29 -22
  59. package/components/popover.js +1 -1
  60. package/components/radio.js +2 -2
  61. package/components/select-popover.js +1 -1
  62. package/css/core.css +101 -34
  63. package/css/core.css.map +1 -1
  64. package/css/global.bundle.css +1 -1
  65. package/css/ionic.bundle.css +1 -1
  66. package/css/ionic.bundle.css.map +1 -1
  67. package/css/themes/dark.always.css +160 -0
  68. package/css/themes/dark.always.css.map +1 -0
  69. package/css/themes/dark.class.css +160 -0
  70. package/css/themes/dark.class.css.map +1 -0
  71. package/css/themes/dark.css +3 -0
  72. package/css/themes/dark.css.map +1 -0
  73. package/css/themes/dark.system.css +162 -0
  74. package/css/themes/dark.system.css.map +1 -0
  75. package/css/themes/high-contrast-dark.always.css +177 -0
  76. package/css/themes/high-contrast-dark.always.css.map +1 -0
  77. package/css/themes/high-contrast-dark.class.css +177 -0
  78. package/css/themes/high-contrast-dark.class.css.map +1 -0
  79. package/css/themes/high-contrast-dark.css +3 -0
  80. package/css/themes/high-contrast-dark.css.map +1 -0
  81. package/css/themes/high-contrast-dark.system.css +179 -0
  82. package/css/themes/high-contrast-dark.system.css.map +1 -0
  83. package/css/themes/high-contrast-light.always.css +93 -0
  84. package/css/themes/high-contrast-light.always.css.map +1 -0
  85. package/css/themes/high-contrast-light.class.css +93 -0
  86. package/css/themes/high-contrast-light.class.css.map +1 -0
  87. package/css/themes/high-contrast-light.css +3 -0
  88. package/css/themes/high-contrast-light.css.map +1 -0
  89. package/css/themes/high-contrast-light.system.css +95 -0
  90. package/css/themes/high-contrast-light.system.css.map +1 -0
  91. package/css/typography.css +1 -1
  92. package/dist/cjs/{button-active-85665616.js → button-active-d432e262.js} +1 -1
  93. package/dist/cjs/{data-a5109f09.js → data-e2bf21de.js} +1 -1
  94. package/dist/cjs/{gesture-controller-c40c045a.js → gesture-controller-9436f482.js} +1 -0
  95. package/dist/cjs/{index-d1b59ffa.js → index-ee07ed59.js} +1 -1
  96. package/dist/cjs/index.cjs.js +3 -3
  97. package/dist/cjs/ion-action-sheet.cjs.entry.js +6 -6
  98. package/dist/cjs/ion-alert.cjs.entry.js +6 -6
  99. package/dist/cjs/ion-app_8.cjs.entry.js +6 -7
  100. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  101. package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
  102. package/dist/cjs/ion-backdrop.cjs.entry.js +0 -12
  103. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
  104. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  105. package/dist/cjs/ion-card_5.cjs.entry.js +5 -5
  106. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
  107. package/dist/cjs/ion-datetime-button.cjs.entry.js +3 -3
  108. package/dist/cjs/ion-datetime_3.cjs.entry.js +37 -57
  109. package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
  110. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
  111. package/dist/cjs/ion-input.cjs.entry.js +2 -2
  112. package/dist/cjs/ion-item-option_3.cjs.entry.js +5 -5
  113. package/dist/cjs/ion-item_8.cjs.entry.js +9 -14
  114. package/dist/cjs/ion-loading.cjs.entry.js +4 -3
  115. package/dist/cjs/ion-menu_3.cjs.entry.js +25 -20
  116. package/dist/cjs/ion-modal.cjs.entry.js +5 -5
  117. package/dist/cjs/ion-nav_2.cjs.entry.js +6 -3
  118. package/dist/cjs/ion-picker-column-option.cjs.entry.js +104 -0
  119. package/dist/cjs/{ion-picker-column-internal.cjs.entry.js → ion-picker-column.cjs.entry.js} +104 -87
  120. package/dist/cjs/{ion-picker-internal.cjs.entry.js → ion-picker.cjs.entry.js} +26 -19
  121. package/dist/cjs/ion-popover.cjs.entry.js +3 -2
  122. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  123. package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
  124. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  125. package/dist/cjs/ion-refresher_2.cjs.entry.js +6 -6
  126. package/dist/cjs/ion-reorder_2.cjs.entry.js +1 -1
  127. package/dist/cjs/ion-route_4.cjs.entry.js +1 -1
  128. package/dist/cjs/ion-searchbar.cjs.entry.js +2 -2
  129. package/dist/cjs/ion-segment_2.cjs.entry.js +3 -3
  130. package/dist/cjs/ion-select_3.cjs.entry.js +5 -4
  131. package/dist/cjs/ion-split-pane.cjs.entry.js +24 -14
  132. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
  133. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  134. package/dist/cjs/ion-toast.cjs.entry.js +5 -5
  135. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  136. package/dist/cjs/ionic.cjs.js +1 -1
  137. package/dist/cjs/loader.cjs.js +1 -1
  138. package/dist/cjs/{overlays-8285b485.js → overlays-3afa911d.js} +11 -4
  139. package/dist/cjs/{swipe-back-2a858bbd.js → swipe-back-b8f2330b.js} +2 -2
  140. package/dist/collection/collection-manifest.json +7 -6
  141. package/dist/collection/components/action-sheet/action-sheet.ios.css +7 -7
  142. package/dist/collection/components/action-sheet/action-sheet.md.css +1 -1
  143. package/dist/collection/components/action-sheet/test/a11y/action-sheet.e2e.js +23 -14
  144. package/dist/collection/components/alert/alert.ios.css +12 -12
  145. package/dist/collection/components/alert/alert.md.css +17 -17
  146. package/dist/collection/components/alert/test/a11y/alert.e2e.js +22 -9
  147. package/dist/collection/components/back-button/back-button.ios.css +1 -1
  148. package/dist/collection/components/back-button/test/a11y/back-button.e2e.js +21 -0
  149. package/dist/collection/components/backdrop/backdrop.js +0 -12
  150. package/dist/collection/components/badge/badge.ios.css +1 -1
  151. package/dist/collection/components/badge/badge.md.css +1 -1
  152. package/dist/collection/components/badge/test/a11y/badge.e2e.js +18 -0
  153. package/dist/collection/components/breadcrumb/breadcrumb.ios.css +9 -9
  154. package/dist/collection/components/breadcrumb/breadcrumb.md.css +9 -9
  155. package/dist/collection/components/button/button.ios.css +11 -11
  156. package/dist/collection/components/button/button.md.css +9 -9
  157. package/dist/collection/components/button/test/a11y/button.e2e.js +48 -0
  158. package/dist/collection/components/button/test/basic/button.e2e.js +1 -1
  159. package/dist/collection/components/button/test/wrap/button.e2e.js +12 -24
  160. package/dist/collection/components/card/card.ios.css +1 -1
  161. package/dist/collection/components/card/card.md.css +1 -1
  162. package/dist/collection/components/card-subtitle/card-subtitle.ios.css +1 -1
  163. package/dist/collection/components/card-subtitle/card-subtitle.md.css +1 -1
  164. package/dist/collection/components/card-title/card-title.md.css +1 -1
  165. package/dist/collection/components/checkbox/checkbox.ios.css +2 -2
  166. package/dist/collection/components/checkbox/checkbox.md.css +2 -2
  167. package/dist/collection/components/checkbox/test/a11y/checkbox.e2e.js +11 -2
  168. package/dist/collection/components/content/content.css +0 -4
  169. package/dist/collection/components/content/content.js +2 -3
  170. package/dist/collection/components/datetime/datetime.ios.css +98 -45
  171. package/dist/collection/components/datetime/datetime.js +24 -36
  172. package/dist/collection/components/datetime/datetime.md.css +100 -42
  173. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +4 -4
  174. package/dist/collection/components/datetime/test/a11y/datetime.spec.js +6 -9
  175. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +22 -12
  176. package/dist/collection/components/datetime/test/datetime.e2e.js +3 -3
  177. package/dist/collection/components/datetime/test/disable-dates/datetime.e2e.js +1 -1
  178. package/dist/collection/components/datetime/test/disabled/datetime.e2e.js +4 -4
  179. package/dist/collection/components/datetime/test/disabled/datetime.spec.js +4 -4
  180. package/dist/collection/components/datetime/test/display/datetime.e2e.js +9 -9
  181. package/dist/collection/components/datetime/test/locale/datetime.e2e.js +5 -5
  182. package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +17 -17
  183. package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +2 -2
  184. package/dist/collection/components/datetime/test/multiple/datetime.e2e.js +2 -2
  185. package/dist/collection/components/datetime/test/position/datetime.e2e.js +1 -1
  186. package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +75 -73
  187. package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +4 -4
  188. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +8 -8
  189. package/dist/collection/components/datetime/test/set-value/datetime.e2e.js +4 -4
  190. package/dist/collection/components/datetime/test/time-label/datetime.e2e.js +2 -2
  191. package/dist/collection/components/datetime/test/values/datetime.e2e.js +19 -16
  192. package/dist/collection/components/datetime/utils/data.js +1 -1
  193. package/dist/collection/components/datetime-button/datetime-button.css +1 -1
  194. package/dist/collection/components/datetime-button/test/basic/datetime-button.e2e.js +14 -14
  195. package/dist/collection/components/datetime-button/test/disabled/datetime-button.e2e.js +2 -2
  196. package/dist/collection/components/datetime-button/test/multiple/datetime-button.e2e.js +6 -6
  197. package/dist/collection/components/fab-button/fab-button.ios.css +13 -13
  198. package/dist/collection/components/fab-button/fab-button.md.css +4 -4
  199. package/dist/collection/components/fab-button/test/a11y/fab-button.e2e.js +50 -0
  200. package/dist/collection/components/header/test/condense/header.e2e.js +2 -2
  201. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +3 -3
  202. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +3 -3
  203. package/dist/collection/components/input/input.ios.css +8 -8
  204. package/dist/collection/components/input/input.md.css +16 -16
  205. package/dist/collection/components/input/test/a11y/input.e2e.js +41 -3
  206. package/dist/collection/components/item/item.ios.css +44 -7
  207. package/dist/collection/components/item/item.js +0 -7
  208. package/dist/collection/components/item/item.md.css +52 -15
  209. package/dist/collection/components/item-divider/item-divider.ios.css +2 -2
  210. package/dist/collection/components/item-divider/item-divider.md.css +3 -3
  211. package/dist/collection/components/item-option/item-option.ios.css +2 -2
  212. package/dist/collection/components/item-option/item-option.md.css +1 -1
  213. package/dist/collection/components/item-options/item-options.ios.css +1 -1
  214. package/dist/collection/components/item-options/item-options.md.css +1 -1
  215. package/dist/collection/components/item-sliding/test/a11y/item-sliding.e2e.js +28 -0
  216. package/dist/collection/components/label/label.md.css +2 -2
  217. package/dist/collection/components/label/test/a11y/label.e2e.js +20 -0
  218. package/dist/collection/components/list-header/list-header.ios.css +2 -2
  219. package/dist/collection/components/list-header/list-header.md.css +1 -1
  220. package/dist/collection/components/loading/loading.ios.css +2 -2
  221. package/dist/collection/components/loading/loading.md.css +3 -3
  222. package/dist/collection/components/loading/test/a11y/loading.e2e.js +21 -5
  223. package/dist/collection/components/menu/menu.ios.css +64 -3
  224. package/dist/collection/components/menu/menu.js +19 -13
  225. package/dist/collection/components/menu/menu.md.css +64 -3
  226. package/dist/collection/components/menu-button/menu-button.ios.css +1 -1
  227. package/dist/collection/components/menu-button/test/a11y/menu-button.e2e.js +14 -0
  228. package/dist/collection/components/modal/modal.ios.css +1 -1
  229. package/dist/collection/components/modal/modal.md.css +1 -1
  230. package/dist/collection/components/modal/test/standalone/modal.e2e.js +1 -1
  231. package/dist/collection/components/nav/nav.js +22 -2
  232. package/dist/collection/components/nav/test/nav-controller.spec.js +36 -36
  233. package/dist/collection/components/note/note.ios.css +1 -1
  234. package/dist/collection/components/note/note.md.css +1 -1
  235. package/dist/collection/components/note/test/a11y/note.e2e.js +6 -6
  236. package/dist/collection/components/picker/picker.ios.css +112 -211
  237. package/dist/collection/components/picker/picker.js +488 -738
  238. package/dist/collection/components/picker/picker.md.css +108 -198
  239. package/dist/collection/components/{picker-internal/test/a11y/picker-internal.e2e.js → picker/test/a11y/picker.e2e.js} +2 -2
  240. package/dist/collection/components/picker/test/basic/picker.e2e.js +99 -13
  241. package/dist/collection/components/picker/test/custom/picker.e2e.js +85 -0
  242. package/dist/collection/components/{picker-internal/test/keyboard-entry/picker-internal.e2e.js → picker/test/keyboard-entry/picker.e2e.js} +79 -42
  243. package/dist/collection/components/{picker-column-internal/picker-column-internal.md.css → picker-column/picker-column.css} +96 -83
  244. package/dist/collection/components/picker-column/picker-column.js +499 -335
  245. package/dist/collection/components/{picker-column-internal/test/basic/picker-column-internal.e2e.js → picker-column/test/basic/picker-column.e2e.js} +8 -8
  246. package/dist/collection/components/picker-column/test/disabled/picker-column.e2e.js +91 -0
  247. package/dist/collection/components/picker-column/test/slots/picker-column.e2e.js +39 -0
  248. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +87 -0
  249. package/dist/collection/components/picker-column-option/picker-column-option.js +173 -0
  250. package/dist/collection/components/{picker-column-internal/picker-column-internal.ios.css → picker-column-option/picker-column-option.md.css} +6 -53
  251. package/dist/collection/components/picker-column-option/test/a11y/picker-column-option.e2e.js +18 -0
  252. package/dist/collection/components/picker-column-option/test/basic/picker-column-option.e2e.js +37 -0
  253. package/dist/collection/components/picker-column-option/test/picker-column-option.spec.js +29 -0
  254. package/dist/collection/components/{picker-internal/picker-internal.ios.css → picker-legacy/picker.ios.css} +205 -100
  255. package/dist/collection/components/picker-legacy/picker.js +811 -0
  256. package/dist/collection/components/{picker-internal/picker-internal.md.css → picker-legacy/picker.md.css} +194 -98
  257. package/dist/collection/components/picker-legacy/test/basic/picker.e2e.js +25 -0
  258. package/dist/collection/components/{picker → picker-legacy}/test/is-open/picker.e2e.js +4 -4
  259. package/dist/collection/components/{picker → picker-legacy}/test/picker-id.spec.js +5 -5
  260. package/dist/collection/components/{picker → picker-legacy}/test/trigger/picker.e2e.js +1 -1
  261. package/dist/collection/components/picker-legacy-column/picker-column.js +419 -0
  262. package/dist/collection/components/{picker-column → picker-legacy-column}/picker-column.md.css +1 -1
  263. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-aria.spec.js +3 -3
  264. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-dynamic.spec.js +2 -2
  265. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column.spec.js +2 -2
  266. package/dist/collection/components/{picker-column → picker-legacy-column}/test/standalone/picker-column.e2e.js +3 -3
  267. package/dist/collection/components/popover/popover.ios.css +1 -1
  268. package/dist/collection/components/progress-bar/progress-bar.ios.css +2 -2
  269. package/dist/collection/components/progress-bar/progress-bar.md.css +2 -2
  270. package/dist/collection/components/progress-bar/test/a11y/progress-bar.e2e.js +24 -0
  271. package/dist/collection/components/radio/radio.ios.css +2 -2
  272. package/dist/collection/components/radio/radio.md.css +2 -2
  273. package/dist/collection/components/radio/test/a11y/radio.e2e.js +114 -81
  274. package/dist/collection/components/range/range.ios.css +3 -3
  275. package/dist/collection/components/range/range.md.css +5 -5
  276. package/dist/collection/components/range/test/a11y/range.e2e.js +18 -8
  277. package/dist/collection/components/refresher/refresher.ios.css +1 -1
  278. package/dist/collection/components/refresher/refresher.md.css +4 -4
  279. package/dist/collection/components/refresher/test/a11y/refresher.e2e.js +25 -0
  280. package/dist/collection/components/refresher/test/test.utils.js +1 -1
  281. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  282. package/dist/collection/components/ripple-effect/test/basic/ripple-effect.e2e.js +2 -2
  283. package/dist/collection/components/router-link/router-link.css +1 -1
  284. package/dist/collection/components/router-link/test/a11y/router-link.e2e.js +23 -0
  285. package/dist/collection/components/searchbar/searchbar.ios.css +4 -4
  286. package/dist/collection/components/searchbar/searchbar.md.css +4 -4
  287. package/dist/collection/components/segment/test/a11y/segment.e2e.js +23 -0
  288. package/dist/collection/components/segment-button/segment-button.ios.css +3 -3
  289. package/dist/collection/components/segment-button/segment-button.md.css +2 -2
  290. package/dist/collection/components/select/select.ios.css +5 -5
  291. package/dist/collection/components/select/select.md.css +14 -14
  292. package/dist/collection/components/select/test/a11y/select.e2e.js +68 -4
  293. package/dist/collection/components/select-popover/select-popover.md.css +4 -4
  294. package/dist/collection/components/select-popover/test/a11y/select-popover.e2e.js +32 -0
  295. package/dist/collection/components/split-pane/split-pane.ios.css +3 -55
  296. package/dist/collection/components/split-pane/split-pane.js +46 -12
  297. package/dist/collection/components/split-pane/split-pane.md.css +3 -55
  298. package/dist/collection/components/split-pane/test/wrapped-menu/split-pane.e2e.js +41 -0
  299. package/dist/collection/components/tab-bar/tab-bar.ios.css +4 -4
  300. package/dist/collection/components/tab-bar/tab-bar.md.css +3 -3
  301. package/dist/collection/components/tabs/tabs.js +6 -18
  302. package/dist/collection/components/textarea/test/a11y/textarea.e2e.js +41 -3
  303. package/dist/collection/components/textarea/textarea.ios.css +7 -7
  304. package/dist/collection/components/textarea/textarea.md.css +15 -15
  305. package/dist/collection/components/toast/test/a11y/toast.e2e.js +89 -24
  306. package/dist/collection/components/toast/toast.ios.css +3 -3
  307. package/dist/collection/components/toast/toast.md.css +5 -5
  308. package/dist/collection/components/toggle/test/a11y/toggle.e2e.js +8 -2
  309. package/dist/collection/components/toggle/toggle.ios.css +2 -2
  310. package/dist/collection/components/toggle/toggle.md.css +2 -2
  311. package/dist/collection/components/toolbar/toolbar.ios.css +2 -2
  312. package/dist/collection/components/toolbar/toolbar.md.css +1 -1
  313. package/dist/collection/css/test/a11y/typography.e2e.js +18 -0
  314. package/dist/collection/themes/test/colors/theme.e2e.js +170 -0
  315. package/dist/collection/utils/gesture/gesture-controller.js +1 -1
  316. package/dist/collection/utils/overlays.js +11 -4
  317. package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +65 -0
  318. package/dist/collection/utils/test/playwright/generator.js +1 -0
  319. package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
  320. package/dist/docs.json +508 -66
  321. package/dist/esm/{button-active-b62776db.js → button-active-3bcbd115.js} +1 -1
  322. package/dist/esm/{data-775093f5.js → data-6a31d701.js} +1 -1
  323. package/dist/esm/{gesture-controller-1bf57181.js → gesture-controller-314a54f6.js} +1 -1
  324. package/dist/esm/{index-2cf77112.js → index-39782642.js} +2 -2
  325. package/dist/esm/index.js +3 -3
  326. package/dist/esm/ion-action-sheet.entry.js +6 -6
  327. package/dist/esm/ion-alert.entry.js +6 -6
  328. package/dist/esm/ion-app_8.entry.js +6 -7
  329. package/dist/esm/ion-avatar_3.entry.js +2 -2
  330. package/dist/esm/ion-back-button.entry.js +1 -1
  331. package/dist/esm/ion-backdrop.entry.js +0 -12
  332. package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
  333. package/dist/esm/ion-button_2.entry.js +2 -2
  334. package/dist/esm/ion-card_5.entry.js +5 -5
  335. package/dist/esm/ion-checkbox.entry.js +2 -2
  336. package/dist/esm/ion-datetime-button.entry.js +3 -3
  337. package/dist/esm/ion-datetime_3.entry.js +36 -56
  338. package/dist/esm/ion-fab_3.entry.js +2 -2
  339. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
  340. package/dist/esm/ion-input.entry.js +2 -2
  341. package/dist/esm/ion-item-option_3.entry.js +5 -5
  342. package/dist/esm/ion-item_8.entry.js +9 -14
  343. package/dist/esm/ion-loading.entry.js +4 -3
  344. package/dist/esm/ion-menu_3.entry.js +25 -20
  345. package/dist/esm/ion-modal.entry.js +5 -5
  346. package/dist/esm/ion-nav_2.entry.js +6 -3
  347. package/dist/esm/ion-picker-column-option.entry.js +100 -0
  348. package/dist/esm/{ion-picker-column-internal.entry.js → ion-picker-column.entry.js} +104 -87
  349. package/dist/esm/{ion-picker-internal.entry.js → ion-picker.entry.js} +26 -19
  350. package/dist/esm/ion-popover.entry.js +3 -2
  351. package/dist/esm/ion-progress-bar.entry.js +2 -2
  352. package/dist/esm/ion-radio_2.entry.js +2 -2
  353. package/dist/esm/ion-range.entry.js +3 -3
  354. package/dist/esm/ion-refresher_2.entry.js +6 -6
  355. package/dist/esm/ion-reorder_2.entry.js +1 -1
  356. package/dist/esm/ion-route_4.entry.js +1 -1
  357. package/dist/esm/ion-searchbar.entry.js +2 -2
  358. package/dist/esm/ion-segment_2.entry.js +3 -3
  359. package/dist/esm/ion-select_3.entry.js +5 -4
  360. package/dist/esm/ion-split-pane.entry.js +24 -14
  361. package/dist/esm/ion-tab-bar_2.entry.js +2 -2
  362. package/dist/esm/ion-textarea.entry.js +2 -2
  363. package/dist/esm/ion-toast.entry.js +5 -5
  364. package/dist/esm/ion-toggle.entry.js +3 -3
  365. package/dist/esm/ionic.js +1 -1
  366. package/dist/esm/loader.js +1 -1
  367. package/dist/esm/{overlays-bb824d56.js → overlays-8b24f0d5.js} +11 -4
  368. package/dist/esm/{swipe-back-a6f386fc.js → swipe-back-a8ca7f93.js} +2 -2
  369. package/dist/esm-es5/{button-active-b62776db.js → button-active-3bcbd115.js} +1 -1
  370. package/dist/esm-es5/{gesture-controller-1bf57181.js → gesture-controller-314a54f6.js} +1 -1
  371. package/dist/esm-es5/{index-2cf77112.js → index-39782642.js} +1 -1
  372. package/dist/esm-es5/index.js +1 -1
  373. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  374. package/dist/esm-es5/ion-alert.entry.js +1 -1
  375. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  376. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  377. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  378. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  379. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  380. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  381. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  382. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  383. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  384. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  385. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  386. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  387. package/dist/esm-es5/ion-input.entry.js +1 -1
  388. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  389. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  390. package/dist/esm-es5/ion-loading.entry.js +1 -1
  391. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  392. package/dist/esm-es5/ion-modal.entry.js +1 -1
  393. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  394. package/dist/esm-es5/ion-picker-column-option.entry.js +4 -0
  395. package/dist/esm-es5/ion-picker-column.entry.js +4 -0
  396. package/dist/esm-es5/ion-picker.entry.js +4 -0
  397. package/dist/esm-es5/ion-popover.entry.js +1 -1
  398. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  399. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  400. package/dist/esm-es5/ion-range.entry.js +1 -1
  401. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  402. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  403. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  404. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  405. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  406. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  407. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  408. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  409. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  410. package/dist/esm-es5/ion-toast.entry.js +1 -1
  411. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  412. package/dist/esm-es5/ionic.js +1 -1
  413. package/dist/esm-es5/loader.js +1 -1
  414. package/dist/esm-es5/overlays-8b24f0d5.js +4 -0
  415. package/dist/esm-es5/swipe-back-a8ca7f93.js +4 -0
  416. package/dist/html.html-data.json +152 -1
  417. package/dist/ionic/index.esm.js +1 -1
  418. package/dist/ionic/ionic.esm.js +1 -1
  419. package/dist/ionic/{p-249633a4.entry.js → p-0055506a.entry.js} +1 -1
  420. package/dist/ionic/p-0708a9c1.system.js +4 -0
  421. package/dist/ionic/{p-b6f6f00e.entry.js → p-07d725a7.entry.js} +1 -1
  422. package/dist/ionic/{p-c1c57873.system.entry.js → p-0a0a84ce.system.entry.js} +1 -1
  423. package/dist/ionic/p-0ac49b0c.system.entry.js +4 -0
  424. package/dist/ionic/p-0d3c5eaa.system.entry.js +4 -0
  425. package/dist/ionic/{p-5a85d71d.entry.js → p-0d850325.entry.js} +1 -1
  426. package/dist/ionic/p-0f55b1b0.entry.js +4 -0
  427. package/dist/ionic/p-10607f89.entry.js +4 -0
  428. package/dist/ionic/{p-d2707f9d.system.js → p-114ea79c.system.js} +1 -1
  429. package/dist/ionic/p-14196559.entry.js +4 -0
  430. package/dist/ionic/p-14b8100f.system.entry.js +4 -0
  431. package/dist/ionic/p-15878390.system.entry.js +4 -0
  432. package/dist/ionic/{p-f3478ed6.system.entry.js → p-16e781a6.system.entry.js} +1 -1
  433. package/dist/ionic/p-1a5f0313.system.js +1 -1
  434. package/dist/ionic/p-1c445de9.entry.js +4 -0
  435. package/dist/ionic/{p-c7c8429a.system.js → p-20d469d0.system.js} +1 -1
  436. package/dist/ionic/p-2800e6d5.system.entry.js +4 -0
  437. package/dist/ionic/p-283d8f5e.system.entry.js +4 -0
  438. package/dist/ionic/{p-8084e9cb.entry.js → p-28525772.entry.js} +1 -1
  439. package/dist/ionic/p-2aa29487.system.entry.js +4 -0
  440. package/dist/ionic/{p-54c92c77.entry.js → p-305423e0.entry.js} +1 -1
  441. package/dist/ionic/p-327211c1.entry.js +4 -0
  442. package/dist/ionic/{p-bc6d16ca.entry.js → p-32b129a2.entry.js} +1 -1
  443. package/dist/ionic/{p-b43cf55f.entry.js → p-34f05cec.entry.js} +1 -1
  444. package/dist/ionic/p-3587df88.system.entry.js +4 -0
  445. package/dist/ionic/p-381ca6f8.system.entry.js +4 -0
  446. package/dist/ionic/p-3cf67784.entry.js +4 -0
  447. package/dist/ionic/{p-31b2326e.system.js → p-3e1e14d9.system.js} +1 -1
  448. package/dist/ionic/{p-3b83e483.system.entry.js → p-3f3ae637.system.entry.js} +2 -2
  449. package/dist/ionic/p-4a13a07c.system.entry.js +4 -0
  450. package/dist/ionic/p-4eaf5dcd.system.entry.js +4 -0
  451. package/dist/ionic/p-5186ff3f.system.entry.js +4 -0
  452. package/dist/ionic/p-51abefb7.system.js +4 -0
  453. package/dist/ionic/p-59a95822.entry.js +4 -0
  454. package/dist/ionic/p-659086a2.system.entry.js +4 -0
  455. package/dist/ionic/p-6793b96e.system.entry.js +4 -0
  456. package/dist/ionic/{p-7bae84aa.entry.js → p-69926b34.entry.js} +1 -1
  457. package/dist/ionic/p-6b0c8263.entry.js +4 -0
  458. package/dist/ionic/p-71f30cfc.system.entry.js +4 -0
  459. package/dist/ionic/p-7a3e1f37.system.entry.js +4 -0
  460. package/dist/ionic/p-7ae141f1.entry.js +4 -0
  461. package/dist/ionic/p-7e8ef0bb.system.entry.js +4 -0
  462. package/dist/ionic/p-89c5f8ba.system.entry.js +4 -0
  463. package/dist/ionic/{p-cdce5ba3.system.entry.js → p-8a1d33e3.system.entry.js} +1 -1
  464. package/dist/ionic/{p-1f7fc88d.entry.js → p-8aaade76.entry.js} +1 -1
  465. package/dist/ionic/{p-f5d2dc9b.js → p-8ededb41.js} +1 -1
  466. package/dist/ionic/p-94265b3d.entry.js +4 -0
  467. package/dist/ionic/{p-35e1a80f.system.entry.js → p-943caced.system.entry.js} +1 -1
  468. package/dist/ionic/{p-2c3842e8.system.entry.js → p-97657f32.system.entry.js} +1 -1
  469. package/dist/ionic/p-97e39972.system.entry.js +4 -0
  470. package/dist/ionic/p-9b930e4f.entry.js +4 -0
  471. package/dist/ionic/{p-bb3615f7.js → p-9b97df10.js} +1 -1
  472. package/dist/ionic/{p-db798370.system.entry.js → p-9cbfb298.system.entry.js} +1 -1
  473. package/dist/ionic/{p-c3bfe92d.entry.js → p-a114831c.entry.js} +1 -1
  474. package/dist/ionic/p-a60a1ce5.js +4 -0
  475. package/dist/ionic/{p-1052ef2b.entry.js → p-ae8747aa.entry.js} +1 -1
  476. package/dist/ionic/p-b13f5e6a.entry.js +4 -0
  477. package/dist/ionic/{p-10c34f0a.system.entry.js → p-b6e4e9ce.system.entry.js} +1 -1
  478. package/dist/ionic/p-b8213f04.entry.js +4 -0
  479. package/dist/ionic/p-b8fbc01d.entry.js +4 -0
  480. package/dist/ionic/p-c33d312f.js +4 -0
  481. package/dist/ionic/{p-85e04029.entry.js → p-c6a6ffe6.entry.js} +1 -1
  482. package/dist/ionic/{p-688a36c7.entry.js → p-c7bdd72f.entry.js} +1 -1
  483. package/dist/ionic/{p-df62accd.entry.js → p-c9028fdc.entry.js} +1 -1
  484. package/dist/ionic/{p-5c2da581.system.entry.js → p-cb0cfc39.system.entry.js} +1 -1
  485. package/dist/ionic/{p-5628d04e.entry.js → p-cd6a60d2.entry.js} +1 -1
  486. package/dist/ionic/{p-7510e462.entry.js → p-d545e325.entry.js} +1 -1
  487. package/dist/ionic/p-d5a21de8.entry.js +4 -0
  488. package/dist/ionic/p-d6674fed.entry.js +4 -0
  489. package/dist/ionic/p-db00f04e.entry.js +4 -0
  490. package/dist/ionic/p-ddf79d90.system.entry.js +4 -0
  491. package/dist/ionic/p-def451e2.system.entry.js +4 -0
  492. package/dist/ionic/p-df5134fa.entry.js +4 -0
  493. package/dist/ionic/{p-8f1ebb7d.system.js → p-df75bd2c.system.js} +1 -1
  494. package/dist/ionic/p-df7aaa62.entry.js +4 -0
  495. package/dist/ionic/p-dfd21411.system.entry.js +4 -0
  496. package/dist/ionic/p-e22bf111.js +4 -0
  497. package/dist/ionic/p-e652d9e4.entry.js +4 -0
  498. package/dist/ionic/p-e9a36c6f.entry.js +4 -0
  499. package/dist/ionic/p-ea9a8424.system.entry.js +4 -0
  500. package/dist/ionic/{p-41aa2662.entry.js → p-eeb87a49.entry.js} +1 -1
  501. package/dist/ionic/p-ef6ec008.system.entry.js +4 -0
  502. package/dist/ionic/p-ef9e6f77.system.entry.js +4 -0
  503. package/dist/ionic/{p-7751def0.system.entry.js → p-f003e500.system.entry.js} +1 -1
  504. package/dist/ionic/p-f27b18ba.system.entry.js +4 -0
  505. package/dist/ionic/p-f62122bb.system.entry.js +4 -0
  506. package/dist/ionic/p-f864df50.system.entry.js +4 -0
  507. package/dist/ionic/{p-1a0bf247.system.entry.js → p-fc58a772.system.entry.js} +1 -1
  508. package/dist/ionic/p-fdc3ff96.entry.js +4 -0
  509. package/dist/types/components/backdrop/backdrop.d.ts +0 -3
  510. package/dist/types/components/datetime/datetime.d.ts +0 -1
  511. package/dist/types/components/datetime/utils/data.d.ts +11 -7
  512. package/dist/types/components/item/item.d.ts +0 -1
  513. package/dist/types/components/menu/menu.d.ts +12 -2
  514. package/dist/types/components/nav/nav.d.ts +4 -1
  515. package/dist/types/components/picker/picker-interfaces.d.ts +8 -0
  516. package/dist/types/components/picker/picker.d.ts +75 -129
  517. package/dist/types/components/picker-column/picker-column-interfaces.d.ts +4 -0
  518. package/dist/types/components/picker-column/picker-column.d.ts +99 -39
  519. package/dist/types/components/picker-column-option/picker-column-option.d.ts +66 -0
  520. package/dist/types/components/picker-legacy/picker.d.ts +158 -0
  521. package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
  522. package/dist/types/components/split-pane/split-pane.d.ts +14 -2
  523. package/dist/types/components/tabs/tabs-interface.d.ts +3 -4
  524. package/dist/types/components/tabs/tabs.d.ts +6 -3
  525. package/dist/types/components.d.ts +163 -128
  526. package/dist/types/interface.d.ts +1 -1
  527. package/dist/types/utils/config.d.ts +2 -2
  528. package/dist/types/utils/gesture/gesture-controller.d.ts +1 -0
  529. package/dist/types/utils/overlays.d.ts +5 -2
  530. package/dist/types/utils/test/playwright/generator.d.ts +3 -1
  531. package/hydrate/index.js +1491 -1379
  532. package/package.json +2 -2
  533. package/components/ion-picker-column-internal.d.ts +0 -11
  534. package/components/ion-picker-column-internal.js +0 -9
  535. package/components/ion-picker-internal.js +0 -9
  536. package/components/picker-column-internal.js +0 -390
  537. package/dist/collection/components/item/test/item.spec.js +0 -20
  538. package/dist/collection/components/picker-column-internal/picker-column-internal.js +0 -566
  539. package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +0 -162
  540. package/dist/collection/components/picker-internal/picker-internal.js +0 -560
  541. package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +0 -118
  542. package/dist/esm-es5/ion-picker-column-internal.entry.js +0 -4
  543. package/dist/esm-es5/ion-picker-internal.entry.js +0 -4
  544. package/dist/esm-es5/overlays-bb824d56.js +0 -4
  545. package/dist/esm-es5/swipe-back-a6f386fc.js +0 -4
  546. package/dist/ionic/p-024e2739.entry.js +0 -4
  547. package/dist/ionic/p-06128c8c.entry.js +0 -4
  548. package/dist/ionic/p-06f72943.system.entry.js +0 -4
  549. package/dist/ionic/p-0d2b6901.entry.js +0 -4
  550. package/dist/ionic/p-127ff448.entry.js +0 -4
  551. package/dist/ionic/p-35ce400e.system.js +0 -4
  552. package/dist/ionic/p-3dbaaa5b.system.entry.js +0 -4
  553. package/dist/ionic/p-3de38800.system.entry.js +0 -4
  554. package/dist/ionic/p-41040a92.system.entry.js +0 -4
  555. package/dist/ionic/p-436bd99a.entry.js +0 -4
  556. package/dist/ionic/p-49c52149.system.entry.js +0 -4
  557. package/dist/ionic/p-4dc3bc8b.entry.js +0 -4
  558. package/dist/ionic/p-525b6ac4.system.entry.js +0 -4
  559. package/dist/ionic/p-5aecd304.system.entry.js +0 -4
  560. package/dist/ionic/p-5f698182.entry.js +0 -4
  561. package/dist/ionic/p-61bf9f6f.system.entry.js +0 -4
  562. package/dist/ionic/p-6899d5af.entry.js +0 -4
  563. package/dist/ionic/p-6a6477b2.js +0 -4
  564. package/dist/ionic/p-6b9eee40.system.entry.js +0 -4
  565. package/dist/ionic/p-6ba863b1.system.entry.js +0 -4
  566. package/dist/ionic/p-6e165986.system.entry.js +0 -4
  567. package/dist/ionic/p-719ad110.system.entry.js +0 -4
  568. package/dist/ionic/p-73547cf9.entry.js +0 -4
  569. package/dist/ionic/p-7a02dd61.system.entry.js +0 -4
  570. package/dist/ionic/p-7ffe791a.system.js +0 -4
  571. package/dist/ionic/p-80ddd0c1.entry.js +0 -4
  572. package/dist/ionic/p-87e10168.system.entry.js +0 -4
  573. package/dist/ionic/p-89c28901.system.entry.js +0 -4
  574. package/dist/ionic/p-8bad1486.system.entry.js +0 -4
  575. package/dist/ionic/p-90000ff6.js +0 -4
  576. package/dist/ionic/p-928e945d.system.entry.js +0 -4
  577. package/dist/ionic/p-9cf0846d.system.entry.js +0 -4
  578. package/dist/ionic/p-a0953474.entry.js +0 -4
  579. package/dist/ionic/p-a2d75455.entry.js +0 -4
  580. package/dist/ionic/p-a706cf11.system.entry.js +0 -4
  581. package/dist/ionic/p-aca77953.entry.js +0 -4
  582. package/dist/ionic/p-afafbba0.entry.js +0 -4
  583. package/dist/ionic/p-b09c8228.entry.js +0 -4
  584. package/dist/ionic/p-ba4890eb.system.entry.js +0 -4
  585. package/dist/ionic/p-beeceaf5.system.entry.js +0 -4
  586. package/dist/ionic/p-c10cc51e.system.entry.js +0 -4
  587. package/dist/ionic/p-c4177035.entry.js +0 -4
  588. package/dist/ionic/p-c48a9ef3.system.entry.js +0 -4
  589. package/dist/ionic/p-cb301b9a.entry.js +0 -4
  590. package/dist/ionic/p-d6beb1c9.system.entry.js +0 -4
  591. package/dist/ionic/p-dc1d883c.system.entry.js +0 -4
  592. package/dist/ionic/p-e150f8fc.entry.js +0 -4
  593. package/dist/ionic/p-e814f9c0.entry.js +0 -4
  594. package/dist/ionic/p-eb210b21.system.entry.js +0 -4
  595. package/dist/ionic/p-eb80ca40.entry.js +0 -4
  596. package/dist/ionic/p-f48a49ae.system.entry.js +0 -4
  597. package/dist/ionic/p-f865bc9a.entry.js +0 -4
  598. package/dist/ionic/p-fd1a0431.js +0 -4
  599. package/dist/types/components/picker-column-internal/picker-column-internal-interfaces.d.ts +0 -5
  600. package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +0 -102
  601. package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +0 -8
  602. package/dist/types/components/picker-internal/picker-internal.d.ts +0 -102
  603. /package/dist/collection/components/{picker-internal/picker-internal-interfaces.js → picker/picker-interfaces.js} +0 -0
  604. /package/dist/collection/components/{picker-column-internal/picker-column-internal-interfaces.js → picker-column/picker-column-interfaces.js} +0 -0
  605. /package/dist/collection/components/{picker → picker-legacy}/animations/ios.enter.js +0 -0
  606. /package/dist/collection/components/{picker → picker-legacy}/animations/ios.leave.js +0 -0
  607. /package/dist/collection/components/{picker → picker-legacy}/picker-interface.js +0 -0
  608. /package/dist/collection/components/{picker-column → picker-legacy-column}/picker-column.ios.css +0 -0
  609. /package/dist/collection/components/{picker-column → picker-legacy-column}/test/test.utils.js +0 -0
  610. /package/dist/esm-es5/{data-775093f5.js → data-6a31d701.js} +0 -0
  611. /package/dist/ionic/{p-87bb3735.system.js → p-7ff4359e.system.js} +0 -0
  612. /package/dist/ionic/{p-18cae04f.js → p-a64accf5.js} +0 -0
  613. /package/dist/types/components/{picker → picker-legacy}/animations/ios.enter.d.ts +0 -0
  614. /package/dist/types/components/{picker → picker-legacy}/animations/ios.leave.d.ts +0 -0
  615. /package/dist/types/components/{picker → picker-legacy}/picker-interface.d.ts +0 -0
  616. /package/dist/types/components/{picker-column → picker-legacy-column}/test/test.utils.d.ts +0 -0
@@ -81,7 +81,7 @@
81
81
  --placeholder-color: initial;
82
82
  --placeholder-font-style: initial;
83
83
  --placeholder-font-weight: initial;
84
- --placeholder-opacity: 0.6;
84
+ --placeholder-opacity: var(--ion-placeholder-opacity, 0.6);
85
85
  --padding-top: 0px;
86
86
  --padding-end: 0px;
87
87
  --padding-bottom: 0px;
@@ -89,9 +89,9 @@
89
89
  --background: transparent;
90
90
  --color: initial;
91
91
  --border-style: solid;
92
- --highlight-color-focused: var(--ion-color-primary, #3880ff);
93
- --highlight-color-valid: var(--ion-color-success, #2dd36f);
94
- --highlight-color-invalid: var(--ion-color-danger, #eb445a);
92
+ --highlight-color-focused: var(--ion-color-primary, #0054e9);
93
+ --highlight-color-valid: var(--ion-color-success, #2dd55b);
94
+ --highlight-color-invalid: var(--ion-color-danger, #c5000f);
95
95
  /**
96
96
  * This is a private API that is used to switch
97
97
  * out the highlight color based on the state
@@ -284,7 +284,7 @@
284
284
  outline: none;
285
285
  background-color: transparent;
286
286
  background-repeat: no-repeat;
287
- color: var(--ion-color-step-600, #666666);
287
+ color: var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));
288
288
  visibility: hidden;
289
289
  appearance: none;
290
290
  }
@@ -417,7 +417,7 @@
417
417
 
418
418
  .input-bottom .helper-text {
419
419
  display: block;
420
- color: var(--ion-color-step-550, #737373);
420
+ color: var(--ion-color-step-550, var(--ion-text-color-step-450, #737373));
421
421
  }
422
422
 
423
423
  :host(.ion-touched.ion-invalid) .input-bottom .error-text {
@@ -436,7 +436,7 @@
436
436
  */
437
437
  -webkit-margin-start: auto;
438
438
  margin-inline-start: auto;
439
- color: var(--ion-color-step-550, #737373);
439
+ color: var(--ion-color-step-550, var(--ion-text-color-step-450, #737373));
440
440
  white-space: nowrap;
441
441
  padding-inline-start: 16px;
442
442
  }
@@ -840,8 +840,8 @@
840
840
  * }
841
841
  */
842
842
  :host(.input-fill-solid) {
843
- --background: var(--ion-color-step-50, #f2f2f2);
844
- --border-color: var(--ion-color-step-500, gray);
843
+ --background: var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));
844
+ --border-color: var(--ion-color-step-500, var(--ion-background-color-step-500, gray));
845
845
  --border-radius: 4px;
846
846
  --padding-start: 16px;
847
847
  --padding-end: 16px;
@@ -877,8 +877,8 @@
877
877
  */
878
878
  @media (any-hover: hover) {
879
879
  :host(.input-fill-solid:hover) {
880
- --background: var(--ion-color-step-100, #e6e6e6);
881
- --border-color: var(--ion-color-step-750, #404040);
880
+ --background: var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6));
881
+ --border-color: var(--ion-color-step-750, var(--ion-background-color-step-750, #404040));
882
882
  }
883
883
  }
884
884
  /**
@@ -886,8 +886,8 @@
886
886
  * much darker on focus.
887
887
  */
888
888
  :host(.input-fill-solid.has-focus) {
889
- --background: var(--ion-color-step-150, #d9d9d9);
890
- --border-color: var(--ion-color-step-750, #404040);
889
+ --background: var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));
890
+ --border-color: var(--ion-color-step-750, var(--ion-background-color-step-750, #404040));
891
891
  }
892
892
 
893
893
  :host(.input-fill-solid) .input-wrapper {
@@ -980,7 +980,7 @@
980
980
  * }
981
981
  */
982
982
  :host(.input-fill-outline) {
983
- --border-color: var(--ion-color-step-300, #b3b3b3);
983
+ --border-color: var(--ion-color-step-300, var(--ion-background-color-step-300, #b3b3b3));
984
984
  --border-radius: 4px;
985
985
  --padding-start: 16px;
986
986
  --padding-end: 16px;
@@ -1008,7 +1008,7 @@
1008
1008
  */
1009
1009
  @media (any-hover: hover) {
1010
1010
  :host(.input-fill-outline:hover) {
1011
- --border-color: var(--ion-color-step-750, #404040);
1011
+ --border-color: var(--ion-color-step-750, var(--ion-background-color-step-750, #404040));
1012
1012
  }
1013
1013
  }
1014
1014
  /**
@@ -1292,7 +1292,7 @@
1292
1292
  */
1293
1293
  :host {
1294
1294
  --border-width: 1px;
1295
- --border-color: var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));
1295
+ --border-color: var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));
1296
1296
  font-size: inherit;
1297
1297
  }
1298
1298
 
@@ -4,14 +4,52 @@
4
4
  import AxeBuilder from "@axe-core/playwright";
5
5
  import { expect } from "@playwright/test";
6
6
  import { configs, test } from "../../../../utils/test/playwright/index";
7
- configs({ directions: ['ltr'] }).forEach(({ title, config, screenshot }) => {
7
+ configs({ directions: ['ltr'], themes: ['light', 'dark'] }).forEach(({ title, config }) => {
8
8
  test.describe(title('input: a11y'), () => {
9
- test('should not have accessibility violations', async ({ page }) => {
10
- await page.goto(`/src/components/input/test/a11y`, config);
9
+ test('default layout should not have accessibility violations', async ({ page }) => {
10
+ await page.setContent(`
11
+ <main>
12
+ <ion-input label="Label" placeholder="Placeholder"></ion-input>
13
+ <ion-input placeholder="Placeholder">
14
+ <div slot="label">Label"></div>
15
+ </ion-input>
16
+ <ion-input label="Label" value="My Text"></ion-input>
17
+ <ion-input aria-label="Label"></ion-input>
18
+ <ion-input label="Email" fill="solid" value="hi@ionic.io">
19
+ <ion-icon slot="start" name="lock-closed" aria-hidden="true"></ion-icon>
20
+ <ion-button slot="end" aria-label="button">
21
+ <ion-icon slot="icon-only" name="lock-closed" aria-hidden="true"></ion-icon>
22
+ </ion-button>
23
+ </ion-input>
24
+ </main>
25
+ `, config);
26
+ const results = await new AxeBuilder({ page }).analyze();
27
+ expect(results.violations).toEqual([]);
28
+ });
29
+ test('focused state should not have accessibility violations', async ({ page }) => {
30
+ /**
31
+ * The primary color against the focus background
32
+ * when using fill="solid" does not meet AA
33
+ * contrast guidelines so it excluded from the test.
34
+ * The contrast here is a significant improvement
35
+ * over what Ionic has had in the past, so the team
36
+ * has decided that this tradeoff is acceptable since
37
+ * the scope of the problem is limited to the focus
38
+ * state with the primary color when fill="solid".
39
+ */
40
+ await page.setContent(`
41
+ <main>
42
+ <ion-input class="has-focus" label="Label" value="My Text"></ion-input>
43
+ <ion-input class="has-focus" label-placement="floating" label="Label" value="My Text"></ion-input>
44
+ <ion-input class="has-focus" fill="outline" label-placement="floating" label="Label" value="My Text"></ion-input>
45
+ </main>
46
+ `, config);
11
47
  const results = await new AxeBuilder({ page }).analyze();
12
48
  expect(results.violations).toEqual([]);
13
49
  });
14
50
  });
51
+ });
52
+ configs({ directions: ['ltr'] }).forEach(({ title, config, screenshot }) => {
15
53
  test.describe(title('input: font scaling'), () => {
16
54
  test('should scale text on larger font sizes', async ({ page }) => {
17
55
  await page.setContent(`
@@ -100,6 +100,14 @@
100
100
  * @prop --highlight-color-valid: The color of the highlight on the item when valid. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
101
101
  * @prop --highlight-color-invalid: The color of the highlight on the item when invalid. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
102
102
  */
103
+ /**
104
+ * We change the minimum width as the
105
+ * font size changes. Using a fixed minimum
106
+ * width means that fewer and fewer characters
107
+ * can be displayed in the same space as the
108
+ * text grows.
109
+ */
110
+ --inner-min-width: 4rem;
103
111
  --border-radius: 0px;
104
112
  --border-width: 0px;
105
113
  --border-style: solid;
@@ -230,6 +238,7 @@
230
238
  /* stylelint-enable */
231
239
  display: flex;
232
240
  position: relative;
241
+ flex-wrap: wrap;
233
242
  align-items: inherit;
234
243
  justify-content: inherit;
235
244
  width: 100%;
@@ -261,6 +270,10 @@
261
270
  }
262
271
  }
263
272
 
273
+ :host(.item-legacy) .item-native {
274
+ flex-wrap: unset;
275
+ }
276
+
264
277
  .item-native::-moz-focus-inner {
265
278
  border: 0;
266
279
  }
@@ -296,10 +309,20 @@ button, a {
296
309
  /* stylelint-enable */
297
310
  display: flex;
298
311
  position: relative;
299
- flex: 1;
312
+ flex: 1 0 0;
300
313
  flex-direction: inherit;
314
+ flex-wrap: wrap;
301
315
  align-items: inherit;
302
316
  align-self: stretch;
317
+ /**
318
+ * The min-width defines when the
319
+ * content in the default slot should
320
+ * stop wrapping/truncating within its own
321
+ * container. At this point the entire
322
+ * container will wrap to the next line.
323
+ */
324
+ min-width: var(--inner-min-width);
325
+ max-width: 100%;
303
326
  min-height: inherit;
304
327
  border-width: var(--inner-border-width);
305
328
  border-style: var(--border-style);
@@ -325,6 +348,12 @@ button, a {
325
348
  }
326
349
  }
327
350
 
351
+ :host(.item-legacy) .item-inner {
352
+ flex: 1;
353
+ flex-wrap: unset;
354
+ max-width: unset;
355
+ }
356
+
328
357
  .item-bottom {
329
358
  margin-left: 0;
330
359
  margin-right: 0;
@@ -403,15 +432,23 @@ button, a {
403
432
 
404
433
  .input-wrapper {
405
434
  display: flex;
406
- flex: 1;
435
+ flex: 1 0 auto;
407
436
  flex-direction: inherit;
437
+ flex-wrap: wrap;
408
438
  align-items: inherit;
409
439
  align-self: stretch;
440
+ max-width: 100%;
410
441
  text-overflow: ellipsis;
411
442
  overflow: inherit;
412
443
  box-sizing: border-box;
413
444
  }
414
445
 
446
+ :host(.item-legacy) .input-wrapper {
447
+ flex: 1;
448
+ flex-wrap: unset;
449
+ max-width: unset;
450
+ }
451
+
415
452
  :host(.item-label-stacked),
416
453
  :host(.item-label-floating) {
417
454
  align-items: start;
@@ -571,7 +608,7 @@ ion-ripple-effect {
571
608
  .item-counter {
572
609
  -webkit-margin-start: auto;
573
610
  margin-inline-start: auto;
574
- color: var(--ion-color-step-550, #737373);
611
+ color: var(--ion-color-step-550, var(--ion-background-color-step-550, #737373));
575
612
  white-space: nowrap;
576
613
  padding-inline-start: 16px;
577
614
  }
@@ -660,12 +697,12 @@ ion-ripple-effect {
660
697
  --background-activated-opacity: .12;
661
698
  --background-focused-opacity: .15;
662
699
  --background-hover-opacity: .04;
663
- --border-color: var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));
700
+ --border-color: var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));
664
701
  --color: var(--ion-item-color, var(--ion-text-color, #000));
665
702
  --highlight-height: 0px;
666
- --highlight-color-focused: var(--ion-color-primary, #3880ff);
667
- --highlight-color-valid: var(--ion-color-success, #2dd36f);
668
- --highlight-color-invalid: var(--ion-color-danger, #eb445a);
703
+ --highlight-color-focused: var(--ion-color-primary, #0054e9);
704
+ --highlight-color-valid: var(--ion-color-success, #2dd55b);
705
+ --highlight-color-invalid: var(--ion-color-danger, #c5000f);
669
706
  --bottom-padding-start: 0px;
670
707
  font-size: 1rem;
671
708
  }
@@ -45,10 +45,6 @@ export class Item {
45
45
  this.counterFormatter = undefined;
46
46
  this.counterString = undefined;
47
47
  }
48
- buttonChanged() {
49
- // Update the focusable option when the button option is changed
50
- this.focusable = this.isFocusable();
51
- }
52
48
  counterFormatterChanged() {
53
49
  this.updateCounterOutput(this.getFirstInput());
54
50
  }
@@ -633,9 +629,6 @@ export class Item {
633
629
  static get elementRef() { return "el"; }
634
630
  static get watchers() {
635
631
  return [{
636
- "propName": "button",
637
- "methodName": "buttonChanged"
638
- }, {
639
632
  "propName": "counterFormatter",
640
633
  "methodName": "counterFormatterChanged"
641
634
  }];
@@ -100,6 +100,14 @@
100
100
  * @prop --highlight-color-valid: The color of the highlight on the item when valid. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
101
101
  * @prop --highlight-color-invalid: The color of the highlight on the item when invalid. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
102
102
  */
103
+ /**
104
+ * We change the minimum width as the
105
+ * font size changes. Using a fixed minimum
106
+ * width means that fewer and fewer characters
107
+ * can be displayed in the same space as the
108
+ * text grows.
109
+ */
110
+ --inner-min-width: 4rem;
103
111
  --border-radius: 0px;
104
112
  --border-width: 0px;
105
113
  --border-style: solid;
@@ -230,6 +238,7 @@
230
238
  /* stylelint-enable */
231
239
  display: flex;
232
240
  position: relative;
241
+ flex-wrap: wrap;
233
242
  align-items: inherit;
234
243
  justify-content: inherit;
235
244
  width: 100%;
@@ -261,6 +270,10 @@
261
270
  }
262
271
  }
263
272
 
273
+ :host(.item-legacy) .item-native {
274
+ flex-wrap: unset;
275
+ }
276
+
264
277
  .item-native::-moz-focus-inner {
265
278
  border: 0;
266
279
  }
@@ -296,10 +309,20 @@ button, a {
296
309
  /* stylelint-enable */
297
310
  display: flex;
298
311
  position: relative;
299
- flex: 1;
312
+ flex: 1 0 0;
300
313
  flex-direction: inherit;
314
+ flex-wrap: wrap;
301
315
  align-items: inherit;
302
316
  align-self: stretch;
317
+ /**
318
+ * The min-width defines when the
319
+ * content in the default slot should
320
+ * stop wrapping/truncating within its own
321
+ * container. At this point the entire
322
+ * container will wrap to the next line.
323
+ */
324
+ min-width: var(--inner-min-width);
325
+ max-width: 100%;
303
326
  min-height: inherit;
304
327
  border-width: var(--inner-border-width);
305
328
  border-style: var(--border-style);
@@ -325,6 +348,12 @@ button, a {
325
348
  }
326
349
  }
327
350
 
351
+ :host(.item-legacy) .item-inner {
352
+ flex: 1;
353
+ flex-wrap: unset;
354
+ max-width: unset;
355
+ }
356
+
328
357
  .item-bottom {
329
358
  margin-left: 0;
330
359
  margin-right: 0;
@@ -403,15 +432,23 @@ button, a {
403
432
 
404
433
  .input-wrapper {
405
434
  display: flex;
406
- flex: 1;
435
+ flex: 1 0 auto;
407
436
  flex-direction: inherit;
437
+ flex-wrap: wrap;
408
438
  align-items: inherit;
409
439
  align-self: stretch;
440
+ max-width: 100%;
410
441
  text-overflow: ellipsis;
411
442
  overflow: inherit;
412
443
  box-sizing: border-box;
413
444
  }
414
445
 
446
+ :host(.item-legacy) .input-wrapper {
447
+ flex: 1;
448
+ flex-wrap: unset;
449
+ max-width: unset;
450
+ }
451
+
415
452
  :host(.item-label-stacked),
416
453
  :host(.item-label-floating) {
417
454
  align-items: start;
@@ -571,7 +608,7 @@ ion-ripple-effect {
571
608
  .item-counter {
572
609
  -webkit-margin-start: auto;
573
610
  margin-inline-start: auto;
574
- color: var(--ion-color-step-550, #737373);
611
+ color: var(--ion-color-step-550, var(--ion-background-color-step-550, #737373));
575
612
  white-space: nowrap;
576
613
  padding-inline-start: 16px;
577
614
  }
@@ -756,16 +793,16 @@ ion-ripple-effect {
756
793
  --background-activated-opacity: 0;
757
794
  --background-focused-opacity: .12;
758
795
  --background-hover-opacity: .04;
759
- --border-color: var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));
796
+ --border-color: var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));
760
797
  --color: var(--ion-item-color, var(--ion-text-color, #000));
761
798
  --transition: opacity 15ms linear, background-color 15ms linear;
762
799
  --padding-start: 16px;
763
800
  --inner-padding-end: 16px;
764
801
  --inner-border-width: 0 0 1px 0;
765
802
  --highlight-height: 1px;
766
- --highlight-color-focused: var(--ion-color-primary, #3880ff);
767
- --highlight-color-valid: var(--ion-color-success, #2dd36f);
768
- --highlight-color-invalid: var(--ion-color-danger, #eb445a);
803
+ --highlight-color-focused: var(--ion-color-primary, #0054e9);
804
+ --highlight-color-valid: var(--ion-color-success, #2dd55b);
805
+ --highlight-color-invalid: var(--ion-color-danger, #c5000f);
769
806
  font-size: 1rem;
770
807
  font-weight: normal;
771
808
  text-transform: none;
@@ -1063,7 +1100,7 @@ ion-ripple-effect {
1063
1100
  :host(.ion-focused:not(.ion-color)) ::slotted(.label-floating),
1064
1101
  :host(.item-has-focus:not(.ion-color)) ::slotted(.label-stacked),
1065
1102
  :host(.item-has-focus:not(.ion-color)) ::slotted(.label-floating) {
1066
- color: var(--ion-color-primary, #3880ff);
1103
+ color: var(--ion-color-primary, #0054e9);
1067
1104
  }
1068
1105
 
1069
1106
  :host(.ion-color) {
@@ -1080,9 +1117,9 @@ ion-ripple-effect {
1080
1117
  }
1081
1118
 
1082
1119
  :host(.item-fill-solid) {
1083
- --background: var(--ion-color-step-50, #f2f2f2);
1084
- --background-hover: var(--ion-color-step-100, #e6e6e6);
1085
- --background-focused: var(--ion-color-step-150, #d9d9d9);
1120
+ --background: var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));
1121
+ --background-hover: var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6));
1122
+ --background-focused: var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));
1086
1123
  --border-width: 0 0 1px 0;
1087
1124
  --inner-border-width: 0;
1088
1125
  border-top-left-radius: 4px;
@@ -1107,7 +1144,7 @@ ion-ripple-effect {
1107
1144
  }
1108
1145
 
1109
1146
  :host(.item-fill-solid) .item-native {
1110
- --border-color: var(--ion-color-step-500, gray);
1147
+ --border-color: var(--ion-color-step-500, var(--ion-background-color-step-500, gray));
1111
1148
  }
1112
1149
 
1113
1150
  :host(.item-fill-solid.ion-focused) .item-native,
@@ -1140,14 +1177,14 @@ ion-ripple-effect {
1140
1177
  @media (any-hover: hover) {
1141
1178
  :host(.item-fill-solid:hover) .item-native {
1142
1179
  --background: var(--background-hover);
1143
- --border-color: var(--ion-color-step-750, #404040);
1180
+ --border-color: var(--ion-color-step-750, var(--ion-background-color-step-750, #404040));
1144
1181
  }
1145
1182
  }
1146
1183
  :host(.item-fill-outline) {
1147
1184
  --ripple-color: transparent;
1148
1185
  --background-focused: transparent;
1149
1186
  --background-hover: transparent;
1150
- --border-color: var(--ion-color-step-500, gray);
1187
+ --border-color: var(--ion-color-step-500, var(--ion-background-color-step-500, gray));
1151
1188
  --border-width: 1px;
1152
1189
  border: none;
1153
1190
  overflow: visible;
@@ -1179,7 +1216,7 @@ ion-ripple-effect {
1179
1216
 
1180
1217
  @media (any-hover: hover) {
1181
1218
  :host(.item-fill-outline:hover) .item-native {
1182
- --border-color: var(--ion-color-step-750, #404040);
1219
+ --border-color: var(--ion-color-step-750, var(--ion-background-color-step-750, #404040));
1183
1220
  }
1184
1221
  }
1185
1222
  .item-counter {
@@ -280,8 +280,8 @@
280
280
  * }
281
281
  */
282
282
  :host {
283
- --background: var(--ion-color-step-100, #e6e6e6);
284
- --color: var(--ion-color-step-850, #262626);
283
+ --background: var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6));
284
+ --color: var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));
285
285
  --padding-start: 16px;
286
286
  --inner-padding-end: 8px;
287
287
  border-radius: 0;
@@ -281,11 +281,11 @@
281
281
  */
282
282
  :host {
283
283
  --background: var(--ion-background-color, #fff);
284
- --color: var(--ion-color-step-400, #999999);
284
+ --color: var(--ion-color-step-400, var(--ion-text-color-step-600, #999999));
285
285
  --padding-start: 16px;
286
286
  --inner-padding-end: 16px;
287
287
  min-height: 30px;
288
- border-bottom: 1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));
288
+ border-bottom: 1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));
289
289
  font-size: 0.875rem;
290
290
  }
291
291
 
@@ -409,7 +409,7 @@
409
409
  margin-right: 0;
410
410
  margin-top: 0;
411
411
  margin-bottom: 2px;
412
- color: var(--ion-color-step-600, #666666);
412
+ color: var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));
413
413
  font-size: 0.875rem;
414
414
  line-height: normal;
415
415
  text-overflow: inherit;
@@ -58,7 +58,7 @@
58
58
  * @prop --background: Background of the item option
59
59
  * @prop --color: Color of the item option
60
60
  */
61
- --background: var(--ion-color-primary, #3880ff);
61
+ --background: var(--ion-color-primary, #0054e9);
62
62
  --color: var(--ion-color-primary-contrast, #fff);
63
63
  background: var(--background);
64
64
  color: var(--color);
@@ -234,7 +234,7 @@
234
234
  }
235
235
 
236
236
  :host(.ion-activated) {
237
- background: var(--ion-color-primary-shade, #3171e0);
237
+ background: var(--ion-color-primary-shade, #004acd);
238
238
  }
239
239
 
240
240
  :host(.ion-color.ion-activated) {
@@ -58,7 +58,7 @@
58
58
  * @prop --background: Background of the item option
59
59
  * @prop --color: Color of the item option
60
60
  */
61
- --background: var(--ion-color-primary, #3880ff);
61
+ --background: var(--ion-color-primary, #0054e9);
62
62
  --color: var(--ion-color-primary-contrast, #fff);
63
63
  background: var(--background);
64
64
  color: var(--color);
@@ -271,7 +271,7 @@ ion-item-options {
271
271
  .item-options-ios {
272
272
  border-bottom-width: 0;
273
273
  border-bottom-style: solid;
274
- border-bottom-color: var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));
274
+ border-bottom-color: var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));
275
275
  }
276
276
  .item-options-ios.item-options-end {
277
277
  border-bottom-width: 0.55px;
@@ -271,7 +271,7 @@ ion-item-options {
271
271
  .item-options-md {
272
272
  border-bottom-width: 0;
273
273
  border-bottom-style: solid;
274
- border-bottom-color: var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));
274
+ border-bottom-color: var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));
275
275
  }
276
276
 
277
277
  .list-md-lines-none .item-options-md {
@@ -1,8 +1,36 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
+ import AxeBuilder from "@axe-core/playwright";
5
+ import { expect } from "@playwright/test";
4
6
  import { configs, test } from "../../../../utils/test/playwright/index";
5
7
  import { testSlidingItem } from "../test.utils";
8
+ configs({ directions: ['ltr'], themes: ['light', 'dark'] }).forEach(({ title, config }) => {
9
+ test.describe(title('item-sliding: a11y for ion-color()'), () => {
10
+ test('should not have accessibility violations', async ({ page }) => {
11
+ await page.setContent(`
12
+ <main>
13
+ <ion-item-sliding id="axe">
14
+ <ion-item>
15
+ <ion-label>Sliding Item with End Options</ion-label>
16
+ </ion-item>
17
+
18
+ <ion-item-options>
19
+ <ion-item-option>Favorite</ion-item-option>
20
+ <ion-item-option class="ion-activated">Activated</ion-item-option>
21
+ </ion-item-options>
22
+ </ion-item-sliding>
23
+ </main>
24
+ `, config);
25
+ await page.locator(`#axe`).evaluate(async (el) => {
26
+ await el.open('end');
27
+ });
28
+ await page.waitForChanges();
29
+ const results = await new AxeBuilder({ page }).analyze();
30
+ expect(results.violations).toEqual([]);
31
+ });
32
+ });
33
+ });
6
34
  /**
7
35
  * This behavior does not vary across directions
8
36
  */
@@ -348,7 +348,7 @@
348
348
  :host-context(.ion-focused).label-floating:not(.ion-color),
349
349
  :host-context(.item-has-focus).label-stacked:not(.ion-color),
350
350
  :host-context(.item-has-focus).label-floating:not(.ion-color) {
351
- color: var(--ion-color-primary, #3880ff);
351
+ color: var(--ion-color-primary, #0054e9);
352
352
  }
353
353
 
354
354
  :host-context(.ion-focused.ion-color).label-stacked:not(.ion-color),
@@ -417,7 +417,7 @@
417
417
  }
418
418
 
419
419
  ::slotted(p) {
420
- color: var(--ion-color-step-600, #666666);
420
+ color: var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));
421
421
  }
422
422
 
423
423
  :host(.in-item-color)::slotted(p) {
@@ -1,6 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
+ import AxeBuilder from "@axe-core/playwright";
4
5
  import { expect } from "@playwright/test";
5
6
  import { configs, test } from "../../../../utils/test/playwright/index";
6
7
  configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
@@ -64,6 +65,25 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
64
65
  });
65
66
  });
66
67
  });
68
+ configs({ directions: ['ltr'], modes: ['md'], themes: ['light', 'dark'] }).forEach(({ title, config }) => {
69
+ test.describe(title('label: a11y for ion-color()'), () => {
70
+ test('should not have accessibility violations when focused', async ({ page }) => {
71
+ /**
72
+ * All page content should be contained by landmarks (main, nav, etc.)
73
+ * By containing the badge in a main element, we can avoid this violation.
74
+ */
75
+ await page.setContent(`
76
+ <main>
77
+ <div class="ion-focused">
78
+ <ion-label position="stacked">Default Label</ion-label>
79
+ </div>
80
+ </main>
81
+ `, config);
82
+ const results = await new AxeBuilder({ page }).analyze();
83
+ expect(results.violations).toEqual([]);
84
+ });
85
+ });
86
+ });
67
87
  configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
68
88
  test.describe(title('label: text wrapping in item'), () => {
69
89
  test('long text should not cause label to expand infinitely', async ({ page }) => {
@@ -236,8 +236,8 @@
236
236
  */
237
237
  :host {
238
238
  --background: transparent;
239
- --color: var(--ion-color-step-850, #262626);
240
- --border-color: var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));
239
+ --color: var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));
240
+ --border-color: var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));
241
241
  /* stylelint-disable */
242
242
  padding-right: var(--ion-safe-area-right);
243
243
  padding-left: calc(var(--ion-safe-area-left, 0px) + 16px);
@@ -237,7 +237,7 @@
237
237
  :host {
238
238
  --background: transparent;
239
239
  --color: var(--ion-text-color, #000);
240
- --border-color: var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));
240
+ --border-color: var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));
241
241
  /* stylelint-disable */
242
242
  padding-right: var(--ion-safe-area-right);
243
243
  padding-left: calc(var(--ion-safe-area-left, 0px) + 16px);