voyager-ionic-core 8.0.0-beta.1 → 8.0.0-beta.3

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 (715) hide show
  1. package/components/action-sheet.js +3 -3
  2. package/components/alert.js +2 -2
  3. package/components/backdrop.js +1 -1
  4. package/components/button.js +2 -2
  5. package/components/buttons.js +3 -3
  6. package/components/checkbox.js +3 -3
  7. package/components/data.js +23 -38
  8. package/components/hardware-back-button.js +3 -3
  9. package/components/helpers.js +1 -54
  10. package/components/index9.js +1 -1
  11. package/components/input.utils.js +12 -0
  12. package/components/ion-app.js +4 -4
  13. package/components/ion-avatar.js +1 -1
  14. package/components/ion-back-button.js +2 -2
  15. package/components/ion-badge.js +2 -2
  16. package/components/ion-breadcrumb.js +2 -2
  17. package/components/ion-breadcrumbs.js +2 -2
  18. package/components/ion-card-content.js +1 -1
  19. package/components/ion-card-header.js +2 -2
  20. package/components/ion-card-subtitle.js +2 -2
  21. package/components/ion-card-title.js +2 -2
  22. package/components/ion-card.js +1 -1
  23. package/components/ion-chip.js +2 -2
  24. package/components/ion-col.js +2 -2
  25. package/components/ion-content.js +3 -3
  26. package/components/ion-datetime-button.js +11 -10
  27. package/components/ion-datetime.js +75 -12
  28. package/components/ion-fab-button.js +2 -2
  29. package/components/ion-fab-list.js +2 -2
  30. package/components/ion-fab.js +2 -2
  31. package/components/ion-footer.js +2 -2
  32. package/components/ion-grid.js +2 -2
  33. package/components/ion-header.js +3 -3
  34. package/components/ion-img.js +1 -1
  35. package/components/ion-infinite-scroll-content.js +2 -2
  36. package/components/ion-infinite-scroll.js +1 -1
  37. package/components/ion-input.js +6 -6
  38. package/components/ion-item-divider.js +2 -2
  39. package/components/ion-item-group.js +1 -1
  40. package/components/ion-item-option.js +2 -2
  41. package/components/ion-item-options.js +1 -1
  42. package/components/ion-item-sliding.js +1 -1
  43. package/components/ion-loading.js +2 -2
  44. package/components/ion-menu-button.js +2 -2
  45. package/components/ion-menu-toggle.js +2 -2
  46. package/components/ion-menu.js +3 -3
  47. package/components/ion-modal.js +3 -3
  48. package/components/ion-nav-link.js +1 -1
  49. package/components/ion-nav.js +1 -1
  50. package/components/ion-note.js +43 -1
  51. package/components/ion-picker-legacy.js +2 -2
  52. package/components/ion-progress-bar.js +1 -1
  53. package/components/ion-range.js +137 -45
  54. package/components/ion-refresher-content.js +1 -1
  55. package/components/ion-refresher.js +1 -1
  56. package/components/ion-reorder-group.js +1 -1
  57. package/components/ion-reorder.js +1 -1
  58. package/components/ion-router-link.js +2 -2
  59. package/components/ion-router-outlet.js +1 -1
  60. package/components/ion-router.js +1 -1
  61. package/components/ion-row.js +1 -1
  62. package/components/ion-searchbar.js +34 -5
  63. package/components/ion-segment-button.js +3 -3
  64. package/components/ion-segment.js +2 -2
  65. package/components/ion-select-option.js +1 -1
  66. package/components/ion-select.js +27 -33
  67. package/components/ion-skeleton-text.js +2 -2
  68. package/components/ion-split-pane.js +2 -2
  69. package/components/ion-tab-bar.js +2 -2
  70. package/components/ion-tab-button.js +2 -2
  71. package/components/ion-tab.js +2 -2
  72. package/components/ion-tabs.js +1 -1
  73. package/components/ion-text.js +2 -2
  74. package/components/ion-textarea.js +5 -5
  75. package/components/ion-thumbnail.js +1 -1
  76. package/components/ion-title.js +2 -2
  77. package/components/ion-toast.js +2 -2
  78. package/components/ion-toggle.js +3 -3
  79. package/components/ion-toolbar.js +2 -2
  80. package/components/item.js +11 -92
  81. package/components/label.js +5 -5
  82. package/components/list-header.js +2 -2
  83. package/components/list.js +1 -1
  84. package/components/overlays.js +61 -19
  85. package/components/picker-column-option.js +2 -2
  86. package/components/picker-column.js +8 -4
  87. package/components/picker-column2.js +2 -2
  88. package/components/picker.js +2 -2
  89. package/components/popover.js +2 -2
  90. package/components/radio-group.js +1 -1
  91. package/components/radio.js +3 -3
  92. package/components/ripple-effect.js +1 -1
  93. package/components/select-popover.js +13 -19
  94. package/components/spinner.js +1 -1
  95. package/css/palettes/dark.always.css.map +1 -0
  96. package/css/{themes → palettes}/dark.class.css +4 -4
  97. package/css/palettes/dark.class.css.map +1 -0
  98. package/css/palettes/dark.system.css.map +1 -0
  99. package/css/palettes/high-contrast-dark.always.css.map +1 -0
  100. package/css/{themes → palettes}/high-contrast-dark.class.css +10 -10
  101. package/css/palettes/high-contrast-dark.class.css.map +1 -0
  102. package/css/palettes/high-contrast-dark.system.css.map +1 -0
  103. package/css/palettes/high-contrast.always.css.map +1 -0
  104. package/css/{themes → palettes}/high-contrast.class.css +31 -31
  105. package/css/palettes/high-contrast.class.css.map +1 -0
  106. package/css/palettes/high-contrast.system.css.map +1 -0
  107. package/dist/cjs/{animation-4ad55058.js → animation-58ecfe20.js} +1 -1
  108. package/dist/cjs/{app-globals-4d26cb5a.js → app-globals-e132c781.js} +1 -1
  109. package/dist/cjs/{button-active-e447f58b.js → button-active-60ecf64d.js} +1 -1
  110. package/dist/cjs/{data-e2bf21de.js → data-21dc0f81.js} +22 -39
  111. package/dist/cjs/{framework-delegate-53817ef1.js → framework-delegate-df3a2b04.js} +1 -1
  112. package/dist/cjs/{hardware-back-button-4cb049f1.js → hardware-back-button-1c67a5a2.js} +5 -5
  113. package/dist/cjs/{helpers-b71ca811.js → helpers-71097d9c.js} +0 -54
  114. package/dist/cjs/{index-92bb95d6.js → index-14ae0c27.js} +4 -4
  115. package/dist/cjs/{index-bbc5b1f7.js → index-289297dc.js} +4 -4
  116. package/dist/cjs/{index-ea266398.js → index-2d21d526.js} +441 -12
  117. package/dist/cjs/{index-347883f6.js → index-7479ea5a.js} +1 -1
  118. package/dist/cjs/{index-7574e3d2.js → index-a91a3e24.js} +1 -1
  119. package/dist/cjs/index.cjs.js +11 -11
  120. package/dist/cjs/{input-shims-679d87bc.js → input-shims-77b14f24.js} +2 -2
  121. package/dist/cjs/{input.utils-5175aea1.js → input.utils-ca74d73a.js} +13 -1
  122. package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
  123. package/dist/cjs/ion-action-sheet.cjs.entry.js +11 -11
  124. package/dist/cjs/ion-alert.cjs.entry.js +10 -10
  125. package/dist/cjs/ion-app_8.cjs.entry.js +30 -30
  126. package/dist/cjs/ion-avatar_3.cjs.entry.js +6 -6
  127. package/dist/cjs/ion-back-button.cjs.entry.js +5 -5
  128. package/dist/cjs/ion-backdrop.cjs.entry.js +3 -3
  129. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +7 -7
  130. package/dist/cjs/ion-button_2.cjs.entry.js +5 -5
  131. package/dist/cjs/ion-card_5.cjs.entry.js +11 -11
  132. package/dist/cjs/ion-checkbox.cjs.entry.js +6 -6
  133. package/dist/cjs/ion-chip.cjs.entry.js +4 -4
  134. package/dist/cjs/ion-col_3.cjs.entry.js +7 -7
  135. package/dist/cjs/ion-datetime-button.cjs.entry.js +14 -13
  136. package/dist/cjs/ion-datetime_3.cjs.entry.js +83 -23
  137. package/dist/cjs/ion-fab_3.cjs.entry.js +9 -9
  138. package/dist/cjs/ion-img.cjs.entry.js +4 -4
  139. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +7 -7
  140. package/dist/cjs/ion-input.cjs.entry.js +10 -10
  141. package/dist/cjs/ion-item-option_3.cjs.entry.js +8 -8
  142. package/dist/cjs/ion-item_8.cjs.entry.js +23 -92
  143. package/dist/cjs/ion-loading.cjs.entry.js +9 -9
  144. package/dist/cjs/ion-menu_3.cjs.entry.js +14 -14
  145. package/dist/cjs/ion-modal.cjs.entry.js +12 -12
  146. package/dist/cjs/ion-nav_2.cjs.entry.js +8 -8
  147. package/dist/cjs/ion-picker-column-option.cjs.entry.js +5 -5
  148. package/dist/cjs/ion-picker-column.cjs.entry.js +11 -7
  149. package/dist/cjs/ion-picker.cjs.entry.js +4 -4
  150. package/dist/cjs/ion-popover.cjs.entry.js +10 -10
  151. package/dist/cjs/ion-progress-bar.cjs.entry.js +4 -4
  152. package/dist/cjs/ion-radio_2.cjs.entry.js +7 -7
  153. package/dist/cjs/ion-range.cjs.entry.js +140 -48
  154. package/dist/cjs/ion-refresher_2.cjs.entry.js +7 -7
  155. package/dist/cjs/ion-reorder_2.cjs.entry.js +6 -6
  156. package/dist/cjs/ion-ripple-effect.cjs.entry.js +3 -3
  157. package/dist/cjs/ion-route_4.cjs.entry.js +5 -5
  158. package/dist/cjs/ion-searchbar.cjs.entry.js +31 -7
  159. package/dist/cjs/ion-segment_2.cjs.entry.js +8 -8
  160. package/dist/cjs/ion-select_3.cjs.entry.js +17 -17
  161. package/dist/cjs/ion-spinner.cjs.entry.js +3 -3
  162. package/dist/cjs/ion-split-pane.cjs.entry.js +4 -4
  163. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +7 -7
  164. package/dist/cjs/ion-tab_2.cjs.entry.js +6 -6
  165. package/dist/cjs/ion-text.cjs.entry.js +4 -4
  166. package/dist/cjs/ion-textarea.cjs.entry.js +9 -9
  167. package/dist/cjs/ion-toast.cjs.entry.js +9 -9
  168. package/dist/cjs/ion-toggle.cjs.entry.js +6 -6
  169. package/dist/cjs/{ionic-global-59aa7eb7.js → ionic-global-5762eca9.js} +1 -1
  170. package/dist/cjs/ionic.cjs.js +28 -5
  171. package/dist/cjs/{ios.transition-997fe325.js → ios.transition-8e0ca8ed.js} +4 -4
  172. package/dist/cjs/loader.cjs.js +4 -4
  173. package/dist/cjs/{md.transition-2b76c2c6.js → md.transition-5d0f134b.js} +4 -4
  174. package/dist/cjs/{notch-controller-8e0ae870.js → notch-controller-0042ad49.js} +1 -1
  175. package/dist/cjs/{overlays-3d02b54f.js → overlays-30b83581.js} +64 -22
  176. package/dist/cjs/{status-tap-3761c2d4.js → status-tap-dc3b8fda.js} +3 -3
  177. package/dist/cjs/{swipe-back-5b71fc62.js → swipe-back-49825f1f.js} +1 -1
  178. package/dist/collection/collection-manifest.json +1 -1
  179. package/dist/collection/components/action-sheet/action-sheet.js +3 -3
  180. package/dist/collection/components/action-sheet/test/a11y/action-sheet.e2e.js +1 -1
  181. package/dist/collection/components/alert/alert.js +2 -2
  182. package/dist/collection/components/alert/test/a11y/alert.e2e.js +5 -1
  183. package/dist/collection/components/alert/test/basic/alert.e2e.js +1 -1
  184. package/dist/collection/components/app/app.js +4 -4
  185. package/dist/collection/components/avatar/avatar.js +1 -1
  186. package/dist/collection/components/back-button/back-button.js +2 -2
  187. package/dist/collection/components/back-button/test/a11y/back-button.e2e.js +1 -1
  188. package/dist/collection/components/backdrop/backdrop.js +1 -1
  189. package/dist/collection/components/badge/badge.js +2 -2
  190. package/dist/collection/components/badge/test/a11y/badge.e2e.js +1 -1
  191. package/dist/collection/components/breadcrumb/breadcrumb.js +2 -2
  192. package/dist/collection/components/breadcrumbs/breadcrumbs.js +2 -2
  193. package/dist/collection/components/button/button.js +2 -2
  194. package/dist/collection/components/button/test/a11y/button.e2e.js +2 -2
  195. package/dist/collection/components/buttons/buttons.js +2 -2
  196. package/dist/collection/components/card/card.js +1 -1
  197. package/dist/collection/components/card-content/card-content.js +1 -1
  198. package/dist/collection/components/card-header/card-header.js +2 -2
  199. package/dist/collection/components/card-subtitle/card-subtitle.js +2 -2
  200. package/dist/collection/components/card-title/card-title.js +2 -2
  201. package/dist/collection/components/checkbox/checkbox.js +3 -3
  202. package/dist/collection/components/checkbox/test/a11y/checkbox.e2e.js +1 -1
  203. package/dist/collection/components/checkbox/test/checkbox.spec.js +12 -0
  204. package/dist/collection/components/chip/chip.js +2 -2
  205. package/dist/collection/components/col/col.js +2 -2
  206. package/dist/collection/components/content/content.js +3 -3
  207. package/dist/collection/components/datetime/datetime.js +56 -12
  208. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +77 -0
  209. package/dist/collection/components/datetime/test/format.spec.js +65 -15
  210. package/dist/collection/components/datetime/utils/format.js +24 -37
  211. package/dist/collection/components/datetime/utils/validate.js +45 -0
  212. package/dist/collection/components/datetime-button/datetime-button.js +11 -10
  213. package/dist/collection/components/datetime-button/test/basic/datetime-button.e2e.js +65 -0
  214. package/dist/collection/components/fab/fab.js +2 -2
  215. package/dist/collection/components/fab-button/fab-button.js +2 -2
  216. package/dist/collection/components/fab-button/test/a11y/fab-button.e2e.js +1 -1
  217. package/dist/collection/components/fab-list/fab-list.js +2 -2
  218. package/dist/collection/components/footer/footer.js +2 -2
  219. package/dist/collection/components/grid/grid.js +2 -2
  220. package/dist/collection/components/header/header.ios.css +5 -2
  221. package/dist/collection/components/header/header.js +2 -2
  222. package/dist/collection/components/header/test/basic/header.e2e.js +77 -0
  223. package/dist/collection/components/img/img.js +1 -1
  224. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  225. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  226. package/dist/collection/components/input/input.ios.css +4 -2
  227. package/dist/collection/components/input/input.js +3 -3
  228. package/dist/collection/components/input/input.md.css +6 -4
  229. package/dist/collection/components/input/test/a11y/input.e2e.js +1 -1
  230. package/dist/collection/components/input/test/highlight/input.e2e.js +144 -0
  231. package/dist/collection/components/input/test/slot/input.e2e.js +8 -0
  232. package/dist/collection/components/item/item.ios.css +5 -197
  233. package/dist/collection/components/item/item.js +4 -166
  234. package/dist/collection/components/item/item.md.css +7 -360
  235. package/dist/collection/components/item/test/basic/item.e2e.js +0 -5
  236. package/dist/collection/components/item/test/buttons/item.e2e.js +20 -4
  237. package/dist/collection/components/item/test/item.spec.js +1 -1
  238. package/dist/collection/components/item-divider/item-divider.js +2 -2
  239. package/dist/collection/components/item-group/item-group.js +1 -1
  240. package/dist/collection/components/item-option/item-option.js +2 -2
  241. package/dist/collection/components/item-options/item-options.js +1 -1
  242. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  243. package/dist/collection/components/item-sliding/test/a11y/item-sliding.e2e.js +1 -1
  244. package/dist/collection/components/label/label.ios.css +0 -5
  245. package/dist/collection/components/label/label.js +2 -2
  246. package/dist/collection/components/label/label.md.css +0 -75
  247. package/dist/collection/components/label/test/a11y/label.e2e.js +1 -1
  248. package/dist/collection/components/list/list.js +1 -1
  249. package/dist/collection/components/list-header/list-header.js +2 -2
  250. package/dist/collection/components/loading/loading.js +2 -2
  251. package/dist/collection/components/loading/test/a11y/loading.e2e.js +1 -1
  252. package/dist/collection/components/menu/menu.js +12 -6
  253. package/dist/collection/components/menu-button/menu-button.js +2 -2
  254. package/dist/collection/components/menu-button/test/a11y/menu-button.e2e.js +1 -1
  255. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  256. package/dist/collection/components/modal/modal.js +3 -3
  257. package/dist/collection/components/nav/nav.js +1 -1
  258. package/dist/collection/components/nav-link/nav-link.js +1 -1
  259. package/dist/collection/components/note/note.js +2 -2
  260. package/dist/collection/components/picker/picker.js +2 -2
  261. package/dist/collection/components/picker-column/picker-column.js +8 -4
  262. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  263. package/dist/collection/components/picker-legacy/picker.js +2 -2
  264. package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
  265. package/dist/collection/components/popover/popover.js +2 -2
  266. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  267. package/dist/collection/components/progress-bar/test/a11y/progress-bar.e2e.js +1 -1
  268. package/dist/collection/components/radio/radio.js +3 -3
  269. package/dist/collection/components/radio/test/a11y/radio.e2e.js +1 -1
  270. package/dist/collection/components/radio-group/radio-group.js +1 -1
  271. package/dist/collection/components/range/range.js +137 -45
  272. package/dist/collection/components/range/test/a11y/range.e2e.js +1 -1
  273. package/dist/collection/components/range/test/label/range.spec.js +24 -0
  274. package/dist/collection/components/range/test/range-events.e2e.js +27 -0
  275. package/dist/collection/components/refresher/refresher.js +1 -1
  276. package/dist/collection/components/refresher/test/a11y/refresher.e2e.js +1 -1
  277. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  278. package/dist/collection/components/reorder/reorder.js +1 -1
  279. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  280. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  281. package/dist/collection/components/router-link/router-link.js +2 -2
  282. package/dist/collection/components/router-link/test/a11y/router-link.e2e.js +1 -1
  283. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  284. package/dist/collection/components/row/row.js +1 -1
  285. package/dist/collection/components/searchbar/searchbar.js +84 -5
  286. package/dist/collection/components/searchbar/test/searchbar.spec.js +20 -2
  287. package/dist/collection/components/segment/segment.js +2 -2
  288. package/dist/collection/components/segment/test/a11y/segment.e2e.js +1 -1
  289. package/dist/collection/components/segment-button/segment-button.js +3 -3
  290. package/dist/collection/components/select/select.ios.css +7 -2
  291. package/dist/collection/components/select/select.js +7 -7
  292. package/dist/collection/components/select/select.md.css +6 -29
  293. package/dist/collection/components/select/test/a11y/select.e2e.js +1 -1
  294. package/dist/collection/components/select/test/highlight/select.e2e.js +88 -4
  295. package/dist/collection/components/select/test/select.spec.js +22 -0
  296. package/dist/collection/components/select/test/slot/select.e2e.js +8 -0
  297. package/dist/collection/components/select-option/select-option.js +1 -1
  298. package/dist/collection/components/select-popover/select-popover.js +1 -1
  299. package/dist/collection/components/select-popover/test/a11y/select-popover.e2e.js +1 -1
  300. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  301. package/dist/collection/components/spinner/spinner.js +1 -1
  302. package/dist/collection/components/split-pane/split-pane.js +2 -2
  303. package/dist/collection/components/tab/tab.js +2 -2
  304. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  305. package/dist/collection/components/tab-button/tab-button.js +2 -2
  306. package/dist/collection/components/tabs/tabs.js +1 -1
  307. package/dist/collection/components/text/text.js +2 -2
  308. package/dist/collection/components/textarea/test/a11y/textarea.e2e.js +1 -1
  309. package/dist/collection/components/textarea/test/highlight/textarea.e2e.js +144 -0
  310. package/dist/collection/components/textarea/test/slot/textarea.e2e.js +8 -0
  311. package/dist/collection/components/textarea/textarea.ios.css +4 -22
  312. package/dist/collection/components/textarea/textarea.js +2 -2
  313. package/dist/collection/components/textarea/textarea.md.css +6 -17
  314. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  315. package/dist/collection/components/title/title.js +2 -2
  316. package/dist/collection/components/toast/test/a11y/toast.e2e.js +2 -2
  317. package/dist/collection/components/toast/toast.js +2 -2
  318. package/dist/collection/components/toggle/test/a11y/toggle.e2e.js +1 -1
  319. package/dist/collection/components/toggle/toggle.js +4 -4
  320. package/dist/collection/components/toolbar/toolbar.js +2 -2
  321. package/dist/collection/css/test/a11y/typography.e2e.js +1 -1
  322. package/dist/collection/themes/test/colors/theme.e2e.js +2 -2
  323. package/dist/collection/utils/forms/index.js +0 -1
  324. package/dist/collection/utils/hardware-back-button.js +2 -2
  325. package/dist/collection/utils/helpers.js +0 -53
  326. package/dist/collection/utils/overlays.js +61 -19
  327. package/dist/collection/utils/slot-mutation-controller.js +12 -0
  328. package/dist/collection/utils/test/overlays/overlays.spec.js +53 -0
  329. package/dist/collection/utils/test/playwright/generator.js +17 -17
  330. package/dist/collection/utils/test/playwright/page/utils/set-content.js +6 -6
  331. package/dist/docs.json +159 -190
  332. package/dist/esm/{animation-a4acf150.js → animation-6a3c0abb.js} +1 -1
  333. package/dist/esm/{app-globals-cfb6787b.js → app-globals-80842d68.js} +1 -1
  334. package/dist/esm/{button-active-454e5c57.js → button-active-c6e18fac.js} +1 -1
  335. package/dist/esm/{data-691286f1.js → data-ae11fd43.js} +23 -38
  336. package/dist/esm/{framework-delegate-1eb3236c.js → framework-delegate-3dede018.js} +1 -1
  337. package/dist/esm/{hardware-back-button-3a14f99e.js → hardware-back-button-fb295e3a.js} +5 -5
  338. package/dist/esm/{helpers-ae74b3c9.js → helpers-eab4f597.js} +1 -54
  339. package/dist/esm/{index-66871a1d.js → index-044b5a86.js} +1 -1
  340. package/dist/esm/{index-5847f4a9.js → index-136e99c8.js} +4 -4
  341. package/dist/esm/{index-9b6d6df3.js → index-5d6a0317.js} +441 -13
  342. package/dist/esm/{index-03086279.js → index-95a691d4.js} +4 -4
  343. package/dist/esm/{index-1f563746.js → index-fa221975.js} +1 -1
  344. package/dist/esm/index.js +11 -11
  345. package/dist/esm/{input-shims-56c1f603.js → input-shims-196afa11.js} +2 -2
  346. package/dist/esm/{input.utils-482fc893.js → input.utils-426cc674.js} +13 -1
  347. package/dist/esm/ion-accordion_2.entry.js +3 -3
  348. package/dist/esm/ion-action-sheet.entry.js +11 -11
  349. package/dist/esm/ion-alert.entry.js +10 -10
  350. package/dist/esm/ion-app_8.entry.js +30 -30
  351. package/dist/esm/ion-avatar_3.entry.js +6 -6
  352. package/dist/esm/ion-back-button.entry.js +5 -5
  353. package/dist/esm/ion-backdrop.entry.js +3 -3
  354. package/dist/esm/ion-breadcrumb_2.entry.js +7 -7
  355. package/dist/esm/ion-button_2.entry.js +5 -5
  356. package/dist/esm/ion-card_5.entry.js +11 -11
  357. package/dist/esm/ion-checkbox.entry.js +6 -6
  358. package/dist/esm/ion-chip.entry.js +4 -4
  359. package/dist/esm/ion-col_3.entry.js +7 -7
  360. package/dist/esm/ion-datetime-button.entry.js +14 -13
  361. package/dist/esm/ion-datetime_3.entry.js +83 -23
  362. package/dist/esm/ion-fab_3.entry.js +9 -9
  363. package/dist/esm/ion-img.entry.js +4 -4
  364. package/dist/esm/ion-infinite-scroll_2.entry.js +7 -7
  365. package/dist/esm/ion-input.entry.js +10 -10
  366. package/dist/esm/ion-item-option_3.entry.js +8 -8
  367. package/dist/esm/ion-item_8.entry.js +23 -92
  368. package/dist/esm/ion-loading.entry.js +9 -9
  369. package/dist/esm/ion-menu_3.entry.js +14 -14
  370. package/dist/esm/ion-modal.entry.js +12 -12
  371. package/dist/esm/ion-nav_2.entry.js +8 -8
  372. package/dist/esm/ion-picker-column-option.entry.js +5 -5
  373. package/dist/esm/ion-picker-column.entry.js +11 -7
  374. package/dist/esm/ion-picker.entry.js +4 -4
  375. package/dist/esm/ion-popover.entry.js +10 -10
  376. package/dist/esm/ion-progress-bar.entry.js +4 -4
  377. package/dist/esm/ion-radio_2.entry.js +7 -7
  378. package/dist/esm/ion-range.entry.js +140 -48
  379. package/dist/esm/ion-refresher_2.entry.js +7 -7
  380. package/dist/esm/ion-reorder_2.entry.js +6 -6
  381. package/dist/esm/ion-ripple-effect.entry.js +3 -3
  382. package/dist/esm/ion-route_4.entry.js +5 -5
  383. package/dist/esm/ion-searchbar.entry.js +31 -7
  384. package/dist/esm/ion-segment_2.entry.js +8 -8
  385. package/dist/esm/ion-select_3.entry.js +17 -17
  386. package/dist/esm/ion-spinner.entry.js +3 -3
  387. package/dist/esm/ion-split-pane.entry.js +4 -4
  388. package/dist/esm/ion-tab-bar_2.entry.js +7 -7
  389. package/dist/esm/ion-tab_2.entry.js +6 -6
  390. package/dist/esm/ion-text.entry.js +4 -4
  391. package/dist/esm/ion-textarea.entry.js +9 -9
  392. package/dist/esm/ion-toast.entry.js +9 -9
  393. package/dist/esm/ion-toggle.entry.js +6 -6
  394. package/dist/esm/{ionic-global-c976d684.js → ionic-global-a589c12c.js} +1 -1
  395. package/dist/esm/ionic.js +29 -6
  396. package/dist/esm/{ios.transition-a097dbf5.js → ios.transition-d1c8eea2.js} +4 -4
  397. package/dist/esm/loader.js +5 -5
  398. package/dist/esm/{md.transition-b4170ef7.js → md.transition-0d2de76d.js} +4 -4
  399. package/dist/esm/{notch-controller-18bf9f76.js → notch-controller-cff691e5.js} +1 -1
  400. package/dist/esm/{overlays-4ba3b255.js → overlays-d41f74ac.js} +64 -22
  401. package/dist/esm/{status-tap-7a12f017.js → status-tap-45595148.js} +3 -3
  402. package/dist/esm/{swipe-back-ae14449a.js → swipe-back-5aa5feeb.js} +1 -1
  403. package/dist/esm-es5/{animation-a4acf150.js → animation-6a3c0abb.js} +1 -1
  404. package/dist/esm-es5/app-globals-80842d68.js +4 -0
  405. package/dist/esm-es5/{button-active-454e5c57.js → button-active-c6e18fac.js} +1 -1
  406. package/dist/esm-es5/data-ae11fd43.js +4 -0
  407. package/dist/esm-es5/{framework-delegate-1eb3236c.js → framework-delegate-3dede018.js} +1 -1
  408. package/dist/esm-es5/hardware-back-button-fb295e3a.js +4 -0
  409. package/dist/esm-es5/helpers-eab4f597.js +4 -0
  410. package/dist/esm-es5/{index-66871a1d.js → index-044b5a86.js} +1 -1
  411. package/dist/esm-es5/{index-5847f4a9.js → index-136e99c8.js} +1 -1
  412. package/dist/esm-es5/index-5d6a0317.js +5 -0
  413. package/dist/esm-es5/{index-03086279.js → index-95a691d4.js} +1 -1
  414. package/dist/esm-es5/{index-1f563746.js → index-fa221975.js} +1 -1
  415. package/dist/esm-es5/index.js +1 -1
  416. package/dist/esm-es5/{input-shims-56c1f603.js → input-shims-196afa11.js} +1 -1
  417. package/dist/esm-es5/input.utils-426cc674.js +4 -0
  418. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  419. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  420. package/dist/esm-es5/ion-alert.entry.js +1 -1
  421. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  422. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  423. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  424. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  425. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  426. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  427. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  428. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  429. package/dist/esm-es5/ion-chip.entry.js +1 -1
  430. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  431. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  432. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  433. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  434. package/dist/esm-es5/ion-img.entry.js +1 -1
  435. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  436. package/dist/esm-es5/ion-input.entry.js +1 -1
  437. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  438. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  439. package/dist/esm-es5/ion-loading.entry.js +1 -1
  440. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  441. package/dist/esm-es5/ion-modal.entry.js +1 -1
  442. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  443. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  444. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  445. package/dist/esm-es5/ion-picker.entry.js +1 -1
  446. package/dist/esm-es5/ion-popover.entry.js +1 -1
  447. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  448. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  449. package/dist/esm-es5/ion-range.entry.js +1 -1
  450. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  451. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  452. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  453. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  454. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  455. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  456. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  457. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  458. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  459. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  460. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  461. package/dist/esm-es5/ion-text.entry.js +1 -1
  462. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  463. package/dist/esm-es5/ion-toast.entry.js +1 -1
  464. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  465. package/dist/esm-es5/{ionic-global-c976d684.js → ionic-global-a589c12c.js} +1 -1
  466. package/dist/esm-es5/ionic.js +1 -1
  467. package/dist/esm-es5/{ios.transition-a097dbf5.js → ios.transition-d1c8eea2.js} +1 -1
  468. package/dist/esm-es5/loader.js +1 -1
  469. package/dist/esm-es5/md.transition-0d2de76d.js +4 -0
  470. package/dist/esm-es5/{notch-controller-18bf9f76.js → notch-controller-cff691e5.js} +1 -1
  471. package/dist/esm-es5/overlays-d41f74ac.js +4 -0
  472. package/dist/esm-es5/{status-tap-7a12f017.js → status-tap-45595148.js} +1 -1
  473. package/dist/esm-es5/{swipe-back-ae14449a.js → swipe-back-5aa5feeb.js} +1 -1
  474. package/dist/html.html-data.json +25 -27
  475. package/dist/ionic/index.esm.js +1 -1
  476. package/dist/ionic/ionic.esm.js +1 -1
  477. package/dist/ionic/ionic.js +1 -1
  478. package/dist/ionic/{p-97135baa.entry.js → p-0051ceb9.entry.js} +1 -1
  479. package/dist/ionic/p-00a6f38d.entry.js +4 -0
  480. package/dist/ionic/p-02a803dc.entry.js +4 -0
  481. package/dist/ionic/{p-5aa60929.js → p-031c5621.js} +1 -1
  482. package/dist/ionic/p-07759435.system.js +4 -0
  483. package/dist/ionic/{p-a06af32c.system.js → p-08a8971e.system.js} +1 -1
  484. package/dist/ionic/p-0e4c9e45.system.js +4 -0
  485. package/dist/ionic/{p-f7ed6a44.system.entry.js → p-103ec049.system.entry.js} +1 -1
  486. package/dist/ionic/p-1685d81c.system.entry.js +4 -0
  487. package/dist/ionic/{p-cb944b1a.system.js → p-17043350.system.js} +1 -1
  488. package/dist/ionic/{p-1bca443b.system.entry.js → p-17ee2784.system.entry.js} +1 -1
  489. package/dist/ionic/p-1807190c.entry.js +4 -0
  490. package/dist/ionic/{p-cb0e4100.system.entry.js → p-185db19b.system.entry.js} +2 -2
  491. package/dist/ionic/{p-602494c6.entry.js → p-1a8bbd2e.entry.js} +1 -1
  492. package/dist/ionic/{p-8aeed464.system.entry.js → p-1bb1ef31.system.entry.js} +1 -1
  493. package/dist/ionic/p-1c801dd4.entry.js +4 -0
  494. package/dist/ionic/{p-466bdeae.entry.js → p-2130b526.entry.js} +1 -1
  495. package/dist/ionic/{p-1c436e95.system.entry.js → p-219c17cf.system.entry.js} +1 -1
  496. package/dist/ionic/p-22b5c888.system.entry.js +4 -0
  497. package/dist/ionic/{p-1a5ed3fe.system.entry.js → p-23838a94.system.entry.js} +1 -1
  498. package/dist/ionic/{p-27594fc2.js → p-239906f1.js} +1 -1
  499. package/dist/ionic/{p-8d50220b.system.js → p-23cff6c1.system.js} +1 -1
  500. package/dist/ionic/p-23efc001.entry.js +4 -0
  501. package/dist/ionic/{p-a6cc38d4.js → p-244f56fd.js} +1 -1
  502. package/dist/ionic/p-27c668a0.entry.js +4 -0
  503. package/dist/ionic/{p-09872ec8.system.entry.js → p-282bd5f9.system.entry.js} +1 -1
  504. package/dist/ionic/{p-dcfc297d.system.entry.js → p-2852c537.system.entry.js} +1 -1
  505. package/dist/ionic/{p-85464e28.system.entry.js → p-294c47cd.system.entry.js} +2 -2
  506. package/dist/ionic/p-29ef3b9b.entry.js +4 -0
  507. package/dist/ionic/p-2bb65deb.entry.js +4 -0
  508. package/dist/ionic/{p-8a50f8d6.system.js → p-2cc2c631.system.js} +1 -1
  509. package/dist/ionic/p-2f53c3eb.js +4 -0
  510. package/dist/ionic/{p-7b795aee.system.entry.js → p-2f6bc4a9.system.entry.js} +1 -1
  511. package/dist/ionic/{p-6d95943d.system.js → p-30dfa360.system.js} +1 -1
  512. package/dist/ionic/{p-c880c809.js → p-325c61a4.js} +1 -1
  513. package/dist/ionic/p-34c50a42.system.entry.js +4 -0
  514. package/dist/ionic/p-364044f0.js +4 -0
  515. package/dist/ionic/{p-e38b3c29.entry.js → p-3785c067.entry.js} +1 -1
  516. package/dist/ionic/p-3ae4a2a2.entry.js +4 -0
  517. package/dist/ionic/p-3cd3214e.entry.js +4 -0
  518. package/dist/ionic/{p-874510e9.system.entry.js → p-3e6e53fe.system.entry.js} +1 -1
  519. package/dist/ionic/{p-d4d0538c.system.entry.js → p-40976b1c.system.entry.js} +1 -1
  520. package/dist/ionic/{p-fd94dd20.system.entry.js → p-42fecf9c.system.entry.js} +1 -1
  521. package/dist/ionic/{p-7541ca9f.system.entry.js → p-43c751c6.system.entry.js} +1 -1
  522. package/dist/ionic/p-4a3055ef.system.js +4 -0
  523. package/dist/ionic/{p-f6a6b7ef.system.entry.js → p-4d325220.system.entry.js} +1 -1
  524. package/dist/ionic/p-4d361c89.entry.js +4 -0
  525. package/dist/ionic/p-54c31b4f.entry.js +4 -0
  526. package/dist/ionic/{p-7665bbbc.system.entry.js → p-5a277399.system.entry.js} +1 -1
  527. package/dist/ionic/{p-1600d68c.system.entry.js → p-5ac63b19.system.entry.js} +1 -1
  528. package/dist/ionic/{p-ad2b216a.system.entry.js → p-5b2951c1.system.entry.js} +1 -1
  529. package/dist/ionic/p-5b52897c.js +4 -0
  530. package/dist/ionic/{p-e64277c4.entry.js → p-5e39b9d8.entry.js} +1 -1
  531. package/dist/ionic/{p-a5b7a286.entry.js → p-610f0e12.entry.js} +1 -1
  532. package/dist/ionic/p-668607c2.system.js +4 -0
  533. package/dist/ionic/{p-c3a2e5cc.entry.js → p-66e50777.entry.js} +1 -1
  534. package/dist/ionic/{p-4825e380.entry.js → p-6a448415.entry.js} +1 -1
  535. package/dist/ionic/{p-95e14c7b.system.js → p-6a62da36.system.js} +1 -1
  536. package/dist/ionic/p-6a888b39.system.entry.js +4 -0
  537. package/dist/ionic/{p-3410a9cb.system.js → p-6d9f8fac.system.js} +1 -1
  538. package/dist/ionic/{p-4c2cac66.entry.js → p-7002bc75.entry.js} +1 -1
  539. package/dist/ionic/{p-454b36f7.system.entry.js → p-70c278c4.system.entry.js} +1 -1
  540. package/dist/ionic/{p-7b44b443.entry.js → p-7680d0ec.entry.js} +1 -1
  541. package/dist/ionic/{p-1fa738c4.js → p-78b3da77.js} +1 -1
  542. package/dist/ionic/{p-cd366840.system.entry.js → p-7adde43c.system.entry.js} +1 -1
  543. package/dist/ionic/{p-03f63663.system.js → p-7c7e495d.system.js} +1 -1
  544. package/dist/ionic/p-7d29dff0.system.entry.js +4 -0
  545. package/dist/ionic/p-7d4d9c40.system.entry.js +4 -0
  546. package/dist/ionic/p-7e7d534c.js +4 -0
  547. package/dist/ionic/{p-a8cc0027.system.js → p-853bd866.system.js} +1 -1
  548. package/dist/ionic/{p-91a72ad6.system.entry.js → p-85f43165.system.entry.js} +2 -2
  549. package/dist/ionic/p-86c17a09.entry.js +4 -0
  550. package/dist/ionic/p-8a881b39.entry.js +4 -0
  551. package/dist/ionic/p-8dd3d9c3.system.entry.js +4 -0
  552. package/dist/ionic/{p-77982637.entry.js → p-8ed900e4.entry.js} +1 -1
  553. package/dist/ionic/{p-da83d833.system.entry.js → p-91567c90.system.entry.js} +1 -1
  554. package/dist/ionic/{p-aaca8dd4.system.entry.js → p-92b05b70.system.entry.js} +1 -1
  555. package/dist/ionic/{p-6fd26009.js → p-976c7c54.js} +1 -1
  556. package/dist/ionic/p-978f4710.js +4 -0
  557. package/dist/ionic/{p-65d3f0e9.js → p-98c86cdd.js} +1 -1
  558. package/dist/ionic/p-9b5d033a.system.entry.js +4 -0
  559. package/dist/ionic/{p-30892e0c.system.js → p-9e3177a5.system.js} +1 -1
  560. package/dist/ionic/{p-3bac30bf.system.entry.js → p-9e6a5e3d.system.entry.js} +1 -1
  561. package/dist/ionic/{p-ddc4e717.entry.js → p-a0e8f913.entry.js} +1 -1
  562. package/dist/ionic/p-a3dae2ce.js +4 -0
  563. package/dist/ionic/{p-1a68de09.entry.js → p-a4c287f9.entry.js} +1 -1
  564. package/dist/ionic/{p-8d4d902b.js → p-a600a3e3.js} +1 -1
  565. package/dist/ionic/{p-2b3e0d99.system.entry.js → p-a6b8342e.system.entry.js} +1 -1
  566. package/dist/ionic/p-a88b41d1.system.entry.js +4 -0
  567. package/dist/ionic/{p-f71082f7.entry.js → p-a94092b9.entry.js} +1 -1
  568. package/dist/ionic/p-ac6db4c2.js +4 -0
  569. package/dist/ionic/{p-c5b77291.system.entry.js → p-af2e3481.system.entry.js} +1 -1
  570. package/dist/ionic/{p-eec92f77.system.js → p-af9256a0.system.js} +1 -1
  571. package/dist/ionic/{p-780ff3b5.system.entry.js → p-b0aaa59a.system.entry.js} +1 -1
  572. package/dist/ionic/{p-f16bfd53.entry.js → p-b141e253.entry.js} +1 -1
  573. package/dist/ionic/{p-ded27993.entry.js → p-b1d9b078.entry.js} +1 -1
  574. package/dist/ionic/{p-feb66f6f.entry.js → p-ba0290d1.entry.js} +1 -1
  575. package/dist/ionic/{p-add93c7a.entry.js → p-bb5eba12.entry.js} +1 -1
  576. package/dist/ionic/{p-82f5375e.system.entry.js → p-bb608006.system.entry.js} +1 -1
  577. package/dist/ionic/p-c385e49d.entry.js +4 -0
  578. package/dist/ionic/p-c3f5d0e7.js +4 -0
  579. package/dist/ionic/{p-81869a97.system.entry.js → p-c41e0b5f.system.entry.js} +1 -1
  580. package/dist/ionic/p-c629d22b.system.js +5 -0
  581. package/dist/ionic/{p-15708968.js → p-c6f9f3eb.js} +1 -1
  582. package/dist/ionic/{p-d504bc71.entry.js → p-c8383c20.entry.js} +1 -1
  583. package/dist/ionic/{p-1e0a18a1.system.entry.js → p-cbf0a046.system.entry.js} +1 -1
  584. package/dist/ionic/{p-ebe0be94.system.entry.js → p-d0496c22.system.entry.js} +1 -1
  585. package/dist/ionic/{p-1ed99eba.system.entry.js → p-d286cfbe.system.entry.js} +1 -1
  586. package/dist/ionic/{p-b4bb9cd0.system.entry.js → p-d372938e.system.entry.js} +1 -1
  587. package/dist/ionic/{p-afcd4f49.entry.js → p-d4d17d47.entry.js} +1 -1
  588. package/dist/ionic/{p-6ef5f4da.entry.js → p-d5ab02f5.entry.js} +1 -1
  589. package/dist/ionic/p-d60342e3.js +4 -0
  590. package/dist/ionic/{p-816476b0.system.js → p-d704f798.system.js} +1 -1
  591. package/dist/ionic/{p-942c19cb.entry.js → p-d8090ce4.entry.js} +1 -1
  592. package/dist/ionic/p-d80b7e31.system.js +4 -0
  593. package/dist/ionic/{p-62f15daf.system.entry.js → p-d8ffe61c.system.entry.js} +2 -2
  594. package/dist/ionic/{p-25850474.entry.js → p-da5bbd4f.entry.js} +1 -1
  595. package/dist/ionic/{p-7cc01684.js → p-dad515dc.js} +1 -1
  596. package/dist/ionic/{p-5c3991e3.system.entry.js → p-db7fcadb.system.entry.js} +1 -1
  597. package/dist/ionic/{p-5a055df4.entry.js → p-dd9168f3.entry.js} +1 -1
  598. package/dist/ionic/{p-1ea88de9.system.js → p-e0d52ee3.system.js} +2 -2
  599. package/dist/ionic/p-e3611c25.entry.js +4 -0
  600. package/dist/ionic/p-e4ca94bd.js +4 -0
  601. package/dist/ionic/p-e7b0b64d.system.js +4 -0
  602. package/dist/ionic/{p-7a3fa32c.entry.js → p-ebc5b98f.entry.js} +1 -1
  603. package/dist/ionic/p-ec34194e.system.entry.js +4 -0
  604. package/dist/ionic/p-ec613387.entry.js +4 -0
  605. package/dist/ionic/{p-85cb4733.entry.js → p-ed3463be.entry.js} +1 -1
  606. package/dist/ionic/p-f1d1524c.entry.js +4 -0
  607. package/dist/ionic/p-f687573e.system.js +4 -0
  608. package/dist/ionic/p-f7a1318d.system.entry.js +4 -0
  609. package/dist/ionic/{p-8e83b7f1.system.entry.js → p-f7af3144.system.entry.js} +2 -2
  610. package/dist/ionic/p-f8502e85.js +5 -0
  611. package/dist/ionic/{p-a71dc777.system.js → p-f85a4df5.system.js} +1 -1
  612. package/dist/ionic/{p-f3d6085c.entry.js → p-fa8ee4c3.entry.js} +1 -1
  613. package/dist/ionic/{p-1ce172db.entry.js → p-fb870c48.entry.js} +1 -1
  614. package/dist/ionic/{p-c38c5dfc.system.js → p-fe1fd531.system.js} +1 -1
  615. package/dist/ionic/p-fe35b5c0.entry.js +4 -0
  616. package/dist/types/components/datetime/datetime-interface.d.ts +10 -0
  617. package/dist/types/components/datetime/datetime.d.ts +10 -1
  618. package/dist/types/components/datetime/utils/format.d.ts +7 -13
  619. package/dist/types/components/datetime/utils/validate.d.ts +8 -0
  620. package/dist/types/components/item/item.d.ts +0 -32
  621. package/dist/types/components/menu/menu-interface.d.ts +1 -0
  622. package/dist/types/components/menu/menu.d.ts +2 -2
  623. package/dist/types/components/range/range.d.ts +29 -0
  624. package/dist/types/components/searchbar/searchbar.d.ts +38 -0
  625. package/dist/types/components/toggle/toggle.d.ts +1 -1
  626. package/dist/types/components.d.ts +40 -48
  627. package/dist/types/utils/forms/index.d.ts +0 -1
  628. package/dist/types/utils/hardware-back-button.d.ts +1 -1
  629. package/dist/types/utils/helpers.d.ts +0 -19
  630. package/dist/types/utils/test/playwright/generator.d.ts +3 -3
  631. package/hydrate/index.js +524 -428
  632. package/package.json +7 -2
  633. package/components/note.js +0 -48
  634. package/css/themes/dark.always.css.map +0 -1
  635. package/css/themes/dark.class.css.map +0 -1
  636. package/css/themes/dark.system.css.map +0 -1
  637. package/css/themes/high-contrast-dark.always.css.map +0 -1
  638. package/css/themes/high-contrast-dark.class.css.map +0 -1
  639. package/css/themes/high-contrast-dark.system.css.map +0 -1
  640. package/css/themes/high-contrast.always.css.map +0 -1
  641. package/css/themes/high-contrast.class.css.map +0 -1
  642. package/css/themes/high-contrast.system.css.map +0 -1
  643. package/dist/collection/components/item/test/legacy/disabled/item.e2e.js +0 -14
  644. package/dist/collection/utils/forms/form-controller.js +0 -61
  645. package/dist/collection/utils/test/aria.spec.js +0 -80
  646. package/dist/esm-es5/app-globals-cfb6787b.js +0 -4
  647. package/dist/esm-es5/data-691286f1.js +0 -4
  648. package/dist/esm-es5/hardware-back-button-3a14f99e.js +0 -4
  649. package/dist/esm-es5/helpers-ae74b3c9.js +0 -4
  650. package/dist/esm-es5/index-9b6d6df3.js +0 -5
  651. package/dist/esm-es5/input.utils-482fc893.js +0 -4
  652. package/dist/esm-es5/md.transition-b4170ef7.js +0 -4
  653. package/dist/esm-es5/overlays-4ba3b255.js +0 -4
  654. package/dist/ionic/p-060fdc03.entry.js +0 -4
  655. package/dist/ionic/p-069388dd.system.js +0 -4
  656. package/dist/ionic/p-06fccad7.entry.js +0 -4
  657. package/dist/ionic/p-0ca35c1d.system.entry.js +0 -4
  658. package/dist/ionic/p-134d4936.system.js +0 -4
  659. package/dist/ionic/p-19e79fe8.entry.js +0 -4
  660. package/dist/ionic/p-19f6ac6c.system.js +0 -4
  661. package/dist/ionic/p-22d2a891.js +0 -4
  662. package/dist/ionic/p-239262e4.system.entry.js +0 -4
  663. package/dist/ionic/p-300b2cf1.entry.js +0 -4
  664. package/dist/ionic/p-32bd7ed7.entry.js +0 -4
  665. package/dist/ionic/p-41970e75.entry.js +0 -4
  666. package/dist/ionic/p-43322b14.js +0 -4
  667. package/dist/ionic/p-4523be60.entry.js +0 -4
  668. package/dist/ionic/p-4a8f173c.system.js +0 -4
  669. package/dist/ionic/p-4ad02639.entry.js +0 -4
  670. package/dist/ionic/p-5289aade.js +0 -4
  671. package/dist/ionic/p-5afb6e48.entry.js +0 -4
  672. package/dist/ionic/p-60efe117.js +0 -5
  673. package/dist/ionic/p-6657681b.system.entry.js +0 -4
  674. package/dist/ionic/p-66e6860f.system.js +0 -4
  675. package/dist/ionic/p-6e1fa025.js +0 -4
  676. package/dist/ionic/p-6e5eeb35.entry.js +0 -4
  677. package/dist/ionic/p-6f6d56f1.entry.js +0 -4
  678. package/dist/ionic/p-70218e28.system.entry.js +0 -4
  679. package/dist/ionic/p-72bc2484.system.entry.js +0 -4
  680. package/dist/ionic/p-760dbd5e.js +0 -4
  681. package/dist/ionic/p-82d459c1.js +0 -4
  682. package/dist/ionic/p-842777af.js +0 -4
  683. package/dist/ionic/p-8ab308e9.js +0 -4
  684. package/dist/ionic/p-8ba5912c.entry.js +0 -4
  685. package/dist/ionic/p-8d602214.system.js +0 -5
  686. package/dist/ionic/p-8e3ee444.system.entry.js +0 -4
  687. package/dist/ionic/p-9382ebab.entry.js +0 -4
  688. package/dist/ionic/p-96391c0e.entry.js +0 -4
  689. package/dist/ionic/p-9d6f351e.js +0 -4
  690. package/dist/ionic/p-9e3b3f15.system.js +0 -4
  691. package/dist/ionic/p-a375c9f6.system.entry.js +0 -4
  692. package/dist/ionic/p-a58ec401.js +0 -4
  693. package/dist/ionic/p-b1a9e85a.system.entry.js +0 -4
  694. package/dist/ionic/p-baa409f1.system.entry.js +0 -4
  695. package/dist/ionic/p-bcb58446.entry.js +0 -4
  696. package/dist/ionic/p-c2336a9e.system.entry.js +0 -4
  697. package/dist/ionic/p-cbc3840e.entry.js +0 -4
  698. package/dist/ionic/p-cf852615.system.entry.js +0 -4
  699. package/dist/ionic/p-e15eda82.system.js +0 -4
  700. package/dist/ionic/p-e470466e.entry.js +0 -4
  701. package/dist/ionic/p-ef99a759.entry.js +0 -4
  702. package/dist/ionic/p-fc5ddbf6.entry.js +0 -4
  703. package/dist/types/utils/forms/form-controller.d.ts +0 -15
  704. package/css/{themes → palettes}/dark.always.css +0 -0
  705. package/css/{themes → palettes}/dark.css +0 -0
  706. package/css/{themes → palettes}/dark.css.map +0 -0
  707. package/css/{themes → palettes}/dark.system.css +0 -0
  708. package/css/{themes → palettes}/high-contrast-dark.always.css +1 -1
  709. package/css/{themes → palettes}/high-contrast-dark.css +0 -0
  710. package/css/{themes → palettes}/high-contrast-dark.css.map +0 -0
  711. package/css/{themes → palettes}/high-contrast-dark.system.css +1 -1
  712. package/css/{themes → palettes}/high-contrast.always.css +25 -25
  713. package/css/{themes → palettes}/high-contrast.css +0 -0
  714. package/css/{themes → palettes}/high-contrast.css.map +0 -0
  715. package/css/{themes → palettes}/high-contrast.system.css +25 -25
