@ionic/core 7.6.2-dev.11705355381.14b22962 → 7.6.2-dev.11705694334.11b34c62

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 (398) hide show
  1. package/components/action-sheet.js +4 -4
  2. package/components/alert.js +2 -2
  3. package/components/animation.js +16 -1
  4. package/components/button-active.js +1 -1
  5. package/components/button.js +2 -2
  6. package/components/checkbox.js +2 -2
  7. package/components/ion-back-button.js +1 -1
  8. package/components/ion-badge.js +2 -2
  9. package/components/ion-content.js +3 -2
  10. package/components/ion-datetime-button.js +4 -4
  11. package/components/ion-datetime.js +1 -1
  12. package/components/ion-fab-button.js +2 -2
  13. package/components/ion-input.js +2 -2
  14. package/components/ion-item-option.js +2 -2
  15. package/components/ion-item-sliding.js +128 -7
  16. package/components/ion-loading.js +1 -1
  17. package/components/ion-menu-button.js +1 -1
  18. package/components/ion-menu.js +15 -21
  19. package/components/ion-modal.js +1 -1
  20. package/components/ion-picker-legacy.js +2 -2
  21. package/components/ion-progress-bar.js +5 -2
  22. package/components/ion-range.js +2 -2
  23. package/components/ion-refresher-content.js +1 -1
  24. package/components/ion-refresher.js +1 -1
  25. package/components/ion-router-link.js +1 -1
  26. package/components/ion-searchbar.js +1 -1
  27. package/components/ion-segment-button.js +1 -1
  28. package/components/ion-select.js +2 -2
  29. package/components/ion-split-pane.js +15 -26
  30. package/components/ion-tab-bar.js +2 -2
  31. package/components/ion-tab-button.js +1 -1
  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/picker-column2.js +1 -1
  38. package/components/radio.js +2 -2
  39. package/components/select-popover.js +1 -1
  40. package/css/core.css +34 -101
  41. package/css/core.css.map +1 -1
  42. package/css/global.bundle.css +1 -1
  43. package/css/ionic.bundle.css +1 -1
  44. package/css/ionic.bundle.css.map +1 -1
  45. package/css/typography.css +1 -1
  46. package/dist/cjs/{animation-9b401d39.js → animation-8a4f9df4.js} +16 -0
  47. package/dist/cjs/{button-active-5bf1cac0.js → button-active-466dfc8a.js} +1 -1
  48. package/dist/cjs/{index-3b012034.js → index-8023641e.js} +1 -1
  49. package/dist/cjs/{index-17ab7794.js → index-d8b5d5f9.js} +2 -2
  50. package/dist/cjs/index.cjs.js +5 -5
  51. package/dist/cjs/ion-action-sheet.cjs.entry.js +6 -6
  52. package/dist/cjs/ion-alert.cjs.entry.js +4 -4
  53. package/dist/cjs/ion-app_8.cjs.entry.js +4 -3
  54. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  55. package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
  56. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  57. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
  58. package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -4
  59. package/dist/cjs/ion-datetime_3.cjs.entry.js +5 -5
  60. package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
  61. package/dist/cjs/ion-input.cjs.entry.js +2 -2
  62. package/dist/cjs/ion-item-option_3.cjs.entry.js +130 -10
  63. package/dist/cjs/ion-item_8.cjs.entry.js +3 -3
  64. package/dist/cjs/ion-loading.cjs.entry.js +2 -2
  65. package/dist/cjs/ion-menu_3.cjs.entry.js +19 -24
  66. package/dist/cjs/ion-modal.cjs.entry.js +3 -3
  67. package/dist/cjs/ion-nav_2.cjs.entry.js +1 -1
  68. package/dist/cjs/ion-popover.cjs.entry.js +2 -2
  69. package/dist/cjs/ion-progress-bar.cjs.entry.js +5 -2
  70. package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
  71. package/dist/cjs/ion-range.cjs.entry.js +2 -2
  72. package/dist/cjs/ion-refresher_2.cjs.entry.js +3 -3
  73. package/dist/cjs/ion-route_4.cjs.entry.js +1 -1
  74. package/dist/cjs/ion-searchbar.cjs.entry.js +1 -1
  75. package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
  76. package/dist/cjs/ion-select_3.cjs.entry.js +3 -3
  77. package/dist/cjs/ion-split-pane.cjs.entry.js +14 -24
  78. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +3 -3
  79. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  80. package/dist/cjs/ion-toast.cjs.entry.js +3 -3
  81. package/dist/cjs/ion-toggle.cjs.entry.js +2 -2
  82. package/dist/cjs/ionic.cjs.js +1 -1
  83. package/dist/cjs/{ios.transition-b5353f3e.js → ios.transition-34cad0cb.js} +2 -2
  84. package/dist/cjs/loader.cjs.js +1 -1
  85. package/dist/cjs/{md.transition-67157dd9.js → md.transition-5bcc289d.js} +2 -2
  86. package/dist/collection/components/action-sheet/action-sheet.ios.css +12 -5
  87. package/dist/collection/components/action-sheet/action-sheet.js +2 -2
  88. package/dist/collection/components/action-sheet/action-sheet.md.css +9 -2
  89. package/dist/collection/components/action-sheet/test/a11y/action-sheet.e2e.js +14 -23
  90. package/dist/collection/components/action-sheet/test/basic/action-sheet-rendering.e2e.js +19 -0
  91. package/dist/collection/components/action-sheet/test/basic/action-sheet.spec.js +22 -0
  92. package/dist/collection/components/alert/alert.ios.css +28 -27
  93. package/dist/collection/components/alert/alert.md.css +6 -6
  94. package/dist/collection/components/alert/test/a11y/alert.e2e.js +9 -22
  95. package/dist/collection/components/back-button/back-button.ios.css +1 -1
  96. package/dist/collection/components/back-button/test/a11y/back-button.e2e.js +0 -21
  97. package/dist/collection/components/badge/badge.ios.css +1 -1
  98. package/dist/collection/components/badge/badge.md.css +1 -1
  99. package/dist/collection/components/badge/test/a11y/badge.e2e.js +0 -18
  100. package/dist/collection/components/button/button.ios.css +10 -10
  101. package/dist/collection/components/button/button.md.css +8 -8
  102. package/dist/collection/components/button/test/a11y/button.e2e.js +0 -48
  103. package/dist/collection/components/checkbox/checkbox.ios.css +5 -5
  104. package/dist/collection/components/checkbox/checkbox.md.css +2 -3
  105. package/dist/collection/components/checkbox/test/a11y/checkbox.e2e.js +2 -11
  106. package/dist/collection/components/checkbox/test/basic/checkbox.e2e.js +10 -0
  107. package/dist/collection/components/content/content.js +3 -2
  108. package/dist/collection/components/datetime/datetime.ios.css +3 -2
  109. package/dist/collection/components/datetime-button/datetime-button.ios.css +107 -0
  110. package/dist/collection/components/datetime-button/datetime-button.js +4 -4
  111. package/dist/collection/components/datetime-button/{datetime-button.css → datetime-button.md.css} +9 -6
  112. package/dist/collection/components/datetime-button/test/basic/datetime-button.e2e.js +12 -0
  113. package/dist/collection/components/fab-button/fab-button.ios.css +13 -13
  114. package/dist/collection/components/fab-button/fab-button.md.css +4 -4
  115. package/dist/collection/components/fab-button/test/a11y/fab-button.e2e.js +0 -50
  116. package/dist/collection/components/input/input.ios.css +3 -3
  117. package/dist/collection/components/input/input.md.css +3 -3
  118. package/dist/collection/components/input/test/a11y/input.e2e.js +3 -41
  119. package/dist/collection/components/item/item.ios.css +3 -3
  120. package/dist/collection/components/item/item.md.css +4 -4
  121. package/dist/collection/components/item-option/item-option.ios.css +2 -2
  122. package/dist/collection/components/item-option/item-option.md.css +1 -1
  123. package/dist/collection/components/item-sliding/animations/item-sliding-options.js +59 -0
  124. package/dist/collection/components/item-sliding/item-sliding.css +8 -4
  125. package/dist/collection/components/item-sliding/item-sliding.js +89 -6
  126. package/dist/collection/components/item-sliding/test/a11y/item-sliding.e2e.js +0 -28
  127. package/dist/collection/components/item-sliding/test/basic/item-sliding.e2e.js +62 -25
  128. package/dist/collection/components/label/label.md.css +1 -1
  129. package/dist/collection/components/label/test/a11y/label.e2e.js +0 -20
  130. package/dist/collection/components/loading/loading.md.css +1 -1
  131. package/dist/collection/components/loading/test/a11y/loading.e2e.js +5 -21
  132. package/dist/collection/components/menu/menu.ios.css +3 -64
  133. package/dist/collection/components/menu/menu.js +13 -19
  134. package/dist/collection/components/menu/menu.md.css +3 -64
  135. package/dist/collection/components/menu-button/menu-button.ios.css +1 -1
  136. package/dist/collection/components/menu-button/test/a11y/menu-button.e2e.js +0 -14
  137. package/dist/collection/components/modal/gestures/swipe-to-close.js +1 -1
  138. package/dist/collection/components/picker-legacy/picker.ios.css +1 -1
  139. package/dist/collection/components/picker-legacy/picker.md.css +1 -1
  140. package/dist/collection/components/picker-legacy-column/picker-column.md.css +1 -1
  141. package/dist/collection/components/progress-bar/progress-bar.ios.css +17 -11
  142. package/dist/collection/components/progress-bar/progress-bar.js +3 -0
  143. package/dist/collection/components/progress-bar/progress-bar.md.css +8 -10
  144. package/dist/collection/components/radio/radio.ios.css +2 -2
  145. package/dist/collection/components/radio/radio.md.css +2 -2
  146. package/dist/collection/components/radio/test/a11y/radio.e2e.js +68 -101
  147. package/dist/collection/components/range/range.ios.css +1 -1
  148. package/dist/collection/components/range/range.md.css +3 -3
  149. package/dist/collection/components/range/test/a11y/range.e2e.js +8 -18
  150. package/dist/collection/components/refresher/refresher.md.css +2 -2
  151. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  152. package/dist/collection/components/router-link/router-link.css +1 -1
  153. package/dist/collection/components/searchbar/searchbar.ios.css +4 -4
  154. package/dist/collection/components/segment/test/a11y/segment.e2e.js +0 -23
  155. package/dist/collection/components/segment-button/segment-button.md.css +2 -2
  156. package/dist/collection/components/select/select.ios.css +3 -3
  157. package/dist/collection/components/select/select.md.css +3 -3
  158. package/dist/collection/components/select/test/a11y/select.e2e.js +4 -68
  159. package/dist/collection/components/select-popover/select-popover.md.css +4 -4
  160. package/dist/collection/components/split-pane/split-pane.ios.css +53 -1
  161. package/dist/collection/components/split-pane/split-pane.js +12 -46
  162. package/dist/collection/components/split-pane/split-pane.md.css +53 -1
  163. package/dist/collection/components/tab-bar/tab-bar.ios.css +1 -1
  164. package/dist/collection/components/tab-bar/tab-bar.md.css +1 -1
  165. package/dist/collection/components/tab-button/tab-button.ios.css +6 -1
  166. package/dist/collection/components/textarea/test/a11y/textarea.e2e.js +3 -41
  167. package/dist/collection/components/textarea/textarea.ios.css +3 -3
  168. package/dist/collection/components/textarea/textarea.md.css +3 -3
  169. package/dist/collection/components/toast/test/a11y/toast.e2e.js +24 -56
  170. package/dist/collection/components/toast/toast.ios.css +1 -1
  171. package/dist/collection/components/toast/toast.md.css +2 -2
  172. package/dist/collection/components/toggle/test/a11y/toggle.e2e.js +2 -8
  173. package/dist/collection/components/toggle/toggle.ios.css +8 -8
  174. package/dist/collection/components/toggle/toggle.md.css +2 -2
  175. package/dist/collection/css/test/a11y/typography.e2e.js +0 -18
  176. package/dist/collection/utils/animation/animation.js +15 -0
  177. package/dist/collection/utils/gesture/button-active.js +1 -1
  178. package/dist/collection/utils/test/playwright/generator.js +0 -1
  179. package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
  180. package/dist/docs.json +34 -7
  181. package/dist/esm/{animation-dde8cc0d.js → animation-ccab0993.js} +16 -1
  182. package/dist/esm/{button-active-48379dd2.js → button-active-2758ff14.js} +1 -1
  183. package/dist/esm/{index-4743453d.js → index-9dbb78a4.js} +2 -2
  184. package/dist/esm/{index-1193f005.js → index-b7e9478d.js} +1 -1
  185. package/dist/esm/index.js +5 -5
  186. package/dist/esm/ion-action-sheet.entry.js +6 -6
  187. package/dist/esm/ion-alert.entry.js +4 -4
  188. package/dist/esm/ion-app_8.entry.js +4 -3
  189. package/dist/esm/ion-avatar_3.entry.js +2 -2
  190. package/dist/esm/ion-back-button.entry.js +1 -1
  191. package/dist/esm/ion-button_2.entry.js +2 -2
  192. package/dist/esm/ion-checkbox.entry.js +2 -2
  193. package/dist/esm/ion-datetime-button.entry.js +4 -4
  194. package/dist/esm/ion-datetime_3.entry.js +5 -5
  195. package/dist/esm/ion-fab_3.entry.js +2 -2
  196. package/dist/esm/ion-input.entry.js +2 -2
  197. package/dist/esm/ion-item-option_3.entry.js +130 -10
  198. package/dist/esm/ion-item_8.entry.js +3 -3
  199. package/dist/esm/ion-loading.entry.js +2 -2
  200. package/dist/esm/ion-menu_3.entry.js +19 -24
  201. package/dist/esm/ion-modal.entry.js +3 -3
  202. package/dist/esm/ion-nav_2.entry.js +1 -1
  203. package/dist/esm/ion-popover.entry.js +2 -2
  204. package/dist/esm/ion-progress-bar.entry.js +5 -2
  205. package/dist/esm/ion-radio_2.entry.js +2 -2
  206. package/dist/esm/ion-range.entry.js +2 -2
  207. package/dist/esm/ion-refresher_2.entry.js +3 -3
  208. package/dist/esm/ion-route_4.entry.js +1 -1
  209. package/dist/esm/ion-searchbar.entry.js +1 -1
  210. package/dist/esm/ion-segment_2.entry.js +1 -1
  211. package/dist/esm/ion-select_3.entry.js +3 -3
  212. package/dist/esm/ion-split-pane.entry.js +14 -24
  213. package/dist/esm/ion-tab-bar_2.entry.js +3 -3
  214. package/dist/esm/ion-textarea.entry.js +2 -2
  215. package/dist/esm/ion-toast.entry.js +3 -3
  216. package/dist/esm/ion-toggle.entry.js +2 -2
  217. package/dist/esm/ionic.js +1 -1
  218. package/dist/esm/{ios.transition-3376ccb2.js → ios.transition-01176d76.js} +2 -2
  219. package/dist/esm/loader.js +1 -1
  220. package/dist/esm/{md.transition-f992779f.js → md.transition-558655c7.js} +2 -2
  221. package/dist/esm-es5/animation-ccab0993.js +4 -0
  222. package/dist/esm-es5/button-active-2758ff14.js +4 -0
  223. package/dist/esm-es5/{index-4743453d.js → index-9dbb78a4.js} +1 -1
  224. package/dist/esm-es5/{index-1193f005.js → index-b7e9478d.js} +1 -1
  225. package/dist/esm-es5/index.js +1 -1
  226. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  227. package/dist/esm-es5/ion-alert.entry.js +1 -1
  228. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  229. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  230. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  231. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  232. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  233. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  234. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  235. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  236. package/dist/esm-es5/ion-input.entry.js +1 -1
  237. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  238. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  239. package/dist/esm-es5/ion-loading.entry.js +1 -1
  240. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  241. package/dist/esm-es5/ion-modal.entry.js +1 -1
  242. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  243. package/dist/esm-es5/ion-popover.entry.js +1 -1
  244. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  245. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  246. package/dist/esm-es5/ion-range.entry.js +1 -1
  247. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  248. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  249. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  250. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  251. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  252. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  253. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  254. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  255. package/dist/esm-es5/ion-toast.entry.js +1 -1
  256. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  257. package/dist/esm-es5/ionic.js +1 -1
  258. package/dist/esm-es5/{ios.transition-3376ccb2.js → ios.transition-01176d76.js} +1 -1
  259. package/dist/esm-es5/loader.js +1 -1
  260. package/dist/esm-es5/md.transition-558655c7.js +4 -0
  261. package/dist/html.html-data.json +12 -0
  262. package/dist/ionic/index.esm.js +1 -1
  263. package/dist/ionic/ionic.esm.js +1 -1
  264. package/dist/ionic/{p-ec0a9b2c.system.entry.js → p-019e0d80.system.entry.js} +1 -1
  265. package/dist/ionic/p-02dc8c5b.entry.js +4 -0
  266. package/dist/ionic/{p-c6e9ef77.entry.js → p-0cc80201.entry.js} +1 -1
  267. package/dist/ionic/{p-662a9a47.system.entry.js → p-0dfa4ab4.system.entry.js} +1 -1
  268. package/dist/ionic/{p-590447a5.system.entry.js → p-0e908476.system.entry.js} +1 -1
  269. package/dist/ionic/{p-df6f50ef.entry.js → p-10339dcc.entry.js} +1 -1
  270. package/dist/ionic/{p-1d5b03e3.system.entry.js → p-11bf2ad0.system.entry.js} +1 -1
  271. package/dist/ionic/{p-3796194b.system.entry.js → p-19c379da.system.entry.js} +1 -1
  272. package/dist/ionic/p-19d9ceb8.system.js +1 -1
  273. package/dist/ionic/p-1a22895e.system.entry.js +4 -0
  274. package/dist/ionic/p-1c69a4ca.system.entry.js +4 -0
  275. package/dist/ionic/{p-92bfb607.entry.js → p-20a4ee02.entry.js} +1 -1
  276. package/dist/ionic/{p-530bb2af.system.entry.js → p-2316de85.system.entry.js} +1 -1
  277. package/dist/ionic/{p-5cbfce20.entry.js → p-26ff1180.entry.js} +1 -1
  278. package/dist/ionic/p-289f354c.entry.js +4 -0
  279. package/dist/ionic/p-2a3b87cd.entry.js +4 -0
  280. package/dist/ionic/p-2e01f1c5.system.entry.js +4 -0
  281. package/dist/ionic/p-38531958.system.entry.js +4 -0
  282. package/dist/ionic/{p-5f1b0512.entry.js → p-3b043115.entry.js} +1 -1
  283. package/dist/ionic/p-3b434dee.system.entry.js +4 -0
  284. package/dist/ionic/{p-d88ed181.system.entry.js → p-41208f54.system.entry.js} +1 -1
  285. package/dist/ionic/{p-f0dbd73e.system.entry.js → p-42925096.system.entry.js} +1 -1
  286. package/dist/ionic/p-44791cff.entry.js +4 -0
  287. package/dist/ionic/p-4981ea0a.system.entry.js +4 -0
  288. package/dist/ionic/{p-13d4dfe7.entry.js → p-5074a526.entry.js} +1 -1
  289. package/dist/ionic/{p-a41eaff2.system.entry.js → p-56b1a872.system.entry.js} +1 -1
  290. package/dist/ionic/p-57785713.system.entry.js +4 -0
  291. package/dist/ionic/p-57e9de81.system.js +4 -0
  292. package/dist/ionic/{p-c001b24f.entry.js → p-5dc16594.entry.js} +1 -1
  293. package/dist/ionic/{p-9f94e34a.system.entry.js → p-614e63a9.system.entry.js} +1 -1
  294. package/dist/ionic/{p-8b160fba.entry.js → p-67e52d31.entry.js} +1 -1
  295. package/dist/ionic/{p-aa975ff8.entry.js → p-6855f26a.entry.js} +1 -1
  296. package/dist/ionic/{p-7dade589.system.entry.js → p-69ce8bba.system.entry.js} +1 -1
  297. package/dist/ionic/p-6fb2b5e3.js +4 -0
  298. package/dist/ionic/{p-8e961825.entry.js → p-799da666.entry.js} +1 -1
  299. package/dist/ionic/{p-04377cfa.js → p-7b4649d7.js} +1 -1
  300. package/dist/ionic/{p-4abb1251.entry.js → p-7c7bc0cc.entry.js} +1 -1
  301. package/dist/ionic/{p-a29db3a0.entry.js → p-7dcf795f.entry.js} +1 -1
  302. package/dist/ionic/{p-a074be82.system.js → p-7de7a5fd.system.js} +1 -1
  303. package/dist/ionic/{p-f38c1f8d.entry.js → p-806a9810.entry.js} +1 -1
  304. package/dist/ionic/p-80ad9792.system.js +4 -0
  305. package/dist/ionic/{p-d08e0136.entry.js → p-84b567a6.entry.js} +1 -1
  306. package/dist/ionic/{p-a49931aa.system.js → p-9093afb1.system.js} +1 -1
  307. package/dist/ionic/p-922c234e.js +4 -0
  308. package/dist/ionic/p-950c05ad.entry.js +4 -0
  309. package/dist/ionic/p-97a9d526.system.entry.js +4 -0
  310. package/dist/ionic/p-99d448ba.system.entry.js +4 -0
  311. package/dist/ionic/p-9c5e3a2c.system.entry.js +4 -0
  312. package/dist/ionic/{p-1c453add.system.entry.js → p-a1bd098f.system.entry.js} +1 -1
  313. package/dist/ionic/p-a619ecad.entry.js +4 -0
  314. package/dist/ionic/{p-354682e8.system.entry.js → p-abd5d0d5.system.entry.js} +1 -1
  315. package/dist/ionic/{p-e9431a58.entry.js → p-ae4b7df8.entry.js} +1 -1
  316. package/dist/ionic/p-b20717fc.system.entry.js +4 -0
  317. package/dist/ionic/p-b61d7624.entry.js +4 -0
  318. package/dist/ionic/p-b660ba8a.system.js +4 -0
  319. package/dist/ionic/{p-2716d76c.entry.js → p-b68d435f.entry.js} +1 -1
  320. package/dist/ionic/p-ba2b1ef5.entry.js +4 -0
  321. package/dist/ionic/{p-bc01c384.entry.js → p-ba5d9e27.entry.js} +1 -1
  322. package/dist/ionic/{p-9c48f42f.entry.js → p-bb3fd397.entry.js} +1 -1
  323. package/dist/ionic/{p-44a56556.js → p-c75dc92f.js} +1 -1
  324. package/dist/ionic/{p-1ab2642a.system.js → p-c8f7e8c8.system.js} +1 -1
  325. package/dist/ionic/p-cd729946.js +4 -0
  326. package/dist/ionic/{p-385bb983.entry.js → p-cf53213c.entry.js} +1 -1
  327. package/dist/ionic/{p-e403ff07.entry.js → p-d1ab26de.entry.js} +1 -1
  328. package/dist/ionic/p-d2a73201.system.entry.js +4 -0
  329. package/dist/ionic/p-d3525765.js +4 -0
  330. package/dist/ionic/{p-d01449a3.system.entry.js → p-da666998.system.entry.js} +1 -1
  331. package/dist/ionic/{p-cc700688.system.entry.js → p-db05ecb6.system.entry.js} +1 -1
  332. package/dist/ionic/p-dc43a79e.entry.js +4 -0
  333. package/dist/ionic/{p-0aa78a8d.system.js → p-e755af39.system.js} +1 -1
  334. package/dist/ionic/p-ee71caaa.system.entry.js +4 -0
  335. package/dist/ionic/{p-5aec2208.entry.js → p-f0eafd38.entry.js} +1 -1
  336. package/dist/ionic/{p-25312768.system.entry.js → p-f25b4396.system.entry.js} +1 -1
  337. package/dist/ionic/p-f65f4d3e.system.entry.js +4 -0
  338. package/dist/ionic/p-fd98debb.entry.js +4 -0
  339. package/dist/ionic/p-fe458994.system.entry.js +4 -0
  340. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +8 -0
  341. package/dist/types/components/item-sliding/animations/item-sliding-options.d.ts +10 -0
  342. package/dist/types/components/item-sliding/item-sliding.d.ts +19 -0
  343. package/dist/types/components/menu/menu.d.ts +1 -11
  344. package/dist/types/components/split-pane/split-pane.d.ts +2 -14
  345. package/dist/types/components.d.ts +8 -1
  346. package/dist/types/utils/animation/animation-interface.d.ts +6 -0
  347. package/dist/types/utils/animation/animation.d.ts +2 -0
  348. package/hydrate/index.js +232 -108
  349. package/package.json +1 -1
  350. package/css/themes/dark.always.css +0 -122
  351. package/css/themes/dark.always.css.map +0 -1
  352. package/css/themes/dark.class.css +0 -122
  353. package/css/themes/dark.class.css.map +0 -1
  354. package/css/themes/dark.css +0 -3
  355. package/css/themes/dark.css.map +0 -1
  356. package/css/themes/dark.system.css +0 -124
  357. package/css/themes/dark.system.css.map +0 -1
  358. package/dist/collection/components/progress-bar/test/a11y/progress-bar.e2e.js +0 -24
  359. package/dist/collection/components/refresher/test/a11y/refresher.e2e.js +0 -25
  360. package/dist/collection/components/router-link/test/a11y/router-link.e2e.js +0 -23
  361. package/dist/collection/components/select-popover/test/a11y/select-popover.e2e.js +0 -32
  362. package/dist/collection/components/split-pane/test/wrapped-menu/split-pane.e2e.js +0 -41
  363. package/dist/collection/themes/test/colors/theme.e2e.js +0 -114
  364. package/dist/esm-es5/animation-dde8cc0d.js +0 -4
  365. package/dist/esm-es5/button-active-48379dd2.js +0 -4
  366. package/dist/esm-es5/md.transition-f992779f.js +0 -4
  367. package/dist/ionic/p-04d84d5d.entry.js +0 -4
  368. package/dist/ionic/p-068950da.entry.js +0 -4
  369. package/dist/ionic/p-0832dedf.entry.js +0 -4
  370. package/dist/ionic/p-11c55ac8.system.js +0 -4
  371. package/dist/ionic/p-1b60cc53.js +0 -4
  372. package/dist/ionic/p-24c3f2cd.system.entry.js +0 -4
  373. package/dist/ionic/p-2724403e.entry.js +0 -4
  374. package/dist/ionic/p-283bc1a1.system.entry.js +0 -4
  375. package/dist/ionic/p-29d03b3a.js +0 -4
  376. package/dist/ionic/p-38f2c6bb.system.js +0 -4
  377. package/dist/ionic/p-3af5faf8.system.entry.js +0 -4
  378. package/dist/ionic/p-4eae8c91.entry.js +0 -4
  379. package/dist/ionic/p-56944895.entry.js +0 -4
  380. package/dist/ionic/p-713af1fe.entry.js +0 -4
  381. package/dist/ionic/p-8a25bf30.system.entry.js +0 -4
  382. package/dist/ionic/p-97aaf697.system.entry.js +0 -4
  383. package/dist/ionic/p-98f35d98.js +0 -4
  384. package/dist/ionic/p-9a68d8ef.system.js +0 -4
  385. package/dist/ionic/p-9a8bc8f3.system.entry.js +0 -4
  386. package/dist/ionic/p-a6e5f54e.system.entry.js +0 -4
  387. package/dist/ionic/p-b231b7cf.system.entry.js +0 -4
  388. package/dist/ionic/p-b59fe3bd.system.entry.js +0 -4
  389. package/dist/ionic/p-b7e03ff0.system.entry.js +0 -4
  390. package/dist/ionic/p-bec6ae40.entry.js +0 -4
  391. package/dist/ionic/p-c16fbc5f.system.entry.js +0 -4
  392. package/dist/ionic/p-cb3ef9c1.system.entry.js +0 -4
  393. package/dist/ionic/p-cb6a1fa0.system.entry.js +0 -4
  394. package/dist/ionic/p-cd3e1a06.entry.js +0 -4
  395. package/dist/ionic/p-cd574dfa.js +0 -4
  396. package/dist/ionic/p-d1ad57d5.system.entry.js +0 -4
  397. package/dist/ionic/p-d2634efe.system.entry.js +0 -4
  398. package/dist/ionic/p-fc17f198.entry.js +0 -4
