@ionic/core 7.6.2-dev.11704998705.1e1f9850 → 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 (378) 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-modal.js +1 -1
  19. package/components/ion-picker-legacy.js +2 -2
  20. package/components/ion-progress-bar.js +5 -2
  21. package/components/ion-range.js +2 -2
  22. package/components/ion-refresher-content.js +1 -1
  23. package/components/ion-refresher.js +1 -1
  24. package/components/ion-router-link.js +1 -1
  25. package/components/ion-searchbar.js +1 -1
  26. package/components/ion-segment-button.js +1 -1
  27. package/components/ion-select.js +2 -2
  28. package/components/ion-tab-bar.js +2 -2
  29. package/components/ion-tab-button.js +1 -1
  30. package/components/ion-textarea.js +2 -2
  31. package/components/ion-toast.js +2 -2
  32. package/components/ion-toggle.js +2 -2
  33. package/components/item.js +2 -2
  34. package/components/label.js +1 -1
  35. package/components/picker-column2.js +1 -1
  36. package/components/radio.js +2 -2
  37. package/components/select-popover.js +1 -1
  38. package/css/core.css +34 -101
  39. package/css/core.css.map +1 -1
  40. package/css/global.bundle.css +1 -1
  41. package/css/ionic.bundle.css +1 -1
  42. package/css/ionic.bundle.css.map +1 -1
  43. package/css/typography.css +1 -1
  44. package/dist/cjs/{animation-9b401d39.js → animation-8a4f9df4.js} +16 -0
  45. package/dist/cjs/{button-active-5bf1cac0.js → button-active-466dfc8a.js} +1 -1
  46. package/dist/cjs/{index-3b012034.js → index-8023641e.js} +1 -1
  47. package/dist/cjs/{index-17ab7794.js → index-d8b5d5f9.js} +2 -2
  48. package/dist/cjs/index.cjs.js +5 -5
  49. package/dist/cjs/ion-action-sheet.cjs.entry.js +6 -6
  50. package/dist/cjs/ion-alert.cjs.entry.js +4 -4
  51. package/dist/cjs/ion-app_8.cjs.entry.js +4 -3
  52. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  53. package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
  54. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  55. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
  56. package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -4
  57. package/dist/cjs/ion-datetime_3.cjs.entry.js +5 -5
  58. package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
  59. package/dist/cjs/ion-input.cjs.entry.js +2 -2
  60. package/dist/cjs/ion-item-option_3.cjs.entry.js +130 -10
  61. package/dist/cjs/ion-item_8.cjs.entry.js +3 -3
  62. package/dist/cjs/ion-loading.cjs.entry.js +2 -2
  63. package/dist/cjs/ion-menu_3.cjs.entry.js +3 -3
  64. package/dist/cjs/ion-modal.cjs.entry.js +3 -3
  65. package/dist/cjs/ion-nav_2.cjs.entry.js +1 -1
  66. package/dist/cjs/ion-popover.cjs.entry.js +2 -2
  67. package/dist/cjs/ion-progress-bar.cjs.entry.js +5 -2
  68. package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
  69. package/dist/cjs/ion-range.cjs.entry.js +2 -2
  70. package/dist/cjs/ion-refresher_2.cjs.entry.js +3 -3
  71. package/dist/cjs/ion-route_4.cjs.entry.js +1 -1
  72. package/dist/cjs/ion-searchbar.cjs.entry.js +1 -1
  73. package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
  74. package/dist/cjs/ion-select_3.cjs.entry.js +3 -3
  75. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +3 -3
  76. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  77. package/dist/cjs/ion-toast.cjs.entry.js +3 -3
  78. package/dist/cjs/ion-toggle.cjs.entry.js +2 -2
  79. package/dist/cjs/ionic.cjs.js +1 -1
  80. package/dist/cjs/{ios.transition-b5353f3e.js → ios.transition-34cad0cb.js} +2 -2
  81. package/dist/cjs/loader.cjs.js +1 -1
  82. package/dist/cjs/{md.transition-67157dd9.js → md.transition-5bcc289d.js} +2 -2
  83. package/dist/collection/components/action-sheet/action-sheet.ios.css +12 -5
  84. package/dist/collection/components/action-sheet/action-sheet.js +2 -2
  85. package/dist/collection/components/action-sheet/action-sheet.md.css +9 -2
  86. package/dist/collection/components/action-sheet/test/a11y/action-sheet.e2e.js +14 -23
  87. package/dist/collection/components/action-sheet/test/basic/action-sheet-rendering.e2e.js +19 -0
  88. package/dist/collection/components/action-sheet/test/basic/action-sheet.spec.js +22 -0
  89. package/dist/collection/components/alert/alert.ios.css +28 -27
  90. package/dist/collection/components/alert/alert.md.css +6 -6
  91. package/dist/collection/components/alert/test/a11y/alert.e2e.js +9 -22
  92. package/dist/collection/components/back-button/back-button.ios.css +1 -1
  93. package/dist/collection/components/back-button/test/a11y/back-button.e2e.js +0 -21
  94. package/dist/collection/components/badge/badge.ios.css +1 -1
  95. package/dist/collection/components/badge/badge.md.css +1 -1
  96. package/dist/collection/components/badge/test/a11y/badge.e2e.js +0 -18
  97. package/dist/collection/components/button/button.ios.css +10 -10
  98. package/dist/collection/components/button/button.md.css +8 -8
  99. package/dist/collection/components/button/test/a11y/button.e2e.js +0 -48
  100. package/dist/collection/components/checkbox/checkbox.ios.css +5 -5
  101. package/dist/collection/components/checkbox/checkbox.md.css +2 -3
  102. package/dist/collection/components/checkbox/test/a11y/checkbox.e2e.js +2 -11
  103. package/dist/collection/components/checkbox/test/basic/checkbox.e2e.js +10 -0
  104. package/dist/collection/components/content/content.js +3 -2
  105. package/dist/collection/components/datetime/datetime.ios.css +3 -2
  106. package/dist/collection/components/datetime-button/datetime-button.ios.css +107 -0
  107. package/dist/collection/components/datetime-button/datetime-button.js +4 -4
  108. package/dist/collection/components/datetime-button/{datetime-button.css → datetime-button.md.css} +9 -6
  109. package/dist/collection/components/datetime-button/test/basic/datetime-button.e2e.js +12 -0
  110. package/dist/collection/components/fab-button/fab-button.ios.css +13 -13
  111. package/dist/collection/components/fab-button/fab-button.md.css +4 -4
  112. package/dist/collection/components/fab-button/test/a11y/fab-button.e2e.js +0 -50
  113. package/dist/collection/components/input/input.ios.css +3 -3
  114. package/dist/collection/components/input/input.md.css +3 -3
  115. package/dist/collection/components/input/test/a11y/input.e2e.js +3 -41
  116. package/dist/collection/components/item/item.ios.css +3 -3
  117. package/dist/collection/components/item/item.md.css +4 -4
  118. package/dist/collection/components/item-option/item-option.ios.css +2 -2
  119. package/dist/collection/components/item-option/item-option.md.css +1 -1
  120. package/dist/collection/components/item-sliding/animations/item-sliding-options.js +59 -0
  121. package/dist/collection/components/item-sliding/item-sliding.css +8 -4
  122. package/dist/collection/components/item-sliding/item-sliding.js +89 -6
  123. package/dist/collection/components/item-sliding/test/a11y/item-sliding.e2e.js +0 -28
  124. package/dist/collection/components/item-sliding/test/basic/item-sliding.e2e.js +62 -25
  125. package/dist/collection/components/label/label.md.css +1 -1
  126. package/dist/collection/components/label/test/a11y/label.e2e.js +0 -20
  127. package/dist/collection/components/loading/loading.md.css +1 -1
  128. package/dist/collection/components/loading/test/a11y/loading.e2e.js +5 -21
  129. package/dist/collection/components/menu-button/menu-button.ios.css +1 -1
  130. package/dist/collection/components/menu-button/test/a11y/menu-button.e2e.js +0 -14
  131. package/dist/collection/components/modal/gestures/swipe-to-close.js +1 -1
  132. package/dist/collection/components/picker-legacy/picker.ios.css +1 -1
  133. package/dist/collection/components/picker-legacy/picker.md.css +1 -1
  134. package/dist/collection/components/picker-legacy-column/picker-column.md.css +1 -1
  135. package/dist/collection/components/progress-bar/progress-bar.ios.css +17 -11
  136. package/dist/collection/components/progress-bar/progress-bar.js +3 -0
  137. package/dist/collection/components/progress-bar/progress-bar.md.css +8 -10
  138. package/dist/collection/components/radio/radio.ios.css +2 -2
  139. package/dist/collection/components/radio/radio.md.css +2 -2
  140. package/dist/collection/components/radio/test/a11y/radio.e2e.js +68 -101
  141. package/dist/collection/components/range/range.ios.css +1 -1
  142. package/dist/collection/components/range/range.md.css +3 -3
  143. package/dist/collection/components/range/test/a11y/range.e2e.js +8 -18
  144. package/dist/collection/components/refresher/refresher.md.css +2 -2
  145. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  146. package/dist/collection/components/router-link/router-link.css +1 -1
  147. package/dist/collection/components/searchbar/searchbar.ios.css +4 -4
  148. package/dist/collection/components/segment/test/a11y/segment.e2e.js +0 -23
  149. package/dist/collection/components/segment-button/segment-button.md.css +2 -2
  150. package/dist/collection/components/select/select.ios.css +3 -3
  151. package/dist/collection/components/select/select.md.css +3 -3
  152. package/dist/collection/components/select/test/a11y/select.e2e.js +4 -68
  153. package/dist/collection/components/select-popover/select-popover.md.css +4 -4
  154. package/dist/collection/components/tab-bar/tab-bar.ios.css +1 -1
  155. package/dist/collection/components/tab-bar/tab-bar.md.css +1 -1
  156. package/dist/collection/components/tab-button/tab-button.ios.css +6 -1
  157. package/dist/collection/components/textarea/test/a11y/textarea.e2e.js +3 -41
  158. package/dist/collection/components/textarea/textarea.ios.css +3 -3
  159. package/dist/collection/components/textarea/textarea.md.css +3 -3
  160. package/dist/collection/components/toast/test/a11y/toast.e2e.js +24 -56
  161. package/dist/collection/components/toast/toast.ios.css +1 -1
  162. package/dist/collection/components/toast/toast.md.css +2 -2
  163. package/dist/collection/components/toggle/test/a11y/toggle.e2e.js +2 -8
  164. package/dist/collection/components/toggle/toggle.ios.css +8 -8
  165. package/dist/collection/components/toggle/toggle.md.css +2 -2
  166. package/dist/collection/css/test/a11y/typography.e2e.js +0 -18
  167. package/dist/collection/utils/animation/animation.js +15 -0
  168. package/dist/collection/utils/gesture/button-active.js +1 -1
  169. package/dist/collection/utils/test/playwright/generator.js +0 -1
  170. package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
  171. package/dist/docs.json +34 -7
  172. package/dist/esm/{animation-dde8cc0d.js → animation-ccab0993.js} +16 -1
  173. package/dist/esm/{button-active-48379dd2.js → button-active-2758ff14.js} +1 -1
  174. package/dist/esm/{index-4743453d.js → index-9dbb78a4.js} +2 -2
  175. package/dist/esm/{index-1193f005.js → index-b7e9478d.js} +1 -1
  176. package/dist/esm/index.js +5 -5
  177. package/dist/esm/ion-action-sheet.entry.js +6 -6
  178. package/dist/esm/ion-alert.entry.js +4 -4
  179. package/dist/esm/ion-app_8.entry.js +4 -3
  180. package/dist/esm/ion-avatar_3.entry.js +2 -2
  181. package/dist/esm/ion-back-button.entry.js +1 -1
  182. package/dist/esm/ion-button_2.entry.js +2 -2
  183. package/dist/esm/ion-checkbox.entry.js +2 -2
  184. package/dist/esm/ion-datetime-button.entry.js +4 -4
  185. package/dist/esm/ion-datetime_3.entry.js +5 -5
  186. package/dist/esm/ion-fab_3.entry.js +2 -2
  187. package/dist/esm/ion-input.entry.js +2 -2
  188. package/dist/esm/ion-item-option_3.entry.js +130 -10
  189. package/dist/esm/ion-item_8.entry.js +3 -3
  190. package/dist/esm/ion-loading.entry.js +2 -2
  191. package/dist/esm/ion-menu_3.entry.js +3 -3
  192. package/dist/esm/ion-modal.entry.js +3 -3
  193. package/dist/esm/ion-nav_2.entry.js +1 -1
  194. package/dist/esm/ion-popover.entry.js +2 -2
  195. package/dist/esm/ion-progress-bar.entry.js +5 -2
  196. package/dist/esm/ion-radio_2.entry.js +2 -2
  197. package/dist/esm/ion-range.entry.js +2 -2
  198. package/dist/esm/ion-refresher_2.entry.js +3 -3
  199. package/dist/esm/ion-route_4.entry.js +1 -1
  200. package/dist/esm/ion-searchbar.entry.js +1 -1
  201. package/dist/esm/ion-segment_2.entry.js +1 -1
  202. package/dist/esm/ion-select_3.entry.js +3 -3
  203. package/dist/esm/ion-tab-bar_2.entry.js +3 -3
  204. package/dist/esm/ion-textarea.entry.js +2 -2
  205. package/dist/esm/ion-toast.entry.js +3 -3
  206. package/dist/esm/ion-toggle.entry.js +2 -2
  207. package/dist/esm/ionic.js +1 -1
  208. package/dist/esm/{ios.transition-3376ccb2.js → ios.transition-01176d76.js} +2 -2
  209. package/dist/esm/loader.js +1 -1
  210. package/dist/esm/{md.transition-f992779f.js → md.transition-558655c7.js} +2 -2
  211. package/dist/esm-es5/animation-ccab0993.js +4 -0
  212. package/dist/esm-es5/button-active-2758ff14.js +4 -0
  213. package/dist/esm-es5/{index-4743453d.js → index-9dbb78a4.js} +1 -1
  214. package/dist/esm-es5/{index-1193f005.js → index-b7e9478d.js} +1 -1
  215. package/dist/esm-es5/index.js +1 -1
  216. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  217. package/dist/esm-es5/ion-alert.entry.js +1 -1
  218. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  219. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  220. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  221. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  222. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  223. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  224. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  225. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  226. package/dist/esm-es5/ion-input.entry.js +1 -1
  227. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  228. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  229. package/dist/esm-es5/ion-loading.entry.js +1 -1
  230. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  231. package/dist/esm-es5/ion-modal.entry.js +1 -1
  232. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  233. package/dist/esm-es5/ion-popover.entry.js +1 -1
  234. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  235. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  236. package/dist/esm-es5/ion-range.entry.js +1 -1
  237. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  238. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  239. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  240. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  241. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  242. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  243. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  244. package/dist/esm-es5/ion-toast.entry.js +1 -1
  245. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  246. package/dist/esm-es5/ionic.js +1 -1
  247. package/dist/esm-es5/{ios.transition-3376ccb2.js → ios.transition-01176d76.js} +1 -1
  248. package/dist/esm-es5/loader.js +1 -1
  249. package/dist/esm-es5/md.transition-558655c7.js +4 -0
  250. package/dist/html.html-data.json +12 -0
  251. package/dist/ionic/index.esm.js +1 -1
  252. package/dist/ionic/ionic.esm.js +1 -1
  253. package/dist/ionic/{p-ec0a9b2c.system.entry.js → p-019e0d80.system.entry.js} +1 -1
  254. package/dist/ionic/p-02dc8c5b.entry.js +4 -0
  255. package/dist/ionic/{p-c6e9ef77.entry.js → p-0cc80201.entry.js} +1 -1
  256. package/dist/ionic/{p-662a9a47.system.entry.js → p-0dfa4ab4.system.entry.js} +1 -1
  257. package/dist/ionic/{p-590447a5.system.entry.js → p-0e908476.system.entry.js} +1 -1
  258. package/dist/ionic/{p-df6f50ef.entry.js → p-10339dcc.entry.js} +1 -1
  259. package/dist/ionic/{p-1d5b03e3.system.entry.js → p-11bf2ad0.system.entry.js} +1 -1
  260. package/dist/ionic/{p-3796194b.system.entry.js → p-19c379da.system.entry.js} +1 -1
  261. package/dist/ionic/p-19d9ceb8.system.js +1 -1
  262. package/dist/ionic/p-1a22895e.system.entry.js +4 -0
  263. package/dist/ionic/p-1c69a4ca.system.entry.js +4 -0
  264. package/dist/ionic/{p-92bfb607.entry.js → p-20a4ee02.entry.js} +1 -1
  265. package/dist/ionic/{p-530bb2af.system.entry.js → p-2316de85.system.entry.js} +1 -1
  266. package/dist/ionic/{p-5cbfce20.entry.js → p-26ff1180.entry.js} +1 -1
  267. package/dist/ionic/{p-aa8b021d.entry.js → p-289f354c.entry.js} +1 -1
  268. package/dist/ionic/p-2a3b87cd.entry.js +4 -0
  269. package/dist/ionic/p-2e01f1c5.system.entry.js +4 -0
  270. package/dist/ionic/{p-5f1b0512.entry.js → p-3b043115.entry.js} +1 -1
  271. package/dist/ionic/p-3b434dee.system.entry.js +4 -0
  272. package/dist/ionic/{p-d88ed181.system.entry.js → p-41208f54.system.entry.js} +1 -1
  273. package/dist/ionic/{p-f0dbd73e.system.entry.js → p-42925096.system.entry.js} +1 -1
  274. package/dist/ionic/p-44791cff.entry.js +4 -0
  275. package/dist/ionic/p-4981ea0a.system.entry.js +4 -0
  276. package/dist/ionic/{p-13d4dfe7.entry.js → p-5074a526.entry.js} +1 -1
  277. package/dist/ionic/{p-a41eaff2.system.entry.js → p-56b1a872.system.entry.js} +1 -1
  278. package/dist/ionic/p-57785713.system.entry.js +4 -0
  279. package/dist/ionic/p-57e9de81.system.js +4 -0
  280. package/dist/ionic/{p-c001b24f.entry.js → p-5dc16594.entry.js} +1 -1
  281. package/dist/ionic/{p-9f94e34a.system.entry.js → p-614e63a9.system.entry.js} +1 -1
  282. package/dist/ionic/{p-8b160fba.entry.js → p-67e52d31.entry.js} +1 -1
  283. package/dist/ionic/{p-aa975ff8.entry.js → p-6855f26a.entry.js} +1 -1
  284. package/dist/ionic/{p-7dade589.system.entry.js → p-69ce8bba.system.entry.js} +1 -1
  285. package/dist/ionic/p-6fb2b5e3.js +4 -0
  286. package/dist/ionic/{p-8e961825.entry.js → p-799da666.entry.js} +1 -1
  287. package/dist/ionic/{p-04377cfa.js → p-7b4649d7.js} +1 -1
  288. package/dist/ionic/{p-4abb1251.entry.js → p-7c7bc0cc.entry.js} +1 -1
  289. package/dist/ionic/{p-a29db3a0.entry.js → p-7dcf795f.entry.js} +1 -1
  290. package/dist/ionic/{p-a074be82.system.js → p-7de7a5fd.system.js} +1 -1
  291. package/dist/ionic/{p-f38c1f8d.entry.js → p-806a9810.entry.js} +1 -1
  292. package/dist/ionic/p-80ad9792.system.js +4 -0
  293. package/dist/ionic/{p-d08e0136.entry.js → p-84b567a6.entry.js} +1 -1
  294. package/dist/ionic/{p-a49931aa.system.js → p-9093afb1.system.js} +1 -1
  295. package/dist/ionic/p-922c234e.js +4 -0
  296. package/dist/ionic/p-97a9d526.system.entry.js +4 -0
  297. package/dist/ionic/p-99d448ba.system.entry.js +4 -0
  298. package/dist/ionic/p-9c5e3a2c.system.entry.js +4 -0
  299. package/dist/ionic/{p-1c453add.system.entry.js → p-a1bd098f.system.entry.js} +1 -1
  300. package/dist/ionic/p-a619ecad.entry.js +4 -0
  301. package/dist/ionic/{p-354682e8.system.entry.js → p-abd5d0d5.system.entry.js} +1 -1
  302. package/dist/ionic/{p-e9431a58.entry.js → p-ae4b7df8.entry.js} +1 -1
  303. package/dist/ionic/p-b20717fc.system.entry.js +4 -0
  304. package/dist/ionic/p-b61d7624.entry.js +4 -0
  305. package/dist/ionic/p-b660ba8a.system.js +4 -0
  306. package/dist/ionic/{p-2716d76c.entry.js → p-b68d435f.entry.js} +1 -1
  307. package/dist/ionic/p-ba2b1ef5.entry.js +4 -0
  308. package/dist/ionic/{p-bc01c384.entry.js → p-ba5d9e27.entry.js} +1 -1
  309. package/dist/ionic/{p-9c48f42f.entry.js → p-bb3fd397.entry.js} +1 -1
  310. package/dist/ionic/{p-44a56556.js → p-c75dc92f.js} +1 -1
  311. package/dist/ionic/{p-1ab2642a.system.js → p-c8f7e8c8.system.js} +1 -1
  312. package/dist/ionic/p-cd729946.js +4 -0
  313. package/dist/ionic/{p-385bb983.entry.js → p-cf53213c.entry.js} +1 -1
  314. package/dist/ionic/{p-e403ff07.entry.js → p-d1ab26de.entry.js} +1 -1
  315. package/dist/ionic/p-d2a73201.system.entry.js +4 -0
  316. package/dist/ionic/p-d3525765.js +4 -0
  317. package/dist/ionic/{p-d01449a3.system.entry.js → p-da666998.system.entry.js} +1 -1
  318. package/dist/ionic/{p-cc700688.system.entry.js → p-db05ecb6.system.entry.js} +1 -1
  319. package/dist/ionic/p-dc43a79e.entry.js +4 -0
  320. package/dist/ionic/{p-0aa78a8d.system.js → p-e755af39.system.js} +1 -1
  321. package/dist/ionic/p-ee71caaa.system.entry.js +4 -0
  322. package/dist/ionic/{p-5aec2208.entry.js → p-f0eafd38.entry.js} +1 -1
  323. package/dist/ionic/{p-25312768.system.entry.js → p-f25b4396.system.entry.js} +1 -1
  324. package/dist/ionic/{p-308b6cf2.system.entry.js → p-f65f4d3e.system.entry.js} +1 -1
  325. package/dist/ionic/p-fd98debb.entry.js +4 -0
  326. package/dist/ionic/p-fe458994.system.entry.js +4 -0
  327. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +8 -0
  328. package/dist/types/components/item-sliding/animations/item-sliding-options.d.ts +10 -0
  329. package/dist/types/components/item-sliding/item-sliding.d.ts +19 -0
  330. package/dist/types/components.d.ts +8 -0
  331. package/dist/types/utils/animation/animation-interface.d.ts +6 -0
  332. package/dist/types/utils/animation/animation.d.ts +2 -0
  333. package/hydrate/index.js +203 -66
  334. package/package.json +1 -1
  335. package/css/themes/dark.always.css +0 -122
  336. package/css/themes/dark.always.css.map +0 -1
  337. package/css/themes/dark.class.css +0 -122
  338. package/css/themes/dark.class.css.map +0 -1
  339. package/css/themes/dark.css +0 -3
  340. package/css/themes/dark.css.map +0 -1
  341. package/css/themes/dark.system.css +0 -124
  342. package/css/themes/dark.system.css.map +0 -1
  343. package/dist/collection/components/progress-bar/test/a11y/progress-bar.e2e.js +0 -24
  344. package/dist/collection/components/refresher/test/a11y/refresher.e2e.js +0 -25
  345. package/dist/collection/components/router-link/test/a11y/router-link.e2e.js +0 -23
  346. package/dist/collection/components/select-popover/test/a11y/select-popover.e2e.js +0 -32
  347. package/dist/collection/themes/test/colors/theme.e2e.js +0 -114
  348. package/dist/esm-es5/animation-dde8cc0d.js +0 -4
  349. package/dist/esm-es5/button-active-48379dd2.js +0 -4
  350. package/dist/esm-es5/md.transition-f992779f.js +0 -4
  351. package/dist/ionic/p-04d84d5d.entry.js +0 -4
  352. package/dist/ionic/p-068950da.entry.js +0 -4
  353. package/dist/ionic/p-0832dedf.entry.js +0 -4
  354. package/dist/ionic/p-11c55ac8.system.js +0 -4
  355. package/dist/ionic/p-1b60cc53.js +0 -4
  356. package/dist/ionic/p-24c3f2cd.system.entry.js +0 -4
  357. package/dist/ionic/p-2724403e.entry.js +0 -4
  358. package/dist/ionic/p-283bc1a1.system.entry.js +0 -4
  359. package/dist/ionic/p-29d03b3a.js +0 -4
  360. package/dist/ionic/p-38f2c6bb.system.js +0 -4
  361. package/dist/ionic/p-3af5faf8.system.entry.js +0 -4
  362. package/dist/ionic/p-713af1fe.entry.js +0 -4
  363. package/dist/ionic/p-8a25bf30.system.entry.js +0 -4
  364. package/dist/ionic/p-97aaf697.system.entry.js +0 -4
  365. package/dist/ionic/p-98f35d98.js +0 -4
  366. package/dist/ionic/p-9a68d8ef.system.js +0 -4
  367. package/dist/ionic/p-9a8bc8f3.system.entry.js +0 -4
  368. package/dist/ionic/p-a6e5f54e.system.entry.js +0 -4
  369. package/dist/ionic/p-b59fe3bd.system.entry.js +0 -4
  370. package/dist/ionic/p-b7e03ff0.system.entry.js +0 -4
  371. package/dist/ionic/p-bec6ae40.entry.js +0 -4
  372. package/dist/ionic/p-c16fbc5f.system.entry.js +0 -4
  373. package/dist/ionic/p-cb6a1fa0.system.entry.js +0 -4
  374. package/dist/ionic/p-cd3e1a06.entry.js +0 -4
  375. package/dist/ionic/p-cd574dfa.js +0 -4
  376. package/dist/ionic/p-d1ad57d5.system.entry.js +0 -4
  377. package/dist/ionic/p-d2634efe.system.entry.js +0 -4
  378. package/dist/ionic/p-fc17f198.entry.js +0 -4
