@ionic/core 7.6.2-dev.11705694334.11b34c62 → 7.6.2-dev.11706202387.1dfcd9b8

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 (404) hide show
  1. package/components/action-sheet.js +4 -4
  2. package/components/alert.js +2 -2
  3. package/components/animation.js +1 -16
  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 +2 -3
  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 +7 -128
  16. package/components/ion-loading.js +1 -1
  17. package/components/ion-menu-button.js +1 -1
  18. package/components/ion-menu.js +21 -15
  19. package/components/ion-modal.js +1 -1
  20. package/components/ion-nav.js +7 -3
  21. package/components/ion-picker-legacy.js +2 -2
  22. package/components/ion-progress-bar.js +2 -5
  23. package/components/ion-range.js +2 -2
  24. package/components/ion-refresher-content.js +1 -1
  25. package/components/ion-refresher.js +1 -1
  26. package/components/ion-router-link.js +1 -1
  27. package/components/ion-searchbar.js +1 -1
  28. package/components/ion-segment-button.js +1 -1
  29. package/components/ion-select.js +2 -2
  30. package/components/ion-split-pane.js +26 -15
  31. package/components/ion-tab-bar.js +2 -2
  32. package/components/ion-tab-button.js +1 -1
  33. package/components/ion-textarea.js +2 -2
  34. package/components/ion-toast.js +2 -2
  35. package/components/ion-toggle.js +2 -2
  36. package/components/item.js +2 -2
  37. package/components/label.js +1 -1
  38. package/components/picker-column2.js +1 -1
  39. package/components/radio.js +2 -2
  40. package/components/select-popover.js +1 -1
  41. package/css/core.css +101 -34
  42. package/css/core.css.map +1 -1
  43. package/css/global.bundle.css +1 -1
  44. package/css/ionic.bundle.css +1 -1
  45. package/css/ionic.bundle.css.map +1 -1
  46. package/css/themes/dark.always.css +122 -0
  47. package/css/themes/dark.always.css.map +1 -0
  48. package/css/themes/dark.class.css +122 -0
  49. package/css/themes/dark.class.css.map +1 -0
  50. package/css/themes/dark.css +3 -0
  51. package/css/themes/dark.css.map +1 -0
  52. package/css/themes/dark.system.css +124 -0
  53. package/css/themes/dark.system.css.map +1 -0
  54. package/css/typography.css +1 -1
  55. package/dist/cjs/{animation-8a4f9df4.js → animation-9b401d39.js} +0 -16
  56. package/dist/cjs/{button-active-466dfc8a.js → button-active-5bf1cac0.js} +1 -1
  57. package/dist/cjs/{index-d8b5d5f9.js → index-17ab7794.js} +2 -2
  58. package/dist/cjs/{index-8023641e.js → index-3b012034.js} +1 -1
  59. package/dist/cjs/index.cjs.js +5 -5
  60. package/dist/cjs/ion-action-sheet.cjs.entry.js +6 -6
  61. package/dist/cjs/ion-alert.cjs.entry.js +4 -4
  62. package/dist/cjs/ion-app_8.cjs.entry.js +3 -4
  63. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  64. package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
  65. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  66. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
  67. package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -4
  68. package/dist/cjs/ion-datetime_3.cjs.entry.js +5 -5
  69. package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
  70. package/dist/cjs/ion-input.cjs.entry.js +2 -2
  71. package/dist/cjs/ion-item-option_3.cjs.entry.js +10 -130
  72. package/dist/cjs/ion-item_8.cjs.entry.js +3 -3
  73. package/dist/cjs/ion-loading.cjs.entry.js +2 -2
  74. package/dist/cjs/ion-menu_3.cjs.entry.js +24 -19
  75. package/dist/cjs/ion-modal.cjs.entry.js +3 -3
  76. package/dist/cjs/ion-nav_2.cjs.entry.js +6 -3
  77. package/dist/cjs/ion-popover.cjs.entry.js +2 -2
  78. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -5
  79. package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
  80. package/dist/cjs/ion-range.cjs.entry.js +2 -2
  81. package/dist/cjs/ion-refresher_2.cjs.entry.js +3 -3
  82. package/dist/cjs/ion-route_4.cjs.entry.js +1 -1
  83. package/dist/cjs/ion-searchbar.cjs.entry.js +1 -1
  84. package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
  85. package/dist/cjs/ion-select_3.cjs.entry.js +3 -3
  86. package/dist/cjs/ion-split-pane.cjs.entry.js +24 -14
  87. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +3 -3
  88. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  89. package/dist/cjs/ion-toast.cjs.entry.js +3 -3
  90. package/dist/cjs/ion-toggle.cjs.entry.js +2 -2
  91. package/dist/cjs/ionic.cjs.js +1 -1
  92. package/dist/cjs/{ios.transition-34cad0cb.js → ios.transition-b5353f3e.js} +2 -2
  93. package/dist/cjs/loader.cjs.js +1 -1
  94. package/dist/cjs/{md.transition-5bcc289d.js → md.transition-67157dd9.js} +2 -2
  95. package/dist/collection/components/action-sheet/action-sheet.ios.css +5 -12
  96. package/dist/collection/components/action-sheet/action-sheet.js +2 -2
  97. package/dist/collection/components/action-sheet/action-sheet.md.css +2 -9
  98. package/dist/collection/components/action-sheet/test/a11y/action-sheet.e2e.js +23 -14
  99. package/dist/collection/components/action-sheet/test/basic/action-sheet-rendering.e2e.js +0 -19
  100. package/dist/collection/components/action-sheet/test/basic/action-sheet.spec.js +0 -22
  101. package/dist/collection/components/alert/alert.ios.css +27 -28
  102. package/dist/collection/components/alert/alert.md.css +6 -6
  103. package/dist/collection/components/alert/test/a11y/alert.e2e.js +22 -9
  104. package/dist/collection/components/back-button/back-button.ios.css +1 -1
  105. package/dist/collection/components/back-button/test/a11y/back-button.e2e.js +21 -0
  106. package/dist/collection/components/badge/badge.ios.css +1 -1
  107. package/dist/collection/components/badge/badge.md.css +1 -1
  108. package/dist/collection/components/badge/test/a11y/badge.e2e.js +18 -0
  109. package/dist/collection/components/button/button.ios.css +10 -10
  110. package/dist/collection/components/button/button.md.css +8 -8
  111. package/dist/collection/components/button/test/a11y/button.e2e.js +48 -0
  112. package/dist/collection/components/checkbox/checkbox.ios.css +5 -5
  113. package/dist/collection/components/checkbox/checkbox.md.css +3 -2
  114. package/dist/collection/components/checkbox/test/a11y/checkbox.e2e.js +11 -2
  115. package/dist/collection/components/checkbox/test/basic/checkbox.e2e.js +0 -10
  116. package/dist/collection/components/content/content.js +2 -3
  117. package/dist/collection/components/datetime/datetime.ios.css +2 -3
  118. package/dist/collection/components/datetime-button/{datetime-button.md.css → datetime-button.css} +6 -9
  119. package/dist/collection/components/datetime-button/datetime-button.js +4 -4
  120. package/dist/collection/components/datetime-button/test/basic/datetime-button.e2e.js +0 -12
  121. package/dist/collection/components/fab-button/fab-button.ios.css +13 -13
  122. package/dist/collection/components/fab-button/fab-button.md.css +4 -4
  123. package/dist/collection/components/fab-button/test/a11y/fab-button.e2e.js +50 -0
  124. package/dist/collection/components/input/input.ios.css +3 -3
  125. package/dist/collection/components/input/input.md.css +3 -3
  126. package/dist/collection/components/input/test/a11y/input.e2e.js +41 -3
  127. package/dist/collection/components/item/item.ios.css +3 -3
  128. package/dist/collection/components/item/item.md.css +4 -4
  129. package/dist/collection/components/item-option/item-option.ios.css +2 -2
  130. package/dist/collection/components/item-option/item-option.md.css +1 -1
  131. package/dist/collection/components/item-sliding/item-sliding.css +4 -8
  132. package/dist/collection/components/item-sliding/item-sliding.js +6 -89
  133. package/dist/collection/components/item-sliding/test/a11y/item-sliding.e2e.js +28 -0
  134. package/dist/collection/components/item-sliding/test/basic/item-sliding.e2e.js +25 -62
  135. package/dist/collection/components/label/label.md.css +1 -1
  136. package/dist/collection/components/label/test/a11y/label.e2e.js +20 -0
  137. package/dist/collection/components/loading/loading.md.css +1 -1
  138. package/dist/collection/components/loading/test/a11y/loading.e2e.js +21 -5
  139. package/dist/collection/components/menu/menu.ios.css +64 -3
  140. package/dist/collection/components/menu/menu.js +19 -13
  141. package/dist/collection/components/menu/menu.md.css +64 -3
  142. package/dist/collection/components/menu-button/menu-button.ios.css +1 -1
  143. package/dist/collection/components/menu-button/test/a11y/menu-button.e2e.js +14 -0
  144. package/dist/collection/components/modal/gestures/swipe-to-close.js +1 -1
  145. package/dist/collection/components/nav/nav.js +22 -2
  146. package/dist/collection/components/nav/test/nav-controller.spec.js +36 -36
  147. package/dist/collection/components/picker-legacy/picker.ios.css +1 -1
  148. package/dist/collection/components/picker-legacy/picker.md.css +1 -1
  149. package/dist/collection/components/picker-legacy-column/picker-column.md.css +1 -1
  150. package/dist/collection/components/progress-bar/progress-bar.ios.css +11 -17
  151. package/dist/collection/components/progress-bar/progress-bar.js +0 -3
  152. package/dist/collection/components/progress-bar/progress-bar.md.css +10 -8
  153. package/dist/collection/components/progress-bar/test/a11y/progress-bar.e2e.js +24 -0
  154. package/dist/collection/components/radio/radio.ios.css +2 -2
  155. package/dist/collection/components/radio/radio.md.css +2 -2
  156. package/dist/collection/components/radio/test/a11y/radio.e2e.js +101 -68
  157. package/dist/collection/components/range/range.ios.css +1 -1
  158. package/dist/collection/components/range/range.md.css +3 -3
  159. package/dist/collection/components/range/test/a11y/range.e2e.js +18 -8
  160. package/dist/collection/components/refresher/refresher.md.css +2 -2
  161. package/dist/collection/components/refresher/test/a11y/refresher.e2e.js +25 -0
  162. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  163. package/dist/collection/components/router-link/router-link.css +1 -1
  164. package/dist/collection/components/router-link/test/a11y/router-link.e2e.js +23 -0
  165. package/dist/collection/components/searchbar/searchbar.ios.css +4 -4
  166. package/dist/collection/components/segment/test/a11y/segment.e2e.js +23 -0
  167. package/dist/collection/components/segment-button/segment-button.md.css +2 -2
  168. package/dist/collection/components/select/select.ios.css +3 -3
  169. package/dist/collection/components/select/select.md.css +3 -3
  170. package/dist/collection/components/select/test/a11y/select.e2e.js +68 -4
  171. package/dist/collection/components/select-popover/select-popover.md.css +4 -4
  172. package/dist/collection/components/select-popover/test/a11y/select-popover.e2e.js +32 -0
  173. package/dist/collection/components/split-pane/split-pane.ios.css +1 -53
  174. package/dist/collection/components/split-pane/split-pane.js +46 -12
  175. package/dist/collection/components/split-pane/split-pane.md.css +1 -53
  176. package/dist/collection/components/split-pane/test/wrapped-menu/split-pane.e2e.js +41 -0
  177. package/dist/collection/components/tab-bar/tab-bar.ios.css +1 -1
  178. package/dist/collection/components/tab-bar/tab-bar.md.css +1 -1
  179. package/dist/collection/components/tab-button/tab-button.ios.css +1 -6
  180. package/dist/collection/components/textarea/test/a11y/textarea.e2e.js +41 -3
  181. package/dist/collection/components/textarea/textarea.ios.css +3 -3
  182. package/dist/collection/components/textarea/textarea.md.css +3 -3
  183. package/dist/collection/components/toast/test/a11y/toast.e2e.js +56 -24
  184. package/dist/collection/components/toast/toast.ios.css +1 -1
  185. package/dist/collection/components/toast/toast.md.css +2 -2
  186. package/dist/collection/components/toggle/test/a11y/toggle.e2e.js +8 -2
  187. package/dist/collection/components/toggle/toggle.ios.css +8 -8
  188. package/dist/collection/components/toggle/toggle.md.css +2 -2
  189. package/dist/collection/css/test/a11y/typography.e2e.js +18 -0
  190. package/dist/collection/themes/test/colors/theme.e2e.js +114 -0
  191. package/dist/collection/utils/animation/animation.js +0 -15
  192. package/dist/collection/utils/gesture/button-active.js +1 -1
  193. package/dist/collection/utils/test/playwright/generator.js +1 -0
  194. package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
  195. package/dist/docs.json +29 -34
  196. package/dist/esm/{animation-ccab0993.js → animation-dde8cc0d.js} +1 -16
  197. package/dist/esm/{button-active-2758ff14.js → button-active-48379dd2.js} +1 -1
  198. package/dist/esm/{index-b7e9478d.js → index-1193f005.js} +1 -1
  199. package/dist/esm/{index-9dbb78a4.js → index-4743453d.js} +2 -2
  200. package/dist/esm/index.js +5 -5
  201. package/dist/esm/ion-action-sheet.entry.js +6 -6
  202. package/dist/esm/ion-alert.entry.js +4 -4
  203. package/dist/esm/ion-app_8.entry.js +3 -4
  204. package/dist/esm/ion-avatar_3.entry.js +2 -2
  205. package/dist/esm/ion-back-button.entry.js +1 -1
  206. package/dist/esm/ion-button_2.entry.js +2 -2
  207. package/dist/esm/ion-checkbox.entry.js +2 -2
  208. package/dist/esm/ion-datetime-button.entry.js +4 -4
  209. package/dist/esm/ion-datetime_3.entry.js +5 -5
  210. package/dist/esm/ion-fab_3.entry.js +2 -2
  211. package/dist/esm/ion-input.entry.js +2 -2
  212. package/dist/esm/ion-item-option_3.entry.js +10 -130
  213. package/dist/esm/ion-item_8.entry.js +3 -3
  214. package/dist/esm/ion-loading.entry.js +2 -2
  215. package/dist/esm/ion-menu_3.entry.js +24 -19
  216. package/dist/esm/ion-modal.entry.js +3 -3
  217. package/dist/esm/ion-nav_2.entry.js +6 -3
  218. package/dist/esm/ion-popover.entry.js +2 -2
  219. package/dist/esm/ion-progress-bar.entry.js +2 -5
  220. package/dist/esm/ion-radio_2.entry.js +2 -2
  221. package/dist/esm/ion-range.entry.js +2 -2
  222. package/dist/esm/ion-refresher_2.entry.js +3 -3
  223. package/dist/esm/ion-route_4.entry.js +1 -1
  224. package/dist/esm/ion-searchbar.entry.js +1 -1
  225. package/dist/esm/ion-segment_2.entry.js +1 -1
  226. package/dist/esm/ion-select_3.entry.js +3 -3
  227. package/dist/esm/ion-split-pane.entry.js +24 -14
  228. package/dist/esm/ion-tab-bar_2.entry.js +3 -3
  229. package/dist/esm/ion-textarea.entry.js +2 -2
  230. package/dist/esm/ion-toast.entry.js +3 -3
  231. package/dist/esm/ion-toggle.entry.js +2 -2
  232. package/dist/esm/ionic.js +1 -1
  233. package/dist/esm/{ios.transition-01176d76.js → ios.transition-3376ccb2.js} +2 -2
  234. package/dist/esm/loader.js +1 -1
  235. package/dist/esm/{md.transition-558655c7.js → md.transition-f992779f.js} +2 -2
  236. package/dist/esm-es5/animation-dde8cc0d.js +4 -0
  237. package/dist/esm-es5/button-active-48379dd2.js +4 -0
  238. package/dist/esm-es5/{index-b7e9478d.js → index-1193f005.js} +1 -1
  239. package/dist/esm-es5/{index-9dbb78a4.js → index-4743453d.js} +1 -1
  240. package/dist/esm-es5/index.js +1 -1
  241. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  242. package/dist/esm-es5/ion-alert.entry.js +1 -1
  243. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  244. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  245. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  246. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  247. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  248. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  249. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  250. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  251. package/dist/esm-es5/ion-input.entry.js +1 -1
  252. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  253. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  254. package/dist/esm-es5/ion-loading.entry.js +1 -1
  255. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  256. package/dist/esm-es5/ion-modal.entry.js +1 -1
  257. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  258. package/dist/esm-es5/ion-popover.entry.js +1 -1
  259. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  260. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  261. package/dist/esm-es5/ion-range.entry.js +1 -1
  262. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  263. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  264. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  265. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  266. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  267. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  268. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  269. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  270. package/dist/esm-es5/ion-toast.entry.js +1 -1
  271. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  272. package/dist/esm-es5/ionic.js +1 -1
  273. package/dist/esm-es5/{ios.transition-01176d76.js → ios.transition-3376ccb2.js} +1 -1
  274. package/dist/esm-es5/loader.js +1 -1
  275. package/dist/esm-es5/md.transition-f992779f.js +4 -0
  276. package/dist/html.html-data.json +0 -12
  277. package/dist/ionic/index.esm.js +1 -1
  278. package/dist/ionic/ionic.esm.js +1 -1
  279. package/dist/ionic/{p-7b4649d7.js → p-04377cfa.js} +1 -1
  280. package/dist/ionic/p-04d84d5d.entry.js +4 -0
  281. package/dist/ionic/p-068950da.entry.js +4 -0
  282. package/dist/ionic/p-0832dedf.entry.js +4 -0
  283. package/dist/ionic/{p-e755af39.system.js → p-0aa78a8d.system.js} +1 -1
  284. package/dist/ionic/p-11c55ac8.system.js +4 -0
  285. package/dist/ionic/p-124b6e41.system.entry.js +4 -0
  286. package/dist/ionic/p-19d9ceb8.system.js +1 -1
  287. package/dist/ionic/{p-c8f7e8c8.system.js → p-1ab2642a.system.js} +1 -1
  288. package/dist/ionic/p-1b60cc53.js +4 -0
  289. package/dist/ionic/{p-a1bd098f.system.entry.js → p-1c453add.system.entry.js} +1 -1
  290. package/dist/ionic/{p-11bf2ad0.system.entry.js → p-1d5b03e3.system.entry.js} +1 -1
  291. package/dist/ionic/p-24c3f2cd.system.entry.js +4 -0
  292. package/dist/ionic/{p-b68d435f.entry.js → p-2716d76c.entry.js} +1 -1
  293. package/dist/ionic/p-2724403e.entry.js +4 -0
  294. package/dist/ionic/p-283bc1a1.system.entry.js +4 -0
  295. package/dist/ionic/p-29d03b3a.js +4 -0
  296. package/dist/ionic/{p-abd5d0d5.system.entry.js → p-354682e8.system.entry.js} +1 -1
  297. package/dist/ionic/{p-19c379da.system.entry.js → p-3796194b.system.entry.js} +1 -1
  298. package/dist/ionic/{p-cf53213c.entry.js → p-385bb983.entry.js} +1 -1
  299. package/dist/ionic/p-38f2c6bb.system.js +4 -0
  300. package/dist/ionic/p-3af5faf8.system.entry.js +4 -0
  301. package/dist/ionic/{p-c75dc92f.js → p-44a56556.js} +1 -1
  302. package/dist/ionic/{p-7c7bc0cc.entry.js → p-4abb1251.entry.js} +1 -1
  303. package/dist/ionic/p-4eae8c91.entry.js +4 -0
  304. package/dist/ionic/{p-2316de85.system.entry.js → p-530bb2af.system.entry.js} +1 -1
  305. package/dist/ionic/p-56944895.entry.js +4 -0
  306. package/dist/ionic/{p-0e908476.system.entry.js → p-590447a5.system.entry.js} +1 -1
  307. package/dist/ionic/{p-f0eafd38.entry.js → p-5aec2208.entry.js} +1 -1
  308. package/dist/ionic/{p-26ff1180.entry.js → p-5cbfce20.entry.js} +1 -1
  309. package/dist/ionic/{p-3b043115.entry.js → p-5f1b0512.entry.js} +1 -1
  310. package/dist/ionic/{p-0dfa4ab4.system.entry.js → p-662a9a47.system.entry.js} +1 -1
  311. package/dist/ionic/p-713af1fe.entry.js +4 -0
  312. package/dist/ionic/{p-69ce8bba.system.entry.js → p-7dade589.system.entry.js} +1 -1
  313. package/dist/ionic/p-8a25bf30.system.entry.js +4 -0
  314. package/dist/ionic/{p-67e52d31.entry.js → p-8b160fba.entry.js} +1 -1
  315. package/dist/ionic/{p-799da666.entry.js → p-8e961825.entry.js} +1 -1
  316. package/dist/ionic/{p-20a4ee02.entry.js → p-92bfb607.entry.js} +1 -1
  317. package/dist/ionic/p-97aaf697.system.entry.js +4 -0
  318. package/dist/ionic/p-98f35d98.js +4 -0
  319. package/dist/ionic/p-9a68d8ef.system.js +4 -0
  320. package/dist/ionic/p-9a8bc8f3.system.entry.js +4 -0
  321. package/dist/ionic/{p-bb3fd397.entry.js → p-9c48f42f.entry.js} +1 -1
  322. package/dist/ionic/{p-614e63a9.system.entry.js → p-9f94e34a.system.entry.js} +1 -1
  323. package/dist/ionic/{p-7de7a5fd.system.js → p-a074be82.system.js} +1 -1
  324. package/dist/ionic/{p-7dcf795f.entry.js → p-a29db3a0.entry.js} +1 -1
  325. package/dist/ionic/{p-56b1a872.system.entry.js → p-a41eaff2.system.entry.js} +1 -1
  326. package/dist/ionic/{p-9093afb1.system.js → p-a49931aa.system.js} +1 -1
  327. package/dist/ionic/p-a6e5f54e.system.entry.js +4 -0
  328. package/dist/ionic/{p-6855f26a.entry.js → p-aa975ff8.entry.js} +1 -1
  329. package/dist/ionic/p-b231b7cf.system.entry.js +4 -0
  330. package/dist/ionic/p-b59fe3bd.system.entry.js +4 -0
  331. package/dist/ionic/p-b7e03ff0.system.entry.js +4 -0
  332. package/dist/ionic/{p-ba5d9e27.entry.js → p-bc01c384.entry.js} +1 -1
  333. package/dist/ionic/p-bec6ae40.entry.js +4 -0
  334. package/dist/ionic/{p-5dc16594.entry.js → p-c001b24f.entry.js} +1 -1
  335. package/dist/ionic/p-c16fbc5f.system.entry.js +4 -0
  336. package/dist/ionic/{p-0cc80201.entry.js → p-c6e9ef77.entry.js} +1 -1
  337. package/dist/ionic/p-cb3ef9c1.system.entry.js +4 -0
  338. package/dist/ionic/p-cb6a1fa0.system.entry.js +4 -0
  339. package/dist/ionic/p-cc1c26cc.entry.js +4 -0
  340. package/dist/ionic/{p-db05ecb6.system.entry.js → p-cc700688.system.entry.js} +1 -1
  341. package/dist/ionic/p-cd3e1a06.entry.js +4 -0
  342. package/dist/ionic/p-cd574dfa.js +4 -0
  343. package/dist/ionic/{p-da666998.system.entry.js → p-d01449a3.system.entry.js} +1 -1
  344. package/dist/ionic/{p-84b567a6.entry.js → p-d08e0136.entry.js} +1 -1
  345. package/dist/ionic/p-d1ad57d5.system.entry.js +4 -0
  346. package/dist/ionic/p-d2634efe.system.entry.js +4 -0
  347. package/dist/ionic/{p-41208f54.system.entry.js → p-d88ed181.system.entry.js} +1 -1
  348. package/dist/ionic/{p-10339dcc.entry.js → p-df6f50ef.entry.js} +1 -1
  349. package/dist/ionic/{p-d1ab26de.entry.js → p-e403ff07.entry.js} +1 -1
  350. package/dist/ionic/{p-ae4b7df8.entry.js → p-e9431a58.entry.js} +1 -1
  351. package/dist/ionic/{p-019e0d80.system.entry.js → p-ec0a9b2c.system.entry.js} +1 -1
  352. package/dist/ionic/{p-42925096.system.entry.js → p-f0dbd73e.system.entry.js} +1 -1
  353. package/dist/ionic/{p-806a9810.entry.js → p-f38c1f8d.entry.js} +1 -1
  354. package/dist/ionic/p-fc17f198.entry.js +4 -0
  355. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +0 -8
  356. package/dist/types/components/item-sliding/item-sliding.d.ts +0 -19
  357. package/dist/types/components/menu/menu.d.ts +11 -1
  358. package/dist/types/components/nav/nav.d.ts +4 -1
  359. package/dist/types/components/split-pane/split-pane.d.ts +14 -2
  360. package/dist/types/components.d.ts +5 -8
  361. package/dist/types/utils/animation/animation-interface.d.ts +0 -6
  362. package/dist/types/utils/animation/animation.d.ts +0 -2
  363. package/hydrate/index.js +115 -235
  364. package/package.json +1 -1
  365. package/dist/collection/components/datetime-button/datetime-button.ios.css +0 -107
  366. package/dist/collection/components/item-sliding/animations/item-sliding-options.js +0 -59
  367. package/dist/esm-es5/animation-ccab0993.js +0 -4
  368. package/dist/esm-es5/button-active-2758ff14.js +0 -4
  369. package/dist/esm-es5/md.transition-558655c7.js +0 -4
  370. package/dist/ionic/p-02dc8c5b.entry.js +0 -4
  371. package/dist/ionic/p-1a22895e.system.entry.js +0 -4
  372. package/dist/ionic/p-1c69a4ca.system.entry.js +0 -4
  373. package/dist/ionic/p-289f354c.entry.js +0 -4
  374. package/dist/ionic/p-2a3b87cd.entry.js +0 -4
  375. package/dist/ionic/p-2e01f1c5.system.entry.js +0 -4
  376. package/dist/ionic/p-38531958.system.entry.js +0 -4
  377. package/dist/ionic/p-3b434dee.system.entry.js +0 -4
  378. package/dist/ionic/p-44791cff.entry.js +0 -4
  379. package/dist/ionic/p-4981ea0a.system.entry.js +0 -4
  380. package/dist/ionic/p-5074a526.entry.js +0 -4
  381. package/dist/ionic/p-57785713.system.entry.js +0 -4
  382. package/dist/ionic/p-57e9de81.system.js +0 -4
  383. package/dist/ionic/p-6fb2b5e3.js +0 -4
  384. package/dist/ionic/p-80ad9792.system.js +0 -4
  385. package/dist/ionic/p-922c234e.js +0 -4
  386. package/dist/ionic/p-950c05ad.entry.js +0 -4
  387. package/dist/ionic/p-97a9d526.system.entry.js +0 -4
  388. package/dist/ionic/p-99d448ba.system.entry.js +0 -4
  389. package/dist/ionic/p-9c5e3a2c.system.entry.js +0 -4
  390. package/dist/ionic/p-a619ecad.entry.js +0 -4
  391. package/dist/ionic/p-b20717fc.system.entry.js +0 -4
  392. package/dist/ionic/p-b61d7624.entry.js +0 -4
  393. package/dist/ionic/p-b660ba8a.system.js +0 -4
  394. package/dist/ionic/p-ba2b1ef5.entry.js +0 -4
  395. package/dist/ionic/p-cd729946.js +0 -4
  396. package/dist/ionic/p-d2a73201.system.entry.js +0 -4
  397. package/dist/ionic/p-d3525765.js +0 -4
  398. package/dist/ionic/p-dc43a79e.entry.js +0 -4
  399. package/dist/ionic/p-ee71caaa.system.entry.js +0 -4
  400. package/dist/ionic/p-f25b4396.system.entry.js +0 -4
  401. package/dist/ionic/p-f65f4d3e.system.entry.js +0 -4
  402. package/dist/ionic/p-fd98debb.entry.js +0 -4
  403. package/dist/ionic/p-fe458994.system.entry.js +0 -4
  404. package/dist/types/components/item-sliding/animations/item-sliding-options.d.ts +0 -10
