@ionic/core 7.6.7-dev.11706551842.118ce6e0 → 7.6.7-dev.11706564121.13426d8f

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 (525) hide show
  1. package/components/action-sheet.js +1 -1
  2. package/components/alert.js +2 -2
  3. package/components/backdrop.js +12 -0
  4. package/components/button.js +2 -2
  5. package/components/checkbox.js +2 -2
  6. package/components/data.js +1 -1
  7. package/components/gesture-controller.js +1 -1
  8. package/components/ion-back-button.js +1 -1
  9. package/components/ion-badge.js +2 -2
  10. package/components/ion-content.js +4 -3
  11. package/components/ion-datetime.js +64 -40
  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-loading.js +1 -1
  16. package/components/ion-menu-button.js +1 -1
  17. package/components/ion-menu.js +15 -21
  18. package/components/ion-modal.js +1 -3
  19. package/components/ion-nav.js +3 -7
  20. package/components/ion-picker-column-internal.d.ts +11 -0
  21. package/components/ion-picker-column-internal.js +9 -0
  22. package/components/ion-picker-column.js +2 -2
  23. package/components/{ion-picker-legacy.d.ts → ion-picker-internal.d.ts} +4 -4
  24. package/components/ion-picker-internal.js +9 -0
  25. package/components/ion-picker.js +309 -1
  26. package/components/ion-progress-bar.js +2 -2
  27. package/components/ion-range.js +2 -2
  28. package/components/ion-refresher-content.js +1 -1
  29. package/components/ion-refresher.js +1 -1
  30. package/components/ion-router-link.js +1 -1
  31. package/components/ion-searchbar.js +1 -1
  32. package/components/ion-segment-button.js +1 -1
  33. package/components/ion-select.js +2 -2
  34. package/components/ion-split-pane.js +15 -26
  35. package/components/ion-tab-bar.js +2 -2
  36. package/components/ion-textarea.js +2 -2
  37. package/components/ion-toast.js +2 -2
  38. package/components/ion-toggle.js +2 -2
  39. package/components/item.js +8 -2
  40. package/components/label.js +1 -1
  41. package/components/overlays.js +9 -12
  42. package/components/picker-column-internal.js +390 -0
  43. package/components/picker-column.js +322 -351
  44. package/components/{picker.js → picker-internal.js} +22 -29
  45. package/components/radio.js +2 -2
  46. package/components/select-popover.js +1 -1
  47. package/css/core.css +34 -101
  48. package/css/core.css.map +1 -1
  49. package/css/global.bundle.css +1 -1
  50. package/css/ionic.bundle.css +1 -1
  51. package/css/ionic.bundle.css.map +1 -1
  52. package/css/typography.css +1 -1
  53. package/dist/cjs/{button-active-d432e262.js → button-active-85665616.js} +1 -1
  54. package/dist/cjs/{data-e2bf21de.js → data-a5109f09.js} +1 -1
  55. package/dist/cjs/{gesture-controller-9436f482.js → gesture-controller-c40c045a.js} +0 -1
  56. package/dist/cjs/{index-ee07ed59.js → index-d1b59ffa.js} +1 -1
  57. package/dist/cjs/index.cjs.js +3 -3
  58. package/dist/cjs/ion-action-sheet.cjs.entry.js +5 -5
  59. package/dist/cjs/ion-alert.cjs.entry.js +6 -6
  60. package/dist/cjs/ion-app_8.cjs.entry.js +5 -4
  61. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  62. package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
  63. package/dist/cjs/ion-backdrop.cjs.entry.js +12 -0
  64. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  65. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
  66. package/dist/cjs/ion-datetime-button.cjs.entry.js +1 -1
  67. package/dist/cjs/ion-datetime_3.cjs.entry.js +57 -37
  68. package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
  69. package/dist/cjs/ion-input.cjs.entry.js +2 -2
  70. package/dist/cjs/ion-item-option_3.cjs.entry.js +3 -3
  71. package/dist/cjs/ion-item_8.cjs.entry.js +8 -3
  72. package/dist/cjs/ion-loading.cjs.entry.js +2 -3
  73. package/dist/cjs/ion-menu_3.cjs.entry.js +20 -25
  74. package/dist/cjs/ion-modal.cjs.entry.js +3 -5
  75. package/dist/cjs/ion-nav_2.cjs.entry.js +3 -6
  76. package/dist/cjs/{ion-picker-column.cjs.entry.js → ion-picker-column-internal.cjs.entry.js} +87 -104
  77. package/dist/cjs/{ion-picker.cjs.entry.js → ion-picker-internal.cjs.entry.js} +19 -26
  78. package/dist/cjs/ion-popover.cjs.entry.js +1 -2
  79. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  80. package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
  81. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  82. package/dist/cjs/ion-refresher_2.cjs.entry.js +5 -5
  83. package/dist/cjs/ion-reorder_2.cjs.entry.js +1 -1
  84. package/dist/cjs/ion-route_4.cjs.entry.js +1 -1
  85. package/dist/cjs/ion-searchbar.cjs.entry.js +1 -1
  86. package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
  87. package/dist/cjs/ion-select_3.cjs.entry.js +4 -5
  88. package/dist/cjs/ion-split-pane.cjs.entry.js +14 -24
  89. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
  90. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  91. package/dist/cjs/ion-toast.cjs.entry.js +5 -5
  92. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  93. package/dist/cjs/ionic.cjs.js +1 -1
  94. package/dist/cjs/loader.cjs.js +1 -1
  95. package/dist/cjs/{overlays-3afa911d.js → overlays-41579463.js} +8 -12
  96. package/dist/cjs/{swipe-back-b8f2330b.js → swipe-back-2a858bbd.js} +2 -2
  97. package/dist/collection/collection-manifest.json +6 -7
  98. package/dist/collection/components/action-sheet/action-sheet.ios.css +3 -3
  99. package/dist/collection/components/action-sheet/test/a11y/action-sheet.e2e.js +14 -23
  100. package/dist/collection/components/alert/alert.ios.css +6 -6
  101. package/dist/collection/components/alert/alert.md.css +6 -6
  102. package/dist/collection/components/alert/test/a11y/alert.e2e.js +9 -22
  103. package/dist/collection/components/back-button/back-button.ios.css +1 -1
  104. package/dist/collection/components/back-button/test/a11y/back-button.e2e.js +0 -21
  105. package/dist/collection/components/backdrop/backdrop.js +12 -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 +0 -18
  109. package/dist/collection/components/button/button.ios.css +11 -11
  110. package/dist/collection/components/button/button.md.css +9 -9
  111. package/dist/collection/components/button/test/a11y/button.e2e.js +0 -48
  112. package/dist/collection/components/button/test/basic/button.e2e.js +1 -1
  113. package/dist/collection/components/button/test/wrap/button.e2e.js +24 -12
  114. package/dist/collection/components/checkbox/checkbox.ios.css +2 -2
  115. package/dist/collection/components/checkbox/checkbox.md.css +2 -2
  116. package/dist/collection/components/checkbox/test/a11y/checkbox.e2e.js +2 -11
  117. package/dist/collection/components/content/content.css +4 -0
  118. package/dist/collection/components/content/content.js +3 -2
  119. package/dist/collection/components/datetime/datetime.ios.css +40 -93
  120. package/dist/collection/components/datetime/datetime.js +36 -24
  121. package/dist/collection/components/datetime/datetime.md.css +38 -96
  122. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +4 -4
  123. package/dist/collection/components/datetime/test/a11y/datetime.spec.js +9 -6
  124. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +12 -22
  125. package/dist/collection/components/datetime/test/datetime.e2e.js +3 -3
  126. package/dist/collection/components/datetime/test/disable-dates/datetime.e2e.js +1 -1
  127. package/dist/collection/components/datetime/test/disabled/datetime.e2e.js +4 -4
  128. package/dist/collection/components/datetime/test/disabled/datetime.spec.js +4 -4
  129. package/dist/collection/components/datetime/test/display/datetime.e2e.js +9 -9
  130. package/dist/collection/components/datetime/test/locale/datetime.e2e.js +5 -5
  131. package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +17 -17
  132. package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +2 -2
  133. package/dist/collection/components/datetime/test/multiple/datetime.e2e.js +2 -2
  134. package/dist/collection/components/datetime/test/position/datetime.e2e.js +1 -1
  135. package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +73 -75
  136. package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +4 -4
  137. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +8 -8
  138. package/dist/collection/components/datetime/test/set-value/datetime.e2e.js +4 -4
  139. package/dist/collection/components/datetime/test/time-label/datetime.e2e.js +2 -2
  140. package/dist/collection/components/datetime/test/values/datetime.e2e.js +16 -19
  141. package/dist/collection/components/datetime/utils/data.js +1 -1
  142. package/dist/collection/components/datetime-button/test/basic/datetime-button.e2e.js +14 -14
  143. package/dist/collection/components/datetime-button/test/disabled/datetime-button.e2e.js +2 -2
  144. package/dist/collection/components/datetime-button/test/multiple/datetime-button.e2e.js +6 -6
  145. package/dist/collection/components/fab-button/fab-button.ios.css +13 -13
  146. package/dist/collection/components/fab-button/fab-button.md.css +4 -4
  147. package/dist/collection/components/fab-button/test/a11y/fab-button.e2e.js +0 -50
  148. package/dist/collection/components/header/test/condense/header.e2e.js +2 -2
  149. package/dist/collection/components/input/input.ios.css +3 -3
  150. package/dist/collection/components/input/input.md.css +3 -3
  151. package/dist/collection/components/input/test/a11y/input.e2e.js +3 -41
  152. package/dist/collection/components/item/item.ios.css +5 -42
  153. package/dist/collection/components/item/item.js +7 -0
  154. package/dist/collection/components/item/item.md.css +6 -43
  155. package/dist/collection/components/item/test/item.spec.js +20 -0
  156. package/dist/collection/components/item-option/item-option.ios.css +2 -2
  157. package/dist/collection/components/item-option/item-option.md.css +1 -1
  158. package/dist/collection/components/item-sliding/test/a11y/item-sliding.e2e.js +0 -28
  159. package/dist/collection/components/label/label.md.css +1 -1
  160. package/dist/collection/components/label/test/a11y/label.e2e.js +0 -20
  161. package/dist/collection/components/loading/loading.md.css +1 -1
  162. package/dist/collection/components/loading/test/a11y/loading.e2e.js +5 -21
  163. package/dist/collection/components/menu/menu.ios.css +3 -64
  164. package/dist/collection/components/menu/menu.js +13 -19
  165. package/dist/collection/components/menu/menu.md.css +3 -64
  166. package/dist/collection/components/menu-button/menu-button.ios.css +1 -1
  167. package/dist/collection/components/menu-button/test/a11y/menu-button.e2e.js +0 -14
  168. package/dist/collection/components/modal/modal.js +1 -3
  169. package/dist/collection/components/modal/test/standalone/modal.e2e.js +1 -1
  170. package/dist/collection/components/nav/nav.js +2 -22
  171. package/dist/collection/components/nav/test/nav-controller.spec.js +36 -36
  172. package/dist/collection/components/note/test/a11y/note.e2e.js +6 -6
  173. package/dist/collection/components/picker/picker.ios.css +211 -112
  174. package/dist/collection/components/picker/picker.js +738 -488
  175. package/dist/collection/components/picker/picker.md.css +198 -108
  176. package/dist/collection/components/picker/test/basic/picker.e2e.js +13 -99
  177. package/dist/collection/components/{picker-legacy → picker}/test/is-open/picker.e2e.js +4 -4
  178. package/dist/collection/components/{picker-legacy → picker}/test/picker-id.spec.js +5 -5
  179. package/dist/collection/components/{picker-legacy → picker}/test/trigger/picker.e2e.js +1 -1
  180. package/dist/collection/components/picker-column/picker-column.js +335 -499
  181. package/dist/collection/components/{picker-legacy-column → picker-column}/picker-column.md.css +1 -1
  182. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column-aria.spec.js +3 -3
  183. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column-dynamic.spec.js +2 -2
  184. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column.spec.js +2 -2
  185. package/dist/collection/components/{picker-legacy-column → picker-column}/test/standalone/picker-column.e2e.js +3 -3
  186. package/dist/collection/components/{picker-column-option/picker-column-option.md.css → picker-column-internal/picker-column-internal.ios.css} +53 -6
  187. package/dist/collection/components/picker-column-internal/picker-column-internal.js +566 -0
  188. package/dist/collection/components/{picker-column/picker-column.css → picker-column-internal/picker-column-internal.md.css} +83 -96
  189. package/dist/collection/components/{picker-column/test/basic/picker-column.e2e.js → picker-column-internal/test/basic/picker-column-internal.e2e.js} +8 -8
  190. package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +162 -0
  191. package/dist/collection/components/{picker-legacy/picker.md.css → picker-internal/picker-internal.ios.css} +100 -192
  192. package/dist/collection/components/picker-internal/picker-internal.js +560 -0
  193. package/dist/collection/components/{picker-legacy/picker.ios.css → picker-internal/picker-internal.md.css} +98 -207
  194. package/dist/collection/components/{picker/test/a11y/picker.e2e.js → picker-internal/test/a11y/picker-internal.e2e.js} +2 -2
  195. package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +118 -0
  196. package/dist/collection/components/{picker/test/keyboard-entry/picker.e2e.js → picker-internal/test/keyboard-entry/picker-internal.e2e.js} +42 -79
  197. package/dist/collection/components/progress-bar/progress-bar.ios.css +2 -2
  198. package/dist/collection/components/progress-bar/progress-bar.md.css +2 -2
  199. package/dist/collection/components/radio/radio.ios.css +2 -2
  200. package/dist/collection/components/radio/radio.md.css +2 -2
  201. package/dist/collection/components/radio/test/a11y/radio.e2e.js +81 -114
  202. package/dist/collection/components/range/range.ios.css +1 -1
  203. package/dist/collection/components/range/range.md.css +3 -3
  204. package/dist/collection/components/range/test/a11y/range.e2e.js +8 -18
  205. package/dist/collection/components/refresher/refresher.md.css +2 -2
  206. package/dist/collection/components/refresher/test/test.utils.js +1 -1
  207. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  208. package/dist/collection/components/ripple-effect/test/basic/ripple-effect.e2e.js +2 -2
  209. package/dist/collection/components/router-link/router-link.css +1 -1
  210. package/dist/collection/components/searchbar/searchbar.ios.css +1 -1
  211. package/dist/collection/components/segment/test/a11y/segment.e2e.js +0 -23
  212. package/dist/collection/components/segment-button/segment-button.md.css +2 -2
  213. package/dist/collection/components/select/select.ios.css +3 -3
  214. package/dist/collection/components/select/select.md.css +3 -3
  215. package/dist/collection/components/select/test/a11y/select.e2e.js +4 -68
  216. package/dist/collection/components/select-popover/select-popover.md.css +4 -4
  217. package/dist/collection/components/split-pane/split-pane.ios.css +54 -2
  218. package/dist/collection/components/split-pane/split-pane.js +12 -46
  219. package/dist/collection/components/split-pane/split-pane.md.css +54 -2
  220. package/dist/collection/components/tab-bar/tab-bar.ios.css +1 -1
  221. package/dist/collection/components/tab-bar/tab-bar.md.css +1 -1
  222. package/dist/collection/components/textarea/test/a11y/textarea.e2e.js +3 -41
  223. package/dist/collection/components/textarea/textarea.ios.css +3 -3
  224. package/dist/collection/components/textarea/textarea.md.css +3 -3
  225. package/dist/collection/components/toast/test/a11y/toast.e2e.js +24 -56
  226. package/dist/collection/components/toast/toast.ios.css +1 -1
  227. package/dist/collection/components/toast/toast.md.css +2 -2
  228. package/dist/collection/components/toggle/test/a11y/toggle.e2e.js +2 -8
  229. package/dist/collection/components/toggle/toggle.ios.css +2 -2
  230. package/dist/collection/components/toggle/toggle.md.css +2 -2
  231. package/dist/collection/css/test/a11y/typography.e2e.js +0 -18
  232. package/dist/collection/utils/gesture/gesture-controller.js +1 -1
  233. package/dist/collection/utils/overlays.js +8 -11
  234. package/dist/collection/utils/test/playwright/generator.js +0 -1
  235. package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
  236. package/dist/docs.json +41 -500
  237. package/dist/esm/{button-active-3bcbd115.js → button-active-b62776db.js} +1 -1
  238. package/dist/esm/{data-6a31d701.js → data-775093f5.js} +1 -1
  239. package/dist/esm/{gesture-controller-314a54f6.js → gesture-controller-1bf57181.js} +1 -1
  240. package/dist/esm/{index-39782642.js → index-2cf77112.js} +2 -2
  241. package/dist/esm/index.js +3 -3
  242. package/dist/esm/ion-action-sheet.entry.js +5 -5
  243. package/dist/esm/ion-alert.entry.js +6 -6
  244. package/dist/esm/ion-app_8.entry.js +5 -4
  245. package/dist/esm/ion-avatar_3.entry.js +2 -2
  246. package/dist/esm/ion-back-button.entry.js +1 -1
  247. package/dist/esm/ion-backdrop.entry.js +12 -0
  248. package/dist/esm/ion-button_2.entry.js +2 -2
  249. package/dist/esm/ion-checkbox.entry.js +2 -2
  250. package/dist/esm/ion-datetime-button.entry.js +1 -1
  251. package/dist/esm/ion-datetime_3.entry.js +56 -36
  252. package/dist/esm/ion-fab_3.entry.js +2 -2
  253. package/dist/esm/ion-input.entry.js +2 -2
  254. package/dist/esm/ion-item-option_3.entry.js +3 -3
  255. package/dist/esm/ion-item_8.entry.js +8 -3
  256. package/dist/esm/ion-loading.entry.js +2 -3
  257. package/dist/esm/ion-menu_3.entry.js +20 -25
  258. package/dist/esm/ion-modal.entry.js +3 -5
  259. package/dist/esm/ion-nav_2.entry.js +3 -6
  260. package/dist/esm/{ion-picker-column.entry.js → ion-picker-column-internal.entry.js} +87 -104
  261. package/dist/esm/{ion-picker.entry.js → ion-picker-internal.entry.js} +19 -26
  262. package/dist/esm/ion-popover.entry.js +1 -2
  263. package/dist/esm/ion-progress-bar.entry.js +2 -2
  264. package/dist/esm/ion-radio_2.entry.js +2 -2
  265. package/dist/esm/ion-range.entry.js +3 -3
  266. package/dist/esm/ion-refresher_2.entry.js +5 -5
  267. package/dist/esm/ion-reorder_2.entry.js +1 -1
  268. package/dist/esm/ion-route_4.entry.js +1 -1
  269. package/dist/esm/ion-searchbar.entry.js +1 -1
  270. package/dist/esm/ion-segment_2.entry.js +2 -2
  271. package/dist/esm/ion-select_3.entry.js +4 -5
  272. package/dist/esm/ion-split-pane.entry.js +14 -24
  273. package/dist/esm/ion-tab-bar_2.entry.js +2 -2
  274. package/dist/esm/ion-textarea.entry.js +2 -2
  275. package/dist/esm/ion-toast.entry.js +5 -5
  276. package/dist/esm/ion-toggle.entry.js +3 -3
  277. package/dist/esm/ionic.js +1 -1
  278. package/dist/esm/loader.js +1 -1
  279. package/dist/esm/{overlays-8b24f0d5.js → overlays-f27ccf93.js} +9 -12
  280. package/dist/esm/{swipe-back-a8ca7f93.js → swipe-back-a6f386fc.js} +2 -2
  281. package/dist/esm-es5/{button-active-3bcbd115.js → button-active-b62776db.js} +1 -1
  282. package/dist/esm-es5/{gesture-controller-314a54f6.js → gesture-controller-1bf57181.js} +1 -1
  283. package/dist/esm-es5/{index-39782642.js → index-2cf77112.js} +1 -1
  284. package/dist/esm-es5/index.js +1 -1
  285. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  286. package/dist/esm-es5/ion-alert.entry.js +1 -1
  287. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  288. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  289. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  290. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  291. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  292. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  293. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  294. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  295. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  296. package/dist/esm-es5/ion-input.entry.js +1 -1
  297. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  298. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  299. package/dist/esm-es5/ion-loading.entry.js +1 -1
  300. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  301. package/dist/esm-es5/ion-modal.entry.js +1 -1
  302. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  303. package/dist/esm-es5/ion-picker-column-internal.entry.js +4 -0
  304. package/dist/esm-es5/ion-picker-internal.entry.js +4 -0
  305. package/dist/esm-es5/ion-popover.entry.js +1 -1
  306. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  307. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  308. package/dist/esm-es5/ion-range.entry.js +1 -1
  309. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  310. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  311. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  312. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  313. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  314. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  315. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  316. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  317. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  318. package/dist/esm-es5/ion-toast.entry.js +1 -1
  319. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  320. package/dist/esm-es5/ionic.js +1 -1
  321. package/dist/esm-es5/loader.js +1 -1
  322. package/dist/esm-es5/overlays-f27ccf93.js +4 -0
  323. package/dist/esm-es5/swipe-back-a6f386fc.js +4 -0
  324. package/dist/html.html-data.json +1 -152
  325. package/dist/ionic/index.esm.js +1 -1
  326. package/dist/ionic/ionic.esm.js +1 -1
  327. package/dist/ionic/{p-9cd05453.entry.js → p-0d2b6901.entry.js} +1 -1
  328. package/dist/ionic/p-0fb73844.system.entry.js +4 -0
  329. package/dist/ionic/{p-ae8747aa.entry.js → p-1052ef2b.entry.js} +1 -1
  330. package/dist/ionic/{p-7a1ef06a.system.entry.js → p-10c34f0a.system.entry.js} +1 -1
  331. package/dist/ionic/{p-fc58a772.system.entry.js → p-1a0bf247.system.entry.js} +1 -1
  332. package/dist/ionic/p-1a5f0313.system.js +1 -1
  333. package/dist/ionic/{p-8aaade76.entry.js → p-1f7fc88d.entry.js} +1 -1
  334. package/dist/ionic/p-217f6812.entry.js +4 -0
  335. package/dist/ionic/{p-0055506a.entry.js → p-249633a4.entry.js} +1 -1
  336. package/dist/ionic/{p-3e1e14d9.system.js → p-31b2326e.system.js} +1 -1
  337. package/dist/ionic/p-357969b4.system.entry.js +4 -0
  338. package/dist/ionic/p-35ce400e.system.js +4 -0
  339. package/dist/ionic/{p-943caced.system.entry.js → p-35e1a80f.system.entry.js} +1 -1
  340. package/dist/ionic/{p-3f3ae637.system.entry.js → p-3b83e483.system.entry.js} +2 -2
  341. package/dist/ionic/p-3d4c2a93.entry.js +4 -0
  342. package/dist/ionic/p-3de38800.system.entry.js +4 -0
  343. package/dist/ionic/{p-14311a1d.system.entry.js → p-41040a92.system.entry.js} +1 -1
  344. package/dist/ionic/{p-eeb87a49.entry.js → p-41aa2662.entry.js} +1 -1
  345. package/dist/ionic/{p-a72be676.entry.js → p-436bd99a.entry.js} +1 -1
  346. package/dist/ionic/{p-cb304e5f.system.entry.js → p-4b639e59.system.entry.js} +1 -1
  347. package/dist/ionic/{p-bad61026.system.entry.js → p-525b6ac4.system.entry.js} +1 -1
  348. package/dist/ionic/p-531ef1b9.system.entry.js +4 -0
  349. package/dist/ionic/{p-42d5f6ae.entry.js → p-54c92c77.entry.js} +1 -1
  350. package/dist/ionic/{p-870453fd.entry.js → p-5628d04e.entry.js} +1 -1
  351. package/dist/ionic/p-5aecd304.system.entry.js +4 -0
  352. package/dist/ionic/{p-cb0cfc39.system.entry.js → p-5c2da581.system.entry.js} +1 -1
  353. package/dist/ionic/p-61bf9f6f.system.entry.js +4 -0
  354. package/dist/ionic/{p-c7bdd72f.entry.js → p-688a36c7.entry.js} +1 -1
  355. package/dist/ionic/p-6899d5af.entry.js +4 -0
  356. package/dist/ionic/p-6a6477b2.js +4 -0
  357. package/dist/ionic/p-6acc4fa4.system.entry.js +4 -0
  358. package/dist/ionic/{p-9a9deb33.system.entry.js → p-6b9eee40.system.entry.js} +1 -1
  359. package/dist/ionic/p-6cf4d5ae.js +4 -0
  360. package/dist/ionic/p-6e165986.system.entry.js +4 -0
  361. package/dist/ionic/p-6f7d79aa.entry.js +4 -0
  362. package/dist/ionic/p-719ad110.system.entry.js +4 -0
  363. package/dist/ionic/p-73547cf9.entry.js +4 -0
  364. package/dist/ionic/{p-7acc89e0.entry.js → p-73b8935e.entry.js} +1 -1
  365. package/dist/ionic/{p-d545e325.entry.js → p-7510e462.entry.js} +1 -1
  366. package/dist/ionic/{p-9928b546.entry.js → p-7bae84aa.entry.js} +1 -1
  367. package/dist/ionic/{p-28525772.entry.js → p-8084e9cb.entry.js} +1 -1
  368. package/dist/ionic/p-80ddd0c1.entry.js +4 -0
  369. package/dist/ionic/p-817121f2.entry.js +4 -0
  370. package/dist/ionic/p-87e10168.system.entry.js +4 -0
  371. package/dist/ionic/p-89c28901.system.entry.js +4 -0
  372. package/dist/ionic/p-91703a40.system.entry.js +4 -0
  373. package/dist/ionic/p-91de41db.entry.js +4 -0
  374. package/dist/ionic/{p-2fda36b6.system.entry.js → p-928e945d.system.entry.js} +1 -1
  375. package/dist/ionic/p-9cf50392.system.entry.js +4 -0
  376. package/dist/ionic/p-a2d75455.entry.js +4 -0
  377. package/dist/ionic/p-a706cf11.system.entry.js +4 -0
  378. package/dist/ionic/p-aca77953.entry.js +4 -0
  379. package/dist/ionic/{p-df75bd2c.system.js → p-afeae67e.system.js} +1 -1
  380. package/dist/ionic/{p-7a2c6bb5.entry.js → p-b09c8228.entry.js} +1 -1
  381. package/dist/ionic/p-b3e0920e.system.js +4 -0
  382. package/dist/ionic/{p-34f05cec.entry.js → p-b43cf55f.entry.js} +1 -1
  383. package/dist/ionic/{p-efa1c7f0.entry.js → p-b6f6f00e.entry.js} +1 -1
  384. package/dist/ionic/p-b73e8975.entry.js +4 -0
  385. package/dist/ionic/p-ba4890eb.system.entry.js +4 -0
  386. package/dist/ionic/{p-9b97df10.js → p-bb3615f7.js} +1 -1
  387. package/dist/ionic/{p-1d1ce54e.entry.js → p-bd54680b.entry.js} +1 -1
  388. package/dist/ionic/p-beeceaf5.system.entry.js +4 -0
  389. package/dist/ionic/{p-0a0a84ce.system.entry.js → p-c1c57873.system.entry.js} +1 -1
  390. package/dist/ionic/p-c4177035.entry.js +4 -0
  391. package/dist/ionic/p-c48a9ef3.system.entry.js +4 -0
  392. package/dist/ionic/{p-20d469d0.system.js → p-c7c8429a.system.js} +1 -1
  393. package/dist/ionic/p-cb301b9a.entry.js +4 -0
  394. package/dist/ionic/{p-8a1d33e3.system.entry.js → p-cdce5ba3.system.entry.js} +1 -1
  395. package/dist/ionic/{p-114ea79c.system.js → p-d2707f9d.system.js} +1 -1
  396. package/dist/ionic/{p-41dcd6c0.system.entry.js → p-d6beb1c9.system.entry.js} +1 -1
  397. package/dist/ionic/{p-9cbfb298.system.entry.js → p-db798370.system.entry.js} +1 -1
  398. package/dist/ionic/{p-ee1214e0.system.entry.js → p-dc1d883c.system.entry.js} +1 -1
  399. package/dist/ionic/{p-c9028fdc.entry.js → p-df62accd.entry.js} +1 -1
  400. package/dist/ionic/{p-67b167bc.entry.js → p-e814f9c0.entry.js} +1 -1
  401. package/dist/ionic/{p-a068b1c7.system.entry.js → p-e878fba0.system.entry.js} +2 -2
  402. package/dist/ionic/{p-75017f39.system.entry.js → p-eb210b21.system.entry.js} +1 -1
  403. package/dist/ionic/p-eb80ca40.entry.js +4 -0
  404. package/dist/ionic/{p-f2ed3039.system.entry.js → p-edc69ab8.system.entry.js} +1 -1
  405. package/dist/ionic/{p-598bd8e2.entry.js → p-f4d77b5f.entry.js} +1 -1
  406. package/dist/ionic/{p-8ededb41.js → p-f5d2dc9b.js} +1 -1
  407. package/dist/ionic/{p-adba40e6.entry.js → p-f865bc9a.entry.js} +1 -1
  408. package/dist/ionic/p-fd1a0431.js +4 -0
  409. package/dist/types/components/backdrop/backdrop.d.ts +3 -0
  410. package/dist/types/components/datetime/datetime.d.ts +1 -0
  411. package/dist/types/components/datetime/utils/data.d.ts +7 -11
  412. package/dist/types/components/item/item.d.ts +1 -0
  413. package/dist/types/components/menu/menu.d.ts +2 -12
  414. package/dist/types/components/nav/nav.d.ts +1 -4
  415. package/dist/types/components/picker/picker.d.ts +129 -75
  416. package/dist/types/components/picker-column/picker-column.d.ts +39 -99
  417. package/dist/types/components/picker-column-internal/picker-column-internal-interfaces.d.ts +5 -0
  418. package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +102 -0
  419. package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +8 -0
  420. package/dist/types/components/picker-internal/picker-internal.d.ts +102 -0
  421. package/dist/types/components/split-pane/split-pane.d.ts +2 -14
  422. package/dist/types/components.d.ts +122 -159
  423. package/dist/types/interface.d.ts +1 -1
  424. package/dist/types/utils/config.d.ts +2 -2
  425. package/dist/types/utils/gesture/gesture-controller.d.ts +0 -1
  426. package/dist/types/utils/overlays.d.ts +2 -5
  427. package/hydrate/index.js +1332 -1442
  428. package/package.json +2 -2
  429. package/components/ion-picker-column-option.d.ts +0 -11
  430. package/components/ion-picker-column-option.js +0 -9
  431. package/components/ion-picker-legacy-column.d.ts +0 -11
  432. package/components/ion-picker-legacy-column.js +0 -9
  433. package/components/ion-picker-legacy.js +0 -309
  434. package/components/picker-column-option.js +0 -122
  435. package/components/picker-column2.js +0 -379
  436. package/css/themes/dark.always.css +0 -122
  437. package/css/themes/dark.always.css.map +0 -1
  438. package/css/themes/dark.class.css +0 -122
  439. package/css/themes/dark.class.css.map +0 -1
  440. package/css/themes/dark.css +0 -3
  441. package/css/themes/dark.css.map +0 -1
  442. package/css/themes/dark.system.css +0 -124
  443. package/css/themes/dark.system.css.map +0 -1
  444. package/dist/cjs/ion-picker-column-option.cjs.entry.js +0 -104
  445. package/dist/collection/components/picker/test/custom/picker.e2e.js +0 -85
  446. package/dist/collection/components/picker-column/test/disabled/picker-column.e2e.js +0 -91
  447. package/dist/collection/components/picker-column/test/slots/picker-column.e2e.js +0 -39
  448. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +0 -87
  449. package/dist/collection/components/picker-column-option/picker-column-option.js +0 -173
  450. package/dist/collection/components/picker-column-option/test/a11y/picker-column-option.e2e.js +0 -18
  451. package/dist/collection/components/picker-column-option/test/basic/picker-column-option.e2e.js +0 -37
  452. package/dist/collection/components/picker-column-option/test/picker-column-option.spec.js +0 -29
  453. package/dist/collection/components/picker-legacy/picker.js +0 -811
  454. package/dist/collection/components/picker-legacy/test/basic/picker.e2e.js +0 -25
  455. package/dist/collection/components/picker-legacy-column/picker-column.js +0 -419
  456. package/dist/collection/components/progress-bar/test/a11y/progress-bar.e2e.js +0 -24
  457. package/dist/collection/components/refresher/test/a11y/refresher.e2e.js +0 -25
  458. package/dist/collection/components/router-link/test/a11y/router-link.e2e.js +0 -23
  459. package/dist/collection/components/select-popover/test/a11y/select-popover.e2e.js +0 -32
  460. package/dist/collection/components/split-pane/test/wrapped-menu/split-pane.e2e.js +0 -41
  461. package/dist/collection/themes/test/colors/theme.e2e.js +0 -114
  462. package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +0 -65
  463. package/dist/esm/ion-picker-column-option.entry.js +0 -100
  464. package/dist/esm-es5/ion-picker-column-option.entry.js +0 -4
  465. package/dist/esm-es5/ion-picker-column.entry.js +0 -4
  466. package/dist/esm-es5/ion-picker.entry.js +0 -4
  467. package/dist/esm-es5/overlays-8b24f0d5.js +0 -4
  468. package/dist/esm-es5/swipe-back-a8ca7f93.js +0 -4
  469. package/dist/ionic/p-0708a9c1.system.js +0 -4
  470. package/dist/ionic/p-09890dd9.entry.js +0 -4
  471. package/dist/ionic/p-0d3c5eaa.system.entry.js +0 -4
  472. package/dist/ionic/p-10607f89.entry.js +0 -4
  473. package/dist/ionic/p-26976bfc.system.entry.js +0 -4
  474. package/dist/ionic/p-2c02fb1c.system.entry.js +0 -4
  475. package/dist/ionic/p-3065cecc.entry.js +0 -4
  476. package/dist/ionic/p-381ca6f8.system.entry.js +0 -4
  477. package/dist/ionic/p-4a13a07c.system.entry.js +0 -4
  478. package/dist/ionic/p-4b94c354.entry.js +0 -4
  479. package/dist/ionic/p-51abefb7.system.js +0 -4
  480. package/dist/ionic/p-5d22095a.entry.js +0 -4
  481. package/dist/ionic/p-67c1996d.entry.js +0 -4
  482. package/dist/ionic/p-6d42a37b.entry.js +0 -4
  483. package/dist/ionic/p-6db68be9.system.entry.js +0 -4
  484. package/dist/ionic/p-71f30cfc.system.entry.js +0 -4
  485. package/dist/ionic/p-7a343dca.system.entry.js +0 -4
  486. package/dist/ionic/p-7a3e1f37.system.entry.js +0 -4
  487. package/dist/ionic/p-7ae141f1.entry.js +0 -4
  488. package/dist/ionic/p-7e8ef0bb.system.entry.js +0 -4
  489. package/dist/ionic/p-94265b3d.entry.js +0 -4
  490. package/dist/ionic/p-95d8071f.entry.js +0 -4
  491. package/dist/ionic/p-9c9eb63f.system.entry.js +0 -4
  492. package/dist/ionic/p-a01d6784.system.entry.js +0 -4
  493. package/dist/ionic/p-a11e45fe.system.entry.js +0 -4
  494. package/dist/ionic/p-a259fa5f.system.entry.js +0 -4
  495. package/dist/ionic/p-a60a1ce5.js +0 -4
  496. package/dist/ionic/p-acbb36a1.entry.js +0 -4
  497. package/dist/ionic/p-c33d312f.js +0 -4
  498. package/dist/ionic/p-c9b8f9e5.system.entry.js +0 -4
  499. package/dist/ionic/p-d6674fed.entry.js +0 -4
  500. package/dist/ionic/p-dfd21411.system.entry.js +0 -4
  501. package/dist/ionic/p-e22bf111.js +0 -4
  502. package/dist/ionic/p-e652d9e4.entry.js +0 -4
  503. package/dist/ionic/p-ea4b254e.entry.js +0 -4
  504. package/dist/ionic/p-ea9a8424.system.entry.js +0 -4
  505. package/dist/ionic/p-eaa4e76f.system.entry.js +0 -4
  506. package/dist/ionic/p-fdc3ff96.entry.js +0 -4
  507. package/dist/types/components/picker/picker-interfaces.d.ts +0 -8
  508. package/dist/types/components/picker-column/picker-column-interfaces.d.ts +0 -4
  509. package/dist/types/components/picker-column-option/picker-column-option.d.ts +0 -66
  510. package/dist/types/components/picker-legacy/picker.d.ts +0 -158
  511. package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
  512. /package/dist/collection/components/{picker-legacy → picker}/animations/ios.enter.js +0 -0
  513. /package/dist/collection/components/{picker-legacy → picker}/animations/ios.leave.js +0 -0
  514. /package/dist/collection/components/picker/{picker-interfaces.js → picker-interface.js} +0 -0
  515. /package/dist/collection/components/{picker-legacy-column → picker-column}/picker-column.ios.css +0 -0
  516. /package/dist/collection/components/{picker-legacy-column → picker-column}/test/test.utils.js +0 -0
  517. /package/dist/collection/components/{picker-column/picker-column-interfaces.js → picker-column-internal/picker-column-internal-interfaces.js} +0 -0
  518. /package/dist/collection/components/{picker-legacy/picker-interface.js → picker-internal/picker-internal-interfaces.js} +0 -0
  519. /package/dist/esm-es5/{data-6a31d701.js → data-775093f5.js} +0 -0
  520. /package/dist/ionic/{p-a64accf5.js → p-18cae04f.js} +0 -0
  521. /package/dist/ionic/{p-7ff4359e.system.js → p-87bb3735.system.js} +0 -0
  522. /package/dist/types/components/{picker-legacy → picker}/animations/ios.enter.d.ts +0 -0
  523. /package/dist/types/components/{picker-legacy → picker}/animations/ios.leave.d.ts +0 -0
  524. /package/dist/types/components/{picker-legacy → picker}/picker-interface.d.ts +0 -0
  525. /package/dist/types/components/{picker-legacy-column → picker-column}/test/test.utils.d.ts +0 -0