@@ -2,10 +2,14 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { Host, h } from "@stencil/core";
5
+ import { supportsWebAnimations } from "../../utils/animation/animation";
5
6
  import { findClosestIonContent, disableContentScrollY, resetContentScrollY } from "../../utils/content/index";
6
7
  import { isEndSide } from "../../utils/helpers";
8
+ import { printIonWarning } from "../../utils/logging/index";
9
+ import { isRTL } from "../../utils/rtl/index";
7
10
  import { watchForOptions } from "../../utils/watch-options";
8
11
  import { getIonMode } from "../../global/ionic-global";
12
+ import { slidingItemAnimation } from "./animations/item-sliding-options";
9
13
  const SWIPE_MARGIN = 30;
10
14
  const ELASTIC_FACTOR = 0.55;
11
15
  let openSlidingItem;
@@ -22,6 +26,7 @@ export class ItemSliding {
22
26
  this.initialContentScrollY = true;
23
27
  this.state = 2 /* SlidingState.Disabled */;
24
28
  this.disabled = false;
29
+ this.animationType = 'legacy';
25
30
  }
26
31
  disabledChanged() {
27
32
  if (this.gesture) {
@@ -70,6 +75,12 @@ export class ItemSliding {
70
75
  this.mutationObserver = undefined;
71
76
  }
72
77
  }
78
+ componentWillLoad() {
79
+ if (!supportsWebAnimations && this.animationType === 'modern') {
80
+ printIonWarning('Animation type "modern" needs Web Animations API support. Falling back to "legacy".');
81
+ this.animationType = 'legacy';
82
+ }
83
+ }
73
84
  /**
74
85
  * Get the amount the item is open in pixels.
75
86
  */
@@ -174,6 +185,20 @@ export class ItemSliding {
174
185
  return this.rightOptions;
175
186
  }
176
187
  }
