@ionic/core 8.0.0-beta.2 → 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 (561) hide show
  1. package/components/helpers.js +1 -47
  2. package/components/index9.js +1 -1
  3. package/components/ion-datetime-button.js +1 -1
  4. package/components/ion-datetime.js +7 -6
  5. package/components/ion-fab-button.js +2 -2
  6. package/components/ion-fab-list.js +2 -2
  7. package/components/ion-fab.js +2 -2
  8. package/components/ion-footer.js +2 -2
  9. package/components/ion-grid.js +2 -2
  10. package/components/ion-header.js +3 -3
  11. package/components/ion-img.js +1 -1
  12. package/components/ion-infinite-scroll-content.js +2 -2
  13. package/components/ion-infinite-scroll.js +1 -1
  14. package/components/ion-input.js +5 -5
  15. package/components/ion-item-divider.js +2 -2
  16. package/components/ion-item-group.js +1 -1
  17. package/components/ion-item-option.js +2 -2
  18. package/components/ion-item-options.js +1 -1
  19. package/components/ion-item-sliding.js +1 -1
  20. package/components/ion-loading.js +2 -2
  21. package/components/ion-menu-button.js +2 -2
  22. package/components/ion-menu-toggle.js +2 -2
  23. package/components/ion-menu.js +2 -2
  24. package/components/ion-modal.js +3 -3
  25. package/components/ion-nav-link.js +1 -1
  26. package/components/ion-nav.js +1 -1
  27. package/components/ion-note.js +2 -2
  28. package/components/ion-picker-legacy.js +2 -2
  29. package/components/ion-progress-bar.js +1 -1
  30. package/components/ion-range.js +11 -24
  31. package/components/ion-refresher-content.js +1 -1
  32. package/components/ion-refresher.js +1 -1
  33. package/components/ion-reorder-group.js +1 -1
  34. package/components/ion-reorder.js +1 -1
  35. package/components/ion-router-link.js +2 -2
  36. package/components/ion-router-outlet.js +1 -1
  37. package/components/ion-router.js +1 -1
  38. package/components/ion-row.js +1 -1
  39. package/components/ion-searchbar.js +4 -4
  40. package/components/ion-segment-button.js +3 -3
  41. package/components/ion-segment.js +2 -2
  42. package/components/ion-select-option.js +1 -1
  43. package/components/ion-select.js +9 -9
  44. package/components/ion-skeleton-text.js +2 -2
  45. package/components/ion-split-pane.js +2 -2
  46. package/components/ion-tab-bar.js +2 -2
  47. package/components/ion-tab-button.js +2 -2
  48. package/components/ion-tab.js +2 -2
  49. package/components/ion-tabs.js +1 -1
  50. package/components/ion-text.js +2 -2
  51. package/components/ion-textarea.js +4 -4
  52. package/components/ion-thumbnail.js +1 -1
  53. package/components/ion-title.js +2 -2
  54. package/components/ion-toast.js +2 -2
  55. package/components/ion-toggle.js +3 -3
  56. package/components/ion-toolbar.js +2 -2
  57. package/components/label.js +2 -2
  58. package/components/list-header.js +2 -2
  59. package/components/list.js +1 -1
  60. package/components/picker-column-option.js +2 -2
  61. package/components/picker-column.js +8 -4
  62. package/components/picker-column2.js +2 -2
  63. package/components/picker.js +2 -2
  64. package/components/popover.js +2 -2
  65. package/components/radio-group.js +1 -1
  66. package/components/radio.js +3 -3
  67. package/components/ripple-effect.js +1 -1
  68. package/components/select-popover.js +1 -1
  69. package/components/spinner.js +1 -1
  70. package/css/palettes/dark.always.css.map +1 -0
  71. package/css/{themes → palettes}/dark.class.css +4 -4
  72. package/css/palettes/dark.class.css.map +1 -0
  73. package/css/palettes/dark.system.css.map +1 -0
  74. package/css/palettes/high-contrast-dark.always.css.map +1 -0
  75. package/css/{themes → palettes}/high-contrast-dark.class.css +10 -10
  76. package/css/palettes/high-contrast-dark.class.css.map +1 -0
  77. package/css/palettes/high-contrast-dark.system.css.map +1 -0
  78. package/css/palettes/high-contrast.always.css.map +1 -0
  79. package/css/{themes → palettes}/high-contrast.class.css +31 -31
  80. package/css/palettes/high-contrast.class.css.map +1 -0
  81. package/css/palettes/high-contrast.system.css.map +1 -0
  82. package/dist/cjs/{animation-3e7bb91e.js → animation-58ecfe20.js} +1 -1
  83. package/dist/cjs/{framework-delegate-0499d444.js → framework-delegate-df3a2b04.js} +1 -1
  84. package/dist/cjs/{helpers-668b3d95.js → helpers-71097d9c.js} +0 -47
  85. package/dist/cjs/{index-e4b6c97e.js → index-14ae0c27.js} +3 -3
  86. package/dist/cjs/{index-ba7ba0af.js → index-289297dc.js} +2 -2
  87. package/dist/cjs/{index-c49cb371.js → index-7479ea5a.js} +1 -1
  88. package/dist/cjs/{index-275cc12e.js → index-a91a3e24.js} +1 -1
  89. package/dist/cjs/index.cjs.js +8 -8
  90. package/dist/cjs/{input-shims-b419f083.js → input-shims-77b14f24.js} +2 -2
  91. package/dist/cjs/{input.utils-32c0a14a.js → input.utils-ca74d73a.js} +1 -1
  92. package/dist/cjs/ion-accordion_2.cjs.entry.js +1 -1
  93. package/dist/cjs/ion-action-sheet.cjs.entry.js +4 -4
  94. package/dist/cjs/ion-alert.cjs.entry.js +4 -4
  95. package/dist/cjs/ion-app_8.cjs.entry.js +18 -18
  96. package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
  97. package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
  98. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +1 -1
  99. package/dist/cjs/ion-button_2.cjs.entry.js +1 -1
  100. package/dist/cjs/ion-card_5.cjs.entry.js +1 -1
  101. package/dist/cjs/ion-checkbox.cjs.entry.js +1 -1
  102. package/dist/cjs/ion-col_3.cjs.entry.js +3 -3
  103. package/dist/cjs/ion-datetime-button.cjs.entry.js +2 -2
  104. package/dist/cjs/ion-datetime_3.cjs.entry.js +15 -14
  105. package/dist/cjs/ion-fab_3.cjs.entry.js +7 -7
  106. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  107. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +5 -5
  108. package/dist/cjs/ion-input.cjs.entry.js +8 -8
  109. package/dist/cjs/ion-item-option_3.cjs.entry.js +6 -6
  110. package/dist/cjs/ion-item_8.cjs.entry.js +13 -13
  111. package/dist/cjs/ion-loading.cjs.entry.js +6 -6
  112. package/dist/cjs/ion-menu_3.cjs.entry.js +11 -11
  113. package/dist/cjs/ion-modal.cjs.entry.js +9 -9
  114. package/dist/cjs/ion-nav_2.cjs.entry.js +6 -6
  115. package/dist/cjs/ion-picker-column-option.cjs.entry.js +3 -3
  116. package/dist/cjs/ion-picker-column.cjs.entry.js +9 -5
  117. package/dist/cjs/ion-picker.cjs.entry.js +3 -3
  118. package/dist/cjs/ion-popover.cjs.entry.js +7 -7
  119. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  120. package/dist/cjs/ion-radio_2.cjs.entry.js +5 -5
  121. package/dist/cjs/ion-range.cjs.entry.js +12 -25
  122. package/dist/cjs/ion-refresher_2.cjs.entry.js +5 -5
  123. package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
  124. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  125. package/dist/cjs/ion-route_4.cjs.entry.js +3 -3
  126. package/dist/cjs/ion-searchbar.cjs.entry.js +5 -5
  127. package/dist/cjs/ion-segment_2.cjs.entry.js +6 -6
  128. package/dist/cjs/ion-select_3.cjs.entry.js +14 -14
  129. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  130. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  131. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +5 -5
  132. package/dist/cjs/ion-tab_2.cjs.entry.js +5 -5
  133. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  134. package/dist/cjs/ion-textarea.cjs.entry.js +7 -7
  135. package/dist/cjs/ion-toast.cjs.entry.js +6 -6
  136. package/dist/cjs/ion-toggle.cjs.entry.js +4 -4
  137. package/dist/cjs/ionic.cjs.js +1 -1
  138. package/dist/cjs/{ios.transition-3e119901.js → ios.transition-8e0ca8ed.js} +3 -3
  139. package/dist/cjs/{md.transition-c1392f92.js → md.transition-5d0f134b.js} +3 -3
  140. package/dist/cjs/{notch-controller-08a24f39.js → notch-controller-0042ad49.js} +1 -1
  141. package/dist/cjs/{overlays-44b8d0e0.js → overlays-30b83581.js} +2 -2
  142. package/dist/cjs/{status-tap-32430b3e.js → status-tap-dc3b8fda.js} +2 -2
  143. package/dist/cjs/{swipe-back-dc4dbb65.js → swipe-back-29e88360.js} +1 -1
  144. package/dist/collection/collection-manifest.json +1 -1
  145. package/dist/collection/components/action-sheet/test/a11y/action-sheet.e2e.js +1 -1
  146. package/dist/collection/components/alert/test/a11y/alert.e2e.js +5 -1
  147. package/dist/collection/components/alert/test/basic/alert.e2e.js +1 -1
  148. package/dist/collection/components/back-button/test/a11y/back-button.e2e.js +1 -1
  149. package/dist/collection/components/badge/test/a11y/badge.e2e.js +1 -1
  150. package/dist/collection/components/button/test/a11y/button.e2e.js +2 -2
  151. package/dist/collection/components/checkbox/test/a11y/checkbox.e2e.js +1 -1
  152. package/dist/collection/components/datetime/datetime.js +7 -6
  153. package/dist/collection/components/datetime-button/datetime-button.js +1 -1
  154. package/dist/collection/components/fab/fab.js +2 -2
  155. package/dist/collection/components/fab-button/fab-button.js +2 -2
  156. package/dist/collection/components/fab-button/test/a11y/fab-button.e2e.js +1 -1
  157. package/dist/collection/components/fab-list/fab-list.js +2 -2
  158. package/dist/collection/components/footer/footer.js +2 -2
  159. package/dist/collection/components/grid/grid.js +2 -2
  160. package/dist/collection/components/header/header.ios.css +5 -2
  161. package/dist/collection/components/header/header.js +2 -2
  162. package/dist/collection/components/header/test/basic/header.e2e.js +77 -0
  163. package/dist/collection/components/img/img.js +1 -1
  164. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  165. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  166. package/dist/collection/components/input/input.ios.css +2 -2
  167. package/dist/collection/components/input/input.js +3 -3
  168. package/dist/collection/components/input/input.md.css +2 -2
  169. package/dist/collection/components/input/test/a11y/input.e2e.js +1 -1
  170. package/dist/collection/components/input/test/slot/input.e2e.js +8 -0
  171. package/dist/collection/components/item/test/buttons/item.e2e.js +20 -4
  172. package/dist/collection/components/item-divider/item-divider.js +2 -2
  173. package/dist/collection/components/item-group/item-group.js +1 -1
  174. package/dist/collection/components/item-option/item-option.js +2 -2
  175. package/dist/collection/components/item-options/item-options.js +1 -1
  176. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  177. package/dist/collection/components/item-sliding/test/a11y/item-sliding.e2e.js +1 -1
  178. package/dist/collection/components/label/label.js +2 -2
  179. package/dist/collection/components/label/test/a11y/label.e2e.js +1 -1
  180. package/dist/collection/components/list/list.js +1 -1
  181. package/dist/collection/components/list-header/list-header.js +2 -2
  182. package/dist/collection/components/loading/loading.js +2 -2
  183. package/dist/collection/components/loading/test/a11y/loading.e2e.js +1 -1
  184. package/dist/collection/components/menu/menu.js +2 -2
  185. package/dist/collection/components/menu-button/menu-button.js +2 -2
  186. package/dist/collection/components/menu-button/test/a11y/menu-button.e2e.js +1 -1
  187. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  188. package/dist/collection/components/modal/modal.js +3 -3
  189. package/dist/collection/components/nav/nav.js +1 -1
  190. package/dist/collection/components/nav-link/nav-link.js +1 -1
  191. package/dist/collection/components/note/note.js +2 -2
  192. package/dist/collection/components/picker/picker.js +2 -2
  193. package/dist/collection/components/picker-column/picker-column.js +8 -4
  194. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  195. package/dist/collection/components/picker-legacy/picker.js +2 -2
  196. package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
  197. package/dist/collection/components/popover/popover.js +2 -2
  198. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  199. package/dist/collection/components/progress-bar/test/a11y/progress-bar.e2e.js +1 -1
  200. package/dist/collection/components/radio/radio.js +3 -3
  201. package/dist/collection/components/radio/test/a11y/radio.e2e.js +1 -1
  202. package/dist/collection/components/radio-group/radio-group.js +1 -1
  203. package/dist/collection/components/range/range.js +11 -24
  204. package/dist/collection/components/range/test/a11y/range.e2e.js +1 -1
  205. package/dist/collection/components/range/test/label/range.spec.js +24 -0
  206. package/dist/collection/components/refresher/refresher.js +1 -1
  207. package/dist/collection/components/refresher/test/a11y/refresher.e2e.js +1 -1
  208. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  209. package/dist/collection/components/reorder/reorder.js +1 -1
  210. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  211. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  212. package/dist/collection/components/router-link/router-link.js +2 -2
  213. package/dist/collection/components/router-link/test/a11y/router-link.e2e.js +1 -1
  214. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  215. package/dist/collection/components/row/row.js +1 -1
  216. package/dist/collection/components/searchbar/searchbar.js +4 -4
  217. package/dist/collection/components/segment/segment.js +2 -2
  218. package/dist/collection/components/segment/test/a11y/segment.e2e.js +1 -1
  219. package/dist/collection/components/segment-button/segment-button.js +3 -3
  220. package/dist/collection/components/select/select.ios.css +2 -2
  221. package/dist/collection/components/select/select.js +7 -7
  222. package/dist/collection/components/select/select.md.css +2 -2
  223. package/dist/collection/components/select/test/a11y/select.e2e.js +1 -1
  224. package/dist/collection/components/select/test/select.spec.js +22 -0
  225. package/dist/collection/components/select/test/slot/select.e2e.js +8 -0
  226. package/dist/collection/components/select-option/select-option.js +1 -1
  227. package/dist/collection/components/select-popover/select-popover.js +1 -1
  228. package/dist/collection/components/select-popover/test/a11y/select-popover.e2e.js +1 -1
  229. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  230. package/dist/collection/components/spinner/spinner.js +1 -1
  231. package/dist/collection/components/split-pane/split-pane.js +2 -2
  232. package/dist/collection/components/tab/tab.js +2 -2
  233. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  234. package/dist/collection/components/tab-button/tab-button.js +2 -2
  235. package/dist/collection/components/tabs/tabs.js +1 -1
  236. package/dist/collection/components/text/text.js +2 -2
  237. package/dist/collection/components/textarea/test/a11y/textarea.e2e.js +1 -1
  238. package/dist/collection/components/textarea/test/slot/textarea.e2e.js +8 -0
  239. package/dist/collection/components/textarea/textarea.ios.css +2 -2
  240. package/dist/collection/components/textarea/textarea.js +2 -2
  241. package/dist/collection/components/textarea/textarea.md.css +2 -2
  242. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  243. package/dist/collection/components/title/title.js +2 -2
  244. package/dist/collection/components/toast/test/a11y/toast.e2e.js +2 -2
  245. package/dist/collection/components/toast/toast.js +2 -2
  246. package/dist/collection/components/toggle/test/a11y/toggle.e2e.js +1 -1
  247. package/dist/collection/components/toggle/toggle.js +4 -4
  248. package/dist/collection/components/toolbar/toolbar.js +2 -2
  249. package/dist/collection/css/test/a11y/typography.e2e.js +1 -1
  250. package/dist/collection/themes/test/colors/theme.e2e.js +2 -2
  251. package/dist/collection/utils/helpers.js +0 -46
  252. package/dist/collection/utils/test/playwright/generator.js +17 -17
  253. package/dist/collection/utils/test/playwright/page/utils/set-content.js +6 -6
  254. package/dist/docs.json +3 -3
  255. package/dist/esm/{animation-9a23ed8d.js → animation-6a3c0abb.js} +1 -1
  256. package/dist/esm/{framework-delegate-3fd96df8.js → framework-delegate-3dede018.js} +1 -1
  257. package/dist/esm/{helpers-f51cf76f.js → helpers-eab4f597.js} +1 -47
  258. package/dist/esm/{index-86688780.js → index-044b5a86.js} +1 -1
  259. package/dist/esm/{index-6da05eef.js → index-136e99c8.js} +3 -3
  260. package/dist/esm/{index-9d7e5d3e.js → index-95a691d4.js} +2 -2
  261. package/dist/esm/{index-1262064c.js → index-fa221975.js} +1 -1
  262. package/dist/esm/index.js +8 -8
  263. package/dist/esm/{input-shims-2a4ad5a1.js → input-shims-196afa11.js} +2 -2
  264. package/dist/esm/{input.utils-d2dee48e.js → input.utils-426cc674.js} +1 -1
  265. package/dist/esm/ion-accordion_2.entry.js +1 -1
  266. package/dist/esm/ion-action-sheet.entry.js +4 -4
  267. package/dist/esm/ion-alert.entry.js +4 -4
  268. package/dist/esm/ion-app_8.entry.js +18 -18
  269. package/dist/esm/ion-avatar_3.entry.js +1 -1
  270. package/dist/esm/ion-back-button.entry.js +1 -1
  271. package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
  272. package/dist/esm/ion-button_2.entry.js +1 -1
  273. package/dist/esm/ion-card_5.entry.js +1 -1
  274. package/dist/esm/ion-checkbox.entry.js +1 -1
  275. package/dist/esm/ion-col_3.entry.js +3 -3
  276. package/dist/esm/ion-datetime-button.entry.js +2 -2
  277. package/dist/esm/ion-datetime_3.entry.js +15 -14
  278. package/dist/esm/ion-fab_3.entry.js +7 -7
  279. package/dist/esm/ion-img.entry.js +2 -2
  280. package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
  281. package/dist/esm/ion-input.entry.js +8 -8
  282. package/dist/esm/ion-item-option_3.entry.js +6 -6
  283. package/dist/esm/ion-item_8.entry.js +13 -13
  284. package/dist/esm/ion-loading.entry.js +6 -6
  285. package/dist/esm/ion-menu_3.entry.js +11 -11
  286. package/dist/esm/ion-modal.entry.js +9 -9
  287. package/dist/esm/ion-nav_2.entry.js +6 -6
  288. package/dist/esm/ion-picker-column-option.entry.js +3 -3
  289. package/dist/esm/ion-picker-column.entry.js +9 -5
  290. package/dist/esm/ion-picker.entry.js +3 -3
  291. package/dist/esm/ion-popover.entry.js +7 -7
  292. package/dist/esm/ion-progress-bar.entry.js +2 -2
  293. package/dist/esm/ion-radio_2.entry.js +5 -5
  294. package/dist/esm/ion-range.entry.js +12 -25
  295. package/dist/esm/ion-refresher_2.entry.js +5 -5
  296. package/dist/esm/ion-reorder_2.entry.js +4 -4
  297. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  298. package/dist/esm/ion-route_4.entry.js +3 -3
  299. package/dist/esm/ion-searchbar.entry.js +5 -5
  300. package/dist/esm/ion-segment_2.entry.js +6 -6
  301. package/dist/esm/ion-select_3.entry.js +14 -14
  302. package/dist/esm/ion-spinner.entry.js +1 -1
  303. package/dist/esm/ion-split-pane.entry.js +2 -2
  304. package/dist/esm/ion-tab-bar_2.entry.js +5 -5
  305. package/dist/esm/ion-tab_2.entry.js +5 -5
  306. package/dist/esm/ion-text.entry.js +2 -2
  307. package/dist/esm/ion-textarea.entry.js +7 -7
  308. package/dist/esm/ion-toast.entry.js +6 -6
  309. package/dist/esm/ion-toggle.entry.js +4 -4
  310. package/dist/esm/ionic.js +1 -1
  311. package/dist/esm/{ios.transition-fbde96b0.js → ios.transition-d1c8eea2.js} +3 -3
  312. package/dist/esm/{md.transition-76e0020b.js → md.transition-0d2de76d.js} +3 -3
  313. package/dist/esm/{notch-controller-00572cf8.js → notch-controller-cff691e5.js} +1 -1
  314. package/dist/esm/{overlays-b1ac1c63.js → overlays-d41f74ac.js} +2 -2
  315. package/dist/esm/{status-tap-84b41f36.js → status-tap-45595148.js} +2 -2
  316. package/dist/esm/{swipe-back-f2bec781.js → swipe-back-57844616.js} +1 -1
  317. package/dist/esm-es5/{animation-9a23ed8d.js → animation-6a3c0abb.js} +1 -1
  318. package/dist/esm-es5/{framework-delegate-3fd96df8.js → framework-delegate-3dede018.js} +1 -1
  319. package/dist/esm-es5/helpers-eab4f597.js +4 -0
  320. package/dist/esm-es5/{index-86688780.js → index-044b5a86.js} +1 -1
  321. package/dist/esm-es5/{index-6da05eef.js → index-136e99c8.js} +1 -1
  322. package/dist/esm-es5/{index-9d7e5d3e.js → index-95a691d4.js} +1 -1
  323. package/dist/esm-es5/index-fa221975.js +4 -0
  324. package/dist/esm-es5/index.js +1 -1
  325. package/dist/esm-es5/{input-shims-2a4ad5a1.js → input-shims-196afa11.js} +1 -1
  326. package/dist/esm-es5/{input.utils-d2dee48e.js → input.utils-426cc674.js} +1 -1
  327. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  328. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  329. package/dist/esm-es5/ion-alert.entry.js +1 -1
  330. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  331. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  332. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  333. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  334. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  335. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  336. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  337. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  338. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  339. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  340. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  341. package/dist/esm-es5/ion-img.entry.js +1 -1
  342. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  343. package/dist/esm-es5/ion-input.entry.js +1 -1
  344. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  345. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  346. package/dist/esm-es5/ion-loading.entry.js +1 -1
  347. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  348. package/dist/esm-es5/ion-modal.entry.js +1 -1
  349. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  350. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  351. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  352. package/dist/esm-es5/ion-picker.entry.js +1 -1
  353. package/dist/esm-es5/ion-popover.entry.js +1 -1
  354. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  355. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  356. package/dist/esm-es5/ion-range.entry.js +1 -1
  357. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  358. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  359. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  360. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  361. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  362. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  363. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  364. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  365. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  366. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  367. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  368. package/dist/esm-es5/ion-text.entry.js +1 -1
  369. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  370. package/dist/esm-es5/ion-toast.entry.js +1 -1
  371. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  372. package/dist/esm-es5/{ios.transition-fbde96b0.js → ios.transition-d1c8eea2.js} +1 -1
  373. package/dist/esm-es5/md.transition-0d2de76d.js +4 -0
  374. package/dist/esm-es5/{notch-controller-00572cf8.js → notch-controller-cff691e5.js} +1 -1
  375. package/dist/esm-es5/{overlays-b1ac1c63.js → overlays-d41f74ac.js} +1 -1
  376. package/dist/esm-es5/{status-tap-84b41f36.js → status-tap-45595148.js} +1 -1
  377. package/dist/esm-es5/{swipe-back-f2bec781.js → swipe-back-57844616.js} +1 -1
  378. package/dist/html.html-data.json +1 -1
  379. package/dist/ionic/index.esm.js +1 -1
  380. package/dist/ionic/ionic.esm.js +1 -1
  381. package/dist/ionic/ionic.js +1 -1
  382. package/dist/ionic/{p-bbc4f653.entry.js → p-0051ceb9.entry.js} +1 -1
  383. package/dist/ionic/{p-a7f788ec.entry.js → p-00a6f38d.entry.js} +1 -1
  384. package/dist/ionic/{p-1acaf641.entry.js → p-02a803dc.entry.js} +1 -1
  385. package/dist/ionic/{p-05f10e5f.entry.js → p-02a8b73b.entry.js} +1 -1
  386. package/dist/ionic/{p-53c592ec.system.js → p-07759435.system.js} +1 -1
  387. package/dist/ionic/{p-04f9ce05.system.js → p-08a8971e.system.js} +1 -1
  388. package/dist/ionic/p-0e4c9e45.system.js +4 -0
  389. package/dist/ionic/{p-50d19fc7.system.entry.js → p-103ec049.system.entry.js} +1 -1
  390. package/dist/ionic/p-1685d81c.system.entry.js +4 -0
  391. package/dist/ionic/{p-49a205d0.system.js → p-17043350.system.js} +1 -1
  392. package/dist/ionic/{p-0afaf65b.system.entry.js → p-17ee2784.system.entry.js} +1 -1
  393. package/dist/ionic/{p-4d6ec139.entry.js → p-1807190c.entry.js} +1 -1
  394. package/dist/ionic/{p-ff740d68.system.entry.js → p-185db19b.system.entry.js} +2 -2
  395. package/dist/ionic/{p-e222fdd1.entry.js → p-1a8bbd2e.entry.js} +1 -1
  396. package/dist/ionic/{p-a37d4fe9.system.entry.js → p-1bb1ef31.system.entry.js} +1 -1
  397. package/dist/ionic/p-1c801dd4.entry.js +4 -0
  398. package/dist/ionic/{p-5054b3db.entry.js → p-2130b526.entry.js} +1 -1
  399. package/dist/ionic/p-22b5c888.system.entry.js +4 -0
  400. package/dist/ionic/{p-a5c33d6b.system.entry.js → p-23838a94.system.entry.js} +1 -1
  401. package/dist/ionic/{p-51b1a6be.js → p-244f56fd.js} +1 -1
  402. package/dist/ionic/{p-373e757d.entry.js → p-27c668a0.entry.js} +1 -1
  403. package/dist/ionic/{p-d9dfdbb5.system.entry.js → p-282bd5f9.system.entry.js} +1 -1
  404. package/dist/ionic/{p-6d75fbe8.system.entry.js → p-2852c537.system.entry.js} +1 -1
  405. package/dist/ionic/{p-25648922.system.entry.js → p-294c47cd.system.entry.js} +1 -1
  406. package/dist/ionic/{p-7200f2da.entry.js → p-29ef3b9b.entry.js} +1 -1
  407. package/dist/ionic/{p-b996756b.entry.js → p-2bb65deb.entry.js} +1 -1
  408. package/dist/ionic/{p-3944820a.system.js → p-2cc2c631.system.js} +1 -1
  409. package/dist/ionic/{p-cbb753d4.entry.js → p-2ce3691f.entry.js} +1 -1
  410. package/dist/ionic/{p-c34d1515.js → p-2f53c3eb.js} +1 -1
  411. package/dist/ionic/{p-4ba6d7d1.js → p-325c61a4.js} +1 -1
  412. package/dist/ionic/{p-68fbfcd5.entry.js → p-334ad9e4.entry.js} +1 -1
  413. package/dist/ionic/p-364044f0.js +4 -0
  414. package/dist/ionic/{p-29ecf879.entry.js → p-3785c067.entry.js} +1 -1
  415. package/dist/ionic/p-3ae4a2a2.entry.js +4 -0
  416. package/dist/ionic/p-3cd3214e.entry.js +4 -0
  417. package/dist/ionic/{p-e9412fe7.system.entry.js → p-3e6e53fe.system.entry.js} +1 -1
  418. package/dist/ionic/{p-7162350a.system.entry.js → p-40976b1c.system.entry.js} +1 -1
  419. package/dist/ionic/{p-d09c9468.system.entry.js → p-42fecf9c.system.entry.js} +1 -1
  420. package/dist/ionic/{p-b0850af6.system.entry.js → p-43c751c6.system.entry.js} +1 -1
  421. package/dist/ionic/{p-8dfe436d.system.js → p-4a3055ef.system.js} +1 -1
  422. package/dist/ionic/{p-f6db2e96.system.entry.js → p-4d325220.system.entry.js} +2 -2
  423. package/dist/ionic/p-4d361c89.entry.js +4 -0
  424. package/dist/ionic/p-54c31b4f.entry.js +4 -0
  425. package/dist/ionic/{p-063c093d.system.entry.js → p-5a277399.system.entry.js} +1 -1
  426. package/dist/ionic/{p-237b1791.system.entry.js → p-5ac63b19.system.entry.js} +1 -1
  427. package/dist/ionic/{p-c8675b7b.system.entry.js → p-5b2951c1.system.entry.js} +1 -1
  428. package/dist/ionic/{p-f5cb9689.js → p-5b52897c.js} +1 -1
  429. package/dist/ionic/{p-42d9f81e.entry.js → p-610f0e12.entry.js} +1 -1
  430. package/dist/ionic/p-668607c2.system.js +4 -0
  431. package/dist/ionic/{p-ffaeba0a.system.entry.js → p-68f131a7.system.entry.js} +1 -1
  432. package/dist/ionic/{p-eb546888.entry.js → p-6a448415.entry.js} +1 -1
  433. package/dist/ionic/{p-696db6f4.system.js → p-6a62da36.system.js} +1 -1
  434. package/dist/ionic/p-6a888b39.system.entry.js +4 -0
  435. package/dist/ionic/{p-ea5173f9.system.js → p-6d9f8fac.system.js} +1 -1
  436. package/dist/ionic/{p-d3c1c23f.entry.js → p-7002bc75.entry.js} +1 -1
  437. package/dist/ionic/{p-65374504.entry.js → p-7680d0ec.entry.js} +1 -1
  438. package/dist/ionic/{p-f8dfae89.system.entry.js → p-7adde43c.system.entry.js} +1 -1
  439. package/dist/ionic/p-7c4c37ae.system.js +4 -0
  440. package/dist/ionic/p-7d29dff0.system.entry.js +4 -0
  441. package/dist/ionic/p-7d4d9c40.system.entry.js +4 -0
  442. package/dist/ionic/p-7e7d534c.js +4 -0
  443. package/dist/ionic/{p-01171ead.system.js → p-853bd866.system.js} +1 -1
  444. package/dist/ionic/{p-5f9abba8.system.entry.js → p-85f43165.system.entry.js} +1 -1
  445. package/dist/ionic/p-86c17a09.entry.js +4 -0
  446. package/dist/ionic/p-8a881b39.entry.js +4 -0
  447. package/dist/ionic/{p-513abaf6.system.entry.js → p-8dd3d9c3.system.entry.js} +1 -1
  448. package/dist/ionic/{p-070cf7c3.entry.js → p-8ed900e4.entry.js} +1 -1
  449. package/dist/ionic/p-91a83ede.js +4 -0
  450. package/dist/ionic/{p-f15b0bbc.system.entry.js → p-92b05b70.system.entry.js} +1 -1
  451. package/dist/ionic/{p-3a572692.js → p-976c7c54.js} +1 -1
  452. package/dist/ionic/{p-144ae947.js → p-978f4710.js} +1 -1
  453. package/dist/ionic/{p-eee87ebb.js → p-98c86cdd.js} +1 -1
  454. package/dist/ionic/{p-c834c535.system.entry.js → p-9b5d033a.system.entry.js} +1 -1
  455. package/dist/ionic/{p-a43fbe0a.system.entry.js → p-9e6a5e3d.system.entry.js} +1 -1
  456. package/dist/ionic/{p-de4c700f.entry.js → p-a0e8f913.entry.js} +1 -1
  457. package/dist/ionic/{p-314ae72a.js → p-a3dae2ce.js} +1 -1
  458. package/dist/ionic/{p-2070f8d8.entry.js → p-a4c287f9.entry.js} +1 -1
  459. package/dist/ionic/{p-4da2ae44.js → p-a600a3e3.js} +1 -1
  460. package/dist/ionic/{p-f15f8140.system.entry.js → p-a6b8342e.system.entry.js} +1 -1
  461. package/dist/ionic/{p-f012e8f2.system.entry.js → p-a88b41d1.system.entry.js} +2 -2
  462. package/dist/ionic/{p-9c970454.entry.js → p-a94092b9.entry.js} +1 -1
  463. package/dist/ionic/p-ac6db4c2.js +4 -0
  464. package/dist/ionic/{p-15e2ff5f.system.entry.js → p-af2e3481.system.entry.js} +1 -1
  465. package/dist/ionic/{p-d4be0d81.system.entry.js → p-b0aaa59a.system.entry.js} +1 -1
  466. package/dist/ionic/{p-48fef2f1.entry.js → p-b141e253.entry.js} +1 -1
  467. package/dist/ionic/{p-8c0b08db.entry.js → p-b1d9b078.entry.js} +1 -1
  468. package/dist/ionic/p-ba0290d1.entry.js +4 -0
  469. package/dist/ionic/{p-e5e492d8.entry.js → p-bb5eba12.entry.js} +1 -1
  470. package/dist/ionic/{p-c4390f10.system.entry.js → p-bb608006.system.entry.js} +1 -1
  471. package/dist/ionic/{p-d5ef3a0a.entry.js → p-c385e49d.entry.js} +1 -1
  472. package/dist/ionic/{p-1e5c0c49.js → p-c3f5d0e7.js} +1 -1
  473. package/dist/ionic/{p-739f8b95.system.entry.js → p-c41e0b5f.system.entry.js} +1 -1
  474. package/dist/ionic/{p-46a4e4e8.js → p-c6f9f3eb.js} +1 -1
  475. package/dist/ionic/{p-03f3ebd2.entry.js → p-c8383c20.entry.js} +1 -1
  476. package/dist/ionic/{p-acd64713.system.entry.js → p-cbf0a046.system.entry.js} +1 -1
  477. package/dist/ionic/{p-566818dd.system.entry.js → p-d0496c22.system.entry.js} +1 -1
  478. package/dist/ionic/{p-2028668d.system.entry.js → p-d286cfbe.system.entry.js} +1 -1
  479. package/dist/ionic/{p-45a2b1ee.system.entry.js → p-d372938e.system.entry.js} +1 -1
  480. package/dist/ionic/{p-de39f314.entry.js → p-d4d17d47.entry.js} +1 -1
  481. package/dist/ionic/{p-47974116.system.entry.js → p-d6b84d5a.system.entry.js} +1 -1
  482. package/dist/ionic/{p-33e39575.system.js → p-d704f798.system.js} +1 -1
  483. package/dist/ionic/p-d8090ce4.entry.js +4 -0
  484. package/dist/ionic/{p-667290b0.system.js → p-d80b7e31.system.js} +1 -1
  485. package/dist/ionic/{p-2e2635b4.system.entry.js → p-d8ffe61c.system.entry.js} +1 -1
  486. package/dist/ionic/{p-824d44c5.system.entry.js → p-db7fcadb.system.entry.js} +2 -2
  487. package/dist/ionic/{p-95648db9.entry.js → p-dd9168f3.entry.js} +1 -1
  488. package/dist/ionic/{p-ce36d285.system.js → p-e0d52ee3.system.js} +2 -2
  489. package/dist/ionic/p-e3611c25.entry.js +4 -0
  490. package/dist/ionic/p-e7b0b64d.system.js +4 -0
  491. package/dist/ionic/{p-75addf49.entry.js → p-ebc5b98f.entry.js} +1 -1
  492. package/dist/ionic/{p-9ddbed2f.system.entry.js → p-ebe45d27.system.entry.js} +1 -1
  493. package/dist/ionic/{p-ba9120fe.system.entry.js → p-ec34194e.system.entry.js} +1 -1
  494. package/dist/ionic/p-ec613387.entry.js +4 -0
  495. package/dist/ionic/{p-19243ae6.entry.js → p-ed3463be.entry.js} +1 -1
  496. package/dist/ionic/{p-0da58e53.entry.js → p-f1d1524c.entry.js} +1 -1
  497. package/dist/ionic/p-f7a1318d.system.entry.js +4 -0
  498. package/dist/ionic/{p-1d1394da.system.entry.js → p-f7af3144.system.entry.js} +2 -2
  499. package/dist/ionic/p-f8502e85.js +1 -1
  500. package/dist/ionic/{p-f3e8c505.system.js → p-f85a4df5.system.js} +1 -1
  501. package/dist/ionic/{p-66596659.entry.js → p-fa8ee4c3.entry.js} +1 -1
  502. package/dist/ionic/{p-d85eebc3.entry.js → p-fb870c48.entry.js} +1 -1
  503. package/dist/ionic/{p-4997d7dc.system.js → p-fe1fd531.system.js} +1 -1
  504. package/dist/ionic/{p-21e88629.entry.js → p-fe35b5c0.entry.js} +1 -1
  505. package/dist/types/components/datetime/datetime.d.ts +1 -0
  506. package/dist/types/components/toggle/toggle.d.ts +1 -1
  507. package/dist/types/components.d.ts +2 -2
  508. package/dist/types/utils/helpers.d.ts +0 -18
  509. package/dist/types/utils/test/playwright/generator.d.ts +3 -3
  510. package/hydrate/index.js +150 -204
  511. package/package.json +7 -2
  512. package/css/themes/dark.always.css.map +0 -1
  513. package/css/themes/dark.class.css.map +0 -1
  514. package/css/themes/dark.system.css.map +0 -1
  515. package/css/themes/high-contrast-dark.always.css.map +0 -1
  516. package/css/themes/high-contrast-dark.class.css.map +0 -1
  517. package/css/themes/high-contrast-dark.system.css.map +0 -1
  518. package/css/themes/high-contrast.always.css.map +0 -1
  519. package/css/themes/high-contrast.class.css.map +0 -1
  520. package/css/themes/high-contrast.system.css.map +0 -1
  521. package/dist/collection/utils/test/aria.spec.js +0 -80
  522. package/dist/esm-es5/helpers-f51cf76f.js +0 -4
  523. package/dist/esm-es5/index-1262064c.js +0 -4
  524. package/dist/esm-es5/md.transition-76e0020b.js +0 -4
  525. package/dist/ionic/p-06e951a9.entry.js +0 -4
  526. package/dist/ionic/p-234dc736.entry.js +0 -4
  527. package/dist/ionic/p-2f53f47a.entry.js +0 -4
  528. package/dist/ionic/p-39483fc9.js +0 -4
  529. package/dist/ionic/p-39860681.entry.js +0 -4
  530. package/dist/ionic/p-489eb5c6.js +0 -4
  531. package/dist/ionic/p-493bce1f.entry.js +0 -4
  532. package/dist/ionic/p-517b76cb.entry.js +0 -4
  533. package/dist/ionic/p-59e86adb.js +0 -4
  534. package/dist/ionic/p-6042920d.system.entry.js +0 -4
  535. package/dist/ionic/p-67dbcd3b.system.js +0 -4
  536. package/dist/ionic/p-69df28fd.entry.js +0 -4
  537. package/dist/ionic/p-6d0e7669.system.entry.js +0 -4
  538. package/dist/ionic/p-6d1f5de9.system.entry.js +0 -4
  539. package/dist/ionic/p-7d4f6f18.js +0 -4
  540. package/dist/ionic/p-a03c993e.entry.js +0 -4
  541. package/dist/ionic/p-afe27188.system.js +0 -4
  542. package/dist/ionic/p-b0d35de4.system.js +0 -4
  543. package/dist/ionic/p-bb78b64e.entry.js +0 -4
  544. package/dist/ionic/p-c962e9ea.entry.js +0 -4
  545. package/dist/ionic/p-cc19ecba.system.entry.js +0 -4
  546. package/dist/ionic/p-d10bbab7.entry.js +0 -4
  547. package/dist/ionic/p-d268f7e2.system.entry.js +0 -4
  548. package/dist/ionic/p-e01ebeba.system.js +0 -4
  549. package/dist/ionic/p-fcec3b7a.system.entry.js +0 -4
  550. package/css/{themes → palettes}/dark.always.css +0 -0
  551. package/css/{themes → palettes}/dark.css +0 -0
  552. package/css/{themes → palettes}/dark.css.map +0 -0
  553. package/css/{themes → palettes}/dark.system.css +0 -0
  554. package/css/{themes → palettes}/high-contrast-dark.always.css +1 -1
  555. package/css/{themes → palettes}/high-contrast-dark.css +0 -0
  556. package/css/{themes → palettes}/high-contrast-dark.css.map +0 -0
  557. package/css/{themes → palettes}/high-contrast-dark.system.css +1 -1
  558. package/css/{themes → palettes}/high-contrast.always.css +25 -25
  559. package/css/{themes → palettes}/high-contrast.css +0 -0
  560. package/css/{themes → palettes}/high-contrast.css.map +0 -0
  561. package/css/{themes → palettes}/high-contrast.system.css +25 -25
