@ionic/core 7.5.8-dev.11704294569.1abc989d → 7.5.8-dev.11705350665.1a40ee3a

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 (443) hide show
  1. package/components/action-sheet.js +1 -1
  2. package/components/alert.js +2 -2
  3. package/components/button.js +2 -2
  4. package/components/checkbox.js +2 -2
  5. package/components/data.js +1 -1
  6. package/components/index2.js +91 -0
  7. package/components/ion-back-button.js +1 -1
  8. package/components/ion-badge.js +2 -2
  9. package/components/ion-datetime.js +39 -30
  10. package/components/ion-fab-button.js +2 -2
  11. package/components/ion-input.js +2 -2
  12. package/components/ion-item-option.js +2 -2
  13. package/components/ion-loading.js +1 -1
  14. package/components/ion-menu-button.js +1 -1
  15. package/components/ion-picker-column-option.d.ts +11 -0
  16. package/components/ion-picker-column-option.js +9 -0
  17. package/components/ion-picker-column.js +2 -2
  18. package/components/ion-picker-legacy-column.d.ts +11 -0
  19. package/components/ion-picker-legacy-column.js +9 -0
  20. package/components/{ion-picker-internal.d.ts → ion-picker-legacy.d.ts} +4 -4
  21. package/components/ion-picker-legacy.js +309 -0
  22. package/components/ion-picker.js +1 -309
  23. package/components/ion-progress-bar.js +2 -2
  24. package/components/ion-range.js +2 -2
  25. package/components/ion-refresher-content.js +1 -1
  26. package/components/ion-refresher.js +1 -1
  27. package/components/ion-router-link.js +1 -1
  28. package/components/ion-searchbar.js +1 -1
  29. package/components/ion-segment-button.js +1 -1
  30. package/components/ion-select.js +2 -2
  31. package/components/ion-tab-bar.js +2 -2
  32. package/components/ion-textarea.js +2 -2
  33. package/components/ion-toast.js +2 -2
  34. package/components/ion-toggle.js +2 -2
  35. package/components/item.js +2 -2
  36. package/components/label.js +1 -1
  37. package/components/overlays.js +6 -3
  38. package/components/picker-column-option.js +122 -0
  39. package/components/picker-column.js +351 -322
  40. package/components/picker-column2.js +379 -0
  41. package/components/{picker-internal.js → picker.js} +29 -22
  42. package/components/radio.js +2 -2
  43. package/components/select-popover.js +1 -1
  44. package/css/core.css +44 -35
  45. package/css/core.css.map +1 -1
  46. package/css/global.bundle.css +1 -1
  47. package/css/ionic.bundle.css +1 -1
  48. package/css/ionic.bundle.css.map +1 -1
  49. package/css/typography.css +1 -1
  50. package/dist/cjs/{data-36b9094e.js → data-e7526b58.js} +1 -1
  51. package/dist/cjs/{index-d4c2e02c.js → index-ec51e99c.js} +93 -2
  52. package/dist/cjs/index.cjs.js +5 -5
  53. package/dist/cjs/ion-action-sheet.cjs.entry.js +2 -2
  54. package/dist/cjs/ion-alert.cjs.entry.js +3 -3
  55. package/dist/cjs/ion-app_8.cjs.entry.js +1 -1
  56. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  57. package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
  58. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  59. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
  60. package/dist/cjs/ion-datetime-button.cjs.entry.js +1 -1
  61. package/dist/cjs/ion-datetime_3.cjs.entry.js +30 -36
  62. package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
  63. package/dist/cjs/ion-input.cjs.entry.js +2 -2
  64. package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
  65. package/dist/cjs/ion-item_8.cjs.entry.js +3 -3
  66. package/dist/cjs/ion-loading.cjs.entry.js +2 -2
  67. package/dist/cjs/ion-menu_3.cjs.entry.js +2 -2
  68. package/dist/cjs/ion-modal.cjs.entry.js +2 -2
  69. package/dist/cjs/ion-nav_2.cjs.entry.js +2 -1
  70. package/dist/cjs/ion-picker-column-option.cjs.entry.js +104 -0
  71. package/dist/cjs/{ion-picker-column-internal.cjs.entry.js → ion-picker-column.cjs.entry.js} +104 -87
  72. package/dist/cjs/{ion-picker-internal.cjs.entry.js → ion-picker.cjs.entry.js} +26 -19
  73. package/dist/cjs/ion-popover.cjs.entry.js +2 -2
  74. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  75. package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
  76. package/dist/cjs/ion-range.cjs.entry.js +2 -2
  77. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  78. package/dist/cjs/ion-route_4.cjs.entry.js +1 -1
  79. package/dist/cjs/ion-searchbar.cjs.entry.js +1 -1
  80. package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
  81. package/dist/cjs/ion-select_3.cjs.entry.js +4 -4
  82. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
  83. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  84. package/dist/cjs/ion-toast.cjs.entry.js +3 -3
  85. package/dist/cjs/ion-toggle.cjs.entry.js +2 -2
  86. package/dist/cjs/ionic.cjs.js +1 -1
  87. package/dist/cjs/{ios.transition-a4ffb5a2.js → ios.transition-039d6aeb.js} +3 -1
  88. package/dist/cjs/loader.cjs.js +1 -1
  89. package/dist/cjs/{md.transition-292abe1c.js → md.transition-ce763350.js} +3 -1
  90. package/dist/cjs/{overlays-2c6b1072.js → overlays-e8e05b0e.js} +6 -3
  91. package/dist/collection/collection-manifest.json +7 -6
  92. package/dist/collection/components/action-sheet/action-sheet.ios.css +3 -3
  93. package/dist/collection/components/action-sheet/test/a11y/action-sheet.e2e.js +14 -23
  94. package/dist/collection/components/alert/alert.ios.css +6 -6
  95. package/dist/collection/components/alert/alert.md.css +6 -6
  96. package/dist/collection/components/alert/test/a11y/alert.e2e.js +9 -22
  97. package/dist/collection/components/back-button/back-button.ios.css +1 -1
  98. package/dist/collection/components/back-button/test/a11y/back-button.e2e.js +0 -21
  99. package/dist/collection/components/badge/badge.ios.css +1 -1
  100. package/dist/collection/components/badge/badge.md.css +1 -1
  101. package/dist/collection/components/badge/test/a11y/badge.e2e.js +0 -18
  102. package/dist/collection/components/button/button.ios.css +11 -11
  103. package/dist/collection/components/button/button.md.css +9 -9
  104. package/dist/collection/components/button/test/a11y/button.e2e.js +0 -48
  105. package/dist/collection/components/button/test/wrap/button.e2e.js +12 -24
  106. package/dist/collection/components/checkbox/checkbox.ios.css +2 -2
  107. package/dist/collection/components/checkbox/checkbox.md.css +2 -2
  108. package/dist/collection/components/checkbox/test/a11y/checkbox.e2e.js +2 -11
  109. package/dist/collection/components/datetime/datetime.ios.css +8 -13
  110. package/dist/collection/components/datetime/datetime.js +19 -16
  111. package/dist/collection/components/datetime/datetime.md.css +8 -13
  112. package/dist/collection/components/datetime/test/datetime.e2e.js +2 -2
  113. package/dist/collection/components/datetime/test/disabled/datetime.spec.js +4 -4
  114. package/dist/collection/components/datetime/test/locale/datetime.e2e.js +2 -2
  115. package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +6 -6
  116. package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +43 -41
  117. package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +1 -1
  118. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +2 -2
  119. package/dist/collection/components/datetime/test/values/datetime.e2e.js +15 -12
  120. package/dist/collection/components/datetime/utils/data.js +1 -1
  121. package/dist/collection/components/fab-button/fab-button.ios.css +13 -13
  122. package/dist/collection/components/fab-button/fab-button.md.css +4 -4
  123. package/dist/collection/components/fab-button/test/a11y/fab-button.e2e.js +0 -50
  124. package/dist/collection/components/input/input.ios.css +3 -3
  125. package/dist/collection/components/input/input.md.css +3 -3
  126. package/dist/collection/components/input/test/a11y/input.e2e.js +3 -35
  127. package/dist/collection/components/item/item.ios.css +3 -3
  128. package/dist/collection/components/item/item.md.css +4 -4
  129. package/dist/collection/components/item-option/item-option.ios.css +2 -2
  130. package/dist/collection/components/item-option/item-option.md.css +1 -1
  131. package/dist/collection/components/item-sliding/test/a11y/item-sliding.e2e.js +0 -28
  132. package/dist/collection/components/label/label.md.css +1 -1
  133. package/dist/collection/components/label/test/a11y/label.e2e.js +0 -20
  134. package/dist/collection/components/loading/loading.md.css +1 -1
  135. package/dist/collection/components/loading/test/a11y/loading.e2e.js +5 -21
  136. package/dist/collection/components/menu-button/menu-button.ios.css +1 -1
  137. package/dist/collection/components/menu-button/test/a11y/menu-button.e2e.js +0 -14
  138. package/dist/collection/components/picker/picker.ios.css +112 -211
  139. package/dist/collection/components/picker/picker.js +472 -744
  140. package/dist/collection/components/picker/picker.md.css +108 -198
  141. package/dist/collection/components/picker/test/a11y/picker.e2e.js +15 -0
  142. package/dist/collection/components/picker/test/basic/picker.e2e.js +99 -13
  143. package/dist/collection/components/picker/test/custom/picker.e2e.js +85 -0
  144. package/dist/collection/components/{picker-internal/test/keyboard-entry/picker-internal.e2e.js → picker/test/keyboard-entry/picker.e2e.js} +63 -32
  145. package/dist/collection/components/{picker-column-internal/picker-column-internal.md.css → picker-column/picker-column.css} +96 -83
  146. package/dist/collection/components/picker-column/picker-column.js +497 -335
  147. package/dist/collection/components/{picker-column-internal/test/basic/picker-column-internal.e2e.js → picker-column/test/basic/picker-column.e2e.js} +8 -8
  148. package/dist/collection/components/picker-column/test/disabled/picker-column.e2e.js +91 -0
  149. package/dist/collection/components/picker-column/test/slots/picker-column.e2e.js +39 -0
  150. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +87 -0
  151. package/dist/collection/components/picker-column-option/picker-column-option.js +173 -0
  152. package/dist/collection/components/{picker-column-internal/picker-column-internal.ios.css → picker-column-option/picker-column-option.md.css} +6 -53
  153. package/dist/collection/components/picker-column-option/test/a11y/picker-column-option.e2e.js +18 -0
  154. package/dist/collection/components/picker-column-option/test/basic/picker-column-option.e2e.js +37 -0
  155. package/dist/collection/components/picker-column-option/test/picker-column-option.spec.js +29 -0
  156. package/dist/collection/components/{picker-internal/picker-internal.md.css → picker-legacy/picker.ios.css} +207 -98
  157. package/dist/collection/components/picker-legacy/picker.js +817 -0
  158. package/dist/collection/components/{picker-internal/picker-internal.ios.css → picker-legacy/picker.md.css} +192 -100
  159. package/dist/collection/components/picker-legacy/test/basic/picker.e2e.js +25 -0
  160. package/dist/collection/components/{picker → picker-legacy}/test/is-open/picker.e2e.js +4 -4
  161. package/dist/collection/components/{picker → picker-legacy}/test/picker-id.spec.js +5 -5
  162. package/dist/collection/components/{picker → picker-legacy}/test/trigger/picker.e2e.js +1 -1
  163. package/dist/collection/components/picker-legacy-column/picker-column.js +419 -0
  164. package/dist/collection/components/{picker-column → picker-legacy-column}/picker-column.md.css +1 -1
  165. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-aria.spec.js +3 -3
  166. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-dynamic.spec.js +2 -2
  167. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column.spec.js +2 -2
  168. package/dist/collection/components/{picker-column → picker-legacy-column}/test/standalone/picker-column.e2e.js +3 -3
  169. package/dist/collection/components/progress-bar/progress-bar.ios.css +2 -2
  170. package/dist/collection/components/progress-bar/progress-bar.md.css +2 -2
  171. package/dist/collection/components/radio/radio.ios.css +2 -2
  172. package/dist/collection/components/radio/radio.md.css +2 -2
  173. package/dist/collection/components/radio/test/a11y/radio.e2e.js +6 -44
  174. package/dist/collection/components/range/range.ios.css +1 -1
  175. package/dist/collection/components/range/range.md.css +3 -3
  176. package/dist/collection/components/range/test/a11y/range.e2e.js +8 -18
  177. package/dist/collection/components/refresher/refresher.md.css +2 -2
  178. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  179. package/dist/collection/components/router-link/router-link.css +1 -1
  180. package/dist/collection/components/searchbar/searchbar.ios.css +1 -1
  181. package/dist/collection/components/segment/test/a11y/segment.e2e.js +0 -23
  182. package/dist/collection/components/segment-button/segment-button.md.css +2 -2
  183. package/dist/collection/components/select/select.ios.css +3 -3
  184. package/dist/collection/components/select/select.md.css +3 -3
  185. package/dist/collection/components/select/test/a11y/select.e2e.js +4 -59
  186. package/dist/collection/components/select-popover/select-popover.md.css +4 -4
  187. package/dist/collection/components/tab-bar/tab-bar.ios.css +1 -1
  188. package/dist/collection/components/tab-bar/tab-bar.md.css +1 -1
  189. package/dist/collection/components/textarea/test/a11y/textarea.e2e.js +3 -35
  190. package/dist/collection/components/textarea/textarea.ios.css +3 -3
  191. package/dist/collection/components/textarea/textarea.md.css +3 -3
  192. package/dist/collection/components/toast/test/a11y/toast.e2e.js +24 -56
  193. package/dist/collection/components/toast/toast.ios.css +1 -1
  194. package/dist/collection/components/toast/toast.md.css +2 -2
  195. package/dist/collection/components/toggle/test/a11y/toggle.e2e.js +2 -8
  196. package/dist/collection/components/toggle/toggle.ios.css +1 -1
  197. package/dist/collection/components/toggle/toggle.md.css +2 -2
  198. package/dist/collection/css/test/a11y/typography.e2e.js +0 -18
  199. package/dist/collection/utils/overlays.js +6 -3
  200. package/dist/collection/utils/test/playwright/generator.js +0 -1
  201. package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
  202. package/dist/collection/utils/transition/index.js +91 -0
  203. package/dist/docs.json +472 -24
  204. package/dist/esm/{data-f5c75b4e.js → data-4b9508c9.js} +1 -1
  205. package/dist/esm/{index-d8817fb0.js → index-933484ae.js} +93 -2
  206. package/dist/esm/index.js +5 -5
  207. package/dist/esm/ion-action-sheet.entry.js +2 -2
  208. package/dist/esm/ion-alert.entry.js +3 -3
  209. package/dist/esm/ion-app_8.entry.js +1 -1
  210. package/dist/esm/ion-avatar_3.entry.js +2 -2
  211. package/dist/esm/ion-back-button.entry.js +1 -1
  212. package/dist/esm/ion-button_2.entry.js +2 -2
  213. package/dist/esm/ion-checkbox.entry.js +2 -2
  214. package/dist/esm/ion-datetime-button.entry.js +1 -1
  215. package/dist/esm/ion-datetime_3.entry.js +29 -35
  216. package/dist/esm/ion-fab_3.entry.js +2 -2
  217. package/dist/esm/ion-input.entry.js +2 -2
  218. package/dist/esm/ion-item-option_3.entry.js +2 -2
  219. package/dist/esm/ion-item_8.entry.js +3 -3
  220. package/dist/esm/ion-loading.entry.js +2 -2
  221. package/dist/esm/ion-menu_3.entry.js +2 -2
  222. package/dist/esm/ion-modal.entry.js +2 -2
  223. package/dist/esm/ion-nav_2.entry.js +2 -1
  224. package/dist/esm/ion-picker-column-option.entry.js +100 -0
  225. package/dist/esm/{ion-picker-column-internal.entry.js → ion-picker-column.entry.js} +104 -87
  226. package/dist/esm/{ion-picker-internal.entry.js → ion-picker.entry.js} +26 -19
  227. package/dist/esm/ion-popover.entry.js +2 -2
  228. package/dist/esm/ion-progress-bar.entry.js +2 -2
  229. package/dist/esm/ion-radio_2.entry.js +2 -2
  230. package/dist/esm/ion-range.entry.js +2 -2
  231. package/dist/esm/ion-refresher_2.entry.js +2 -2
  232. package/dist/esm/ion-route_4.entry.js +1 -1
  233. package/dist/esm/ion-searchbar.entry.js +1 -1
  234. package/dist/esm/ion-segment_2.entry.js +1 -1
  235. package/dist/esm/ion-select_3.entry.js +4 -4
  236. package/dist/esm/ion-tab-bar_2.entry.js +2 -2
  237. package/dist/esm/ion-textarea.entry.js +2 -2
  238. package/dist/esm/ion-toast.entry.js +3 -3
  239. package/dist/esm/ion-toggle.entry.js +2 -2
  240. package/dist/esm/ionic.js +1 -1
  241. package/dist/esm/{ios.transition-fd16bec1.js → ios.transition-9e42996d.js} +3 -1
  242. package/dist/esm/loader.js +1 -1
  243. package/dist/esm/{md.transition-94ac93e1.js → md.transition-8cbb4e1d.js} +3 -1
  244. package/dist/esm/{overlays-d23ea6e1.js → overlays-fbc5cab5.js} +6 -3
  245. package/dist/esm-es5/index-933484ae.js +4 -0
  246. package/dist/esm-es5/index.js +1 -1
  247. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  248. package/dist/esm-es5/ion-alert.entry.js +1 -1
  249. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  250. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  251. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  252. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  253. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  254. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  255. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  256. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  257. package/dist/esm-es5/ion-input.entry.js +1 -1
  258. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  259. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  260. package/dist/esm-es5/ion-loading.entry.js +1 -1
  261. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  262. package/dist/esm-es5/ion-modal.entry.js +1 -1
  263. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  264. package/dist/esm-es5/ion-picker-column-option.entry.js +4 -0
  265. package/dist/esm-es5/ion-picker-column.entry.js +4 -0
  266. package/dist/esm-es5/ion-picker.entry.js +4 -0
  267. package/dist/esm-es5/ion-popover.entry.js +1 -1
  268. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  269. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  270. package/dist/esm-es5/ion-range.entry.js +1 -1
  271. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  272. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  273. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  274. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  275. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  276. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  277. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  278. package/dist/esm-es5/ion-toast.entry.js +1 -1
  279. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  280. package/dist/esm-es5/ionic.js +1 -1
  281. package/dist/esm-es5/ios.transition-9e42996d.js +4 -0
  282. package/dist/esm-es5/loader.js +1 -1
  283. package/dist/esm-es5/md.transition-8cbb4e1d.js +4 -0
  284. package/dist/esm-es5/overlays-fbc5cab5.js +4 -0
  285. package/dist/html.html-data.json +152 -1
  286. package/dist/ionic/index.esm.js +1 -1
  287. package/dist/ionic/ionic.esm.js +1 -1
  288. package/dist/ionic/{p-fff7a57e.system.js → p-16bd5224.system.js} +1 -1
  289. package/dist/ionic/p-17da5ed1.entry.js +4 -0
  290. package/dist/ionic/{p-be6344dd.entry.js → p-18ba8221.entry.js} +1 -1
  291. package/dist/ionic/{p-29bf41bd.entry.js → p-21c3515a.entry.js} +1 -1
  292. package/dist/ionic/{p-1de103b7.entry.js → p-22e5af95.entry.js} +1 -1
  293. package/dist/ionic/{p-02e066a0.entry.js → p-232d1f22.entry.js} +1 -1
  294. package/dist/ionic/{p-8e086176.system.entry.js → p-26798a7b.system.entry.js} +1 -1
  295. package/dist/ionic/{p-b1a2a195.system.entry.js → p-27bcbbc7.system.entry.js} +1 -1
  296. package/dist/ionic/p-294725bb.js +4 -0
  297. package/dist/ionic/{p-6f96f7b1.system.entry.js → p-2ab4e925.system.entry.js} +1 -1
  298. package/dist/ionic/{p-98c798de.system.entry.js → p-32303650.system.entry.js} +1 -1
  299. package/dist/ionic/{p-1286049a.entry.js → p-34c39c48.entry.js} +1 -1
  300. package/dist/ionic/p-36d194c5.entry.js +4 -0
  301. package/dist/ionic/p-3993ae66.entry.js +4 -0
  302. package/dist/ionic/{p-55a0cd33.entry.js → p-3f6270b3.entry.js} +1 -1
  303. package/dist/ionic/{p-0339b688.system.entry.js → p-3fd26bd6.system.entry.js} +1 -1
  304. package/dist/ionic/p-400b61c7.system.entry.js +4 -0
  305. package/dist/ionic/{p-d51019a8.entry.js → p-42ba3902.entry.js} +1 -1
  306. package/dist/ionic/{p-ed25b7cc.system.entry.js → p-464975c5.system.entry.js} +1 -1
  307. package/dist/ionic/{p-023b1cf4.entry.js → p-4911a5d6.entry.js} +1 -1
  308. package/dist/ionic/p-49c5f1a3.js +4 -0
  309. package/dist/ionic/{p-7c7e21a7.entry.js → p-4a31c99f.entry.js} +1 -1
  310. package/dist/ionic/{p-7a63e024.entry.js → p-4bee86bd.entry.js} +1 -1
  311. package/dist/ionic/p-510d9b43.js +4 -0
  312. package/dist/ionic/{p-0ebcff25.entry.js → p-51a087d6.entry.js} +1 -1
  313. package/dist/ionic/p-5a1aac13.system.entry.js +4 -0
  314. package/dist/ionic/{p-12869199.system.entry.js → p-5bebc7b3.system.entry.js} +1 -1
  315. package/dist/ionic/{p-5b834053.entry.js → p-5d42b6b4.entry.js} +1 -1
  316. package/dist/ionic/{p-2f2293da.system.entry.js → p-6555a5e7.system.entry.js} +1 -1
  317. package/dist/ionic/{p-60b386c9.system.entry.js → p-65e27aae.system.entry.js} +1 -1
  318. package/dist/ionic/{p-cef8c5c2.entry.js → p-6b7c55cd.entry.js} +1 -1
  319. package/dist/ionic/{p-0941a5d7.entry.js → p-6d72fb44.entry.js} +1 -1
  320. package/dist/ionic/p-6e70dd1a.system.entry.js +4 -0
  321. package/dist/ionic/{p-d1025b3d.entry.js → p-6fbecbda.entry.js} +1 -1
  322. package/dist/ionic/{p-ad8bed54.system.entry.js → p-6fd64e7c.system.entry.js} +1 -1
  323. package/dist/ionic/{p-0afef6b9.entry.js → p-73190c5f.entry.js} +1 -1
  324. package/dist/ionic/{p-c7c7c110.entry.js → p-73aa7604.entry.js} +1 -1
  325. package/dist/ionic/{p-5b20db28.entry.js → p-7b725280.entry.js} +1 -1
  326. package/dist/ionic/{p-de74582b.system.entry.js → p-8017aad2.system.entry.js} +1 -1
  327. package/dist/ionic/{p-3b568d18.entry.js → p-8adc9a45.entry.js} +1 -1
  328. package/dist/ionic/p-8c0e5060.system.js +4 -0
  329. package/dist/ionic/p-8e42850f.entry.js +4 -0
  330. package/dist/ionic/{p-5fbfa8c9.entry.js → p-8f5d30f5.entry.js} +1 -1
  331. package/dist/ionic/p-8fa6583d.system.js +4 -0
  332. package/dist/ionic/p-91af3c52.system.entry.js +4 -0
  333. package/dist/ionic/{p-3e625023.system.entry.js → p-93000a81.system.entry.js} +1 -1
  334. package/dist/ionic/{p-90483001.system.entry.js → p-96dbbac1.system.entry.js} +1 -1
  335. package/dist/ionic/p-9e48593b.system.js +4 -0
  336. package/dist/ionic/{p-a8e90d15.system.entry.js → p-a225bf0f.system.entry.js} +1 -1
  337. package/dist/ionic/{p-57798ba6.entry.js → p-a8baa23e.entry.js} +1 -1
  338. package/dist/ionic/{p-bcd073dd.entry.js → p-a98dc0c1.entry.js} +1 -1
  339. package/dist/ionic/{p-9588396d.entry.js → p-a9a80f5b.entry.js} +1 -1
  340. package/dist/ionic/{p-098f4d12.system.entry.js → p-ab9456e9.system.entry.js} +1 -1
  341. package/dist/ionic/{p-ebcf6eca.entry.js → p-ae712b95.entry.js} +1 -1
  342. package/dist/ionic/p-afcf4620.entry.js +4 -0
  343. package/dist/ionic/{p-ddb30596.entry.js → p-b133e9b4.entry.js} +1 -1
  344. package/dist/ionic/{p-d32188f3.system.entry.js → p-b4d31b30.system.entry.js} +1 -1
  345. package/dist/ionic/p-b7010c69.system.entry.js +4 -0
  346. package/dist/ionic/{p-7828a27f.system.entry.js → p-b752714f.system.entry.js} +1 -1
  347. package/dist/ionic/p-c006d974.entry.js +4 -0
  348. package/dist/ionic/{p-ec040c06.system.entry.js → p-c18de88a.system.entry.js} +1 -1
  349. package/dist/ionic/p-c41bff4e.system.entry.js +4 -0
  350. package/dist/ionic/{p-76c94634.system.entry.js → p-c9a21dfd.system.entry.js} +1 -1
  351. package/dist/ionic/p-ca8938f4.js +4 -0
  352. package/dist/ionic/p-cde52378.system.entry.js +4 -0
  353. package/dist/ionic/{p-1e57bd24.entry.js → p-d3c773d0.entry.js} +1 -1
  354. package/dist/ionic/p-d9ec6cf0.system.js +4 -0
  355. package/dist/ionic/p-e3584231.system.js +1 -1
  356. package/dist/ionic/{p-f957d584.system.entry.js → p-e7ea9815.system.entry.js} +1 -1
  357. package/dist/ionic/{p-93f25d0d.system.entry.js → p-e8e86f69.system.entry.js} +1 -1
  358. package/dist/ionic/{p-31cf9613.entry.js → p-ea69616e.entry.js} +1 -1
  359. package/dist/ionic/{p-d39db09e.system.entry.js → p-ef126ae8.system.entry.js} +1 -1
  360. package/dist/ionic/{p-5ff60387.system.entry.js → p-f6160677.system.entry.js} +1 -1
  361. package/dist/ionic/{p-9eec42cc.system.entry.js → p-f910cc73.system.entry.js} +1 -1
  362. package/dist/ionic/{p-193ff029.system.entry.js → p-fbf3a689.system.entry.js} +1 -1
  363. package/dist/ionic/p-ffd5dba4.system.entry.js +4 -0
  364. package/dist/types/components/datetime/utils/data.d.ts +11 -7
  365. package/dist/types/components/picker/picker-interfaces.d.ts +8 -0
  366. package/dist/types/components/picker/picker.d.ts +75 -129
  367. package/dist/types/components/picker-column/picker-column-interfaces.d.ts +4 -0
  368. package/dist/types/components/picker-column/picker-column.d.ts +99 -39
  369. package/dist/types/components/picker-column-option/picker-column-option.d.ts +66 -0
  370. package/dist/types/components/picker-legacy/picker.d.ts +158 -0
  371. package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
  372. package/dist/types/components.d.ts +154 -122
  373. package/dist/types/interface.d.ts +1 -1
  374. package/dist/types/utils/config.d.ts +8 -2
  375. package/dist/types/utils/overlays.d.ts +5 -2
  376. package/hydrate/index.js +1617 -1404
  377. package/package.json +1 -1
  378. package/components/ion-picker-column-internal.d.ts +0 -11
  379. package/components/ion-picker-column-internal.js +0 -9
  380. package/components/ion-picker-internal.js +0 -9
  381. package/components/picker-column-internal.js +0 -390
  382. package/css/themes/dark.always.css +0 -122
  383. package/css/themes/dark.always.css.map +0 -1
  384. package/css/themes/dark.class.css +0 -122
  385. package/css/themes/dark.class.css.map +0 -1
  386. package/css/themes/dark.css +0 -3
  387. package/css/themes/dark.css.map +0 -1
  388. package/css/themes/dark.system.css +0 -124
  389. package/css/themes/dark.system.css.map +0 -1
  390. package/dist/collection/components/picker-column-internal/picker-column-internal.js +0 -565
  391. package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +0 -162
  392. package/dist/collection/components/picker-internal/picker-internal.js +0 -544
  393. package/dist/collection/components/picker-internal/test/a11y/picker-internal.e2e.js +0 -31
  394. package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +0 -118
  395. package/dist/collection/components/progress-bar/test/a11y/progress-bar.e2e.js +0 -24
  396. package/dist/collection/components/refresher/test/a11y/refresher.e2e.js +0 -25
  397. package/dist/collection/components/router-link/test/a11y/router-link.e2e.js +0 -23
  398. package/dist/collection/components/select-popover/test/a11y/select-popover.e2e.js +0 -32
  399. package/dist/collection/themes/test/colors/theme.e2e.js +0 -114
  400. package/dist/esm-es5/index-d8817fb0.js +0 -4
  401. package/dist/esm-es5/ion-picker-column-internal.entry.js +0 -4
  402. package/dist/esm-es5/ion-picker-internal.entry.js +0 -4
  403. package/dist/esm-es5/ios.transition-fd16bec1.js +0 -4
  404. package/dist/esm-es5/md.transition-94ac93e1.js +0 -4
  405. package/dist/esm-es5/overlays-d23ea6e1.js +0 -4
  406. package/dist/ionic/p-2dd0355d.system.entry.js +0 -4
  407. package/dist/ionic/p-30029cc2.system.js +0 -4
  408. package/dist/ionic/p-31158892.js +0 -4
  409. package/dist/ionic/p-3e13501a.system.entry.js +0 -4
  410. package/dist/ionic/p-4890093d.js +0 -4
  411. package/dist/ionic/p-535d2a67.entry.js +0 -4
  412. package/dist/ionic/p-57477107.system.js +0 -4
  413. package/dist/ionic/p-67da080d.entry.js +0 -4
  414. package/dist/ionic/p-73ea8f82.system.entry.js +0 -4
  415. package/dist/ionic/p-80fa068e.entry.js +0 -4
  416. package/dist/ionic/p-9c229210.system.entry.js +0 -4
  417. package/dist/ionic/p-9eae578e.system.entry.js +0 -4
  418. package/dist/ionic/p-ab11130c.system.js +0 -4
  419. package/dist/ionic/p-c14f8ac8.js +0 -4
  420. package/dist/ionic/p-c9e07b2f.entry.js +0 -4
  421. package/dist/ionic/p-ccc2fb62.system.entry.js +0 -4
  422. package/dist/ionic/p-cce9f61a.system.entry.js +0 -4
  423. package/dist/ionic/p-d7e9a0ac.entry.js +0 -4
  424. package/dist/ionic/p-e4d90573.js +0 -4
  425. package/dist/ionic/p-f7a36cd0.system.js +0 -4
  426. package/dist/types/components/picker-column-internal/picker-column-internal-interfaces.d.ts +0 -5
  427. package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +0 -102
  428. package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +0 -8
  429. package/dist/types/components/picker-internal/picker-internal.d.ts +0 -102
  430. /package/dist/collection/components/{picker-internal/picker-internal-interfaces.js → picker/picker-interfaces.js} +0 -0
  431. /package/dist/collection/components/{picker-column-internal/picker-column-internal-interfaces.js → picker-column/picker-column-interfaces.js} +0 -0
  432. /package/dist/collection/components/{picker → picker-legacy}/animations/ios.enter.js +0 -0
  433. /package/dist/collection/components/{picker → picker-legacy}/animations/ios.leave.js +0 -0
  434. /package/dist/collection/components/{picker → picker-legacy}/picker-interface.js +0 -0
  435. /package/dist/collection/components/{picker-column → picker-legacy-column}/picker-column.ios.css +0 -0
  436. /package/dist/collection/components/{picker-column → picker-legacy-column}/test/test.utils.js +0 -0
  437. /package/dist/esm-es5/{data-f5c75b4e.js → data-4b9508c9.js} +0 -0
  438. /package/dist/ionic/{p-2aea8b1e.js → p-368f5215.js} +0 -0
  439. /package/dist/ionic/{p-82e3d633.system.js → p-f58981c2.system.js} +0 -0
  440. /package/dist/types/components/{picker → picker-legacy}/animations/ios.enter.d.ts +0 -0
  441. /package/dist/types/components/{picker → picker-legacy}/animations/ios.leave.d.ts +0 -0
  442. /package/dist/types/components/{picker → picker-legacy}/picker-interface.d.ts +0 -0
  443. /package/dist/types/components/{picker-column → picker-legacy-column}/test/test.utils.d.ts +0 -0