188
+ /**
189
+ * Given a side, return the width of the options on that side.
190
+ *
191
+ * @param side The side of the options to get the width for.
192
+ */
193
+ getOptionsWidth(side) {
194
+ if (side === 'start') {
195
+ return this.optsWidthLeftSide;
196
+ }
197
+ else if (side === 'end') {
198
+ return this.optsWidthRightSide;
199
+ }
200
+ return 0;
201
+ }
177
202
  async updateOptions() {
178
203
  const options = this.el.querySelectorAll('ion-item-options');
179
204
  let sides = 0;
@@ -321,7 +346,8 @@ export class ItemSliding {
321
346
  if (!this.item) {
322
347
  return;
323
348
  }
324
- const { el } = this;
349
+ const { el, animationType } = this;
350
+ const rtl = isRTL(el);
325
351
  const style = this.item.style;
326
352
  this.openAmount = openAmount;
327
353
  if (isFinal) {
@@ -365,14 +391,51 @@ export class ItemSliding {
365
391
  }, 600);
366
392
  openSlidingItem = undefined;
367
393
  style.transform = '';
394
+ if (animationType === 'modern') {
395
+ this.animateSlidingItemOptions(0, rtl);
396
+ }
368
397
  return;
369
398
  }
370
399
  style.transform = `translate3d(${-openAmount}px,0,0)`;
400
+ if (animationType === 'modern') {
401
+ this.animateSlidingItemOptions(openAmount, rtl);
402
+ }
371
403
  this.ionDrag.emit({
372
404
  amount: openAmount,
373
405
  ratio: this.getSlidingRatioSync(),
374
406
  });
375
407
  }