@@ -70,7 +70,7 @@ export class TabButton {
70
70
  rel,
71
71
  target,
72
72
  };
73
- return (h(Host, { key: '6cbc09067f12f3b643f2bfc3bdc1eddf81b00daa', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
73
+ return (h(Host, { key: 'b59ea2572a066edc9aed8e027d1849a80734ddc2', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
74
74
  [mode]: true,
75
75
  'tab-selected': selected,
76
76
  'tab-disabled': disabled,
@@ -82,7 +82,7 @@ export class TabButton {
82
82
  'ion-activatable': true,
83
83
  'ion-selectable': true,
84
84
  'ion-focusable': true,
85
- } }, h("a", Object.assign({ key: '5626f8bf8ddb30fb03773d816ec5fd6417d59391' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), h("span", { key: 'ad789c6d82860eed68fc6c56d15143f989756ba3', class: "button-inner" }, h("slot", { key: '1cf17817e025e371664bedcfd8268b452674159d' })), mode === 'md' && h("ion-ripple-effect", { type: "unbounded" }))));
85
+ } }, h("a", Object.assign({ key: '426bf8ee7c7c233cd161f74bf7e46cbe939ac1d5' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), h("span", { key: '955b805c6e1ed576604ab0294a7479520573ff0f', class: "button-inner" }, h("slot", { key: 'f1e6dc9f80bc27c956f2333f28f5440a78f2dd6c' })), mode === 'md' && h("ion-ripple-effect", { type: "unbounded" }))));
86
86
  }