@@ -7,6 +7,7 @@ import { GESTURE_CONTROLLER } from "../../utils/gesture/index";
7
7
  import { inheritAriaAttributes, assert, clamp, isEndSide as isEnd } from "../../utils/helpers";
8
8
  import { menuController } from "../../utils/menu-controller/index";
9
9
  import { getPresentedOverlay } from "../../utils/overlays";
10
+ import { hostContext } from "../../utils/theme";
10
11
  import { config } from "../../global/config";
11
12
  import { getIonMode } from "../../global/ionic-global";
12
13
  const iosEasing = 'cubic-bezier(0.32,0.72,0,1)';
@@ -138,6 +139,19 @@ export class Menu {
138
139
  }
139
140
  async componentDidLoad() {
140
141
  this.didLoad = true;
142
+ /**
143
+ * A menu inside of a split pane is assumed
144
+ * to be a side pane.
145
+ *
146
+ * When the menu is loaded it needs to
147
+ * see if it should be considered visible inside
148
+ * of the split pane. If the split pane is
149
+ * hidden then the menu should be too.
150
+ */
151
+ const splitPane = this.el.closest('ion-split-pane');
152
+ if (splitPane !== null) {
153
+ this.isPaneVisible = await splitPane.isVisible();
154
+ }
141
155
  this.menuChanged();
142
156
  this.updateState();
143
157
  }