@@ -22,28 +22,28 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
22
22
  await page.setContent(`
23
23
  <ion-datetime locale="en-US" presentation="month-year" month-values="5,6,10"></ion-datetime>
24
24
  `, config);
25
- const items = page.locator('.month-column .picker-item:not(.picker-item-empty)');
25
+ const items = page.locator('.month-column ion-picker-column-option');
26
26
  await expect(items).toHaveText(['May', 'June', 'October']);
27
27
  });
28
28
  test('should render correct years', async ({ page }) => {
29
29
  await page.setContent(`
30
30
  <ion-datetime locale="en-US" presentation="month-year" year-values="2022,2021,2020"></ion-datetime>
31
31
  `, config);
32
- const items = page.locator('.year-column .picker-item:not(.picker-item-empty)');
32
+ const items = page.locator('.year-column ion-picker-column-option');
33
33
  await expect(items).toHaveText(['2022', '2021', '2020']);
34
34
  });
35
35
  test('should render correct hours', async ({ page }) => {
36
36
  await page.setContent(`
37
37
  <ion-datetime locale="en-US" presentation="time" hour-values="1,2,3"></ion-datetime>
38
38
  `, config);
39
- const items = page.locator('ion-picker-column-internal:first-of-type .picker-item:not(.picker-item-empty)');
39
+ const items = page.locator('ion-picker-column:first-of-type ion-picker-column-option');
40
40
  await expect(items).toHaveText(['1', '2', '3']);
41
41
  });