408
+ animateSlidingItemOptions(openAmount, isRTL) {
409
+ var _a;
410
+ /**
411
+ * The total width of the 'processed' options.
412
+ * Used to calculate the offset to move each option off the
413
+ * screen, on top of each other.
414
+ */
415
+ let optionWidthOffset = 0;
416
+ const side = this.state === 16 /* SlidingState.Start */ ? 'start' : 'end';
417
+ const options = Array.from(((_a = this.getOptions(side)) === null || _a === void 0 ? void 0 : _a.querySelectorAll('ion-item-option')) || []);
418
+ const optsWidth = this.getOptionsWidth(side);
419
+ const progress = Math.abs(openAmount / optsWidth);
420
+ options.forEach((option, index) => {
421
+ let isFinal = false;
422
+ let zIndex;
423
+ let viewportOffset = 0;
424
+ const isReset = openAmount === 0;
425
+ if (side === 'start') {
426
+ viewportOffset = isRTL ? -1 * (optsWidth - optionWidthOffset) : -1 * (option.clientWidth + optionWidthOffset);
427
+ isFinal = openAmount <= -optsWidth;
428
+ zIndex = isRTL ? undefined : options.length - index;
429
+ }
430
+ else {
431
+ viewportOffset = isRTL ? optionWidthOffset + option.clientWidth : optsWidth - optionWidthOffset;
432
+ isFinal = openAmount >= optsWidth;
433
+ zIndex = isRTL ? options.length - index : undefined;
434
+ }
435
+ slidingItemAnimation(option, viewportOffset, progress, isFinal, isReset, zIndex);
436
+ optionWidthOffset += option.clientWidth;
437
+ });
438
+ }
376
439
  getSlidingRatioSync() {
377
440
  if (this.openAmount > 0) {
378
441
  return this.openAmount / this.optsWidthRightSide;
@@ -386,13 +449,15 @@ export class ItemSliding {
386
449
  }
387
450
  render() {
388
451
  const mode = getIonMode(this);
452
+ const { state, animationType } = this;
389
453
  return (h(Host, { class: {
390
454
  [mode]: true,
391
- 'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
392
- 'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
393
- 'item-sliding-active-options-start': (this.state & 16 /* SlidingState.Start */) !== 0,
394
- 'item-sliding-active-swipe-end': (this.state & 32 /* SlidingState.SwipeEnd */) !== 0,
395
- 'item-sliding-active-swipe-start': (this.state & 64 /* SlidingState.SwipeStart */) !== 0,
455
+ [`item-sliding-animation-${animationType}`]: true,
456
+ 'item-sliding-active-slide': state !== 2 /* SlidingState.Disabled */,
457
+ 'item-sliding-active-options-end': (state & 8 /* SlidingState.End */) !== 0,
458
+ 'item-sliding-active-options-start': (state & 16 /* SlidingState.Start */) !== 0,
459
+ 'item-sliding-active-swipe-end': (state & 32 /* SlidingState.SwipeEnd */) !== 0,
460
+ 'item-sliding-active-swipe-start': (state & 64 /* SlidingState.SwipeStart */) !== 0,
396
461
  } }));
397
462
  }
398
463
  static get is() { return "ion-item-sliding"; }
@@ -425,6 +490,24 @@ export class ItemSliding {
425
490
  "attribute": "disabled",
426
491
  "reflect": false,
427
492
  "defaultValue": "false"
493
+ },
494
+ "animationType": {
495
+ "type": "string",
496
+ "mutable": false,
497
+ "complexType": {
498
+ "original": "'modern' | 'legacy'",
499
+ "resolved": "\"legacy\" | \"modern\"",
500
+ "references": {}
501
+ },
502
+ "required": false,
503
+ "optional": false,
504
+ "docs": {
505
+ "tags": [],
506
+ "text": "Specifies the animation behavior for sliding item options.\nYou can choose between two available options: \"modern\" and \"legacy\".\n\n- \"legacy\": The item will be swiped to reveal the option buttons beneath it.\n- \"modern\": As the item is swiped, all item options will smoothly and gradually reveal themselves.\n\nThe \"modern\" animation type requires the [Web Animations API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API).\nCheck [Browser Support](https://caniuse.com/web-animation) for more information."
507
+ },
508
+ "attribute": "animation-type",
509
+ "reflect": false,
510
+ "defaultValue": "'legacy'"
428
511
  }
429
512
  };
430
513
  }