@@ -100,14 +100,6 @@
100
100
  * @prop --highlight-color-valid: The color of the highlight on the item when valid. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
101
101
  * @prop --highlight-color-invalid: The color of the highlight on the item when invalid. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
102
102
  */
103
- /**
104
- * We change the minimum width as the
105
- * font size changes. Using a fixed minimum
106
- * width means that fewer and fewer characters
107
- * can be displayed in the same space as the
108
- * text grows.
109
- */
110
- --inner-min-width: 4rem;
111
103
  --border-radius: 0px;
112
104
  --border-width: 0px;
113
105
  --border-style: solid;
@@ -238,7 +230,6 @@
238
230
  /* stylelint-enable */
239
231
  display: flex;
240
232
  position: relative;
241
- flex-wrap: wrap;
242
233
  align-items: inherit;
243
234
  justify-content: inherit;
244
235
  width: 100%;
@@ -270,10 +261,6 @@
270
261
  }
271
262
  }
272
263
 
273
- :host(.item-legacy) .item-native {
274
- flex-wrap: unset;
275
- }
276
-
277
264
  .item-native::-moz-focus-inner {
278
265
  border: 0;
279
266
  }
@@ -309,20 +296,10 @@ button, a {
309
296
  /* stylelint-enable */
310
297
  display: flex;
311
298
  position: relative;
312
- flex: 1 0 0;
299
+ flex: 1;
313
300
  flex-direction: inherit;
314
- flex-wrap: wrap;
315
301
  align-items: inherit;
316
302
  align-self: stretch;
317
- /**
318
- * The min-width defines when the
319
- * content in the default slot should
320
- * stop wrapping/truncating within its own
321
- * container. At this point the entire
322
- * container will wrap to the next line.
323
- */
324
- min-width: var(--inner-min-width);
325
- max-width: 100%;
326
303
  min-height: inherit;
327
304
  border-width: var(--inner-border-width);
328
305
  border-style: var(--border-style);
@@ -348,12 +325,6 @@ button, a {
348
325
  }
349
326
  }