@@ -4,10 +4,10 @@
4
4
  'use strict';
5
5
 
6
6
  const index = require('./index-c8d52405.js');
7
- const helpers = require('./helpers-b71ca811.js');
8
- const hardwareBackButton = require('./hardware-back-button-4cb049f1.js');
9
- const ionicGlobal = require('./ionic-global-59aa7eb7.js');
10
- const frameworkDelegate = require('./framework-delegate-53817ef1.js');
7
+ const helpers = require('./helpers-71097d9c.js');
8
+ const hardwareBackButton = require('./hardware-back-button-1c67a5a2.js');
9
+ const ionicGlobal = require('./ionic-global-5762eca9.js');
10
+ const frameworkDelegate = require('./framework-delegate-df3a2b04.js');
11
11
  const gestureController = require('./gesture-controller-9436f482.js');
12
12
  const index$1 = require('./index-5915f9b3.js');
13
13
 
@@ -413,7 +413,7 @@ const connectListeners = (doc) => {
413
413
  * this behavior will be handled via the ionBackButton
414
414
  * event.
415
415
  */
416
- if (!hardwareBackButton.shoudUseCloseWatcher()) {
416
+ if (!hardwareBackButton.shouldUseCloseWatcher()) {
417
417
  doc.addEventListener('keydown', (ev) => {
418
418
  if (ev.key === 'Escape') {
419
419
  const lastOverlay = getPresentedOverlay(doc);
@@ -504,15 +504,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
504
504
  }
505
505
  setRootAriaHidden(true);
506
506
  document.body.classList.add(gestureController.BACKDROP_NO_SCROLL);
507
- /**
508
- * Hide all other overlays from screen readers so only this one
509
- * can be read. Note that presenting an overlay always makes
510
- * it the topmost one.
511
- */
512
- if (index.doc !== undefined) {
513
- const presentedOverlays = getPresentedOverlays(index.doc);
514
- presentedOverlays.forEach((o) => o.setAttribute('aria-hidden', 'true'));
515
- }
507
+ hideOverlaysFromScreenReaders(overlay.el);
516
508
  overlay.presented = true;
517
509
  overlay.willPresent.emit();
518
510
  (_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
@@ -605,7 +597,7 @@ const restoreElementFocus = async (overlayEl) => {
605
597
  }
606
598
  };
607
599
  const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnimation, opts) => {
608
- var _a, _b, _c;
600
+ var _a, _b;
609
601
  if (!overlay.presented) {
610
602
  return false;
611
603
  }
@@ -658,13 +650,7 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
658
650
  console.error(err);
659
651
  }
660
652
  overlay.el.remove();
661
- /**
662
- * If there are other overlays presented, unhide the new
663
- * topmost one from screen readers.
664
- */
665
- if (index.doc !== undefined) {
666
- (_c = getPresentedOverlay(index.doc)) === null || _c === void 0 ? void 0 : _c.removeAttribute('aria-hidden');
667
- }
653
+ revealOverlaysToScreenReaders();
668
654
  return true;
669
655
  };
670
656
  const getAppRoot = (doc) => {
@@ -860,6 +846,62 @@ const createTriggerController = () => {
860
846
  removeClickListener,
861
847
  };
862
848
  };
849
+ /**
850
+ * Ensure that underlying overlays have aria-hidden if necessary so that screen readers
851
+ * cannot move focus to these elements. Note that we cannot rely on focus/focusin/focusout
852
+ * events here because those events do not fire when the screen readers moves to a non-focusable
853
+ * element such as text.
854
+ * Without this logic screen readers would be able to move focus outside of the top focus-trapped overlay.
855
+ *
856
+ * @param newTopMostOverlay - The overlay that is being presented. Since the overlay has not been
857
+ * fully presented yet at the time this function is called it will not be included in the getPresentedOverlays result.
858
+ */
859
+ const hideOverlaysFromScreenReaders = (newTopMostOverlay) => {
860
+ var _a;
861
+ if (index.doc === undefined)
862
+ return;
863
+ const overlays = getPresentedOverlays(index.doc);
864
+ for (let i = overlays.length - 1; i >= 0; i--) {
865
+ const presentedOverlay = overlays[i];
866
+ const nextPresentedOverlay = (_a = overlays[i + 1]) !== null && _a !== void 0 ? _a : newTopMostOverlay;
867
+ /**
868
+ * If next overlay has aria-hidden then all remaining overlays will have it too.
869
+ * Or, if the next overlay is a Toast that does not have aria-hidden then current overlay
870
+ * should not have aria-hidden either so focus can remain in the current overlay.
871
+ */
872
+ if (nextPresentedOverlay.hasAttribute('aria-hidden') || nextPresentedOverlay.tagName !== 'ION-TOAST') {
873
+ presentedOverlay.setAttribute('aria-hidden', 'true');
874
+ }
875
+ }
876
+ };
877
+ /**
878
+ * When dismissing an overlay we need to reveal the new top-most overlay to screen readers.
879
+ * If the top-most overlay is a Toast we potentially need to reveal more overlays since
880
+ * focus is never automatically moved to the Toast.
881
+ */
882
+ const revealOverlaysToScreenReaders = () => {
883
+ if (index.doc === undefined)
884
+ return;
885
+ const overlays = getPresentedOverlays(index.doc);
886
+ for (let i = overlays.length - 1; i >= 0; i--) {
887
+ const currentOverlay = overlays[i];
888
+ /**
889
+ * If the current we are looking at is a Toast then we can remove aria-hidden.
890
+ * However, we potentially need to keep looking at the overlay stack because there
891
+ * could be more Toasts underneath. Additionally, we need to unhide the closest non-Toast
892
+ * overlay too so focus can move there since focus is never automatically moved to the Toast.
893
+ */
894
+ currentOverlay.removeAttribute('aria-hidden');
895
+ /**
896
+ * If we found a non-Toast element then we can just remove aria-hidden and stop searching entirely
897
+ * since this overlay should always receive focus. As a result, all underlying overlays should still
898
+ * be hidden from screen readers.
899
+ */
900
+ if (currentOverlay.tagName !== 'ION-TOAST') {
901
+ break;
902
+ }
903
+ }
904
+ };
863
905
 
864
906
  exports.BACKDROP = BACKDROP;
865
907
  exports.GESTURE = GESTURE;
@@ -3,9 +3,9 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const index = require('./index-ea266398.js');
7
- const index$1 = require('./index-347883f6.js');
8
- const helpers = require('./helpers-b71ca811.js');
6
+ const index = require('./index-2d21d526.js');
7
+ const index$1 = require('./index-7479ea5a.js');
8
+ const helpers = require('./helpers-71097d9c.js');
9
9
  require('./index-5915f9b3.js');
10
10
 
11
11
  const startStatusTap = () => {
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const helpers = require('./helpers-b71ca811.js');
6
+ const helpers = require('./helpers-71097d9c.js');
7
7
  const dir = require('./dir-94c21456.js');
8
8
  const index = require('./index-ee07ed59.js');
9
9
  require('./gesture-controller-9436f482.js');
@@ -95,7 +95,7 @@
95
95
  ],
96
96
  "compiler": {
97
97
  "name": "@stencil/core",
98
- "version": "4.12.4",
98
+ "version": "4.12.6",
99
99
  "typescriptVersion": "5.3.3"
100
100
  },
101
101
  "collections": [
@@ -191,12 +191,12 @@ export class ActionSheet {
191
191
  const cancelButton = allButtons.find((b) => b.role === 'cancel');
192
192
  const buttons = allButtons.filter((b) => b.role !== 'cancel');
193
193
  const headerID = `action-sheet-${overlayIndex}-header`;
194
- return (h(Host, Object.assign({ key: 'cd141d12d7d86d3402fd220c4afb61cdbf064c04', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
194
+ return (h(Host, Object.assign({ key: 'b81b5301c2544d6474561047fa8f3cf1b27882fb', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
195
195
  zIndex: `${20000 + this.overlayIndex}`,
196
- }, class: Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), h("ion-backdrop", { key: 'b6a051e2cf5e101edbf59c8a40a04d8f7107fb3c', tappable: this.backdropDismiss }), h("div", { key: '5bfa2b37a417aaff3776f06d92a8544dfcbf714f', tabindex: "0" }), h("div", { key: '77d5a217803fd7be8f8dbedcd0ef5e59f0fd9800', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, h("div", { key: '3901d56215f05cdab074e2ec321391281a165097', class: "action-sheet-container" }, h("div", { key: '275f5c7981b2ee44fb632b3d137c7209cbfcf45c', class: "action-sheet-group", ref: (el) => (this.groupEl = el) }, header !== undefined && (h("div", { id: headerID, class: {
196
+ }, class: Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), h("ion-backdrop", { key: 'b98bfa2ed6b6c8f5648f5fe52968c7f79fd3557b', tappable: this.backdropDismiss }), h("div", { key: '15354a41ab7eb1014bb65638dad9daa7c8bf8167', tabindex: "0" }), h("div", { key: 'dff2e93f5f44b5f6488cf2a7da55563ce9a9cfdb', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, h("div", { key: '25981afc3a174fb44a6d97b4118b3a39792211c8', class: "action-sheet-container" }, h("div", { key: '5a9d5174b3fe7b59e08f8022df8ead909650da53', class: "action-sheet-group", ref: (el) => (this.groupEl = el) }, header !== undefined && (h("div", { id: headerID, class: {
197
197
  'action-sheet-title': true,
198
198
  'action-sheet-has-sub-title': this.subHeader !== undefined,
199
- } }, header, this.subHeader && h("div", { class: "action-sheet-sub-title" }, this.subHeader))), buttons.map((b) => (h("button", Object.assign({}, b.htmlAttributes, { type: "button", id: b.id, class: buttonClass(b), onClick: () => this.buttonClick(b), disabled: b.disabled }), h("span", { class: "action-sheet-button-inner" }, b.icon && h("ion-icon", { icon: b.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" }), b.text), mode === 'md' && h("ion-ripple-effect", null))))), cancelButton && (h("div", { class: "action-sheet-group action-sheet-group-cancel" }, h("button", Object.assign({}, cancelButton.htmlAttributes, { type: "button", class: buttonClass(cancelButton), onClick: () => this.buttonClick(cancelButton) }), h("span", { class: "action-sheet-button-inner" }, cancelButton.icon && (h("ion-icon", { icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && h("ion-ripple-effect", null)))))), h("div", { key: '5be2fba3c88800b24bb3d69422285724eab15311', tabindex: "0" })));
199
+ } }, header, this.subHeader && h("div", { class: "action-sheet-sub-title" }, this.subHeader))), buttons.map((b) => (h("button", Object.assign({}, b.htmlAttributes, { type: "button", id: b.id, class: buttonClass(b), onClick: () => this.buttonClick(b), disabled: b.disabled }), h("span", { class: "action-sheet-button-inner" }, b.icon && h("ion-icon", { icon: b.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" }), b.text), mode === 'md' && h("ion-ripple-effect", null))))), cancelButton && (h("div", { class: "action-sheet-group action-sheet-group-cancel" }, h("button", Object.assign({}, cancelButton.htmlAttributes, { type: "button", class: buttonClass(cancelButton), onClick: () => this.buttonClick(cancelButton) }), h("span", { class: "action-sheet-button-inner" }, cancelButton.icon && (h("ion-icon", { icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && h("ion-ripple-effect", null)))))), h("div", { key: 'b1891248a8269c9077f48cd4af210072daf7c119', tabindex: "0" })));
200
200
  }
201
201
  static get is() { return "ion-action-sheet"; }
202
202
  static get encapsulation() { return "scoped"; }
@@ -26,7 +26,7 @@ const testAriaButton = async (page, buttonID, expectedAriaLabelledBy, expectedAr
26
26
  await expect(actionSheetButton).toHaveAttribute('aria-labelledby', expectedAriaLabelledBy);
27
27
  await expect(actionSheetButton).toHaveAttribute('aria-label', expectedAriaLabel);
28
28
  };
29
- configs({ directions: ['ltr'], themes: ['dark', 'light'] }).forEach(({ config, title }) => {
29
+ configs({ directions: ['ltr'], palettes: ['dark', 'light'] }).forEach(({ config, title }) => {
30
30
  test.describe(title('action-sheet: Axe testing'), () => {
31
31
  test('should not have accessibility violations when header is defined', async ({ page }) => {
32
32
  await page.setContent(`
@@ -391,9 +391,9 @@ export class Alert {
391
391
  * If neither is defined, don't set aria-labelledby.
392
392
  */
393
393
  const ariaLabelledBy = header ? hdrId : subHeader ? subHdrId : null;
394
- return (h(Host, Object.assign({ key: '4b7f7880dc5f39aa9b61981af0a821ac0350af7f', role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "-1" }, htmlAttributes, { style: {
394
+ return (h(Host, Object.assign({ key: 'fe991967332781c792690760d63857f28e20e928', role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "-1" }, htmlAttributes, { style: {
395
395
  zIndex: `${20000 + overlayIndex}`,
396
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), h("ion-backdrop", { key: '961a2684013ac61d59882914fd8d759ddb542fe7', tappable: this.backdropDismiss }), h("div", { key: '2ec08c3719b3cd8a4cae09d2c6ac778ffad5f940', tabindex: "0" }), h("div", { key: 'ee543683d20693c9a9497aca4d41f032aa580c9c', class: "alert-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, h("div", { key: '55015102b67d080249a8859fc8788f3a82d5ead9', class: "alert-head" }, header && (h("h2", { id: hdrId, class: "alert-title" }, header)), subHeader && (h("h2", { id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), h("div", { key: 'df7bcfb0cb41965f169de05edd631a050d5ce648', tabindex: "0" })));
396
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), h("ion-backdrop", { key: 'd2cf69281264c779cd583acc6466b67bbeffff77', tappable: this.backdropDismiss }), h("div", { key: 'cf1613444b085bf41326703a8ee39a0e7da4fbbd', tabindex: "0" }), h("div", { key: 'da4106c5da97987844b9404d968e895d3399d09b', class: "alert-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, h("div", { key: '0880f30325c25f08a27f5feaf44c497c64318819', class: "alert-head" }, header && (h("h2", { id: hdrId, class: "alert-title" }, header)), subHeader && (h("h2", { id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), h("div", { key: '20c5e7f555e64750e5043aa62a511f2b56cc9e42', tabindex: "0" })));
397
397
  }
398
398
  static get is() { return "ion-alert"; }
399
399
  static get encapsulation() { return "scoped"; }
@@ -19,7 +19,7 @@ const testAria = async (page, buttonID, expectedAriaLabelledBy, expectedAriaDesc
19
19
  expect(ariaLabelledBy).toBe(expectedAriaLabelledBy);
20
20
  expect(ariaDescribedBy).toBe(expectedAriaDescribedBy);
21
21
  };
22
- configs({ directions: ['ltr'], themes: ['dark', 'light'] }).forEach(({ title, config }) => {
22
+ configs({ directions: ['ltr'], palettes: ['dark', 'light'] }).forEach(({ title, config }) => {
23
23
  test.describe(title('alert: Axe testing'), () => {
24
24
  test('should not have accessibility violations when header and message are defined', async ({ page }) => {
25
25
  await page.setContent(`
@@ -235,6 +235,10 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
235
235
  const ionAlertDidPresent = await page.spyOnEvent('ionAlertDidPresent');
236
236
  await alert.evaluate((el) => el.present());
237
237
  await ionAlertDidPresent.next();
238
+ /**
239
+ * The borders on the text fields may not be visible in the screenshot
240
+ * when using Safari, this is due to a WebKit rendering quirk.
241
+ */
238
242
  await expect(page).toHaveScreenshot(screenshot(`alert-text-fields-scale`));
239
243
  });
240
244
  });
@@ -77,7 +77,7 @@ configs().forEach(({ config, screenshot, title }) => {
77
77
  });
78
78
  });
79
79
  });
80
- configs({ themes: ['light', 'dark'] }).forEach(({ config, screenshot, title }) => {
80
+ configs({ palettes: ['light', 'dark'] }).forEach(({ config, screenshot, title }) => {
81
81
  test.describe(title('should not have visual regressions'), () => {
82
82
  test('more than two buttons', async ({ page }) => {
83
83
  await page.setContent(`
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { Build, Host, h } from "@stencil/core";
5
- import { shoudUseCloseWatcher } from "../../utils/hardware-back-button";
5
+ import { shouldUseCloseWatcher } from "../../utils/hardware-back-button";
6
6
  import { printIonWarning } from "../../utils/logging/index";
7
7
  import { isPlatform } from "../../utils/platform";
8
8
  import { config } from "../../global/config";
@@ -27,7 +27,7 @@ export class App {
27
27
  import('../../utils/input-shims/input-shims').then((module) => module.startInputShims(config, platform));
28
28
  }
29
29
  const hardwareBackButtonModule = await import('../../utils/hardware-back-button');
30
- const supportsHardwareBackButtonEvents = isHybrid || shoudUseCloseWatcher();
30
+ const supportsHardwareBackButtonEvents = isHybrid || shouldUseCloseWatcher();
31
31
  if (config.getBoolean('hardwareBackButton', supportsHardwareBackButtonEvents)) {
32
32
  hardwareBackButtonModule.startHardwareBackButton();
33
33
  }
@@ -36,7 +36,7 @@ export class App {
36
36
  * If an app sets hardwareBackButton: false and experimentalCloseWatcher: true
37
37
  * then the close watcher will not be used.
38
38
  */
39
- if (shoudUseCloseWatcher()) {
39
+ if (shouldUseCloseWatcher()) {
40
40
  printIonWarning('experimentalCloseWatcher was set to `true`, but hardwareBackButton was set to `false`. Both config options must be `true` for the Close Watcher API to be used.');
41
41
  }
42
42
  hardwareBackButtonModule.blockHardwareBackButton();
@@ -65,7 +65,7 @@ export class App {
65
65
  }
66
66
  render() {
67
67
  const mode = getIonMode(this);
68
- return (h(Host, { key: '3535eb5c0dab78a78011e552524a98599b2b650f', class: {
68
+ return (h(Host, { key: '02e6722398cfde7275ab9abdcce0f53a98f6b10f', class: {
69
69
  [mode]: true,
70
70
  'ion-page': true,
71
71
  'force-statusbar-padding': config.getBoolean('_forceStatusbarPadding'),
@@ -5,7 +5,7 @@ import { Host, h } from "@stencil/core";
5
5
  import { getIonMode } from "../../global/ionic-global";
6
6
  export class Avatar {
7
7
  render() {
8
- return (h(Host, { key: '95d7ca334f9b66e0983cbc1b782ded0b9a54eaa9', class: getIonMode(this) }, h("slot", { key: '011d20189acdb03bee328aa4fa0511826a0b3a36' })));
8
+ return (h(Host, { key: 'b40a506a0beeaea226fd92e420655a3d840fafa6', class: getIonMode(this) }, h("slot", { key: '185c90b5d7f790ca8e39907c4da6fa7aa532a837' })));
9
9
  }
10
10
  static get is() { return "ion-avatar"; }
11
11
  static get encapsulation() { return "shadow"; }
@@ -72,7 +72,7 @@ export class BackButton {
72
72
  const showBackButton = defaultHref !== undefined;
73
73
  const mode = getIonMode(this);
74
74
  const ariaLabel = inheritedAttributes['aria-label'] || backButtonText || 'back';
75
- return (h(Host, { key: '175fff2d7a41d2deaaf7b781c5ba2aac9311ebf4', onClick: this.onClick, class: createColorClasses(color, {
75
+ return (h(Host, { key: 'e233c0ccdeefd85b4e7170ca28beb2d528706db5', onClick: this.onClick, class: createColorClasses(color, {
76
76
  [mode]: true,
77
77
  button: true, // ion-buttons target .button
78
78
  'back-button-disabled': disabled,
@@ -82,7 +82,7 @@ export class BackButton {
82
82
  'ion-activatable': true,
83
83
  'ion-focusable': true,
84
84
  'show-back-button': showBackButton,
85
- }) }, h("button", { key: '59fe30c167ea82e2431e45d46060a01bcb2aea77', type: type, disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }, h("span", { key: '3d704fb7ef001446361e7a09d43763a771b242b9', class: "button-inner" }, backButtonIcon && (h("ion-icon", { part: "icon", icon: backButtonIcon, "aria-hidden": "true", lazy: false, "flip-rtl": icon === undefined })), backButtonText && (h("span", { part: "text", "aria-hidden": "true", class: "button-text" }, backButtonText))), mode === 'md' && h("ion-ripple-effect", { type: this.rippleType }))));
85
+ }) }, h("button", { key: 'a48e4ca9c1afefacc60766f910ea8349cdd3cce6', type: type, disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }, h("span", { key: '60bcc5fa226861b03b83a2b6fbad51284c295d4b', class: "button-inner" }, backButtonIcon && (h("ion-icon", { part: "icon", icon: backButtonIcon, "aria-hidden": "true", lazy: false, "flip-rtl": icon === undefined })), backButtonText && (h("span", { part: "text", "aria-hidden": "true", class: "button-text" }, backButtonText))), mode === 'md' && h("ion-ripple-effect", { type: this.rippleType }))));
86
86
  }
87
87
  static get is() { return "ion-back-button"; }
88
88
  static get encapsulation() { return "shadow"; }
@@ -7,7 +7,7 @@ import { configs, test } from "../../../../utils/test/playwright/index";
7
7
  /**
8
8
  * Only ios mode uses ion-color() for the back button
9
9
  */
10
- configs({ directions: ['ltr'], modes: ['ios'], themes: ['light', 'dark'] }).forEach(({ title, config }) => {
10
+ configs({ directions: ['ltr'], modes: ['ios'], palettes: ['light', 'dark'] }).forEach(({ title, config }) => {
11
11
  test.describe(title('back-button: a11y for ion-color()'), () => {
12
12
  test('should not have accessibility violations', async ({ page }) => {
13
13
  await page.setContent(`
@@ -23,7 +23,7 @@ export class Backdrop {
23
23
  }
24
24
  render() {
25
25
  const mode = getIonMode(this);
26
- return (h(Host, { key: 'e512499f1aa0cdb70cdabf300cf69f1062dc7c48', tabindex: "-1", "aria-hidden": "true", class: {
26
+ return (h(Host, { key: 'edc9b82940adbb5fa740107bd2d12d02955606fa', tabindex: "-1", "aria-hidden": "true", class: {
27
27
  [mode]: true,
28
28
  'backdrop-hide': !this.visible,
29
29
  'backdrop-no-tappable': !this.tappable,
@@ -13,9 +13,9 @@ export class Badge {
13
13
  }
14
14
  render() {
15
15
  const mode = getIonMode(this);
16
- return (h(Host, { key: '043eea016721e53f0af1cbf1371bc08694281204', class: createColorClasses(this.color, {
16
+ return (h(Host, { key: 'cd1425d016a570b34dd42044fe79b42e6c984e86', class: createColorClasses(this.color, {
17
17
  [mode]: true,
18
- }) }, h("slot", { key: 'bd510450d6b60f2794491244e68a83049a5ef6dd' })));
18
+ }) }, h("slot", { key: '29d2258c9e242f5fc1d85e2df5288edcfb038c8b' })));
19
19
  }
20
20
  static get is() { return "ion-badge"; }
21
21
  static get encapsulation() { return "shadow"; }
@@ -21,7 +21,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
21
21
  });
22
22
  });
23
23
  });
24
- configs({ directions: ['ltr'], themes: ['light', 'dark'] }).forEach(({ config, title }) => {
24
+ configs({ directions: ['ltr'], palettes: ['light', 'dark'] }).forEach(({ config, title }) => {
25
25
  test.describe(title('badge: a11y'), () => {
26
26
  test('should not have accessibility violations', async ({ page }) => {
27
27
  /**
@@ -64,7 +64,7 @@ export class Breadcrumb {
64
64
  // to show the separator as long as it isn't also the last breadcrumb
65
65
  // otherwise if not collapsed use the value in separator
66
66
  const showSeparator = last ? false : collapsed ? (showCollapsedIndicator && !last ? true : false) : separator;
67
- return (h(Host, { key: '632efa1bc6dc446e81efe8cd7763cb9b16466563', onClick: (ev) => openURL(href, ev, routerDirection, routerAnimation), "aria-disabled": disabled ? 'true' : null, class: createColorClasses(color, {
67
+ return (h(Host, { key: '7f6db640a81d6c44e22f5d7980b7e3c111c695f0', onClick: (ev) => openURL(href, ev, routerDirection, routerAnimation), "aria-disabled": disabled ? 'true' : null, class: createColorClasses(color, {
68
68
  [mode]: true,
69
69
  'breadcrumb-active': active,
70
70
  'breadcrumb-collapsed': collapsed,
@@ -74,7 +74,7 @@ export class Breadcrumb {
74
74
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
75
75
  'ion-activatable': clickable,
76
76
  'ion-focusable': clickable,
77
- }) }, h(TagType, Object.assign({ key: '6f232cfc590b2e2a23a2e1ee40d6658e7d8b4953' }, attrs, { class: "breadcrumb-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }, inheritedAttributes), h("slot", { key: 'fec56c6f92c147fbd6273d3efb82b1a6c944699c', name: "start" }), h("slot", { key: '80aa33cdcaab810f544803c6105b489172542846' }), h("slot", { key: '6e1d3f332ae35f5061204bece9756a9bac4aaf4a', name: "end" })), showCollapsedIndicator && (h("button", { part: "collapsed-indicator", "aria-label": "Show more breadcrumbs", onClick: () => this.collapsedIndicatorClick(), ref: (collapsedEl) => (this.collapsedRef = collapsedEl), class: {
77
+ }) }, h(TagType, Object.assign({ key: '897cbb8e7632ce86de24e71916392a6fecf40d6b' }, attrs, { class: "breadcrumb-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }, inheritedAttributes), h("slot", { key: '8b420722f1cacc771903abb4bf86d7375cb60698', name: "start" }), h("slot", { key: '6945b283fbac7ca799de48938379c6f7b1926735' }), h("slot", { key: 'f27519c372bf6ab37d766ae945e3600baa3d2831', name: "end" })), showCollapsedIndicator && (h("button", { part: "collapsed-indicator", "aria-label": "Show more breadcrumbs", onClick: () => this.collapsedIndicatorClick(), ref: (collapsedEl) => (this.collapsedRef = collapsedEl), class: {
78
78
  'breadcrumbs-collapsed-indicator': true,
79
79
  } }, h("ion-icon", { "aria-hidden": "true", icon: ellipsisHorizontal, lazy: false }))), showSeparator && (
80
80
  /**
@@ -105,12 +105,12 @@ export class Breadcrumbs {
105
105
  render() {
106
106
  const { color, collapsed } = this;
107
107
  const mode = getIonMode(this);
108
- return (h(Host, { key: '35f8a2bffdd85ba6dc31834ebef69602a5a7cca1', class: createColorClasses(color, {
108
+ return (h(Host, { key: '9cef93113d7c0d0bcab67d7790d8df915236dd59', class: createColorClasses(color, {
109
109
  [mode]: true,
110
110
  'in-toolbar': hostContext('ion-toolbar', this.el),
111
111
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
112
112
  'breadcrumbs-collapsed': collapsed,
113
- }) }, h("slot", { key: 'ada062b5d17380d311861d1cf1a22dd62bac5497', onSlotchange: this.slotChanged })));
113
+ }) }, h("slot", { key: '6e6b0e0a3297de16bf08ec107bbce4bb5f00b28c', onSlotchange: this.slotChanged })));
114
114
  }
115
115
  static get is() { return "ion-breadcrumbs"; }
116
116
  static get encapsulation() { return "shadow"; }
@@ -199,7 +199,7 @@ export class Button {
199
199
  {
200
200
  type !== 'button' && this.renderHiddenButton();
201
201
  }
202
- return (h(Host, { key: '8533314504b286ec10e26722f93376d86a7ca1c9', onClick: this.handleClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses(color, {
202
+ return (h(Host, { key: 'cb5af107c877f0c1926045acfd4f6922f7dbcb8d', onClick: this.handleClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses(color, {
203
203
  [mode]: true,
204
204
  [buttonType]: true,
205
205
  [`${buttonType}-${expand}`]: expand !== undefined,
@@ -214,7 +214,7 @@ export class Button {
214
214
  'button-disabled': disabled,
215
215
  'ion-activatable': true,
216
216
  'ion-focusable': true,
217
- }) }, h(TagType, Object.assign({ key: '79bf020fdac0c2ceb2b05547b3e5a9a11e60abb4' }, attrs, { class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }, inheritedAttributes), h("span", { key: '109481ba86102647023b746b054b2718d3c9d92a', class: "button-inner" }, h("slot", { key: 'f824ddd9f988b9bd33136555b16aa790d9291b49', name: "icon-only" }), h("slot", { key: 'd614f4e430792c5f93be4b3a8c57a826d74b9cfd', name: "start" }), h("slot", { key: '95d00c8a980c31cc7f84732f51a17a0cd285a7cb' }), h("slot", { key: 'a228ff52cbe04dc9d2e22bb66611ecc96d130e6f', name: "end" })), mode === 'md' && h("ion-ripple-effect", { type: this.rippleType }))));
217
+ }) }, h(TagType, Object.assign({ key: 'bc4c5e6a17fa90e172e56bd481ba24c69419dd1a' }, attrs, { class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }, inheritedAttributes), h("span", { key: 'f1eac679bcdf2b40177f920025a49705f726bf0c', class: "button-inner" }, h("slot", { key: '19aa897289923c8e7d16a354f9acac312f0641ea', name: "icon-only" }), h("slot", { key: '0a321ca359f631a2c8708566b3f1b936fe9a4d00', name: "start" }), h("slot", { key: '9ec1b7197ec1b4d858338f45433f6bfa46b81a3d' }), h("slot", { key: 'e632fd3b918ec94e119a5e766371886072292d75', name: "end" })), mode === 'md' && h("ion-ripple-effect", { type: this.rippleType }))));
218
218
  }
219
219
  static get is() { return "ion-button"; }
220
220
  static get encapsulation() { return "shadow"; }
@@ -4,7 +4,7 @@
4
4
  import AxeBuilder from "@axe-core/playwright";
5
5
  import { expect } from "@playwright/test";
6
6
  import { configs, test } from "../../../../utils/test/playwright/index";
7
- configs({ directions: ['ltr'], themes: ['light', 'dark'] }).forEach(({ title, config }) => {
7
+ configs({ directions: ['ltr'], palettes: ['light', 'dark'] }).forEach(({ title, config }) => {
8
8
  test.describe(title('button: a11y for ion-color()'), () => {
9
9
  test('should not have accessibility violations', async ({ page }) => {
10
10
  await page.setContent(`
@@ -39,7 +39,7 @@ configs({ directions: ['ltr'], themes: ['light', 'dark'] }).forEach(({ title, co
39
39
  /**
40
40
  * Only ios mode uses ion-color() for the activated button state
41
41
  */
42
- configs({ directions: ['ltr'], modes: ['ios'], themes: ['light', 'dark'] }).forEach(({ title, config }) => {
42
+ configs({ directions: ['ltr'], modes: ['ios'], palettes: ['light', 'dark'] }).forEach(({ title, config }) => {
43
43
  test.describe(title('button: ios contrast'), () => {
44
44
  test('activated state should not have accessibility violations', async ({ page }) => {
45
45
  await page.setContent(`
@@ -9,10 +9,10 @@ export class Buttons {
9
9
  }
10
10
  render() {
11
11
  const mode = getIonMode(this);
12
- return (h(Host, { key: '52c0c5535f5688a481746fe8fd92b6c02941526f', class: {
12
+ return (h(Host, { key: '3b78d2f2ebdc2a1720edb570270dd0228eef6ae5', class: {
13
13
  [mode]: true,
14
14
  ['buttons-collapse']: this.collapse,
15
- } }));
15
+ } }, h("slot", { key: 'a48e728d5d5ecb29965c3a2c9ffa9516b5da5309' })));
16
16
  }
17
17
  static get is() { return "ion-buttons"; }
18
18
  static get encapsulation() { return "scoped"; }
@@ -49,7 +49,7 @@ export class Card {
49
49
  }
50
50
  render() {
51
51
  const mode = getIonMode(this);
52
- return (h(Host, { key: '9e35c114ce466623024b94dd6797118ad027417d', class: createColorClasses(this.color, {
52
+ return (h(Host, { key: '20989b44d99554e110bd2b41dca7f989f038dc5b', class: createColorClasses(this.color, {
53
53
  [mode]: true,
54
54
  'card-disabled': this.disabled,
55
55
  'ion-activatable': this.isClickable(),
@@ -9,7 +9,7 @@ import { getIonMode } from "../../global/ionic-global";
9
9
  export class CardContent {
10
10
  render() {
11
11
  const mode = getIonMode(this);
12
- return (h(Host, { key: 'd4da147bb0b0b14684b54d37d04ba5a8f7a7d71d', class: {
12
+ return (h(Host, { key: 'c2146c75bb2e20dd975b144dd7a99c122d420aab', class: {
13
13
  [mode]: true,
14
14
  // Used internally for styling
15
15
  [`card-content-${mode}`]: true,
@@ -14,11 +14,11 @@ export class CardHeader {
14
14
  }
15
15
  render() {
16
16
  const mode = getIonMode(this);
17
- return (h(Host, { key: '070294064c4b17c941961c9cccf1ae6592b385b6', class: createColorClasses(this.color, {
17
+ return (h(Host, { key: '05a406ae897dd0d1564bb9d0e213c5c2c21445fa', class: createColorClasses(this.color, {
18
18
  'card-header-translucent': this.translucent,
19
19
  'ion-inherit-color': true,
20
20
  [mode]: true,
21
- }) }, h("slot", { key: 'adac918d5e93bf69b07c5bda329ebf8c719bd623' })));
21
+ }) }, h("slot", { key: '505a74bfb528182bad69d519b848ac2060f4552f' })));
22
22
  }
23
23
  static get is() { return "ion-card-header"; }
24
24
  static get encapsulation() { return "shadow"; }
@@ -13,10 +13,10 @@ export class CardSubtitle {
13
13
  }
14
14
  render() {
15
15
  const mode = getIonMode(this);
16
- return (h(Host, { key: 'ae115cf349cd13f88d20b1fbab6b8a813a87b925', role: "heading", "aria-level": "3", class: createColorClasses(this.color, {
16
+ return (h(Host, { key: '4494e715bdff695b17df995bca3c9924cc9dec6c', role: "heading", "aria-level": "3", class: createColorClasses(this.color, {
17
17
  'ion-inherit-color': true,
18
18
  [mode]: true,
19
- }) }, h("slot", { key: 'f5dd779b34b5c5c541cbbe56cc8a877e50513252' })));
19
+ }) }, h("slot", { key: '717e7f2b865b7bb6ae570922eb740c4ae731d85d' })));
20
20
  }
21
21
  static get is() { return "ion-card-subtitle"; }
22
22
  static get encapsulation() { return "shadow"; }
@@ -13,10 +13,10 @@ export class CardTitle {
13
13
  }
14
14
  render() {
15
15
  const mode = getIonMode(this);
16
- return (h(Host, { key: '432d7bf971fda63c30c748986143ec2a8be9e4af', role: "heading", "aria-level": "2", class: createColorClasses(this.color, {
16
+ return (h(Host, { key: '1f26cd9bd47f87540dfaff6ac8150a80bcf14475', role: "heading", "aria-level": "2", class: createColorClasses(this.color, {
17
17
  'ion-inherit-color': true,
18
18
  [mode]: true,
19
- }) }, h("slot", { key: '3c5dcf6ac1bf981c6c0488f0027765269c80db5a' })));
19
+ }) }, h("slot", { key: 'b2d51db6dc9284e17cb900af557b36ef866cdc3c' })));
20
20
  }
21
21
  static get is() { return "ion-card-title"; }
22
22
  static get encapsulation() { return "shadow"; }
@@ -72,7 +72,7 @@ export class Checkbox {
72
72
  const mode = getIonMode(this);
73
73
  const path = getSVGPath(mode, indeterminate);
74
74
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
75
- return (h(Host, { key: 'be30606f48a3adf62eddc68b7d7f908d0c46f96d', class: createColorClasses(color, {
75
+ return (h(Host, { key: '93550068abf4a5103a5d7f06e88e8d004382c203', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses(color, {
76
76
  [mode]: true,
77
77
  'in-item': hostContext('ion-item', el),
78
78
  'checkbox-checked': checked,
@@ -82,10 +82,10 @@ export class Checkbox {
82
82
  [`checkbox-justify-${justify}`]: true,
83
83
  [`checkbox-alignment-${alignment}`]: true,
84
84
  [`checkbox-label-placement-${labelPlacement}`]: true,
85
- }), onClick: this.onClick }, h("label", { key: '96c3f85a0ae6970743f6965d614033426cf2b163', class: "checkbox-wrapper" }, h("input", Object.assign({ key: 'd998089218bcb6065228095e38af936eebfa3780', type: "checkbox", checked: checked ? true : undefined, disabled: disabled, id: inputId, onChange: this.toggleChecked, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, inheritedAttributes)), h("div", { key: 'f2374957e47eec899aa2ca49ede4cfdf8397fc18', class: {
85
+ }), onClick: this.onClick }, h("label", { key: '43c0a59f152c8b836fcfcefd29db16962568b1e1', class: "checkbox-wrapper" }, h("input", Object.assign({ key: '7dc4216a96c001216a99349290d7615032952aee', type: "checkbox", checked: checked ? true : undefined, disabled: disabled, id: inputId, onChange: this.toggleChecked, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, inheritedAttributes)), h("div", { key: 'a7454e4c99eb6ea3fe4db171c0071b803949c4d0', class: {
86
86
  'label-text-wrapper': true,
87
87
  'label-text-wrapper-hidden': el.textContent === '',
88
- }, part: "label" }, h("slot", { key: '3bd6bc289c26e96cc0b4a8b39154fec1d02ba426' })), h("div", { key: '30397663226d628859d3814f9dc53ee4aad57de5', class: "native-wrapper" }, h("svg", { key: '53374f787677adfdb3b693ead3f8d86412127c10', class: "checkbox-icon", viewBox: "0 0 24 24", part: "container" }, path)))));
88
+ }, part: "label" }, h("slot", { key: '41741533b49c0281d8ff496c7b5eeccd944d2b2a' })), h("div", { key: 'e3b43df785386c2cd87fb3a38777c34a7d9b32e0', class: "native-wrapper" }, h("svg", { key: 'd3cfb07ec4c7b3e45b9cf5a049fcc841fdb4e2c3', class: "checkbox-icon", viewBox: "0 0 24 24", part: "container" }, path)))));
89
89
  }
90
90
  getSVGPath(mode, indeterminate) {
91
91
  let path = indeterminate ? (h("path", { d: "M6 12L18 12", part: "mark" })) : (h("path", { d: "M5.9,12.5l3.8,3.8l8.8-8.8", part: "mark" }));
@@ -4,7 +4,7 @@
4
4
  import AxeBuilder from "@axe-core/playwright";
5
5
  import { expect } from "@playwright/test";
6
6
  import { configs, test } from "../../../../utils/test/playwright/index";
7
- configs({ directions: ['ltr'], themes: ['light', 'dark'] }).forEach(({ title, config }) => {
7
+ configs({ directions: ['ltr'], palettes: ['light', 'dark'] }).forEach(({ title, config }) => {
8
8
  test.describe(title('checkbox: a11y'), () => {
9
9
  test('should not have accessibility violations', async ({ page }) => {
10
10
  await page.setContent(`
@@ -32,3 +32,15 @@ describe('ion-checkbox: disabled', () => {
32
32
  expect(checkbox.checked).toBe(false);
33
33
  });
34
34
  });
35
+ describe('ion-checkbox: indeterminate', () => {
36
+ it('should have a mixed value for aria-checked', async () => {
37
+ const page = await newSpecPage({
38
+ components: [Checkbox],
39
+ html: `
40
+ <ion-checkbox indeterminate="true">Checkbox</ion-checkbox>
41
+ `,
42
+ });
43
+ const checkbox = page.body.querySelector('ion-checkbox');
44
+ expect(checkbox.getAttribute('aria-checked')).toBe('mixed');
45
+ });
46
+ });
@@ -15,12 +15,12 @@ export class Chip {
15
15
  }
16
16
  render() {
17
17
  const mode = getIonMode(this);
18
- return (h(Host, { key: '4c8c83eefc650c00f2c515937df63094f9468bbd', "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
18
+ return (h(Host, { key: '6c6497d9397407443784f1b79df0b58d6d24eed2', "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
19
19
  [mode]: true,
20
20
  'chip-outline': this.outline,
21
21
  'chip-disabled': this.disabled,
22
22
  'ion-activatable': true,
23
- }) }, h("slot", { key: '5a94dafd29f2ea7255ba2d4fa173f5eff92146aa' }), mode === 'md' && h("ion-ripple-effect", null)));
23
+ }) }, h("slot", { key: 'a4d431e3b066420890fcaa30bbc99f1240dff11c' }), mode === 'md' && h("ion-ripple-effect", null)));
24
24
  }
25
25
  static get is() { return "ion-chip"; }
26
26
  static get encapsulation() { return "shadow"; }
@@ -111,9 +111,9 @@ export class Col {
111
111
  render() {
112
112
  const isRTL = document.dir === 'rtl';
113
113
  const mode = getIonMode(this);
114
- return (h(Host, { key: '8bb465c85b64001d6613e8b38cd4f4fd2b4c4a90', class: {
114
+ return (h(Host, { key: 'af31133e071846ac6609a46eabe59cc481dafdb7', class: {
115
115
  [mode]: true,
116
- }, style: Object.assign(Object.assign(Object.assign(Object.assign({}, this.calculateOffset(isRTL)), this.calculatePull(isRTL)), this.calculatePush(isRTL)), this.calculateSize()) }, h("slot", { key: 'fe9f9ce55c86771638413457a0d5dcd9dce29217' })));
116
+ }, style: Object.assign(Object.assign(Object.assign(Object.assign({}, this.calculateOffset(isRTL)), this.calculatePull(isRTL)), this.calculatePush(isRTL)), this.calculateSize()) }, h("slot", { key: 'd11a95925819a0e2dc69966b7893f0d3efc62eb9' })));
117
117
  }
118
118
  static get is() { return "ion-col"; }
119
119
  static get encapsulation() { return "shadow"; }