@@ -4,115 +4,82 @@
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
+ /**
8
+ * This behavior does not vary across modes/directions.
9
+ */
10
+ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
8
11
  test.describe(title('radio: a11y'), () => {
9
- test('default layout should not have accessibility violations', async ({ page }) => {
12
+ test('should not have accessibility violations', async ({ page }) => {
13
+ await page.goto(`/src/components/radio/test/a11y`, config);
14
+ const results = await new AxeBuilder({ page }).analyze();
15
+ expect(results.violations).toEqual([]);
16
+ });
17
+ });
18
+ // TODO(FW-5715): re-enable test
19
+ test.skip(title('radio: keyboard navigation'), () => {
20
+ test.beforeEach(async ({ page }) => {
10
21
  await page.setContent(`
11
- <main>
12
- <ion-radio>my label</ion-radio>
13
- <ion-radio aria-label="my aria label"></ion-radio>
14
- <ion-radio-group>
15
- <ion-radio>my label in a group</ion-radio>
16
- </ion-radio-group>
17
- <ion-radio-group>
18
- <ion-radio aria-label="my aria label in a group"></ion-radio>
19
- </ion-radio-group>
22
+ <ion-app>
23
+ <ion-content>
20
24
  <ion-list>
21
- <ion-item>
22
- <ion-radio-group>
23
- <ion-radio>my label in a group in a list</ion-radio>
24
- </ion-radio-group>
25
- </ion-item>
25
+ <ion-radio-group id="first-group" value="huey">
26
+ <ion-item>
27
+ <ion-radio value="huey">Huey</ion-radio>
28
+ </ion-item>
29
+ <ion-item>
30
+ <ion-radio value="dewey">Dewey</ion-radio>
31
+ </ion-item>
32
+ <ion-item>
33
+ <ion-radio value="fooey" disabled>Fooey</ion-radio>
34
+ </ion-item>
35
+ <ion-item>
36
+ <ion-radio value="louie">Louie</ion-radio>
37
+ </ion-item>
38
+ </ion-radio-group>
26
39
  </ion-list>
27
40
  <ion-list>
28
- <ion-item>
29
- <ion-radio-group>
30
- <ion-radio aria-label="my aria label in a group in a list"></ion-radio>
31
- </ion-radio-group>
32
- </ion-item>
41
+ <ion-radio-group id="second-group" value="huey">
42
+ <ion-item>
43
+ <ion-radio value="huey">Huey</ion-radio>
44
+ </ion-item>
45
+ <ion-item>
46
+ <ion-radio value="dewey">Dewey</ion-radio>
47
+ </ion-item>
48
+ <ion-item>
49
+ <ion-radio value="fooey" disabled>Fooey</ion-radio>
50
+ </ion-item>
51
+ <ion-item>
52
+ <ion-radio value="louie">Louie</ion-radio>
53
+ </ion-item>
54
+ </ion-radio-group>
33
55
  </ion-list>
34
- </main>
35
- `, config);
36
- const results = await new AxeBuilder({ page }).analyze();
37
- expect(results.violations).toEqual([]);
56
+ </ion-content>
57
+ </ion-app>
58
+ `, config);
38
59
  });
39
- test('selected state should not have accessibility violations', async ({ page }) => {
40
- await page.setContent(`
41
- <main>
42
- <ion-radio-group value="a">
43
- <ion-radio value="a">Selected radio</ion-radio>
44
- </ion-radio-group>
45
- </main>
46
- `, config);
47
- const results = await new AxeBuilder({ page }).analyze();
48
- expect(results.violations).toEqual([]);
60
+ test('tabbing should switch between radio groups', async ({ page, pageUtils }) => {
61
+ const firstGroupRadios = page.locator('#first-group ion-radio');
62
+ const secondGroupRadios = page.locator('#second-group ion-radio');
63
+ await pageUtils.pressKeys('Tab');
64
+ await expect(firstGroupRadios.nth(0)).toBeFocused();
65
+ await pageUtils.pressKeys('Tab');
66
+ await expect(secondGroupRadios.nth(0)).toBeFocused();
67
+ await pageUtils.pressKeys('shift+Tab');
68
+ await expect(firstGroupRadios.nth(0)).toBeFocused();
49
69
  });
50
- // TODO(FW-5715): re-enable test
51
- test.skip(title('radio: keyboard navigation'), () => {
52
- test.beforeEach(async ({ page }) => {
53
- await page.setContent(`
54
- <ion-app>
55
- <ion-content>
56
- <ion-list>
57
- <ion-radio-group id="first-group" value="huey">
58
- <ion-item>
59
- <ion-radio value="huey">Huey</ion-radio>
60
- </ion-item>
61
- <ion-item>
62
- <ion-radio value="dewey">Dewey</ion-radio>
63
- </ion-item>
64
- <ion-item>
65
- <ion-radio value="fooey" disabled>Fooey</ion-radio>
66
- </ion-item>
67
- <ion-item>
68
- <ion-radio value="louie">Louie</ion-radio>
69
- </ion-item>
70
- </ion-radio-group>
71
- </ion-list>
72
- <ion-list>
73
- <ion-radio-group id="second-group" value="huey">
74
- <ion-item>
75
- <ion-radio value="huey">Huey</ion-radio>
76
- </ion-item>
77
- <ion-item>
78
- <ion-radio value="dewey">Dewey</ion-radio>
79
- </ion-item>
80
- <ion-item>
81
- <ion-radio value="fooey" disabled>Fooey</ion-radio>
82
- </ion-item>
83
- <ion-item>
84
- <ion-radio value="louie">Louie</ion-radio>
85
- </ion-item>
86
- </ion-radio-group>
87
- </ion-list>
88
- </ion-content>
89
- </ion-app>
90
- `, config);
91
- });
92
- test('tabbing should switch between radio groups', async ({ page, pageUtils }) => {
93
- const firstGroupRadios = page.locator('#first-group ion-radio');
94
- const secondGroupRadios = page.locator('#second-group ion-radio');
95
- await pageUtils.pressKeys('Tab');
96
- await expect(firstGroupRadios.nth(0)).toBeFocused();
97
- await pageUtils.pressKeys('Tab');
98
- await expect(secondGroupRadios.nth(0)).toBeFocused();
99
- await pageUtils.pressKeys('shift+Tab');
100
- await expect(firstGroupRadios.nth(0)).toBeFocused();
101
- });
102
- test('using arrow keys should move between enabled radios within group', async ({ page, pageUtils }) => {
103
- const firstGroupRadios = page.locator('#first-group ion-radio');
104
- await pageUtils.pressKeys('Tab');
105
- await expect(firstGroupRadios.nth(0)).toBeFocused();
106
- await page.keyboard.press('ArrowDown');
107
- await expect(firstGroupRadios.nth(1)).toBeFocused();
108
- // firstGroupRadios.nth(2) is disabled so it should not receive focus.
109
- await page.keyboard.press('ArrowDown');
110
- await expect(firstGroupRadios.nth(3)).toBeFocused();
111
- await page.keyboard.press('ArrowDown');
112
- await expect(firstGroupRadios.nth(0)).toBeFocused();
113
- await page.keyboard.press('ArrowUp');
114
- await expect(firstGroupRadios.nth(3)).toBeFocused();
115
- });
70
+ test('using arrow keys should move between enabled radios within group', async ({ page, pageUtils }) => {
71
+ const firstGroupRadios = page.locator('#first-group ion-radio');
72
+ await pageUtils.pressKeys('Tab');
73
+ await expect(firstGroupRadios.nth(0)).toBeFocused();
74
+ await page.keyboard.press('ArrowDown');
75
+ await expect(firstGroupRadios.nth(1)).toBeFocused();
76
+ // firstGroupRadios.nth(2) is disabled so it should not receive focus.
77
+ await page.keyboard.press('ArrowDown');
78
+ await expect(firstGroupRadios.nth(3)).toBeFocused();
79
+ await page.keyboard.press('ArrowDown');
80
+ await expect(firstGroupRadios.nth(0)).toBeFocused();
81
+ await page.keyboard.press('ArrowUp');
82
+ await expect(firstGroupRadios.nth(3)).toBeFocused();
116
83
  });
117
84
  });
118
85
  });
@@ -524,7 +524,7 @@
524
524
  --knob-size: 26px;
525
525
  --bar-height: 4px;
526
526
  --bar-background: var(--ion-color-step-900, #e6e6e6);
527
- --bar-background-active: var(--ion-color-primary, #0054e9);
527
+ --bar-background-active: var(--ion-color-primary, #3880ff);
528
528
  --bar-border-radius: 2px;
529
529
  --height: 42px;
530
530
  }
@@ -523,11 +523,11 @@
523
523
  --knob-box-shadow: none;
524
524
  --knob-size: 18px;
525
525
  --bar-height: 2px;
526
- --bar-background: rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.26);
527
- --bar-background-active: var(--ion-color-primary, #0054e9);
526
+ --bar-background: rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.26);
527
+ --bar-background-active: var(--ion-color-primary, #3880ff);
528
528
  --bar-border-radius: 0;
529
529
  --height: 42px;
530
- --pin-background: var(--ion-color-primary, #0054e9);
530
+ --pin-background: var(--ion-color-primary, #3880ff);
531
531
  --pin-color: var(--ion-color-primary-contrast, #fff);
532
532
  }
533
533
 
@@ -4,28 +4,18 @@
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({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
8
8
  test.describe(title('range: a11y'), () => {
9
9
  test('should not have accessibility violations', async ({ page }) => {
10
- await page.setContent(`
11
- <main>
12
- <ion-range value="50"><span slot="label">my label</span></ion-range>
13
- <ion-range label="my label"></ion-range>
14
- <ion-range aria-label="my aria label"></ion-range>
15
- <ion-range>
16
- <span slot="label">temperature</span>
17
- <ion-icon name="snow" slot="start" aria-hidden="true"></ion-icon>
18
- <ion-icon name="flame" slot="end" aria-hidden="true"></ion-icon>
19
- </ion-range>
20
- </main>
21
- `, config);
22
- const results = await new AxeBuilder({ page }).analyze();
10
+ await page.goto(`/src/components/range/test/a11y`, config);
11
+ /**
12
+ * Axe does not take <slot> elements into account
13
+ * when checking color-contrast. As a result, it will
14
+ * incorrectly report color-contrast issues: https://github.com/dequelabs/axe-core/issues/3329
15
+ */
16
+ const results = await new AxeBuilder({ page }).disableRules('color-contrast').analyze();
23
17
  expect(results.violations).toEqual([]);
24
18
  });
25
- });
26
- });
27
- configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
28
- test.describe(title('range: a11y'), () => {
29
19
  test('should not have visual regressions', async ({ page }) => {
30
20
  await page.setContent(`<ion-app>
31
21
  <ion-content>
@@ -260,7 +260,7 @@ ion-refresher.refresher-native ion-spinner {
260
260
  margin-bottom: 0;
261
261
  width: 24px;
262
262
  height: 24px;
263
- color: var(--ion-color-primary, #0054e9);
263
+ color: var(--ion-color-primary, #3880ff);
264
264
  }
265
265
  ion-refresher.refresher-native .spinner-arrow-container {
266
266
  display: inherit;
@@ -282,7 +282,7 @@ ion-refresher.refresher-native .arrow-container ion-icon {
282
282
  right: 0;
283
283
  bottom: -4px;
284
284
  position: absolute;
285
- color: var(--ion-color-primary, #0054e9);
285
+ color: var(--ion-color-primary, #3880ff);
286
286
  font-size: 12px;
287
287
  }
288
288
  ion-refresher.refresher-native.refresher-pulling ion-refresher-content .refresher-pulling, ion-refresher.refresher-native.refresher-ready ion-refresher-content .refresher-pulling {
@@ -46,7 +46,7 @@ export class RefresherContent {
46
46
  const pullingIcon = this.pullingIcon;
47
47
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
48
48
  const mode = getIonMode(this);
49
- return (h(Host, { class: mode }, h("div", { class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (h("div", { class: "refresher-pulling-icon" }, h("div", { class: "spinner-arrow-container" }, h("ion-spinner", { name: this.pullingIcon, "aria-label": "pulling icon", paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (h("div", { class: "arrow-container" }, h("ion-icon", { icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (h("div", { class: "refresher-pulling-icon" }, h("ion-icon", { icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), h("div", { class: "refresher-refreshing" }, this.refreshingSpinner && (h("div", { class: "refresher-refreshing-icon" }, h("ion-spinner", { name: this.refreshingSpinner, "aria-label": "refreshing icon" }))), this.refreshingText !== undefined && this.renderRefreshingText())));
49
+ return (h(Host, { class: mode }, h("div", { class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (h("div", { class: "refresher-pulling-icon" }, h("div", { class: "spinner-arrow-container" }, h("ion-spinner", { name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (h("div", { class: "arrow-container" }, h("ion-icon", { icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (h("div", { class: "refresher-pulling-icon" }, h("ion-icon", { icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), h("div", { class: "refresher-refreshing" }, this.refreshingSpinner && (h("div", { class: "refresher-refreshing-icon" }, h("ion-spinner", { name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
50
50
  }
51
51
  static get is() { return "ion-refresher-content"; }
52
52
  static get properties() {
@@ -59,7 +59,7 @@
59
59
  * @prop --color: Text color of the router link
60
60
  */
61
61
  --background: transparent;
62
- --color: var(--ion-color-primary, #0054e9);
62
+ --color: var(--ion-color-primary, #3880ff);
63
63
  background: var(--background);
64
64
  color: var(--color);
65
65
  }
@@ -262,7 +262,7 @@
262
262
  --background: rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.07);
263
263
  --border-radius: 10px;
264
264
  --box-shadow: none;
265
- --cancel-button-color: var(--ion-color-primary, #0054e9);
265
+ --cancel-button-color: var(--ion-color-primary, #3880ff);
266
266
  --clear-button-color: var(--ion-color-step-600, #666666);
267
267
  --color: var(--ion-text-color, #000);
268
268
  --icon-color: var(--ion-color-step-600, #666666);
@@ -385,15 +385,15 @@
385
385
  }
386
386
 
387
387
  .searchbar-cancel-button {
388
- -webkit-padding-start: 8px;
389
- padding-inline-start: 8px;
388
+ -webkit-padding-start: 12px;
389
+ padding-inline-start: 12px;
390
390
  -webkit-padding-end: 0;
391
391
  padding-inline-end: 0;
392
392
  padding-top: 0;
393
393
  padding-bottom: 0;
394
394
  flex-shrink: 0;
395
395
  background-color: transparent;
396
- font-size: 16px;
396
+ font-size: 17px;
397
397
  }
398
398
 
399
399
  :host(.searchbar-left-aligned) .searchbar-search-icon {
@@ -4,29 +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 md mode uses ion-color() for the segment button
9
- */
10
- configs({ directions: ['ltr'], modes: ['md'], themes: ['light', 'dark'] }).forEach(({ title, config }) => {
11
- test.describe(title('segment: a11y for ion-color()'), () => {
12
- test('should not have accessibility violations', async ({ page }) => {
13
- await page.setContent(`
14
- <main>
15
- <ion-segment aria-label="Tab Options" value="bookmarks">
16
- <ion-segment-button value="bookmarks">
17
- <ion-label>Bookmarks</ion-label>
18
- </ion-segment-button>
19
- <ion-segment-button value="reading-list">
20
- <ion-label>Reading List</ion-label>
21
- </ion-segment-button>
22
- </ion-segment>
23
- </main>
24
- `, config);
25
- const results = await new AxeBuilder({ page }).analyze();
26
- expect(results.violations).toEqual([]);
27
- });
28
- });
29
- });
30
7
  configs().forEach(({ title, config }) => {
31
8
  test.describe(title('segment: a11y'), () => {
32
9
  test('should not have any axe violations', async ({ page }) => {
@@ -362,7 +362,7 @@ ion-ripple-effect {
362
362
  --background-focused-opacity: .12;
363
363
  --background-hover-opacity: .04;
364
364
  --color: rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.6);
365
- --color-checked: var(--ion-color-primary, #0054e9);
365
+ --color-checked: var(--ion-color-primary, #3880ff);
366
366
  --indicator-box-shadow: none;
367
367
  --indicator-color: var(--color-checked);
368
368
  --indicator-height: 2px;
@@ -425,7 +425,7 @@ ion-ripple-effect {
425
425
  --background: var(--ion-toolbar-segment-background, none);
426
426
  --background-checked: var(--ion-toolbar-segment-background-checked, none);
427
427
  --color: var(--ion-toolbar-segment-color, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.6));
428
- --color-checked: var(--ion-toolbar-segment-color-checked, var(--ion-color-primary, #0054e9));
428
+ --color-checked: var(--ion-toolbar-segment-color-checked, var(--ion-color-primary, #3880ff));
429
429
  --indicator-color: var(--ion-toolbar-segment-color-checked, var(--color-checked));
430
430
  }
431
431
 
@@ -83,9 +83,9 @@
83
83
  --placeholder-opacity: 0.6;
84
84
  --background: transparent;
85
85
  --border-style: solid;
86
- --highlight-color-focused: var(--ion-color-primary, #0054e9);
87
- --highlight-color-valid: var(--ion-color-success, #2dd55b);
88
- --highlight-color-invalid: var(--ion-color-danger, #c5000f);
86
+ --highlight-color-focused: var(--ion-color-primary, #3880ff);
87
+ --highlight-color-valid: var(--ion-color-success, #2dd36f);
88
+ --highlight-color-invalid: var(--ion-color-danger, #eb445a);
89
89
  /**
90
90
  * This is a private API that is used to switch
91
91
  * out the highlight color based on the state
@@ -83,9 +83,9 @@
83
83
  --placeholder-opacity: 0.6;
84
84
  --background: transparent;
85
85
  --border-style: solid;
86
- --highlight-color-focused: var(--ion-color-primary, #0054e9);
87
- --highlight-color-valid: var(--ion-color-success, #2dd55b);
88
- --highlight-color-invalid: var(--ion-color-danger, #c5000f);
86
+ --highlight-color-focused: var(--ion-color-primary, #3880ff);
87
+ --highlight-color-valid: var(--ion-color-success, #2dd36f);
88
+ --highlight-color-invalid: var(--ion-color-danger, #eb445a);
89
89
  /**
90
90
  * This is a private API that is used to switch
91
91
  * out the highlight color based on the state
@@ -4,74 +4,10 @@
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 }) => {
8
- test.describe(title('textarea: a11y'), () => {
9
- test('default layout should not have accessibility violations', async ({ page }) => {
10
- await page.setContent(`
11
- <main>
12
- <ion-select label="Label" placeholder="Placeholder"></ion-select>
13
- <ion-select placeholder="Placeholder">
14
- <div slot="label">Label</div>
15
- </ion-select>
16
- <ion-select label="Label" value="a">
17
- <ion-select-option value="a">Apple</ion-select-option>
18
- </ion-select>
19
- <ion-select aria-label="Label"></ion-select>
20
- <ion-item>
21
- <ion-select label="My Label" value="apples">
22
- <ion-select-option value="apples">Apples</ion-select-option>
23
- <ion-select-option value="bananas">Bananas</ion-select-option>
24
- <ion-select-option value="oranges">Oranges</ion-select-option>
25
- </ion-select>
26
- </ion-item>
27
- <ion-select id="multiple" multiple="true" label="My Label">
28
- <ion-select-option value="apples">Apples</ion-select-option>
29
- <ion-select-option value="bananas">Bananas</ion-select-option>
30
- <ion-select-option value="oranges">Oranges</ion-select-option>
31
- </ion-select>
32
- <ion-select label="My Label" label-placement="floating">
33
- <ion-icon slot="start" name="pizza" aria-hidden="true"></ion-icon>
34
- <ion-select-option value="apples">Apples</ion-select-option>
35
- <ion-select-option value="bananas">Bananas</ion-select-option>
36
- <ion-select-option value="oranges">Oranges</ion-select-option>
37
- <ion-button slot="end" aria-label="button">
38
- <ion-icon slot="icon-only" name="lock-closed" aria-hidden="true"></ion-icon>
39
- </ion-button>
40
- </ion-select>
41
-
42
- <script>
43
- const multiple = document.querySelector('#multiple');
44
- multiple.value = ['apples', 'bananas'];
45
- </script>
46
- </main>
47
- `, config);
48
- const results = await new AxeBuilder({ page }).analyze();
49
- expect(results.violations).toEqual([]);
50
- });
51
- test('focused state should not have accessibility violations', async ({ page }) => {
52
- /**
53
- * The primary color against the focus background
54
- * when using fill="solid" does not meet AA
55
- * contrast guidelines so it excluded from the test.
56
- * The contrast here is a significant improvement
57
- * over what Ionic has had in the past, so the team
58
- * has decided that this tradeoff is acceptable since
59
- * the scope of the problem is limited to the focus
60
- * state with the primary color when fill="solid".
61
- */
62
- await page.setContent(`
63
- <main>
64
- <ion-select class="has-focus" label="Label" value="a">
65
- <ion-select-option value="a">Apple</ion-select-option>
66
- </ion-select>
67
- <ion-select class="has-focus" label-placement="floating" label="Label" value="a">
68
- <ion-select-option value="a">Apple</ion-select-option>
69
- </ion-select>
70
- <ion-select class="has-focus" fill="outline" label-placement="floating" label="Label" value="a">
71
- <ion-select-option value="a">Apple</ion-select-option>
72
- </ion-select>
73
- </main>
74
- `, config);
7
+ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
8
+ test.describe(title('select: a11y'), () => {
9
+ test('should not have accessibility violations', async ({ page }) => {
10
+ await page.goto(`/src/components/select/test/a11y`, config);
75
11
  const results = await new AxeBuilder({ page }).analyze();
76
12
  expect(results.violations).toEqual([]);
77
13
  });
@@ -187,10 +187,10 @@ ion-item {
187
187
  }
188
188
 
189
189
  .item-radio-checked {
190
- --background: rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08);
191
- --background-focused: var(--ion-color-primary, #0054e9);
190
+ --background: rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.08);
191
+ --background-focused: var(--ion-color-primary, #3880ff);
192
192
  --background-focused-opacity: 0.2;
193
- --background-hover: var(--ion-color-primary, #0054e9);
193
+ --background-hover: var(--ion-color-primary, #3880ff);
194
194
  --background-hover-opacity: 0.12;
195
195
  }
196
196
 
@@ -198,5 +198,5 @@ ion-item {
198
198
  --background-activated: var(--ion-item-color, var(--ion-text-color, #000));
199
199
  --background-focused: var(--ion-item-color, var(--ion-text-color, #000));
200
200
  --background-hover: var(--ion-item-color, var(--ion-text-color, #000));
201
- --color: var(--ion-color-primary, #0054e9);
201
+ --color: var(--ion-color-primary, #3880ff);
202
202
  }
@@ -127,21 +127,51 @@
127
127
  contain: strict;
128
128
  }
129
129
 
130
+ /**
131
+ * Do not pass CSS Variables down on larger
132
+ * screens as we want them to affect the outer
133
+ * `ion-menu` rather than the inner content
134
+ */
135
+ ::slotted(ion-menu.menu-pane-visible) {
136
+ flex: 0 1 auto;
137
+ width: var(--side-width);
138
+ min-width: var(--side-min-width);
139
+ max-width: var(--side-max-width);
140
+ }
141
+
142
+ :host(.split-pane-visible) ::slotted(.split-pane-side),
130
143
  :host(.split-pane-visible) ::slotted(.split-pane-main) {
131
144
  left: 0;
132
145
  right: 0;
133
146
  top: 0;
134
147
  bottom: 0;
135
148
  position: relative;
136
- flex: 1;
137
149
  box-shadow: none;
138
150
  z-index: 0;
139
151
  }
140
152
 
153
+ :host(.split-pane-visible) ::slotted(.split-pane-main) {
154
+ flex: 1;
155
+ }
156
+
157
+ :host(.split-pane-visible) ::slotted(.split-pane-side:not(ion-menu)),
158
+ :host(.split-pane-visible) ::slotted(ion-menu.split-pane-side.menu-enabled) {
159
+ display: flex;
160
+ flex-shrink: 0;
161
+ }
162
+
141
163
  ::slotted(.split-pane-side:not(ion-menu)) {
142
164
  display: none;
143
165
  }
144
166
 
167
+ :host(.split-pane-visible) ::slotted(.split-pane-side) {
168
+ order: -1;
169
+ }
170
+
171
+ :host(.split-pane-visible) ::slotted(.split-pane-side[side=end]) {
172
+ order: 1;
173
+ }
174
+
145
175
  /**
146
176
  * Convert a font size to a dynamic font size.
147
177
  * Fonts that participate in Dynamic Type should use
@@ -201,4 +231,26 @@
201
231
  --border: 0.55px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));
202
232
  --side-min-width: 270px;
203
233
  --side-max-width: 28%;
234
+ }
235
+
236
+ :host(.split-pane-visible) ::slotted(.split-pane-side) {
237
+ -webkit-border-start: 0;
238
+ border-inline-start: 0;
239
+ -webkit-border-end: var(--border);
240
+ border-inline-end: var(--border);
241
+ border-top: 0;
242
+ border-bottom: 0;
243
+ min-width: var(--side-min-width);
244
+ max-width: var(--side-max-width);
245
+ }
246
+
247
+ :host(.split-pane-visible) ::slotted(.split-pane-side[side=end]) {
248
+ -webkit-border-start: var(--border);
249
+ border-inline-start: var(--border);
250
+ -webkit-border-end: 0;
251
+ border-inline-end: 0;
252
+ border-top: 0;
253
+ border-bottom: 0;
254
+ min-width: var(--side-min-width);
255
+ max-width: var(--side-max-width);
204
256
  }