@@ -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
  */
@@ -15,33 +15,70 @@ configs().forEach(({ title, screenshot, config }) => {
15
15
  test.beforeEach(async ({ page }) => {
16
16
  await page.goto(`/src/components/item-sliding/test/basic`, config);
17
17
  });
18
- test.describe('start options', () => {
19
- test('should not have visual regressions', async ({ page }) => {
20
- const item = page.locator('#item2');
21
- /**
22
- * Negative dragByX value to drag element from the right to the left
23
- * to reveal the options on the right side.
24
- * Positive dragByX value to drag element from the left to the right
25
- * to reveal the options on the left side.
26
- */
27
- const dragByX = config.direction === 'rtl' ? -150 : 150;
28
- await dragElementBy(item, page, dragByX);
29
- await page.waitForChanges();
30
- await expect(item).toHaveScreenshot(screenshot('item-sliding-start'));
18
+ test.describe('legacy animation', () => {
19
+ test.describe('start options', () => {
20
+ test('should not have visual regressions', async ({ page }) => {
21
+ const item = page.locator('#item2');
22
+ /**
23
+ * Negative dragByX value to drag element from the right to the left
24
+ * to reveal the options on the right side.
25
+ * Positive dragByX value to drag element from the left to the right
26
+ * to reveal the options on the left side.
27
+ */
28
+ const dragByX = config.direction === 'rtl' ? -150 : 150;
29
+ await dragElementBy(item, page, dragByX);
30
+ await page.waitForChanges();
31
+ await expect(item).toHaveScreenshot(screenshot('item-sliding-start'));
32
+ });
33
+ });
34
+ test.describe('end options', () => {
35
+ test('should not have visual regressions', async ({ page }) => {
36
+ const item = page.locator('#item2');
37
+ /**
38
+ * Negative dragByX value to drag element from the right to the left
39
+ * to reveal the options on the right side.
40
+ * Positive dragByX value to drag element from the left to the right
41
+ * to reveal the options on the left side.
42
+ */
43
+ const dragByX = config.direction === 'rtl' ? 150 : -150;
44
+ await dragElementBy(item, page, dragByX);
45
+ await expect(item).toHaveScreenshot(screenshot('item-sliding-end'));
46
+ });
31
47
  });
32
48
  });
33
- test.describe('end options', () => {
34
- test('should not have visual regressions', async ({ page }) => {
35
- const item = page.locator('#item2');
36
- /**
37
- * Negative dragByX value to drag element from the right to the left
38
- * to reveal the options on the right side.
39
- * Positive dragByX value to drag element from the left to the right
40
- * to reveal the options on the left side.
41
- */
42
- const dragByX = config.direction === 'rtl' ? 150 : -150;
43
- await dragElementBy(item, page, dragByX);
44
- await expect(item).toHaveScreenshot(screenshot('item-sliding-end'));
49
+ test.describe('modern animation', () => {
50
+ test.describe('start options', () => {
51
+ test('should not have visual regressions', async ({ page }) => {
52
+ const useModernAnimationBtn = page.locator('#useModernAnimation');
53
+ await useModernAnimationBtn.click();
54
+ const item = page.locator('#item2');
55
+ /**
56
+ * Negative dragByX value to drag element from the right to the left
57
+ * to reveal the options on the right side.
58
+ * Positive dragByX value to drag element from the left to the right
59
+ * to reveal the options on the left side.
60
+ */
61
+ const dragByX = config.direction === 'rtl' ? -150 : 150;
62
+ await dragElementBy(item, page, dragByX);
63
+ await page.waitForChanges();
64
+ await expect(item).toHaveScreenshot(screenshot('modern-item-sliding-start'));
65
+ });
66
+ });
67
+ test.describe('end options', () => {
68
+ test('should not have visual regressions', async ({ page }) => {
69
+ const useModernAnimationBtn = page.locator('#useModernAnimation');
70
+ await useModernAnimationBtn.click();
71
+ const item = page.locator('#item2');
72
+ /**
73
+ * Negative dragByX value to drag element from the right to the left
74
+ * to reveal the options on the right side.
75
+ * Positive dragByX value to drag element from the left to the right
76
+ * to reveal the options on the left side.
77
+ */
78
+ const dragByX = config.direction === 'rtl' ? 150 : -150;
79
+ await dragElementBy(item, page, dragByX);
80
+ await expect(item).toHaveScreenshot(screenshot('modern-item-sliding-end'));
81
+ });
45
82
  });
46
83
  });
47
84
  });
@@ -348,7 +348,7 @@
348
348
  :host-context(.ion-focused).label-floating:not(.ion-color),
349
349
  :host-context(.item-has-focus).label-stacked:not(.ion-color),
350
350
  :host-context(.item-has-focus).label-floating:not(.ion-color) {
351
- color: var(--ion-color-primary, #0054e9);
351
+ color: var(--ion-color-primary, #3880ff);
352
352
  }
353
353
 
354
354
  :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,25 +64,6 @@ 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
- });
87
67
  configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
88
68
  test.describe(title('label: text wrapping in item'), () => {
89
69
  test('long text should not cause label to expand infinitely', async ({ page }) => {
@@ -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 }) => {
@@ -10,7 +10,7 @@ import { setCardStatusBarDark, setCardStatusBarDefault } from "../utils";
10
10
  import { calculateSpringStep, handleCanDismiss } from "./utils";
11
11
  // Defaults for the card swipe animation
12
12
  export const SwipeToCloseDefaults = {
13
- MIN_PRESENTING_SCALE: 0.93,
13
+ MIN_PRESENTING_SCALE: 0.915,
14
14
  };
15
15
  export const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss) => {
16
16
  /**
@@ -279,7 +279,7 @@
279
279
  padding-bottom: 0;
280
280
  height: 44px;
281
281
  background: transparent;
282
- color: var(--ion-color-primary, #0054e9);
282
+ color: var(--ion-color-primary, #3880ff);
283
283
  font-size: 16px;
284
284
  }
285
285
 
@@ -265,7 +265,7 @@
265
265
  padding-bottom: 0;
266
266
  height: 44px;
267
267
  background: transparent;
268
- color: var(--ion-color-primary, #0054e9);
268
+ color: var(--ion-color-primary, #3880ff);
269
269
  font-size: 14px;
270
270
  font-weight: 500;
271
271
  text-transform: uppercase;
@@ -242,5 +242,5 @@
242
242
  .picker-prefix,
243
243
  .picker-suffix,
244
244
  .picker-opt.picker-opt-selected {
245
- color: var(--ion-color-primary, #0054e9);
245
+ color: var(--ion-color-primary, #3880ff);
246
246
  }
@@ -57,11 +57,9 @@
57
57
  /**
58
58
  * @prop --background: Background of the progress track, or the buffer bar if `buffer` is set
59
59
  * @prop --progress-background: Background of the progress bar representing the current value
60
- * @prop --buffer-background: DEPRECATED, use `--background` instead
61
60
  */
62
- --background: rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.3);
63
- --progress-background: var(--ion-color-primary, #0054e9);
64
- --buffer-background: var(--background);
61
+ --background: rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.3);
62
+ --progress-background: var(--ion-color-primary, #3880ff);
65
63
  display: block;
66
64
  position: relative;
67
65
  width: 100%;
@@ -115,7 +113,7 @@
115
113
  }
116
114
 
117
115
  .progress-buffer-bar {
118
- background: var(--buffer-background);
116
+ background: var(--background);
119
117
  z-index: 1;
120
118
  }
121
119
 
@@ -152,7 +150,7 @@
152
150
  }
153
151
 
154
152
  .buffer-circles {
155
- background-image: radial-gradient(ellipse at center, var(--buffer-background) 0%, var(--buffer-background) 30%, transparent 30%);
153
+ background-image: radial-gradient(ellipse at center, var(--background) 0%, var(--background) 30%, transparent 30%);
156
154
  /* stylelint-disable property-disallowed-list */
157
155
  background-repeat: repeat-x;
158
156
  background-position: 5px center;
@@ -172,10 +170,6 @@
172
170
  animation-play-state: paused;
173
171
  }
174
172
 
175
- :host(.ion-color) .progress-buffer-bar {
176
- background: rgba(var(--ion-color-base-rgb), 0.3);
177
- }
178
-
179
173
  :host(.ion-color) .buffer-circles {
180
174
  background-image: radial-gradient(ellipse at center, rgba(var(--ion-color-base-rgb), 0.3) 0%, rgba(var(--ion-color-base-rgb), 0.3) 30%, transparent 30%);
181
175
  }
@@ -257,5 +251,17 @@
257
251
  }
258
252
  }
259
253
  :host {
260
- height: 3px;
254
+ border-radius: 9999px;
255
+ height: 4px;
256
+ }
257
+
258
+ :host(.progress-bar-solid) {
259
+ /**
260
+ * On iOS the unfilled portion of the progress bar
261
+ * is always a consistent background color. We
262
+ * only apply this style when the progress bar is
263
+ * solid (with a buffer value of 1). This maintains
264
+ * the custom Ionic appearance for a buffered progress bar.
265
+ */
266
+ --background: var(--ion-color-step-100, #e6e6e6);
261
267
  }
@@ -26,11 +26,14 @@ export class ProgressBar {
26
26
  const { color, type, reversed, value, buffer } = this;
27
27
  const paused = config.getBoolean('_testing');
28
28
  const mode = getIonMode(this);
29
+ // If the progress is displayed as a solid bar.
30
+ const progressSolid = buffer === 1;
29
31
  return (h(Host, { role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses(color, {
30
32
  [mode]: true,
31
33
  [`progress-bar-${type}`]: true,
32
34
  'progress-paused': paused,
33
35
  'progress-bar-reversed': document.dir === 'rtl' ? !reversed : reversed,
36
+ 'progress-bar-solid': progressSolid,
34
37
  }) }, type === 'indeterminate' ? renderIndeterminate() : renderProgress(value, buffer)));
35
38
  }
36
39
  static get is() { return "ion-progress-bar"; }
@@ -57,11 +57,9 @@
57
57
  /**
58
58
  * @prop --background: Background of the progress track, or the buffer bar if `buffer` is set
59
59
  * @prop --progress-background: Background of the progress bar representing the current value
60
- * @prop --buffer-background: DEPRECATED, use `--background` instead
61
60
  */
62
- --background: rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.3);
63
- --progress-background: var(--ion-color-primary, #0054e9);
64
- --buffer-background: var(--background);
61
+ --background: rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.3);
62
+ --progress-background: var(--ion-color-primary, #3880ff);
65
63
  display: block;
66
64
  position: relative;
67
65
  width: 100%;
@@ -115,7 +113,7 @@
115
113
  }
116
114
 
117
115
  .progress-buffer-bar {
118
- background: var(--buffer-background);
116
+ background: var(--background);
119
117
  z-index: 1;
120
118
  }
121
119
 
@@ -152,7 +150,7 @@
152
150
  }
153
151
 
154
152
  .buffer-circles {
155
- background-image: radial-gradient(ellipse at center, var(--buffer-background) 0%, var(--buffer-background) 30%, transparent 30%);
153
+ background-image: radial-gradient(ellipse at center, var(--background) 0%, var(--background) 30%, transparent 30%);
156
154
  /* stylelint-disable property-disallowed-list */
157
155
  background-repeat: repeat-x;
158
156
  background-position: 5px center;
@@ -172,10 +170,6 @@
172
170
  animation-play-state: paused;
173
171
  }
174
172
 
175
- :host(.ion-color) .progress-buffer-bar {
176
- background: rgba(var(--ion-color-base-rgb), 0.3);
177
- }
178
-
179
173
  :host(.ion-color) .buffer-circles {
180
174
  background-image: radial-gradient(ellipse at center, rgba(var(--ion-color-base-rgb), 0.3) 0%, rgba(var(--ion-color-base-rgb), 0.3) 30%, transparent 30%);
181
175
  }
@@ -258,4 +252,8 @@
258
252
  }
259
253
  :host {
260
254
  height: 4px;
255
+ }
256
+
257
+ :host(.ion-color) .progress-buffer-bar {
258
+ background: rgba(var(--ion-color-base-rgb), 0.3);
261
259
  }
@@ -462,7 +462,7 @@ input {
462
462
  * }
463
463
  */
464
464
  :host {
465
- --color-checked: var(--ion-color-primary, #0054e9);
465
+ --color-checked: var(--ion-color-primary, #3880ff);
466
466
  }
467
467
 
468
468
  :host(.legacy-radio) {
@@ -504,7 +504,7 @@ input {
504
504
  position: absolute;
505
505
  width: 36px;
506
506
  height: 36px;
507
- background: var(--ion-color-primary-tint, #1a65eb);
507
+ background: var(--ion-color-primary-tint, #4c8dff);
508
508
  content: "";
509
509
  opacity: 0.2;
510
510
  }
@@ -463,7 +463,7 @@ input {
463
463
  */
464
464
  :host {
465
465
  --color: rgb(var(--ion-text-color-rgb, 0, 0, 0), 0.6);
466
- --color-checked: var(--ion-color-primary, #0054e9);
466
+ --color-checked: var(--ion-color-primary, #3880ff);
467
467
  --border-width: 0.125rem;
468
468
  --border-style: solid;
469
469
  --border-radius: 50%;
@@ -551,7 +551,7 @@ input {
551
551
  position: absolute;
552
552
  width: 36px;
553
553
  height: 36px;
554
- background: var(--ion-color-primary-tint, #1a65eb);
554
+ background: var(--ion-color-primary-tint, #4c8dff);
555
555
  content: "";
556
556
  opacity: 0.2;
557
557
  }