87
87
  static get is() { return "ion-tab-button"; }
88
88
  static get encapsulation() { return "shadow"; }
@@ -135,7 +135,7 @@ export class Tabs {
135
135
  return Array.from(this.el.querySelectorAll('ion-tab'));
136
136
  }
137
137
  render() {
138
- return (h(Host, { key: 'ec86c6800e70022ebd33b9c7fa39bf14cee242ba', onIonTabButtonClick: this.onTabClicked }, h("slot", { key: '51f603c67624eccc49c916acac0cf67e6386c665', name: "top" }), h("div", { key: '69c8654e9b5be1cc36603c3c314d4acf14dfeef9', class: "tabs-inner" }, h("slot", { key: 'ff8c8349f2bfd218e85be3abac695d1bc9ffadba' })), h("slot", { key: 'ab95302bfe9a2d704f6e95545b1eee6ce73c34d8', name: "bottom" })));
138
+ return (h(Host, { key: 'ee98a688e181f29f70bf67d8ac9a74f6863de070', onIonTabButtonClick: this.onTabClicked }, h("slot", { key: 'd0fab7c4acb24591931523584c8f2d0a0685058a', name: "top" }), h("div", { key: '0a71bcbc44d45b0f47834f055e13a4d5ad2ec189', class: "tabs-inner" }, h("slot", { key: 'df40115d87f04d6068b1d44d4eef26d51435405a' })), h("slot", { key: '1ba4b7ff756fec9954645f13b295121fe2dc3ca3', name: "bottom" })));
139
139
  }