@@ -173,20 +187,11 @@ export class Menu {
173
187
  this.contentEl = undefined;
174
188
  }
175
189
  onSplitPaneChanged(ev) {
176
- const { target } = ev;
177
190
  const closestSplitPane = this.el.closest('ion-split-pane');
178
- /**
179
- * Menu listens on the body for "ionSplitPaneVisible".
180
- * However, this means the callback will run any time
181
- * a SplitPane changes visibility. As a result, we only want
182
- * Menu's visibility state to update if its parent SplitPane
183
- * changes visibility.
184
- */
185
- if (target !== closestSplitPane) {
186
- return;
191
+ if (closestSplitPane !== null && closestSplitPane === ev.target) {
192
+ this.isPaneVisible = ev.detail.visible;
193
+ this.updateState();
187
194
  }
188
- this.isPaneVisible = ev.detail.isPane(this.el);
189
- this.updateState();
190
195
  }
191
196
  onBackdropClick(ev) {
192
197
  // TODO(FW-2832): type (CustomEvent triggers errors which should be sorted)
@@ -593,7 +598,7 @@ export class Menu {
593
598
  }
594
599
  }
595
600
  render() {
596
- const { type, disabled, isPaneVisible, inheritedAttributes, side } = this;
601
+ const { type, disabled, el, isPaneVisible, inheritedAttributes, side } = this;
597
602
  const mode = getIonMode(this);
598
603
  return (h(Host, { role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
599
604
  [mode]: true,
@@ -601,6 +606,7 @@ export class Menu {
601
606
  'menu-enabled': !disabled,
602
607
  [`menu-side-${side}`]: true,
603
608
  'menu-pane-visible': isPaneVisible,
609
+ 'split-pane-side': hostContext('ion-split-pane', el),
604
610
  } }, h("div", { class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, h("slot", null)), h("ion-backdrop", { ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
605
611
  }
606
612
  static get is() { return "ion-menu"; }
@@ -295,10 +295,49 @@ ion-backdrop {
295
295
  cursor: pointer;
296
296
  }
297
297
 
298
+ /**
299
+ * The split pane styles for menu are defined
300
+ * in the menu stylesheets instead in the split pane
301
+ * stylesheets with ::slotted to allow for menus
302
+ * to be wrapped in custom components.
303
+ * If we used ::slotted to target the menu
304
+ * then menus wrapped in components would never
305
+ * receive these styles because they are not
306
+ * children of the split pane.
307
+ */
308
+ /**
309
+ * Do not pass CSS Variables down on larger
310
+ * screens as we want them to affect the outer
311
+ * `ion-menu` rather than the inner content
312
+ */
298
313
  :host(.menu-pane-visible) {
299
- width: var(--width);
300
- min-width: var(--min-width);
301
- max-width: var(--max-width);
314
+ flex: 0 1 auto;
315
+ width: var(--side-width, var(--width));
316
+ min-width: var(--side-min-width, var(--min-width));
317
+ max-width: var(--side-max-width, var(--max-width));
318
+ }
319
+
320
+ :host(.menu-pane-visible.split-pane-side) {
321
+ left: 0;
322
+ right: 0;
323
+ top: 0;
324
+ bottom: 0;
325
+ position: relative;
326
+ box-shadow: none;
327
+ z-index: 0;
328
+ }
329
+
330
+ :host(.menu-pane-visible.split-pane-side.menu-enabled) {
331
+ display: flex;
332
+ flex-shrink: 0;
333
+ }
334
+
335
+ :host(.menu-pane-visible.split-pane-side) {
336
+ order: -1;
337
+ }
338
+
339
+ :host(.menu-pane-visible.split-pane-side[side=end]) {
340
+ order: 1;
302
341
  }
303
342
 
304
343
  :host(.menu-pane-visible) .menu-inner {
@@ -314,6 +353,28 @@ ion-backdrop {
314
353
  display: hidden !important;
315
354
  }
316
355
 
356
+ :host(.menu-pane-visible.split-pane-side) {
357
+ -webkit-border-start: 0;
358
+ border-inline-start: 0;
359
+ -webkit-border-end: var(--border);
360
+ border-inline-end: var(--border);
361
+ border-top: 0;
362
+ border-bottom: 0;
363
+ min-width: var(--side-min-width);
364
+ max-width: var(--side-max-width);
365
+ }
366
+
367
+ :host(.menu-pane-visible.split-pane-side[side=end]) {
368
+ -webkit-border-start: var(--border);
369
+ border-inline-start: var(--border);
370
+ -webkit-border-end: 0;
371
+ border-inline-end: 0;
372
+ border-top: 0;
373
+ border-bottom: 0;
374
+ min-width: var(--side-min-width);
375
+ max-width: var(--side-max-width);
376
+ }
377
+
317
378
  /**
318
379
  * Convert a font size to a dynamic font size.
319
380
  * Fonts that participate in Dynamic Type should use
@@ -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, #3880ff);
264
+ --color: var(--ion-color-primary, #0054e9);
265
265
  --padding-start: 5px;
266
266
  --padding-end: 5px;
267
267
  min-height: 32px;
@@ -4,6 +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
+ /**
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
+ });
7
21
  configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
8
22
  test.describe(title('menu-button: a11y'), () => {
9
23
  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.915,
13
+ MIN_PRESENTING_SCALE: 0.93,
14
14
  };
15
15
  export const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss) => {
16
16
  /**
@@ -320,8 +320,11 @@ export class Nav {
320
320
  async getPrevious(view) {
321
321
  return this.getPreviousSync(view);
322
322
  }
323
- getLength() {
324
- return this.views.length;
323
+ /**
324
+ * Returns the number of views in the stack.
325
+ */
326
+ async getLength() {
327
+ return Promise.resolve(this.views.length);
325
328
  }
326
329
  getActiveSync() {
327
330
  return this.views[this.views.length - 1];
@@ -1839,6 +1842,23 @@ export class Nav {
1839
1842
  "text": "view The view to get."
1840
1843
  }]
1841
1844
  }
1845
+ },
1846
+ "getLength": {
1847
+ "complexType": {
1848
+ "signature": "() => Promise<number>",
1849
+ "parameters": [],
1850
+ "references": {
1851
+ "Promise": {
1852
+ "location": "global",
1853
+ "id": "global::Promise"
1854
+ }
1855
+ },
1856
+ "return": "Promise<number>"
1857
+ },
1858
+ "docs": {
1859
+ "text": "Returns the number of views in the stack.",
1860
+ "tags": []
1861
+ }
1842
1862
  }
1843
1863
  };
1844
1864
  }
@@ -20,20 +20,20 @@ describe('NavController', () => {
20
20
  const hasCompleted = true;
21
21
  const requiresTransition = true;
22
22
  expect(push1Done).toHaveBeenCalledWith(hasCompleted, requiresTransition, view1, undefined, 'forward');
23
- expect(nav.getLength()).toEqual(1);
23
+ expect(await nav.getLength()).toEqual(1);
24
24
  expect(nav['views'][0].component).toEqual(MockView1);
25
25
  // Push 2
26
26
  const view2 = mockView(MockView2);
27
27
  await nav.push(view2, null, { animated: false }, push2Done);
28
28
  expect(push2Done).toHaveBeenCalledWith(hasCompleted, requiresTransition, view2, view1, 'forward');
29
- expect(nav.getLength()).toEqual(2);
29
+ expect(await nav.getLength()).toEqual(2);
30
30
  expect(nav['views'][0].component).toEqual(MockView1);
31
31
  expect(nav['views'][1].component).toEqual(MockView2);
32
32
  // Push 3
33
33
  const view3 = mockView(MockView3);
34
34
  await nav.push(view3, null, { animated: false }, push3Done);
35
35
  expect(push3Done).toHaveBeenCalledWith(hasCompleted, requiresTransition, view3, view2, 'forward');
36
- expect(nav.getLength()).toEqual(3);
36
+ expect(await nav.getLength()).toEqual(3);
37
37
  expect(nav['views'][0].component).toEqual(MockView1);
38
38
  expect(nav['views'][1].component).toEqual(MockView2);
39
39
  expect(nav['views'][2].component).toEqual(MockView3);
@@ -41,7 +41,7 @@ describe('NavController', () => {
41
41
  const view4 = mockView(MockView4);
42
42
  await nav.push(view4, null, { animated: false }, push4Done);
43
43
  expect(push4Done).toHaveBeenCalledWith(hasCompleted, requiresTransition, view4, view3, 'forward');
44
- expect(nav.getLength()).toEqual(4);
44
+ expect(await nav.getLength()).toEqual(4);
45
45
  expect(nav['views'][0].component).toEqual(MockView1);
46
46
  expect(nav['views'][1].component).toEqual(MockView2);
47
47
  expect(nav['views'][2].component).toEqual(MockView3);
@@ -49,20 +49,20 @@ describe('NavController', () => {
49
49
  // Pop 1
50
50
  await nav.pop({ animated: false }, pop1Done);
51
51
  expect(pop1Done).toHaveBeenCalledWith(hasCompleted, requiresTransition, view3, view4, 'back');
52
- expect(nav.getLength()).toEqual(3);
52
+ expect(await nav.getLength()).toEqual(3);
53
53
  expect(nav['views'][0].component).toEqual(MockView1);
54
54
  expect(nav['views'][1].component).toEqual(MockView2);
55
55
  expect(nav['views'][2].component).toEqual(MockView3);
56
56
  // Pop 2
57
57
  await nav.pop({ animated: false }, pop2Done);
58
58
  expect(pop2Done).toHaveBeenCalledWith(hasCompleted, requiresTransition, view2, view3, 'back');
59
- expect(nav.getLength()).toEqual(2);
59
+ expect(await nav.getLength()).toEqual(2);
60
60
  expect(nav['views'][0].component).toEqual(MockView1);
61
61
  expect(nav['views'][1].component).toEqual(MockView2);
62
62
  // Pop 3
63
63
  await nav.pop({ animated: false }, pop3Done);
64
64
  expect(pop3Done).toHaveBeenCalledWith(hasCompleted, requiresTransition, view1, view2, 'back');
65
- expect(nav.getLength()).toEqual(1);
65
+ expect(await nav.getLength()).toEqual(1);
66
66
  expect(nav['views'][0].component).toEqual(MockView1);
67
67
  }, 10000);
68
68
  });
@@ -73,7 +73,7 @@ describe('NavController', () => {
73
73
  const hasCompleted = true;
74
74
  const requiresTransition = true;
75
75
  expect(trnsDone).toHaveBeenCalledWith(hasCompleted, requiresTransition, view1, undefined, 'forward');
76
- expect(nav.getLength()).toEqual(1);
76
+ expect(await nav.getLength()).toEqual(1);
77
77
  expect(nav['views'][0].component).toEqual(MockView1);
78
78
  expect(nav['isTransitioning']).toEqual(false);
79
79
  }, 10000);
@@ -85,7 +85,7 @@ describe('NavController', () => {
85
85
  const hasCompleted = true;
86
86
  const requiresTransition = true;
87
87
  expect(trnsDone).toHaveBeenCalledWith(hasCompleted, requiresTransition, view2, view1, 'forward');
88
- expect(nav.getLength()).toEqual(2);
88
+ expect(await nav.getLength()).toEqual(2);
89
89
  expect(nav['views'][0].component).toEqual(MockView1);
90
90
  expect(nav['views'][1].component).toEqual(MockView2);
91
91
  expect(nav['isTransitioning']).toEqual(false);
@@ -110,7 +110,7 @@ describe('NavController', () => {
110
110
  const hasCompleted = true;
111
111
  const requiresTransition = true;
112
112
  expect(trnsDone).toHaveBeenCalledWith(hasCompleted, requiresTransition, view2, view1, 'forward');
113
- expect(nav.getLength()).toEqual(2);
113
+ expect(await nav.getLength()).toEqual(2);
114
114
  }, 10000);
115
115
  });
116
116
  describe('insert', () => {
@@ -128,9 +128,9 @@ describe('NavController', () => {
128
128
  const hasCompleted = true;
129
129
  const requiresTransition = false;
130
130
  expect(trnsDone).toHaveBeenCalledWith(hasCompleted, requiresTransition, undefined, undefined, undefined);
131
- expect(nav.getLength()).toEqual(4);
131
+ expect(await nav.getLength()).toEqual(4);
132
132
  expect(nav['views'][0].component).toEqual(MockView4);
133
- expect(nav['views'][nav.getLength() - 1].component).toEqual(MockView3);
133
+ expect(nav['views'][(await nav.getLength()) - 1].component).toEqual(MockView3);
134
134
  }, 10000);
135
135
  it('should insert at the end when given -1', async () => {
136
136
  const opts = {};
@@ -141,8 +141,8 @@ describe('NavController', () => {
141
141
  const hasCompleted = true;
142
142
  const requiresTransition = true;
143
143
  expect(trnsDone).toHaveBeenCalledWith(hasCompleted, requiresTransition, view2, view1, 'forward');
144
- expect(nav.getLength()).toEqual(2);
145
- expect(nav['views'][nav.getLength() - 1].component).toEqual(MockView2);
144
+ expect(await nav.getLength()).toEqual(2);
145
+ expect(nav['views'][(await nav.getLength()) - 1].component).toEqual(MockView2);
146
146
  }, 10000);
147
147
  it('should insert at the end when given a number greater than actual length', async () => {
148
148
  const view1 = mockView(MockView1);
@@ -152,8 +152,8 @@ describe('NavController', () => {
152
152
  const hasCompleted = true;
153
153
  const requiresTransition = true;
154
154
  expect(trnsDone).toHaveBeenCalledWith(hasCompleted, requiresTransition, view2, view1, 'forward');
155
- expect(nav.getLength()).toEqual(2);
156
- expect(nav['views'][nav.getLength() - 1].component).toEqual(MockView2);
155
+ expect(await nav.getLength()).toEqual(2);
156
+ expect(nav['views'][(await nav.getLength()) - 1].component).toEqual(MockView2);
157
157
  }, 10000);
158
158
  it('should not insert if null view', (done) => {
159
159
  mockViews(nav, [mockView(MockView1)]);
@@ -162,14 +162,14 @@ describe('NavController', () => {
162
162
  .then(() => {
163
163
  fail('it should not succeed');
164
164
  })
165
- .catch((err) => {
165
+ .catch(async (err) => {
166
166
  const hasCompleted = false;
167
167
  const requiresTransition = false;
168
168
  const rejectReason = new Error('invalid views to insert');
169
169
  expect(err).toEqual(rejectReason);
170
170
  expect(trnsDone).toHaveBeenCalledWith(hasCompleted, requiresTransition, rejectReason);
171
- expect(nav.getLength()).toEqual(1);
172
- expect(nav['views'][nav.getLength() - 1].component).toEqual(MockView1);
171
+ expect(await nav.getLength()).toEqual(1);
172
+ expect(nav['views'][(await nav.getLength()) - 1].component).toEqual(MockView1);
173
173
  done();
174
174
  });
175
175
  }, 10000);
@@ -192,7 +192,7 @@ describe('NavController', () => {
192
192
  const hasCompleted = true;
193
193
  const requiresTransition = false;
194
194
  expect(trnsDone).toHaveBeenCalledWith(hasCompleted, requiresTransition, undefined, undefined, undefined);
195
- expect(nav.getLength()).toEqual(5);
195
+ expect(await nav.getLength()).toEqual(5);
196
196
  expect(nav['views'][0].component).toEqual(MockView1);
197
197
  expect(nav['views'][1].component).toEqual(MockView4);
198
198
  expect(nav['views'][2].component).toEqual(MockView5);
@@ -209,13 +209,13 @@ describe('NavController', () => {
209
209
  .then(() => {
210
210
  fail('it should not succeed');
211
211
  })
212
- .catch((err) => {
212
+ .catch(async (err) => {
213
213
  const hasCompleted = false;
214
214
  const requiresTransition = false;
215
215
  const rejectReason = new Error('no views in the stack to be removed');
216
216
  expect(trnsDone).toHaveBeenCalledWith(hasCompleted, requiresTransition, rejectReason);
217
217
  expect(err).toEqual(rejectReason);
218
- expect(nav.getLength()).toEqual(0);
218
+ expect(await nav.getLength()).toEqual(0);
219
219
  expect(nav['isTransitioning']).toEqual(false);
220
220
  done();
221
221
  });
@@ -240,7 +240,7 @@ describe('NavController', () => {
240
240
  const hasCompleted = true;
241
241
  const requiresTransition = true;
242
242
  expect(trnsDone).toHaveBeenCalledWith(hasCompleted, requiresTransition, view1, view2, 'back');
243
- expect(nav.getLength()).toEqual(1);
243
+ expect(await nav.getLength()).toEqual(1);
244
244
  expect(nav['views'][0].component).toEqual(MockView1);
245
245
  expect(nav['isTransitioning']).toEqual(false);
246
246
  }, 10000);
@@ -255,7 +255,7 @@ describe('NavController', () => {
255
255
  const hasCompleted = true;
256
256
  const requiresTransition = true;
257
257
  expect(trnsDone).toHaveBeenCalledWith(hasCompleted, requiresTransition, view2, view3, 'back');
258
- expect(nav.getLength()).toEqual(2);
258
+ expect(await nav.getLength()).toEqual(2);
259
259
  expect(nav['views'][0].component).toEqual(MockView1);
260
260
  expect(nav['views'][1].component).toEqual(MockView2);
261
261
  }, 10000);
@@ -269,7 +269,7 @@ describe('NavController', () => {
269
269
  const hasCompleted = true;
270
270
  const requiresTransition = true;
271
271
  expect(trnsDone).toHaveBeenCalledWith(hasCompleted, requiresTransition, view2, view4, 'back');
272
- expect(nav.getLength()).toEqual(2);
272
+ expect(await nav.getLength()).toEqual(2);
273
273
  expect(nav['views'][0].component).toEqual(MockView1);
274
274
  expect(nav['views'][1].component).toEqual(MockView2);
275
275
  }, 10000);
@@ -307,7 +307,7 @@ describe('NavController', () => {
307
307
  const hasCompleted = true;
308
308
  const requiresTransition = true;
309
309
  expect(trnsDone).toHaveBeenCalledWith(hasCompleted, requiresTransition, view1, view4, 'back');
310
- expect(nav.getLength()).toEqual(1);
310
+ expect(await nav.getLength()).toEqual(1);
311
311
  expect(nav['views'][0].component).toEqual(MockView1);
312
312
  }, 10000);
313
313
  });
@@ -346,7 +346,7 @@ describe('NavController', () => {
346
346
  const hasCompleted = true;
347
347
  const requiresTransition = true;
348
348
  expect(trnsDone).toHaveBeenCalledWith(hasCompleted, requiresTransition, view1, view4, 'back');
349
- expect(nav.getLength()).toEqual(1);
349
+ expect(await nav.getLength()).toEqual(1);
350
350
  expect(nav['views'][0].component).toEqual(MockView1);
351
351
  }, 10000);
352
352
  it("should not pop first view if it's the only view", async () => {
@@ -356,7 +356,7 @@ describe('NavController', () => {
356
356
  const hasCompleted = true;
357
357
  const requiresTransition = false;
358
358
  expect(trnsDone).toHaveBeenCalledWith(hasCompleted, requiresTransition, undefined, undefined, undefined);
359
- expect(nav.getLength()).toEqual(1);
359
+ expect(await nav.getLength()).toEqual(1);
360
360
  expect(nav['views'][0].component).toEqual(MockView1);
361
361
  }, 10000);
362
362
  });
@@ -395,7 +395,7 @@ describe('NavController', () => {
395
395
  const hasCompleted = true;
396
396
  const requiresTransition = false;
397
397
  expect(trnsDone).toHaveBeenCalledWith(hasCompleted, requiresTransition, undefined, undefined, undefined);
398
- expect(nav.getLength()).toEqual(1);
398
+ expect(await nav.getLength()).toEqual(1);
399
399
  expect(nav['views'][0].component).toEqual(MockView4);
400
400
  }, 10000);
401
401
  it('should remove two views in the middle', async () => {
@@ -439,7 +439,7 @@ describe('NavController', () => {
439
439
  const hasCompleted = true;
440
440
  const requiresTransition = false;
441
441
  expect(trnsDone).toHaveBeenCalledWith(hasCompleted, requiresTransition, undefined, undefined, undefined);
442
- expect(nav.getLength()).toEqual(3);
442
+ expect(await nav.getLength()).toEqual(3);
443
443
  expect(nav['views'][0].component).toEqual(MockView1);
444
444
  expect(nav['views'][1].component).toEqual(MockView2);
445
445
  expect(nav['views'][2].component).toEqual(MockView5);
@@ -478,7 +478,7 @@ describe('NavController', () => {
478
478
  const hasCompleted = true;
479
479
  const requiresTransition = true;
480
480
  expect(trnsDone).toHaveBeenCalledWith(hasCompleted, requiresTransition, view2, view4, 'back');
481
- expect(nav.getLength()).toEqual(2);
481
+ expect(await nav.getLength()).toEqual(2);
482
482
  expect(nav['views'][0].component).toEqual(MockView1);
483
483
  expect(nav['views'][1].component).toEqual(MockView2);
484
484
  }, 10000);
@@ -511,7 +511,7 @@ describe('NavController', () => {
511
511
  const hasCompleted = true;
512
512
  const requiresTransition = false;
513
513
  expect(trnsDone).toHaveBeenCalledWith(hasCompleted, requiresTransition, undefined, undefined, undefined);
514
- expect(nav.getLength()).toEqual(1);
514
+ expect(await nav.getLength()).toEqual(1);
515
515
  expect(nav['views'][0].component).toEqual(MockView3);
516
516
  }, 10000);
517
517
  it('should set a ViewController as the root when its the middle view, with transition', async () => {
@@ -541,7 +541,7 @@ describe('NavController', () => {
541
541
  const hasCompleted = true;
542
542
  const requiresTransition = true;
543
543
  expect(trnsDone).toHaveBeenCalledWith(hasCompleted, requiresTransition, view2, view3, 'back');
544
- expect(nav.getLength()).toEqual(1);
544
+ expect(await nav.getLength()).toEqual(1);
545
545
  expect(nav['views'][0].component).toEqual(MockView2);
546
546
  }, 10000);
547
547
  it('should set a ViewController as the root when its the first view, with transition', async () => {
@@ -571,7 +571,7 @@ describe('NavController', () => {
571
571
  const hasCompleted = true;
572
572
  const requiresTransition = true;
573
573
  expect(trnsDone).toHaveBeenCalledWith(hasCompleted, requiresTransition, view1, view3, 'back');
574
- expect(nav.getLength()).toEqual(1);
574
+ expect(await nav.getLength()).toEqual(1);
575
575
  expect(nav['views'][0].component).toEqual(MockView1);
576
576
  }, 10000);
577
577
  it('should set a page component as the root, with transition', async () => {
@@ -590,7 +590,7 @@ describe('NavController', () => {
590
590
  const hasCompleted = true;
591
591
  const requiresTransition = true;
592
592
  expect(trnsDone).toHaveBeenCalledWith(hasCompleted, requiresTransition, view4, view3, 'back');
593
- expect(nav.getLength()).toEqual(1);
593
+ expect(await nav.getLength()).toEqual(1);
594
594
  expect(nav['views'][0].component).toEqual(MockView4);
595
595
  }, 10000);
596
596
  });
@@ -609,7 +609,7 @@ describe('NavController', () => {
609
609
  const hasCompleted = true;
610
610
  const requiresTransition = true;
611
611
  expect(trnsDone).toHaveBeenCalledWith(hasCompleted, requiresTransition, view5, view2, 'back');
612
- expect(nav.getLength()).toEqual(2);
612
+ expect(await nav.getLength()).toEqual(2);
613
613
  expect(nav['views'][0].component).toEqual(MockView4);
614
614
  expect(nav['views'][1].component).toEqual(MockView5);
615
615
  }, 10000);
@@ -279,7 +279,7 @@
279
279
  padding-bottom: 0;
280
280
  height: 44px;
281
281
  background: transparent;
282
- color: var(--ion-color-primary, #3880ff);
282
+ color: var(--ion-color-primary, #0054e9);
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, #3880ff);
268
+ color: var(--ion-color-primary, #0054e9);
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, #3880ff);
245
+ color: var(--ion-color-primary, #0054e9);
246
246
  }
@@ -57,9 +57,11 @@
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
60
61
  */
61
- --background: rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.3);
62
- --progress-background: var(--ion-color-primary, #3880ff);
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);
63
65
  display: block;
64
66
  position: relative;
65
67
  width: 100%;
@@ -113,7 +115,7 @@
113
115
  }
114
116
 
115
117
  .progress-buffer-bar {
116
- background: var(--background);
118
+ background: var(--buffer-background);
117
119
  z-index: 1;
118
120
  }
119
121
 
@@ -150,7 +152,7 @@
150
152
  }
151
153
 
152
154
  .buffer-circles {
153
- background-image: radial-gradient(ellipse at center, var(--background) 0%, var(--background) 30%, transparent 30%);
155
+ background-image: radial-gradient(ellipse at center, var(--buffer-background) 0%, var(--buffer-background) 30%, transparent 30%);
154
156
  /* stylelint-disable property-disallowed-list */
155
157
  background-repeat: repeat-x;
156
158
  background-position: 5px center;
@@ -170,6 +172,10 @@
170
172
  animation-play-state: paused;
171
173
  }
172
174
 
175
+ :host(.ion-color) .progress-buffer-bar {
176
+ background: rgba(var(--ion-color-base-rgb), 0.3);
177
+ }
178
+
173
179
  :host(.ion-color) .buffer-circles {
174
180
  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%);
175
181
  }
@@ -251,17 +257,5 @@
251
257
  }
252
258
  }
253
259
  :host {
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);
260
+ height: 3px;
267
261
  }
@@ -26,14 +26,11 @@ 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;
31
29
  return (h(Host, { role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses(color, {
32
30
  [mode]: true,
33
31
  [`progress-bar-${type}`]: true,
34
32
  'progress-paused': paused,
35
33
  'progress-bar-reversed': document.dir === 'rtl' ? !reversed : reversed,
36
- 'progress-bar-solid': progressSolid,
37
34
  }) }, type === 'indeterminate' ? renderIndeterminate() : renderProgress(value, buffer)));
38
35
  }
39
36
  static get is() { return "ion-progress-bar"; }
@@ -57,9 +57,11 @@
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
60
61
  */
61
- --background: rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.3);
62
- --progress-background: var(--ion-color-primary, #3880ff);
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);
63
65
  display: block;
64
66
  position: relative;
65
67
  width: 100%;
@@ -113,7 +115,7 @@
113
115
  }
114
116
 
115
117
  .progress-buffer-bar {
116
- background: var(--background);
118
+ background: var(--buffer-background);
117
119
  z-index: 1;
118
120
  }
119
121
 
@@ -150,7 +152,7 @@
150
152
  }
151
153
 
152
154
  .buffer-circles {
153
- background-image: radial-gradient(ellipse at center, var(--background) 0%, var(--background) 30%, transparent 30%);
155
+ background-image: radial-gradient(ellipse at center, var(--buffer-background) 0%, var(--buffer-background) 30%, transparent 30%);
154
156
  /* stylelint-disable property-disallowed-list */
155
157
  background-repeat: repeat-x;
156
158
  background-position: 5px center;
@@ -170,6 +172,10 @@
170
172
  animation-play-state: paused;
171
173
  }
172
174
 
175
+ :host(.ion-color) .progress-buffer-bar {
176
+ background: rgba(var(--ion-color-base-rgb), 0.3);
177
+ }
178
+
173
179
  :host(.ion-color) .buffer-circles {
174
180
  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%);
175
181
  }
@@ -252,8 +258,4 @@
252
258
  }
253
259
  :host {
254
260
  height: 4px;
255
- }
256
-
257
- :host(.ion-color) .progress-buffer-bar {
258
- background: rgba(var(--ion-color-base-rgb), 0.3);
259
261
  }