42
42
  test('should render correct minutes', async ({ page }) => {
43
43
  await page.setContent(`
44
44
  <ion-datetime locale="en-US" presentation="time" minute-values="1,2,3"></ion-datetime>
45
45
  `, config);
46
- const items = page.locator('ion-picker-column-internal:nth-of-type(2) .picker-item:not(.picker-item-empty)');
46
+ const items = page.locator('ion-picker-column:nth-of-type(2) ion-picker-column-option');
47
47
  await expect(items).toHaveText(['01', '02', '03']);
48
48
  });
49
49
  test('should adjust default parts for allowed hour and minute values', async ({ page }) => {
@@ -69,19 +69,22 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
69
69
  </script>
70
70
  `, config);
71
71
  await page.waitForSelector('.datetime-ready');
72
- const minuteItems = page.locator('ion-picker-column-internal:nth-of-type(2) .picker-item:not(.picker-item-empty)');
72
+ const minuteColumn = page.locator('ion-picker-column').nth(1);
73
+ const minuteItems = minuteColumn.locator('ion-picker-column-option');
73
74
  await expect(minuteItems).toHaveText(['00', '15', '30', '45']);
74
- await expect(minuteItems.nth(1)).toHaveClass(/picker-item-active/);
75
- const hourItems = page.locator('ion-picker-column-internal:nth-of-type(1) .picker-item:not(.picker-item-empty)');
75
+ await expect(minuteColumn).toHaveJSProperty('value', 15);
76
+ const hourColumn = page.locator('ion-picker-column').nth(0);
77
+ const hourItems = hourColumn.locator('ion-picker-column-option');
76
78
  await expect(hourItems).toHaveText(['2']);
77
- await expect(hourItems.nth(0)).toHaveClass(/picker-item-active/);
79
+ await expect(hourColumn).toHaveJSProperty('value', 2);
78
80
  /**
79
81
  * Since the allowed hour is 2AM, the time period
80
82
  * should switch from PM to AM.
81
83
  */
82
- const ampmItems = page.locator('ion-picker-column-internal:nth-of-type(3) .picker-item:not(.picker-item-empty)');
84
+ const ampmColumn = page.locator('ion-picker-column').nth(2);
85
+ const ampmItems = ampmColumn.locator('ion-picker-column-option');
83
86
  await expect(ampmItems).toHaveText(['AM', 'PM']);
84
- await expect(ampmItems.nth(0)).toHaveClass(/picker-item-active/);
87
+ await expect(ampmColumn).toHaveJSProperty('value', 'am');
85
88
  });
86
89
  test('should adjust default parts month for allowed month values', async ({ page }) => {
87
90
  /**
@@ -106,9 +109,9 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
106
109
  </script>
107
110
  `, config);
108
111
  await page.waitForSelector('.datetime-ready');
109
- const monthItems = page.locator('.month-column .picker-item:not(.picker-item-empty)');
112
+ const monthItems = page.locator('.month-column ion-picker-column-option');
110
113
  await expect(monthItems).toHaveText(['January']);
111
- await expect(monthItems.nth(0)).toHaveClass(/picker-item-active/);
114
+ await expect(monthItems.nth(0)).toHaveClass(/option-active/);
112
115
  });