140
140
  static get is() { return "ion-tabs"; }
141
141
  static get encapsulation() { return "shadow"; }
@@ -13,9 +13,9 @@ export class Text {
13
13
  }
14
14
  render() {
15
15
  const mode = getIonMode(this);
16
- return (h(Host, { key: 'b52025909e5353fd8f0626b168f89ef211d3cbaf', class: createColorClasses(this.color, {
16
+ return (h(Host, { key: '9b808f0e1c85e39e89df51ea0a8b97bf815907ec', class: createColorClasses(this.color, {
17
17
  [mode]: true,
18
- }) }, h("slot", { key: '7fbaf1cfb6da0244e98c54bb79f18b6641b8ca0c' })));
18
+ }) }, h("slot", { key: '200d6bf3820c9428b645abf8ec2a6f9de849e78a' })));
19
19
  }
20
20
  static get is() { return "ion-text"; }
21
21
  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('textarea: a11y'), () => {
9
9
  test('default layout should not have accessibility violations', async ({ page }) => {
10
10
  await page.setContent(`
@@ -9,9 +9,13 @@ configs().forEach(({ title, screenshot, config }) => {
9
9
  await page.setContent(`
10
10
  <ion-textarea label-placement="start" fill="solid" value="100" label="Weight">
11
11
  <ion-icon slot="start" name="barbell" aria-hidden="true"></ion-icon>
12
+ <ion-icon slot="start" name="heart" aria-hidden="true"></ion-icon>
12
13
  <ion-button slot="end" aria-label="Show/hide password">
13
14
  <ion-icon slot="icon-only" name="lock-closed" aria-hidden="true"></ion-icon>
14
15
  </ion-button>
16
+ <ion-button slot="end">
17
+ <ion-icon slot="icon-only" name="trash" aria-hidden="true"></ion-icon>
18
+ </ion-button>
15
19
  </ion-textarea>
16
20
  `, config);
17
21
  const textarea = page.locator('ion-textarea');
@@ -21,9 +25,13 @@ configs().forEach(({ title, screenshot, config }) => {
21
25
  await page.setContent(`
22
26
  <ion-textarea label-placement="floating" fill="solid" value="100" label="Weight">
23
27
  <ion-icon slot="start" name="barbell" aria-hidden="true"></ion-icon>
28
+ <ion-icon slot="start" name="heart" aria-hidden="true"></ion-icon>
24
29
  <ion-button slot="end" aria-label="Show/hide password">
25
30
  <ion-icon slot="icon-only" name="lock-closed" aria-hidden="true"></ion-icon>
26
31
  </ion-button>
32
+ <ion-button slot="end">
33
+ <ion-icon slot="icon-only" name="trash" aria-hidden="true"></ion-icon>
34
+ </ion-button>
27
35
  </ion-textarea>
28
36
  `, config);
29
37
  const textarea = page.locator('ion-textarea');
@@ -670,12 +670,12 @@
670
670
  margin-top: 0;
671
671
  }
672
672
 
673
- ::slotted([slot=start]) {
673
+ ::slotted([slot=start]:last-of-type) {
674
674
  margin-inline-end: 16px;
675
675
  margin-inline-start: 0;
676
676
  }
677
677
 
678
- ::slotted([slot=end]) {
678
+ ::slotted([slot=end]:first-of-type) {
679
679
  margin-inline-start: 16px;
680
680
  margin-inline-end: 0;
681
681
  }
@@ -359,7 +359,7 @@ export class Textarea {
359
359
  * TODO(FW-5592): Remove hasStartEndSlots condition
360
360
  */
361
361
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
362
- return (h(Host, { key: 'e2ac4428f0e3268ac0507b331b0badd8dbfa5010', class: createColorClasses(this.color, {
362
+ return (h(Host, { key: '031dd0f49d577017faa1c5ec87184f8047e1be86', class: createColorClasses(this.color, {
363
363
  [mode]: true,
364
364
  'has-value': hasValue,
365
365
  'has-focus': hasFocus,
@@ -368,7 +368,7 @@ export class Textarea {
368
368
  [`textarea-shape-${shape}`]: shape !== undefined,
369
369
  [`textarea-label-placement-${labelPlacement}`]: true,
370
370
  'textarea-disabled': disabled,
371
- }) }, h("label", { key: 'a5a566c5d91e8d74449f172fb64093777e1bf9c3', class: "textarea-wrapper", htmlFor: inputId }, this.renderLabelContainer(), h("div", { key: 'fc2bbf87535d133f52e27be986e5fcfac987f986', class: "textarea-wrapper-inner" }, h("div", { key: '8834f1e7bf4853087a8e7fd0dfe23106cdba5ef3', class: "start-slot-wrapper" }, h("slot", { key: 'd4014b4b58f3c1ee1bc25ff712a45d4720b38c4d', name: "start" })), h("div", { key: 'f9f34505f0e2dfb647ae1b727e406b522d0891a2', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, h("textarea", Object.assign({ key: '4bcb6eb6becdc47ce2056162cb8bb0d727879260', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown }, this.inheritedAttributes), value)), h("div", { key: '0605291843bd7c4cf59b44a970cb43830e825362', class: "end-slot-wrapper" }, h("slot", { key: '61a90e1625860e662e4526d4b88653edb6ecb5b4', name: "end" }))), shouldRenderHighlight && h("div", { class: "textarea-highlight" })), this.renderBottomContent()));
371
+ }) }, h("label", { key: '867331fa40e10931dc3b476ce96a5c1bf24f10d8', class: "textarea-wrapper", htmlFor: inputId }, this.renderLabelContainer(), h("div", { key: '0e63c53cdf36b2f5abc80f5e0327c50407785d75', class: "textarea-wrapper-inner" }, h("div", { key: '762d406affec3ff1cc42349b926f39d1a03bb86e', class: "start-slot-wrapper" }, h("slot", { key: '94f5c12011301d17c61c05794e162c06257b1e3f', name: "start" })), h("div", { key: '9f4c77548e14e61cf003c3876270838ee7ccb1c4', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, h("textarea", Object.assign({ key: '7677c92431fd88cda4b3318e0eabb5747b23416c', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown }, this.inheritedAttributes), value)), h("div", { key: 'a3d97905a3e526a6a65fac13cc379c981bfeedd2', class: "end-slot-wrapper" }, h("slot", { key: '3edf3ecd1917595917aa960f99698eabf3268a6f', name: "end" }))), shouldRenderHighlight && h("div", { class: "textarea-highlight" })), this.renderBottomContent()));
372
372
  }
373
373
  static get is() { return "ion-textarea"; }
374
374
  static get encapsulation() { return "scoped"; }
@@ -670,12 +670,12 @@
670
670
  margin-top: 0;
671
671
  }
672
672
 
673
- ::slotted([slot=start]) {
673
+ ::slotted([slot=start]:last-of-type) {
674
674
  margin-inline-end: 16px;
675
675
  margin-inline-start: 0;
676
676
  }
677
677
 
678
- ::slotted([slot=end]) {
678
+ ::slotted([slot=end]:first-of-type) {
679
679
  margin-inline-start: 16px;
680
680
  margin-inline-end: 0;
681
681
  }
@@ -5,7 +5,7 @@ import { Host, h } from "@stencil/core";
5
5
  import { getIonMode } from "../../global/ionic-global";
6
6
  export class Thumbnail {
7
7
  render() {
8
- return (h(Host, { key: '85a0eb73f012ab18ad8b03e63aca9488dd11a4d7', class: getIonMode(this) }, h("slot", { key: 'a335c711d1987615cfcc953958edc0d63fbccca2' })));
8
+ return (h(Host, { key: 'a399199598f8eb605a2c41e0b372609e0c1df8ee', class: getIonMode(this) }, h("slot", { key: 'a63159fa02a1339273066bf7d74ec7d5d2ed0c53' })));
9
9
  }
10
10
  static get is() { return "ion-thumbnail"; }
11
11
  static get encapsulation() { return "shadow"; }
@@ -27,11 +27,11 @@ export class ToolbarTitle {
27
27
  render() {
28
28
  const mode = getIonMode(this);
29
29
  const size = this.getSize();
30
- return (h(Host, { key: '13fcf9c4fea765a4580a2c99aa03a25304d310de', class: createColorClasses(this.color, {
30
+ return (h(Host, { key: '2e4240e81db3a6c9293b7cc0589226429c82790d', class: createColorClasses(this.color, {
31
31
  [mode]: true,
32
32
  [`title-${size}`]: true,
33
33
  'title-rtl': document.dir === 'rtl',
34
- }) }, h("div", { key: 'a0ad40298bdea5687c6ee4c873bd2926603df0f7', class: "toolbar-title" }, h("slot", { key: 'b08edc05432144aec791c10eec1ad23030fcfa1f' }))));
34
+ }) }, h("div", { key: '2dccef7ee6ec217b12844e0ed72401eb834ac54e', class: "toolbar-title" }, h("slot", { key: '8d109bb5cd4e883d1e47aaa6b26ac9a345de525e' }))));
35
35
  }
36
36
  static get is() { return "ion-title"; }
37
37
  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: ['dark', 'light'] }).forEach(({ title, config }) => {
7
+ configs({ directions: ['ltr'], palettes: ['dark', 'light'] }).forEach(({ title, config }) => {
8
8
  test.describe(title('toast: Axe testing'), () => {
9
9
  test('should not have any axe violations with inline toasts', async ({ page }) => {
10
10
  await page.setContent(`
@@ -178,7 +178,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
178
178
  /**
179
179
  * High contrast mode tests
180
180
  */
181
- configs({ directions: ['ltr'], themes: ['high-contrast-dark', 'high-contrast'] }).forEach(({ title, config, screenshot }) => {
181
+ configs({ directions: ['ltr'], palettes: ['high-contrast-dark', 'high-contrast'] }).forEach(({ title, config, screenshot }) => {
182
182
  test.describe(title('toast: high contrast: buttons'), () => {
183
183
  test.beforeEach(async ({ page }) => {
184
184
  await page.setContent(`
@@ -388,9 +388,9 @@ export class Toast {
388
388
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
389
389
  printIonWarning('This toast is using start and end buttons with the stacked toast layout. We recommend following the best practice of using either start or end buttons with the stacked toast layout.', el);
390
390
  }
391
- return (h(Host, Object.assign({ key: '23e039d40ed3f698142abbf2eff13acc0d70b52e', tabindex: "-1" }, this.htmlAttributes, { style: {
391
+ return (h(Host, Object.assign({ key: '66dcfb5335d7476659c05a3df8f8b49f198197c5', tabindex: "-1" }, this.htmlAttributes, { style: {
392
392
  zIndex: `${60000 + this.overlayIndex}`,
393
- }, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { key: 'c3b790f76618c70f00c0ac319faab0bf5d30fd07', class: wrapperClass }, h("div", { key: 'b05c2a16b23d9d5ebe8e9e8448ca74ce9ee2aeaa', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h("ion-icon", { class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), h("div", { key: '06da7439fe6ac393b19721edd4b4c21cfc3d4521', class: "toast-content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
393
+ }, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { key: 'fb798e74b5ebcb1e17f368679d4947a490d0fdeb', class: wrapperClass }, h("div", { key: '0b39964d740f1172d172dca5af306c083f3435ae', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h("ion-icon", { class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), h("div", { key: '265b36d5c914ac6a42a9a8e622237e026035a658', class: "toast-content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
394
394
  }
395
395
  static get is() { return "ion-toast"; }
396
396
  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('toggle: a11y'), () => {
9
9
  test('should not have accessibility violations', async ({ page }) => {
10
10
  await page.setContent(`
@@ -157,7 +157,7 @@ export class Toggle {
157
157
  const value = this.getValue();
158
158
  const rtl = isRTL(el) ? 'rtl' : 'ltr';
159
159
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
160
- return (h(Host, { key: '4404b52b62c84c2b9c7fa6358f8faf5a7f6a2e02', onClick: this.onClick, class: createColorClasses(color, {
160
+ return (h(Host, { key: '4a786aed54ad9c746cc3fb4cc73dc831d5cc39dc', onClick: this.onClick, class: createColorClasses(color, {
161
161
  [mode]: true,
162
162
  'in-item': hostContext('ion-item', el),
163
163
  'toggle-activated': activated,
@@ -167,10 +167,10 @@ export class Toggle {
167
167
  [`toggle-alignment-${alignment}`]: true,
168
168
  [`toggle-label-placement-${labelPlacement}`]: true,
169
169
  [`toggle-${rtl}`]: true,
170
- }) }, h("label", { key: 'b626abcebb56f70fc3849ae3f7cdd4d99e92ee02', class: "toggle-wrapper" }, h("input", Object.assign({ key: '30bf51409249b0195e802eb7c68a2a67a8fa7855', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, this.inheritedAttributes)), h("div", { key: '24da2e034d1c2fcbd851438b2680dd5683ec50df', class: {
170
+ }) }, h("label", { key: '7e0d74361076d55bf500a08c7f24856c1f712afa', class: "toggle-wrapper" }, h("input", Object.assign({ key: '1112f0a15dd0e8b39a1cb60e2bdef19e37e9a4ce', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, this.inheritedAttributes)), h("div", { key: 'ff94aa7e50d1b68d8131f54141209ca67b4889b9', class: {
171
171
  'label-text-wrapper': true,
172
172
  'label-text-wrapper-hidden': !this.hasLabel,
173
- }, part: "label" }, h("slot", { key: '69b07934847a1c374e1016fd5cbcb7aba27a03ba' })), h("div", { key: 'a8a33696c7aa287ccea05e6560b5433b1da00598', class: "native-wrapper" }, this.renderToggleControl()))));
173
+ }, part: "label" }, h("slot", { key: 'd43b70d600179d41f98b17b2e249b8e672096ccd' })), h("div", { key: 'c8e1bec8e42a09e3947209fdc7a31c66a474702f', class: "native-wrapper" }, this.renderToggleControl()))));
174
174
  }
175
175
  static get is() { return "ion-toggle"; }
176
176
  static get encapsulation() { return "shadow"; }
@@ -349,7 +349,7 @@ export class Toggle {
349
349
  "optional": false,
350
350
  "docs": {
351
351
  "tags": [],
352
- "text": "How to control the alignment of the toggle and label on the cross axis.\n``\"start\"`: The label and control will appear on the left of the cross axis in LTR, and on the right side in RTL.\n`\"center\"`: The label and control will appear at the center of the cross axis in both LTR and RTL."
352
+ "text": "How to control the alignment of the toggle and label on the cross axis.\n`\"start\"`: The label and control will appear on the left of the cross axis in LTR, and on the right side in RTL.\n`\"center\"`: The label and control will appear at the center of the cross axis in both LTR and RTL."
353
353
  },
354
354
  "attribute": "alignment",
355
355
  "reflect": false,
@@ -62,10 +62,10 @@ export class Toolbar {
62
62
  this.childrenStyles.forEach((value) => {
63
63
  Object.assign(childStyles, value);
64
64
  });
65
- return (h(Host, { key: 'a7b140e85cb60a8bef52dcc01c0ca95cf4dd2339', class: Object.assign(Object.assign({}, childStyles), createColorClasses(this.color, {
65
+ return (h(Host, { key: 'ccdad3d73213ea96f320bedcfc77dba0b1d5a1e6', class: Object.assign(Object.assign({}, childStyles), createColorClasses(this.color, {
66
66
  [mode]: true,
67
67
  'in-toolbar': hostContext('ion-toolbar', this.el),
68
- })) }, h("div", { key: 'bdca37c9e022475501993660e60549aae897a1c6', class: "toolbar-background" }), h("div", { key: '586abce4db3f2726ce00876565cfc966df54db2c', class: "toolbar-container" }, h("slot", { key: '124b60b8fdd6b3f9bf3c97122890444bc7e1c13d', name: "start" }), h("slot", { key: '8581916125eb38d66b4f6e0e2c674eb09a4a54a0', name: "secondary" }), h("div", { key: '0f786a72d646957fa445e30c04a0ce2c2dbe1a2b', class: "toolbar-content" }, h("slot", { key: 'be4e90c43db8c0cd596def6239381913169621b7' })), h("slot", { key: '00c87247e89b99e7c1f68367247d590b12f7a106', name: "primary" }), h("slot", { key: 'b2548f6ed8bec893e6f1e782eb27c3be24cac10c', name: "end" }))));
68
+ })) }, h("div", { key: 'a7511bff77244f06648e7a9fa88dba7cfa341736', class: "toolbar-background" }), h("div", { key: '11347fdb377f492d454709d552754b71c0d62754', class: "toolbar-container" }, h("slot", { key: '49b7e5f7fa17329b9160f1017d00c0d39fbd1e59', name: "start" }), h("slot", { key: '23f248e4273880e4629f1149dfb3081f873d9fcb', name: "secondary" }), h("div", { key: '4f2d1b71e624c2e63427c13a1e5c4c37a422004e', class: "toolbar-content" }, h("slot", { key: '3554cda5a394ec59b6161ce45fd1c71e41dfc26c' })), h("slot", { key: 'de77e5bca3c49d3c961838681fca239ff4d4bba9', name: "primary" }), h("slot", { key: 'e3e32c04cd0558ea1cd2af1a99d527eb67de5863', name: "end" }))));
69
69
  }
70
70
  static get is() { return "ion-toolbar"; }
71
71
  static get encapsulation() { return "shadow"; }
@@ -31,7 +31,7 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, screenshot, c
31
31
  });
32
32
  });
33
33
  });
34
- configs({ directions: ['ltr'], themes: ['light', 'dark'] }).forEach(({ config, title }) => {
34
+ configs({ directions: ['ltr'], palettes: ['light', 'dark'] }).forEach(({ config, title }) => {
35
35
  test.describe(title('typography: a11y'), () => {
36
36
  test('should not have accessibility violations for anchor tags', async ({ page }) => {
37
37
  /**
@@ -50,7 +50,7 @@ const styleTestHelpers = `
50
50
  * 6) The base color as the text color against the base color at 0.12 opacity as the background color
51
51
  * 7) The base color as the text color against the base color at 0.16 opacity as the background color
52
52
  */
53
- configs({ modes: ['md'], directions: ['ltr'], themes: ['light', 'dark'] }).forEach(({ config, title }) => {
53
+ configs({ modes: ['md'], directions: ['ltr'], palettes: ['light', 'dark'] }).forEach(({ config, title }) => {
54
54
  const colors = ['primary', 'secondary', 'tertiary', 'success', 'warning', 'danger', 'light', 'medium', 'dark'];
55
55
  test.describe(title('theme'), () => {
56
56
  test.beforeEach(({ skip }) => {
@@ -117,7 +117,7 @@ configs({ modes: ['md'], directions: ['ltr'], themes: ['light', 'dark'] }).forEa
117
117
  }
118
118
  });
119
119
  });
120
- configs({ modes: ['md'], directions: ['ltr'], themes: ['high-contrast', 'high-contrast-dark'] }).forEach(({ config, title }) => {
120
+ configs({ modes: ['md'], directions: ['ltr'], palettes: ['high-contrast', 'high-contrast-dark'] }).forEach(({ config, title }) => {
121
121
  const colors = ['primary', 'secondary', 'tertiary', 'success', 'warning', 'danger', 'light', 'medium', 'dark'];
122
122
  test.describe(title('theme'), () => {
123
123
  test.beforeEach(({ skip }) => {
@@ -247,52 +247,6 @@ export const focusVisibleElement = (el) => {
247
247
  }
248
248
  }
249
249
  };
250
- /**
251
- * This method is used for Ionic's input components that use Shadow DOM. In
252
- * order to properly label the inputs to work with screen readers, we need
253
- * to get the text content of the label outside of the shadow root and pass
254
- * it to the input inside of the shadow root.
255
- *
256
- * Referencing label elements by id from outside of the component is
257
- * impossible due to the shadow boundary, read more here:
258
- * https://developer.salesforce.com/blogs/2020/01/accessibility-for-web-components.html
259
- *
260
- * @param componentEl The shadow element that needs the aria label
261
- * @param inputId The unique identifier for the input
262
- */
263
- export const getAriaLabel = (componentEl, inputId) => {
264
- let labelText;
265
- // If the user provides their own label via the aria-labelledby attr
266
- // we should use that instead of looking for an ion-label
267
- const labelledBy = componentEl.getAttribute('aria-labelledby');
268
- // Grab the id off of the component in case they are using
269
- // a custom label using the label element
270
- const componentId = componentEl.id;
271
- let labelId = labelledBy !== null && labelledBy.trim() !== '' ? labelledBy : inputId + '-lbl';
272
- let label = labelledBy !== null && labelledBy.trim() !== '' ? document.getElementById(labelledBy) : null;
273
- if (label) {
274
- if (labelledBy === null) {
275
- label.id = labelId;
276
- }
277
- labelText = label.textContent;
278
- label.setAttribute('aria-hidden', 'true');
279
- // if there is no label, check to see if the user has provided
280
- // one by setting an id on the component and using the label element
281
- }
282
- else if (componentId.trim() !== '') {
283
- label = document.querySelector(`label[for="${componentId}"]`);
284
- if (label) {
285
- if (label.id !== '') {
286
- labelId = label.id;
287
- }
288
- else {
289
- label.id = labelId = `${componentId}-lbl`;
290
- }
291
- labelText = label.textContent;
292
- }
293
- }
294
- return { label, labelId, labelText };
295
- };
296
250
  /**
297
251
  * This method is used to add a hidden input to a host element that contains
298
252
  * a Shadow DOM. It does not add the input inside of the Shadow root which
@@ -8,34 +8,34 @@
8
8
  * each test title is unique.
9
9
  */
10
10
  const generateTitle = (title, config) => {
11
- const { mode, direction, theme } = config;
12
- if (theme === 'light') {
11
+ const { mode, direction, palette } = config;
12
+ if (palette === 'light') {
13
13
  /**
14
14
  * Ionic has many existing tests that existed prior to
15
- * the introduction of theme testing. To maintain backwards
16
- * compatibility, we will not include the theme in the test
17
- * title if the theme is set to light.
15
+ * the introduction of palette testing. To maintain backwards
16
+ * compatibility, we will not include the palette in the test
17
+ * title if the palette is set to light.
18
18
  */
19
19
  return `${title} - ${mode}/${direction}`;
20
20
  }
21
- return `${title} - ${mode}/${direction}/${theme}`;
21
+ return `${title} - ${mode}/${direction}/${palette}`;
22
22
  };
23
23
  /**
24
24
  * Generates a unique filename based on a base filename
25
25
  * and a test config.
26
26
  */
27
27
  const generateScreenshotName = (fileName, config) => {
28
- const { mode, direction, theme } = config;
29
- if (theme === 'light') {
28
+ const { mode, direction, palette } = config;
29
+ if (palette === 'light') {
30
30
  /**
31
31
  * Ionic has many existing tests that existed prior to
32
- * the introduction of theme testing. To maintain backwards
33
- * compatibility, we will not include the theme in the screenshot
34
- * name if the theme is set to light.
32
+ * the introduction of palette testing. To maintain backwards
33
+ * compatibility, we will not include the palette in the screenshot
34
+ * name if the palette is set to light.
35
35
  */
36
36
  return `${fileName}-${mode}-${direction}.png`;
37
37
  }
38
- return `${fileName}-${mode}-${direction}-${theme}.png`;
38
+ return `${fileName}-${mode}-${direction}-${palette}.png`;
39
39
  };
40
40
  /**
41
41
  * Given a config generate an array of test variants.
@@ -50,11 +50,11 @@ export const configs = (testConfig = DEFAULT_TEST_CONFIG_OPTION) => {
50
50
  */
51
51
  const processedMode = modes !== null && modes !== void 0 ? modes : DEFAULT_MODES;
52
52
  const processedDirection = directions !== null && directions !== void 0 ? directions : DEFAULT_DIRECTIONS;
53
- const processedTheme = (_a = testConfig.themes) !== null && _a !== void 0 ? _a : DEFAULT_THEMES;
53
+ const processedPalette = (_a = testConfig.palettes) !== null && _a !== void 0 ? _a : DEFAULT_PALETTES;
54
54
  processedMode.forEach((mode) => {
55
55
  processedDirection.forEach((direction) => {
56
- processedTheme.forEach((theme) => {
57
- configs.push({ mode, direction, theme });
56
+ processedPalette.forEach((palette) => {
57
+ configs.push({ mode, direction, palette });
58
58
  });
59
59
  });
60
60
  });
@@ -68,9 +68,9 @@ export const configs = (testConfig = DEFAULT_TEST_CONFIG_OPTION) => {
68
68
  };
69
69
  const DEFAULT_MODES = ['ios', 'md'];
70
70
  const DEFAULT_DIRECTIONS = ['ltr', 'rtl'];
71
- const DEFAULT_THEMES = ['light'];
71
+ const DEFAULT_PALETTES = ['light'];
72
72
  const DEFAULT_TEST_CONFIG_OPTION = {
73
73
  modes: DEFAULT_MODES,
74
74
  directions: DEFAULT_DIRECTIONS,
75
- themes: DEFAULT_THEMES,
75
+ palettes: DEFAULT_PALETTES,
76
76
  };
@@ -18,16 +18,16 @@ export const setContent = async (page, html, testInfo, options) => {
18
18
  }
19
19
  let mode;
20
20
  let direction;
21
- let theme;
21
+ let palette;
22
22
  if (options == undefined) {
23
23
  mode = testInfo.project.metadata.mode;
24
24
  direction = testInfo.project.metadata.rtl ? 'rtl' : 'ltr';
25
- theme = testInfo.project.metadata.theme;
25
+ palette = testInfo.project.metadata.palette;
26
26
  }
27
27
  else {
28
28
  mode = options.mode;
29
29
  direction = options.direction;
30
- theme = options.theme;
30
+ palette = options.palette;
31
31
  }
32
32
  const baseUrl = process.env.PLAYWRIGHT_TEST_BASE_URL;
33
33
  const output = `
@@ -39,7 +39,7 @@ export const setContent = async (page, html, testInfo, options) => {
39
39
  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0" />
40
40
  <link href="${baseUrl}/css/ionic.bundle.css" rel="stylesheet" />
41
41
  <link href="${baseUrl}/scripts/testing/styles.css" rel="stylesheet" />
42
- ${theme !== 'light' ? `<link href="${baseUrl}/css/themes/${theme}.always.css" rel="stylesheet" />` : ''}
42
+ ${palette !== 'light' ? `<link href="${baseUrl}/css/palettes/${palette}.always.css" rel="stylesheet" />` : ''}
43
43
  <script src="${baseUrl}/scripts/testing/scripts.js"></script>
44
44
  <script type="module" src="${baseUrl}/dist/ionic/ionic.esm.js"></script>
45
45
  <script>
@@ -56,8 +56,8 @@ export const setContent = async (page, html, testInfo, options) => {
56
56
  </html>
57
57
  `;
58
58
  testInfo.annotations.push({
59
- type: 'theme',
60
- description: theme,
59
+ type: 'palette',
60
+ description: palette,
61
61
  });
62
62
  if (baseUrl) {
63
63
  await page.route(baseUrl, (route) => {
package/dist/docs.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
- "timestamp": "2024-03-13T14:34:12",
2
+ "timestamp": "2024-03-20T14:30:27",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
- "version": "4.12.5",
5
+ "version": "4.12.6",
6
6
  "typescriptVersion": "5.3.3"
7
7
  },
8
8
  "components": [
@@ -28837,7 +28837,7 @@
28837
28837
  "mutable": false,
28838
28838
  "attr": "alignment",
28839
28839
  "reflectToAttr": false,
28840
- "docs": "How to control the alignment of the toggle and label on the cross axis.\n``\"start\"`: The label and control will appear on the left of the cross axis in LTR, and on the right side in RTL.\n`\"center\"`: The label and control will appear at the center of the cross axis in both LTR and RTL.",
28840
+ "docs": "How to control the alignment of the toggle and label on the cross axis.\n`\"start\"`: The label and control will appear on the left of the cross axis in LTR, and on the right side in RTL.\n`\"center\"`: The label and control will appear at the center of the cross axis in both LTR and RTL.",
28841
28841
  "docsTags": [],
28842
28842
  "default": "'center'",
28843
28843
  "values": [
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { w as win } from './index-a5d50daf.js';
5
- import { r as raf } from './helpers-f51cf76f.js';
5
+ import { r as raf } from './helpers-eab4f597.js';
6
6
 
7
7
  let animationPrefix;
8
8
  /**
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { c as componentOnReady } from './helpers-f51cf76f.js';
4
+ import { c as componentOnReady } from './helpers-eab4f597.js';
5
5
 
6
6
  // TODO(FW-2832): types
7
7
  const attachComponent = async (delegate, container, component, cssClasses, componentProps, inline) => {
@@ -247,52 +247,6 @@ const focusVisibleElement = (el) => {
247
247
  }
248
248
  }
249
249
  };
250
- /**
251
- * This method is used for Ionic's input components that use Shadow DOM. In
252
- * order to properly label the inputs to work with screen readers, we need
253
- * to get the text content of the label outside of the shadow root and pass
254
- * it to the input inside of the shadow root.
255
- *
256
- * Referencing label elements by id from outside of the component is
257
- * impossible due to the shadow boundary, read more here:
258
- * https://developer.salesforce.com/blogs/2020/01/accessibility-for-web-components.html
259
- *
260
- * @param componentEl The shadow element that needs the aria label
261
- * @param inputId The unique identifier for the input
262
- */
263
- const getAriaLabel = (componentEl, inputId) => {
264
- let labelText;
265
- // If the user provides their own label via the aria-labelledby attr
266
- // we should use that instead of looking for an ion-label
267
- const labelledBy = componentEl.getAttribute('aria-labelledby');
268
- // Grab the id off of the component in case they are using
269
- // a custom label using the label element
270
- const componentId = componentEl.id;
271
- let labelId = labelledBy !== null && labelledBy.trim() !== '' ? labelledBy : inputId + '-lbl';
272
- let label = labelledBy !== null && labelledBy.trim() !== '' ? document.getElementById(labelledBy) : null;
273
- if (label) {
274
- if (labelledBy === null) {
275
- label.id = labelId;
276
- }
277
- labelText = label.textContent;
278
- label.setAttribute('aria-hidden', 'true');
279
- // if there is no label, check to see if the user has provided
280
- // one by setting an id on the component and using the label element
281
- }
282
- else if (componentId.trim() !== '') {
283
- label = document.querySelector(`label[for="${componentId}"]`);
284
- if (label) {
285
- if (label.id !== '') {
286
- labelId = label.id;
287
- }
288
- else {
289
- label.id = labelId = `${componentId}-lbl`;
290
- }
291
- labelText = label.textContent;
292
- }
293
- }
294
- return { label, labelId, labelText };
295
- };
296
250
  /**
297
251
  * This method is used to add a hidden input to a host element that contains
298
252
  * a Shadow DOM. It does not add the input inside of the Shadow root which
@@ -408,4 +362,4 @@ const shallowEqualStringMap = (map1, map2) => {
408
362
  return true;
409
363
  };
410
364
 
411
- export { addEventListener as a, removeEventListener as b, componentOnReady as c, renderHiddenInput as d, debounceEvent as e, focusVisibleElement as f, getElementRoot as g, inheritAttributes as h, inheritAriaAttributes as i, clamp as j, hasLazyBuild as k, getAriaLabel as l, hasShadowDom as m, assert as n, isEndSide as o, debounce as p, now as q, raf as r, shallowEqualStringMap as s, transitionEndAsync as t, pointerCoord as u };
365
+ export { addEventListener as a, removeEventListener as b, componentOnReady as c, renderHiddenInput as d, debounceEvent as e, focusVisibleElement as f, getElementRoot as g, inheritAttributes as h, inheritAriaAttributes as i, clamp as j, hasLazyBuild as k, hasShadowDom as l, assert as m, isEndSide as n, debounce as o, now as p, pointerCoord as q, raf as r, shallowEqualStringMap as s, transitionEndAsync as t };
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { c as componentOnReady } from './helpers-f51cf76f.js';
4
+ import { c as componentOnReady } from './helpers-eab4f597.js';
5
5
  import { b as printRequiredElementError } from './index-9b0d46f4.js';
6
6
 
7
7
  const ION_CONTENT_TAG_NAME = 'ION-CONTENT';
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { w as writeTask, B as Build } from './index-5d6a0317.js';
5
- import { r as raf } from './helpers-f51cf76f.js';
5
+ import { r as raf } from './helpers-eab4f597.js';
6
6
 
7
7
  const LIFECYCLE_WILL_ENTER = 'ionViewWillEnter';
8
8
  const LIFECYCLE_DID_ENTER = 'ionViewDidEnter';
@@ -10,8 +10,8 @@ const LIFECYCLE_WILL_LEAVE = 'ionViewWillLeave';
10
10
  const LIFECYCLE_DID_LEAVE = 'ionViewDidLeave';
11
11
  const LIFECYCLE_WILL_UNLOAD = 'ionViewWillUnload';
12
12
 
13
- const iosTransitionAnimation = () => import('./ios.transition-fbde96b0.js');
14
- const mdTransitionAnimation = () => import('./md.transition-76e0020b.js');
13
+ const iosTransitionAnimation = () => import('./ios.transition-d1c8eea2.js');
14
+ const mdTransitionAnimation = () => import('./md.transition-0d2de76d.js');
15
15
  // TODO(FW-2832): types
16
16
  const transition = (opts) => {
17
17
  return new Promise((resolve, reject) => {
@@ -4,9 +4,9 @@
4
4
  import { d as doc } from './index-a5d50daf.js';
5
5
  import { MENU_BACK_BUTTON_PRIORITY } from './hardware-back-button-fb295e3a.js';
6
6
  import { p as printIonWarning } from './index-9b0d46f4.js';
7
- import { c as componentOnReady } from './helpers-f51cf76f.js';
7
+ import { c as componentOnReady } from './helpers-eab4f597.js';
8
8
  import { b as getIonMode } from './ionic-global-a589c12c.js';
9
- import { c as createAnimation } from './animation-9a23ed8d.js';
9
+ import { c as createAnimation } from './animation-6a3c0abb.js';
10
10
 
11
11
  /**
12
12
  * baseAnimation
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { d as doc } from './index-a5d50daf.js';
5
- import { q as now, u as pointerCoord } from './helpers-f51cf76f.js';
5
+ import { p as now, q as pointerCoord } from './helpers-eab4f597.js';
6
6
 
7
7
  const startTapClick = (config) => {
8
8
  if (doc === undefined) {