350
327
 
351
- :host(.item-legacy) .item-inner {
352
- flex: 1;
353
- flex-wrap: unset;
354
- max-width: unset;
355
- }
356
-
357
328
  .item-bottom {
358
329
  margin-left: 0;
359
330
  margin-right: 0;
@@ -432,23 +403,15 @@ button, a {
432
403
 
433
404
  .input-wrapper {
434
405
  display: flex;
435
- flex: 1 0 auto;
406
+ flex: 1;
436
407
  flex-direction: inherit;
437
- flex-wrap: wrap;
438
408
  align-items: inherit;
439
409
  align-self: stretch;
440
- max-width: 100%;
441
410
  text-overflow: ellipsis;
442
411
  overflow: inherit;
443
412
  box-sizing: border-box;
444
413
  }
445
414
 
446
- :host(.item-legacy) .input-wrapper {
447
- flex: 1;
448
- flex-wrap: unset;
449
- max-width: unset;
450
- }
451
-
452
415
  :host(.item-label-stacked),
453
416
  :host(.item-label-floating) {
454
417
  align-items: start;
@@ -700,9 +663,9 @@ ion-ripple-effect {
700
663
  --border-color: var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));
701
664
  --color: var(--ion-item-color, var(--ion-text-color, #000));
702
665
  --highlight-height: 0px;
703
- --highlight-color-focused: var(--ion-color-primary, #0054e9);
704
- --highlight-color-valid: var(--ion-color-success, #2dd55b);
705
- --highlight-color-invalid: var(--ion-color-danger, #c5000f);
666
+ --highlight-color-focused: var(--ion-color-primary, #3880ff);
667
+ --highlight-color-valid: var(--ion-color-success, #2dd36f);
668
+ --highlight-color-invalid: var(--ion-color-danger, #eb445a);
706
669
  --bottom-padding-start: 0px;
707
670
  font-size: 1rem;
708
671
  }
@@ -45,6 +45,10 @@ export class Item {
45
45
  this.counterFormatter = undefined;
46
46
  this.counterString = undefined;
47
47
  }
48
+ buttonChanged() {
49
+ // Update the focusable option when the button option is changed
50
+ this.focusable = this.isFocusable();
51
+ }
48
52
  counterFormatterChanged() {
49
53
  this.updateCounterOutput(this.getFirstInput());
50
54
  }
@@ -629,6 +633,9 @@ export class Item {
629
633
  static get elementRef() { return "el"; }
630
634
  static get watchers() {
631
635
  return [{
636
+ "propName": "button",
637
+ "methodName": "buttonChanged"
638
+ }, {
632
639
  "propName": "counterFormatter",
633
640
  "methodName": "counterFormatterChanged"
634
641
  }];
@@ -100,14 +100,6 @@
100
100
  * @prop --highlight-color-valid: The color of the highlight on the item when valid. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
101
101
  * @prop --highlight-color-invalid: The color of the highlight on the item when invalid. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
102
102
  */
103
- /**
104
- * We change the minimum width as the
105
- * font size changes. Using a fixed minimum
106
- * width means that fewer and fewer characters
107
- * can be displayed in the same space as the
108
- * text grows.
109
- */
110
- --inner-min-width: 4rem;
111
103
  --border-radius: 0px;
112
104
  --border-width: 0px;
113
105
  --border-style: solid;
@@ -238,7 +230,6 @@
238
230
  /* stylelint-enable */
239
231
  display: flex;
240
232
  position: relative;
241
- flex-wrap: wrap;
242
233
  align-items: inherit;
243
234
  justify-content: inherit;
244
235
  width: 100%;
@@ -270,10 +261,6 @@
270
261
  }
271
262
  }
272
263
 
273
- :host(.item-legacy) .item-native {
274
- flex-wrap: unset;
275
- }
276
-
277
264
  .item-native::-moz-focus-inner {
278
265
  border: 0;
279
266
  }
@@ -309,20 +296,10 @@ button, a {
309
296
  /* stylelint-enable */
310
297
  display: flex;
311
298
  position: relative;
312
- flex: 1 0 0;
299
+ flex: 1;
313
300
  flex-direction: inherit;
314
- flex-wrap: wrap;
315
301
  align-items: inherit;
316
302
  align-self: stretch;
317
- /**
318
- * The min-width defines when the
319
- * content in the default slot should
320
- * stop wrapping/truncating within its own
321
- * container. At this point the entire
322
- * container will wrap to the next line.
323
- */
324
- min-width: var(--inner-min-width);
325
- max-width: 100%;
326
303
  min-height: inherit;
327
304
  border-width: var(--inner-border-width);
328
305
  border-style: var(--border-style);
@@ -348,12 +325,6 @@ button, a {
348
325
  }
349
326
  }
350
327
 
351
- :host(.item-legacy) .item-inner {
352
- flex: 1;
353
- flex-wrap: unset;
354
- max-width: unset;
355
- }
356
-
357
328
  .item-bottom {
358
329
  margin-left: 0;
359
330
  margin-right: 0;
@@ -432,23 +403,15 @@ button, a {
432
403
 
433
404
  .input-wrapper {
434
405
  display: flex;
435
- flex: 1 0 auto;
406
+ flex: 1;
436
407
  flex-direction: inherit;
437
- flex-wrap: wrap;
438
408
  align-items: inherit;
439
409
  align-self: stretch;
440
- max-width: 100%;
441
410
  text-overflow: ellipsis;
442
411
  overflow: inherit;
443
412
  box-sizing: border-box;
444
413
  }
445
414
 
446
- :host(.item-legacy) .input-wrapper {
447
- flex: 1;
448
- flex-wrap: unset;
449
- max-width: unset;
450
- }
451
-
452
415
  :host(.item-label-stacked),
453
416
  :host(.item-label-floating) {
454
417
  align-items: start;
@@ -800,9 +763,9 @@ ion-ripple-effect {
800
763
  --inner-padding-end: 16px;
801
764
  --inner-border-width: 0 0 1px 0;
802
765
  --highlight-height: 1px;
803
- --highlight-color-focused: var(--ion-color-primary, #0054e9);
804
- --highlight-color-valid: var(--ion-color-success, #2dd55b);
805
- --highlight-color-invalid: var(--ion-color-danger, #c5000f);
766
+ --highlight-color-focused: var(--ion-color-primary, #3880ff);
767
+ --highlight-color-valid: var(--ion-color-success, #2dd36f);
768
+ --highlight-color-invalid: var(--ion-color-danger, #eb445a);
806
769
  font-size: 1rem;
807
770
  font-weight: normal;
808
771
  text-transform: none;
@@ -1100,7 +1063,7 @@ ion-ripple-effect {
1100
1063
  :host(.ion-focused:not(.ion-color)) ::slotted(.label-floating),
1101
1064
  :host(.item-has-focus:not(.ion-color)) ::slotted(.label-stacked),
1102
1065
  :host(.item-has-focus:not(.ion-color)) ::slotted(.label-floating) {
1103
- color: var(--ion-color-primary, #0054e9);
1066
+ color: var(--ion-color-primary, #3880ff);
1104
1067
  }
1105
1068
 
1106
1069
  :host(.ion-color) {
@@ -0,0 +1,20 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { h } from "@stencil/core";
5
+ import { newSpecPage } from "@stencil/core/testing";
6
+ import { Item } from "../item";
7
+ describe('item', () => {
8
+ it('should change focusable option after switching button option status', async () => {
9
+ const page = await newSpecPage({
10
+ components: [Item],
11
+ template: () => h("ion-item", { button: false }),
12
+ });
13
+ const item = page.body.querySelector('ion-item');
14
+ // Change button attribute to true
15
+ item.setAttribute('button', 'true');
16
+ await page.waitForChanges();
17
+ // Check if it has the expected class that gives the highlight style to .item-highlight element
18
+ expect(item).toHaveClass('ion-focusable');
19
+ });
20
+ });
@@ -58,7 +58,7 @@
58
58
  * @prop --background: Background of the item option
59
59
  * @prop --color: Color of the item option
60
60
  */
61
- --background: var(--ion-color-primary, #0054e9);
61
+ --background: var(--ion-color-primary, #3880ff);
62
62
  --color: var(--ion-color-primary-contrast, #fff);
63
63
  background: var(--background);
64
64
  color: var(--color);
@@ -234,7 +234,7 @@
234
234
  }
235
235
 
236
236
  :host(.ion-activated) {
237
- background: var(--ion-color-primary-shade, #004acd);
237
+ background: var(--ion-color-primary-shade, #3171e0);
238
238
  }
239
239
 
240
240
  :host(.ion-color.ion-activated) {
@@ -58,7 +58,7 @@
58
58
  * @prop --background: Background of the item option
59
59
  * @prop --color: Color of the item option
60
60
  */
61
- --background: var(--ion-color-primary, #0054e9);
61
+ --background: var(--ion-color-primary, #3880ff);
62
62
  --color: var(--ion-color-primary-contrast, #fff);
63
63
  background: var(--background);
64
64
  color: var(--color);
@@ -1,36 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import AxeBuilder from "@axe-core/playwright";
5
- import { expect } from "@playwright/test";
6
4
  import { configs, test } from "../../../../utils/test/playwright/index";
7
5
  import { testSlidingItem } from "../test.utils";
8
- configs({ directions: ['ltr'], themes: ['light', 'dark'] }).forEach(({ title, config }) => {
9
- test.describe(title('item-sliding: a11y for ion-color()'), () => {
10
- test('should not have accessibility violations', async ({ page }) => {
11
- await page.setContent(`
12
- <main>
13
- <ion-item-sliding id="axe">
14
- <ion-item>
15
- <ion-label>Sliding Item with End Options</ion-label>
16
- </ion-item>
17
-
18
- <ion-item-options>
19
- <ion-item-option>Favorite</ion-item-option>
20
- <ion-item-option class="ion-activated">Activated</ion-item-option>
21
- </ion-item-options>
22
- </ion-item-sliding>
23
- </main>
24
- `, config);
25
- await page.locator(`#axe`).evaluate(async (el) => {
26
- await el.open('end');
27
- });
28
- await page.waitForChanges();
29
- const results = await new AxeBuilder({ page }).analyze();
30
- expect(results.violations).toEqual([]);
31
- });
32
- });
33
- });
34
6
  /**
35
7
  * This behavior does not vary across directions
36
8
  */
@@ -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([]);
@@ -295,49 +295,10 @@ 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
- */
313
298
  :host(.menu-pane-visible) {
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;
299
+ width: var(--width);
300
+ min-width: var(--min-width);
301
+ max-width: var(--max-width);
341
302
  }
342
303
 
343
304
  :host(.menu-pane-visible) .menu-inner {
@@ -353,28 +314,6 @@ ion-backdrop {
353
314
  display: hidden !important;
354
315
  }
355
316
 
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
-
378
317
  /**
379
318
  * Convert a font size to a dynamic font size.
380
319
  * Fonts that participate in Dynamic Type should use
@@ -7,7 +7,6 @@ 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";
11
10
  import { config } from "../../global/config";
12
11
  import { getIonMode } from "../../global/ionic-global";
13
12
  const iosEasing = 'cubic-bezier(0.32,0.72,0,1)';
@@ -139,19 +138,6 @@ export class Menu {
139
138
  }
140
139
  async componentDidLoad() {
141
140
  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
- }
155
141
  this.menuChanged();
156
142
  this.updateState();
157
143
  }
@@ -187,11 +173,20 @@ export class Menu {
187
173
  this.contentEl = undefined;
188
174
  }
189
175
  onSplitPaneChanged(ev) {
176
+ const { target } = ev;
190
177
  const closestSplitPane = this.el.closest('ion-split-pane');
191
- if (closestSplitPane !== null && closestSplitPane === ev.target) {
192
- this.isPaneVisible = ev.detail.visible;
193
- this.updateState();
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;
194
187
  }
188
+ this.isPaneVisible = ev.detail.isPane(this.el);
189
+ this.updateState();
195
190
  }
196
191
  onBackdropClick(ev) {
197
192
  // TODO(FW-2832): type (CustomEvent triggers errors which should be sorted)
@@ -598,7 +593,7 @@ export class Menu {
598
593
  }
599
594
  }
600
595
  render() {
601
- const { type, disabled, el, isPaneVisible, inheritedAttributes, side } = this;
596
+ const { type, disabled, isPaneVisible, inheritedAttributes, side } = this;
602
597
  const mode = getIonMode(this);
603
598
  return (h(Host, { role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
604
599
  [mode]: true,
@@ -606,7 +601,6 @@ export class Menu {
606
601
  'menu-enabled': !disabled,
607
602
  [`menu-side-${side}`]: true,
608
603
  'menu-pane-visible': isPaneVisible,
609
- 'split-pane-side': hostContext('ion-split-pane', el),
610
604
  } }, 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" })));
611
605
  }
612
606
  static get is() { return "ion-menu"; }
@@ -295,49 +295,10 @@ 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
- */
313
298
  :host(.menu-pane-visible) {
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;
299
+ width: var(--width);
300
+ min-width: var(--min-width);
301
+ max-width: var(--max-width);
341
302
  }
342
303
 
343
304
  :host(.menu-pane-visible) .menu-inner {
@@ -353,28 +314,6 @@ ion-backdrop {
353
314
  display: hidden !important;
354
315
  }
355
316
 
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
-
378
317
  /**
379
318
  * Convert a font size to a dynamic font size.
380
319
  * 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, #0054e9);
264
+ --color: var(--ion-color-primary, #3880ff);
265
265
  --padding-start: 5px;
266
266
  --padding-end: 5px;
267
267
  min-height: 32px;