113
116
  test('today date highlight should persist even if disallowed from dayValues', async ({ page }) => {
114
117
  /**
@@ -323,7 +323,7 @@ export const getMonthColumnData = (locale, refParts, minParts, maxParts, monthVa
323
323
  * @param minParts The minimum bound on the date that can be returned
324
324
  * @param maxParts The maximum bound on the date that can be returned
325
325
  * @param dayValues The allowed date values
326
- * @returns Date data to be used in ion-picker-column-internal
326
+ * @returns Date data to be used in ion-picker-column
327
327
  */
328
328
  export const getDayColumnData = (locale, refParts, minParts, maxParts, dayValues, formatOptions = {
329
329
  day: 'numeric',
@@ -334,10 +334,10 @@ ion-ripple-effect {
334
334
  * }
335
335
  */
336
336
  :host {
337
- --background: var(--ion-color-primary, #0054e9);
338
- --background-activated: var(--ion-color-primary-shade, #004acd);
339
- --background-focused: var(--ion-color-primary-shade, #004acd);
340
- --background-hover: var(--ion-color-primary-tint, #1a65eb);
337
+ --background: var(--ion-color-primary, #3880ff);
338
+ --background-activated: var(--ion-color-primary-shade, #3171e0);
339
+ --background-focused: var(--ion-color-primary-shade, #3171e0);
340
+ --background-hover: var(--ion-color-primary-tint, #4c8dff);
341
341
  --background-activated-opacity: 1;
342
342
  --background-focused-opacity: 1;
343
343
  --background-hover-opacity: 1;
@@ -358,10 +358,10 @@ ion-ripple-effect {
358
358
  }
359
359
 
360
360
  :host(.fab-button-in-list) {
361
- --background: var(--ion-color-light, #f6f8fc);
362
- --background-activated: var(--ion-color-light-shade, #d8dade);
361
+ --background: var(--ion-color-light, #f4f5f8);
362
+ --background-activated: var(--ion-color-light-shade, #d7d8da);
363
363
  --background-focused: var(--background-activated);
364
- --background-hover: var(--ion-color-light-tint, #f7f9fc);
364
+ --background-hover: var(--ion-color-light-tint, #f5f6f9);
365
365
  --color: var(--ion-color-light-contrast, #000);
366
366
  --color-activated: var(--ion-color-light-contrast, #000);
367
367
  --color-focused: var(--color-activated);
@@ -395,15 +395,15 @@ ion-ripple-effect {
395
395
  }
396
396
  @supports (backdrop-filter: blur(0)) {
397
397
  :host(.fab-button-translucent) {
398
- --background: rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.9);
399
- --background-hover: rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.8);
400
- --background-focused: rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.82);
398
+ --background: rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.9);
399
+ --background-hover: rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.8);
400
+ --background-focused: rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.82);
401
401
  --backdrop-filter: saturate(180%) blur(20px);
402
402
  }
403
403
  :host(.fab-button-translucent-in-list) {
404
- --background: rgba(var(--ion-color-light-rgb, 246, 248, 252), 0.9);
405
- --background-hover: rgba(var(--ion-color-light-rgb, 246, 248, 252), 0.8);
406
- --background-focused: rgba(var(--ion-color-light-rgb, 246, 248, 252), 0.82);
404
+ --background: rgba(var(--ion-color-light-rgb, 244, 245, 248), 0.9);
405
+ --background-hover: rgba(var(--ion-color-light-rgb, 244, 245, 248), 0.8);
406
+ --background-focused: rgba(var(--ion-color-light-rgb, 244, 245, 248), 0.82);
407
407
  }
408
408
  }
409
409
  @supports (backdrop-filter: blur(0)) {
@@ -334,7 +334,7 @@ ion-ripple-effect {
334
334
  * }
335
335
  */
336
336
  :host {
337
- --background: var(--ion-color-primary, #0054e9);
337
+ --background: var(--ion-color-primary, #3880ff);
338
338
  --background-activated: transparent;
339
339
  --background-focused: currentColor;
340
340
  --background-hover: currentColor;
@@ -359,10 +359,10 @@ ion-ripple-effect {
359
359
  --color: rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54);
360
360
  --color-activated: rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54);
361
361
  --color-focused: var(--color-activated);
362
- --background: var(--ion-color-light, #f6f8fc);
362
+ --background: var(--ion-color-light, #f4f5f8);
363
363
  --background-activated: transparent;
364
- --background-focused: var(--ion-color-light-shade, #d8dade);
365
- --background-hover: var(--ion-color-light-tint, #f7f9fc);
364
+ --background-focused: var(--ion-color-light-shade, #d7d8da);
365
+ --background-hover: var(--ion-color-light-tint, #f5f6f9);
366
366
  }
367
367
 
368
368
  :host(.fab-button-in-list) ::slotted(ion-icon) {
@@ -1,58 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import AxeBuilder from "@axe-core/playwright";
5
4
  import { expect } from "@playwright/test";
6
5
  import { configs, test } from "../../../../utils/test/playwright/index";
7
- configs({ directions: ['ltr'], themes: ['light', 'dark'] }).forEach(({ title, config }) => {
8
- test.describe(title('fab-button: a11y'), () => {
9
- test('should not have accessibility violations', async ({ page }) => {
10
- await page.setContent(`
11
- <ion-fab-button>FAB</ion-fab-button>
12
- <ion-fab-button class="ion-activated">FAB</ion-fab-button>
13
- `, config);
14
- const results = await new AxeBuilder({ page }).analyze();
15
- expect(results.violations).toEqual([]);
16
- });
17
- });
18
- test.describe(title('fab-list: contrast'), () => {
19
- test('should not have accessibility violations', async ({ page }) => {
20
- await page.setContent(`
21
- <ion-fab activated="true">
22
- <ion-fab-button>
23
- Open
24
- </ion-fab-button>
25
- <ion-fab-list side="bottom">
26
- <ion-fab-button>Down</ion-fab-button>
27
- <ion-fab-button class="ion-activated">Down</ion-fab-button>
28
- <ion-fab-button class="ion-focused">Down</ion-fab-button>
29
- </ion-fab-list>
30
- </ion-fab>
31
- `, config);
32
- const results = await new AxeBuilder({ page }).analyze();
33
- expect(results.violations).toEqual([]);
34
- });
35
- });
36
- test.describe(title('fab: translucent contrast'), () => {
37
- test('should not have accessibility violations', async ({ page }) => {
38
- await page.setContent(`
39
- <ion-fab-button translucent="true">FAB</ion-fab-button>
40
- <ion-fab-button class="ion-focused" translucent="true">FAB</ion-fab-button>
41
- <ion-fab activated="true">
42
- <ion-fab-button>
43
- Open
44
- </ion-fab-button>
45
- <ion-fab-list side="bottom">
46
- <ion-fab-button translucent="true">Down</ion-fab-button>
47
- <ion-fab-button class="ion-focused" translucent="true">Down</ion-fab-button>
48
- </ion-fab-list>
49
- </ion-fab>
50
- `, config);
51
- const results = await new AxeBuilder({ page }).analyze();
52
- expect(results.violations).toEqual([]);
53
- });
54
- });
55
- });
56
6
  configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
57
7
  test.describe(title('fab-button: aria attributes'), () => {
58
8
  test('should inherit aria attributes to inner button', async ({ page }) => {
@@ -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, #0054e9);
93
- --highlight-color-valid: var(--ion-color-success, #2dd55b);
94
- --highlight-color-invalid: var(--ion-color-danger, #c5000f);
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);
95
95
  /**
96
96
  * This is a private API that is used to switch
97
97
  * out the highlight color based on the state
@@ -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, #0054e9);
93
- --highlight-color-valid: var(--ion-color-success, #2dd55b);
94
- --highlight-color-invalid: var(--ion-color-danger, #c5000f);
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);
95
95
  /**
96
96
  * This is a private API that is used to switch
97
97
  * out the highlight color based on the state
@@ -4,46 +4,14 @@
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'], themes: ['light', 'dark'] }).forEach(({ title, config }) => {
7
+ configs({ directions: ['ltr'] }).forEach(({ title, config, screenshot }) => {
8
8
  test.describe(title('input: a11y'), () => {
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
- </main>
19
- `, config);
20
- const results = await new AxeBuilder({ page }).analyze();
21
- expect(results.violations).toEqual([]);
22
- });
23
- test('focused state should not have accessibility violations', async ({ page }) => {
24
- /**
25
- * The primary color against the focus background
26
- * when using fill="solid" does not meet AA
27
- * contrast guidelines so it excluded from the test.
28
- * The contrast here is a significant improvement
29
- * over what Ionic has had in the past, so the team
30
- * has decided that this tradeoff is acceptable since
31
- * the scope of the problem is limited to the focus
32
- * state with the primary color when fill="solid".
33
- */
34
- await page.setContent(`
35
- <main>
36
- <ion-input class="has-focus" label="Label" value="My Text"></ion-input>
37
- <ion-input class="has-focus" label-placement="floating" label="Label" value="My Text"></ion-input>
38
- <ion-input class="has-focus" fill="outline" label-placement="floating" label="Label" value="My Text"></ion-input>
39
- </main>
40
- `, config);
9
+ test('should not have accessibility violations', async ({ page }) => {
10
+ await page.goto(`/src/components/input/test/a11y`, config);
41
11
  const results = await new AxeBuilder({ page }).analyze();
42
12
  expect(results.violations).toEqual([]);
43
13
  });
44
14
  });
45
- });
46
- configs({ directions: ['ltr'] }).forEach(({ title, config, screenshot }) => {
47
15
  test.describe(title('input: font scaling'), () => {
48
16
  test('should scale text on larger font sizes', async ({ page }) => {
49
17
  await page.setContent(`
@@ -656,9 +656,9 @@ ion-ripple-effect {
656
656
  --border-color: var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));
657
657
  --color: var(--ion-item-color, var(--ion-text-color, #000));
658
658
  --highlight-height: 0px;
659
- --highlight-color-focused: var(--ion-color-primary, #0054e9);
660
- --highlight-color-valid: var(--ion-color-success, #2dd55b);
661
- --highlight-color-invalid: var(--ion-color-danger, #c5000f);
659
+ --highlight-color-focused: var(--ion-color-primary, #3880ff);
660
+ --highlight-color-valid: var(--ion-color-success, #2dd36f);
661
+ --highlight-color-invalid: var(--ion-color-danger, #eb445a);
662
662
  --bottom-padding-start: 0px;
663
663
  font-size: 1rem;
664
664
  }
@@ -756,9 +756,9 @@ ion-ripple-effect {
756
756
  --inner-padding-end: 16px;
757
757
  --inner-border-width: 0 0 1px 0;
758
758
  --highlight-height: 1px;
759
- --highlight-color-focused: var(--ion-color-primary, #0054e9);
760
- --highlight-color-valid: var(--ion-color-success, #2dd55b);
761
- --highlight-color-invalid: var(--ion-color-danger, #c5000f);
759
+ --highlight-color-focused: var(--ion-color-primary, #3880ff);
760
+ --highlight-color-valid: var(--ion-color-success, #2dd36f);
761
+ --highlight-color-invalid: var(--ion-color-danger, #eb445a);
762
762
  font-size: 1rem;
763
763
  font-weight: normal;
764
764
  text-transform: none;
@@ -1056,7 +1056,7 @@ ion-ripple-effect {
1056
1056
  :host(.ion-focused:not(.ion-color)) ::slotted(.label-floating),
1057
1057
  :host(.item-has-focus:not(.ion-color)) ::slotted(.label-stacked),
1058
1058
  :host(.item-has-focus:not(.ion-color)) ::slotted(.label-floating) {
1059
- color: var(--ion-color-primary, #0054e9);
1059
+ color: var(--ion-color-primary, #3880ff);
1060
1060
  }
1061
1061
 
1062
1062
  :host(.ion-color) {
@@ -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, #0054e9);
61
+ --background: var(--ion-color-primary, #3880ff);
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, #004acd);
237
+ background: var(--ion-color-primary-shade, #3171e0);
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, #0054e9);
61
+ --background: var(--ion-color-primary, #3880ff);
62
62
  --color: var(--ion-color-primary-contrast, #fff);
63
63
  background: var(--background);
64
64
  color: var(--color);
@@ -1,36 +1,8 @@
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";
6
4
  import { configs, test } from "../../../../utils/test/playwright/index";
7
5
  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
- });
34
6
  /**
35
7
  * This behavior does not vary across directions
36
8
  */
@@ -337,7 +337,7 @@
337
337
  :host-context(.ion-focused).label-floating:not(.ion-color),
338
338
  :host-context(.item-has-focus).label-stacked:not(.ion-color),
339
339
  :host-context(.item-has-focus).label-floating:not(.ion-color) {
340
- color: var(--ion-color-primary, #0054e9);
340
+ color: var(--ion-color-primary, #3880ff);
341
341
  }
342
342
 
343
343
  :host-context(.ion-focused.ion-color).label-stacked:not(.ion-color),
@@ -1,7 +1,6 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import AxeBuilder from "@axe-core/playwright";
5
4
  import { expect } from "@playwright/test";
6
5
  import { configs, test } from "../../../../utils/test/playwright/index";
7
6
  configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
@@ -65,22 +64,3 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
65
64
  });
66
65
  });
67
66
  });
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
- });
@@ -173,7 +173,7 @@ ion-spinner {
173
173
  --background: var(--ion-color-step-50, #f2f2f2);
174
174
  --max-width: 280px;
175
175
  --max-height: 90%;
176
- --spinner-color: var(--ion-color-primary, #0054e9);
176
+ --spinner-color: var(--ion-color-primary, #3880ff);
177
177
  --backdrop-opacity: var(--ion-backdrop-opacity, 0.32);
178
178
  color: var(--ion-color-step-850, #262626);
179
179
  font-size: 0.875rem;
@@ -4,36 +4,20 @@
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({ modes: ['ios'], directions: ['ltr'], themes: ['light', 'dark'] }).forEach(({ title, config }) => {
7
+ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
8
8
  test.describe(title('loading: a11y'), () => {
9
9
  test('should set aria-labelledby with a message', async ({ page }) => {
10
- await page.setContent(`
11
- <ion-loading></ion-loading>
12
-
13
- <script>
14
- const loading = document.querySelector('ion-loading');
15
- loading.message = 'Loading';
16
- </script>
17
- `, config);
10
+ await page.goto('/src/components/loading/test/a11y', config);
18
11
  const ionLoadingDidPresent = await page.spyOnEvent('ionLoadingDidPresent');
19
- const loading = page.locator('ion-loading');
20
- await loading.evaluate((el) => el.present());
12
+ await page.click('#open-message-loading');
21
13
  await ionLoadingDidPresent.next();
22
14
  const results = await new AxeBuilder({ page }).analyze();
23
15
  expect(results.violations).toEqual([]);
24
16
  });
25
17
  test('should set aria-labelledby with a label', async ({ page }) => {
26
- await page.setContent(`
27
- <ion-loading aria-label="Loading"></ion-loading>
28
-
29
- <script>
30
- const loading = document.querySelector('ion-loading');
31
- loading.spinner = 'bubbles';
32
- </script>
33
- `, config);
18
+ await page.goto('/src/components/loading/test/a11y', config);
34
19
  const ionLoadingDidPresent = await page.spyOnEvent('ionLoadingDidPresent');
35
- const loading = page.locator('ion-loading');
36
- await loading.evaluate((el) => el.present());
20
+ await page.click('#open-label-loading');
37
21
  await ionLoadingDidPresent.next();
38
22
  const results = await new AxeBuilder({ page }).analyze();
39
23
  expect(results.violations).toEqual([]);
@@ -261,7 +261,7 @@ ion-icon {
261
261
  --background-focused: currentColor;
262
262
  --background-focused-opacity: .1;
263
263
  --border-radius: 4px;
264
- --color: var(--ion-color-primary, #0054e9);
264
+ --color: var(--ion-color-primary, #3880ff);
265
265
  --padding-start: 5px;
266
266
  --padding-end: 5px;
267
267
  min-height: 32px;
@@ -4,20 +4,6 @@
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
- /**
8
- * Only ios mode uses ion-color() for the menu button
9
- */
10
- configs({ directions: ['ltr'], modes: ['ios'], themes: ['light', 'dark'] }).forEach(({ title, config }) => {
11
- test.describe(title('menu-button: a11y for ion-color()'), () => {
12
- test('should not have accessibility violations', async ({ page }) => {
13
- await page.setContent(`
14
- <ion-menu-button auto-hide="false"></ion-menu-button>
15
- `, config);
16
- const results = await new AxeBuilder({ page }).analyze();
17
- expect(results.violations).toEqual([]);
18
- });
19
- });
20
- });
21
7
  configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
22
8
  test.describe(title('menu-button: a11y'), () => {
23
9
  test('should not have accessibility violations', async ({ page }) => {