voyager-ionic-core 8.0.0-rc.0 → 8.0.1

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 (623) 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 +4 -4
  5. package/components/buttons.js +2 -2
  6. package/components/checkbox.js +5 -5
  7. package/components/input-shims.js +5 -5
  8. package/components/ion-app.js +1 -1
  9. package/components/ion-avatar.js +1 -1
  10. package/components/ion-back-button.js +2 -2
  11. package/components/ion-badge.js +2 -2
  12. package/components/ion-breadcrumb.js +4 -4
  13. package/components/ion-breadcrumbs.js +2 -2
  14. package/components/ion-card-content.js +1 -1
  15. package/components/ion-card-header.js +2 -2
  16. package/components/ion-card-subtitle.js +2 -2
  17. package/components/ion-card-title.js +2 -2
  18. package/components/ion-card.js +1 -1
  19. package/components/ion-chip.js +2 -2
  20. package/components/ion-col.js +2 -2
  21. package/components/ion-content.js +3 -3
  22. package/components/ion-datetime-button.js +2 -2
  23. package/components/ion-datetime.js +2 -2
  24. package/components/ion-fab-button.js +2 -2
  25. package/components/ion-fab-list.js +2 -2
  26. package/components/ion-fab.js +2 -2
  27. package/components/ion-footer.js +2 -2
  28. package/components/ion-grid.js +2 -2
  29. package/components/ion-header.js +2 -2
  30. package/components/ion-img.js +1 -1
  31. package/components/ion-infinite-scroll-content.js +2 -2
  32. package/components/ion-infinite-scroll.js +1 -1
  33. package/components/ion-input-password-toggle.js +3 -3
  34. package/components/ion-input.js +12 -3
  35. package/components/ion-item-divider.js +2 -2
  36. package/components/ion-item-group.js +1 -1
  37. package/components/ion-item-option.js +2 -2
  38. package/components/ion-item-options.js +1 -1
  39. package/components/ion-item-sliding.js +1 -1
  40. package/components/ion-loading.js +2 -2
  41. package/components/ion-menu-button.js +2 -2
  42. package/components/ion-menu-toggle.js +2 -2
  43. package/components/ion-menu.js +2 -2
  44. package/components/ion-modal.js +47 -23
  45. package/components/ion-nav-link.js +1 -1
  46. package/components/ion-nav.js +1 -1
  47. package/components/ion-note.js +2 -2
  48. package/components/ion-picker-legacy.js +2 -2
  49. package/components/ion-progress-bar.js +1 -1
  50. package/components/ion-range.js +3 -3
  51. package/components/ion-refresher-content.js +1 -1
  52. package/components/ion-refresher.js +1 -1
  53. package/components/ion-reorder-group.js +1 -1
  54. package/components/ion-reorder.js +1 -1
  55. package/components/ion-router-link.js +2 -2
  56. package/components/ion-router-outlet.js +1 -1
  57. package/components/ion-row.js +1 -1
  58. package/components/ion-searchbar.js +4 -4
  59. package/components/ion-segment-button.js +3 -3
  60. package/components/ion-segment.js +2 -2
  61. package/components/ion-select-option.js +1 -1
  62. package/components/ion-select.js +2 -2
  63. package/components/ion-skeleton-text.js +2 -2
  64. package/components/ion-split-pane.js +2 -2
  65. package/components/ion-tab-bar.js +2 -2
  66. package/components/ion-tab-button.js +2 -2
  67. package/components/ion-tab.js +2 -2
  68. package/components/ion-tabs.js +1 -1
  69. package/components/ion-text.js +2 -2
  70. package/components/ion-textarea.js +2 -2
  71. package/components/ion-thumbnail.js +1 -1
  72. package/components/ion-title.js +2 -2
  73. package/components/ion-toast.js +2 -2
  74. package/components/ion-toggle.js +5 -5
  75. package/components/ion-toolbar.js +2 -2
  76. package/components/item.js +1 -1
  77. package/components/label.js +2 -2
  78. package/components/list-header.js +2 -2
  79. package/components/list.js +1 -1
  80. package/components/picker-column-option.js +2 -2
  81. package/components/picker-column.js +3 -3
  82. package/components/picker-column2.js +2 -2
  83. package/components/picker.js +2 -2
  84. package/components/popover.js +4 -4
  85. package/components/radio-group.js +1 -1
  86. package/components/radio.js +5 -5
  87. package/components/ripple-effect.js +1 -1
  88. package/components/select-popover.js +1 -1
  89. package/components/spinner.js +1 -1
  90. package/css/core.css +1 -624
  91. package/css/core.css.map +1 -1
  92. package/css/display.css +1 -131
  93. package/css/display.css.map +1 -1
  94. package/css/flex-utils.css +1 -81
  95. package/css/flex-utils.css.map +1 -1
  96. package/css/float-elements.css +1 -293
  97. package/css/float-elements.css.map +1 -1
  98. package/css/global.bundle.css +1 -457
  99. package/css/global.bundle.css.map +1 -1
  100. package/css/ionic-swiper.css +1 -127
  101. package/css/ionic-swiper.css.map +1 -1
  102. package/css/ionic.bundle.css +1 -1
  103. package/css/ionic.bundle.css.map +1 -1
  104. package/css/normalize.css +1 -150
  105. package/css/normalize.css.map +1 -1
  106. package/css/padding.css +1 -202
  107. package/css/padding.css.map +1 -1
  108. package/css/palettes/dark.always.css +1 -160
  109. package/css/palettes/dark.always.css.map +1 -1
  110. package/css/palettes/dark.class.css +1 -160
  111. package/css/palettes/dark.class.css.map +1 -1
  112. package/css/palettes/dark.css +0 -2
  113. package/css/palettes/dark.system.css +1 -162
  114. package/css/palettes/dark.system.css.map +1 -1
  115. package/css/palettes/high-contrast-dark.always.css +1 -180
  116. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  117. package/css/palettes/high-contrast-dark.class.css +1 -180
  118. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  119. package/css/palettes/high-contrast-dark.css +0 -2
  120. package/css/palettes/high-contrast-dark.system.css +1 -182
  121. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  122. package/css/palettes/high-contrast.always.css +1 -101
  123. package/css/palettes/high-contrast.always.css.map +1 -1
  124. package/css/palettes/high-contrast.class.css +1 -101
  125. package/css/palettes/high-contrast.class.css.map +1 -1
  126. package/css/palettes/high-contrast.css +0 -2
  127. package/css/palettes/high-contrast.system.css +1 -103
  128. package/css/palettes/high-contrast.system.css.map +1 -1
  129. package/css/structure.css +1 -152
  130. package/css/structure.css.map +1 -1
  131. package/css/text-alignment.css +1 -243
  132. package/css/text-alignment.css.map +1 -1
  133. package/css/text-transformation.css +1 -158
  134. package/css/text-transformation.css.map +1 -1
  135. package/css/typography.css +1 -157
  136. package/css/typography.css.map +1 -1
  137. package/css/utils.bundle.css +1 -1100
  138. package/css/utils.bundle.css.map +1 -1
  139. package/dist/cjs/{app-globals-63aebf89.js → app-globals-542c4d91.js} +1 -1
  140. package/dist/cjs/{button-active-bd13859e.js → button-active-47528f4c.js} +1 -1
  141. package/dist/cjs/{hardware-back-button-ad9299b4.js → hardware-back-button-06ae4d9c.js} +2 -2
  142. package/dist/cjs/index-1437d080.js +11980 -0
  143. package/dist/cjs/{index-5cf05f94.js → index-57b504ac.js} +2 -2
  144. package/dist/cjs/{index-ff66cc7c.js → index-c76a1d14.js} +3 -3
  145. package/dist/cjs/index.cjs.js +8 -8
  146. package/dist/cjs/{input-shims-20d639e6.js → input-shims-9e59ef62.js} +5 -5
  147. package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
  148. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
  149. package/dist/cjs/ion-alert.cjs.entry.js +7 -7
  150. package/dist/cjs/ion-app_8.cjs.entry.js +22 -22
  151. package/dist/cjs/ion-avatar_3.cjs.entry.js +6 -6
  152. package/dist/cjs/ion-back-button.cjs.entry.js +4 -4
  153. package/dist/cjs/ion-backdrop.cjs.entry.js +3 -3
  154. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +8 -8
  155. package/dist/cjs/ion-button_2.cjs.entry.js +6 -6
  156. package/dist/cjs/ion-card_5.cjs.entry.js +10 -10
  157. package/dist/cjs/ion-checkbox.cjs.entry.js +7 -7
  158. package/dist/cjs/ion-chip.cjs.entry.js +4 -4
  159. package/dist/cjs/ion-col_3.cjs.entry.js +7 -7
  160. package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -4
  161. package/dist/cjs/ion-datetime_3.cjs.entry.js +10 -10
  162. package/dist/cjs/ion-fab_3.cjs.entry.js +8 -8
  163. package/dist/cjs/ion-img.cjs.entry.js +3 -3
  164. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +5 -5
  165. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +5 -5
  166. package/dist/cjs/ion-input.cjs.entry.js +14 -5
  167. package/dist/cjs/ion-item-option_3.cjs.entry.js +6 -6
  168. package/dist/cjs/ion-item_8.cjs.entry.js +15 -15
  169. package/dist/cjs/ion-loading.cjs.entry.js +6 -6
  170. package/dist/cjs/ion-menu_3.cjs.entry.js +11 -11
  171. package/dist/cjs/ion-modal.cjs.entry.js +52 -28
  172. package/dist/cjs/ion-nav_2.cjs.entry.js +5 -5
  173. package/dist/cjs/ion-picker-column-option.cjs.entry.js +4 -4
  174. package/dist/cjs/ion-picker-column.cjs.entry.js +5 -5
  175. package/dist/cjs/ion-picker.cjs.entry.js +3 -3
  176. package/dist/cjs/ion-popover.cjs.entry.js +9 -9
  177. package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -3
  178. package/dist/cjs/ion-radio_2.cjs.entry.js +8 -8
  179. package/dist/cjs/ion-range.cjs.entry.js +5 -5
  180. package/dist/cjs/ion-refresher_2.cjs.entry.js +4 -4
  181. package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
  182. package/dist/cjs/ion-ripple-effect.cjs.entry.js +3 -3
  183. package/dist/cjs/ion-route_4.cjs.entry.js +4 -4
  184. package/dist/cjs/ion-searchbar.cjs.entry.js +6 -6
  185. package/dist/cjs/ion-segment_2.cjs.entry.js +7 -7
  186. package/dist/cjs/ion-select_3.cjs.entry.js +8 -8
  187. package/dist/cjs/ion-spinner.cjs.entry.js +3 -3
  188. package/dist/cjs/ion-split-pane.cjs.entry.js +4 -4
  189. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +6 -6
  190. package/dist/cjs/ion-tab_2.cjs.entry.js +4 -4
  191. package/dist/cjs/ion-text.cjs.entry.js +4 -4
  192. package/dist/cjs/ion-textarea.cjs.entry.js +4 -4
  193. package/dist/cjs/ion-toast.cjs.entry.js +6 -6
  194. package/dist/cjs/ion-toggle.cjs.entry.js +7 -7
  195. package/dist/cjs/{ionic-global-1adf9bc4.js → ionic-global-f3622afe.js} +1 -1
  196. package/dist/cjs/ionic.cjs.js +30 -32
  197. package/dist/cjs/{ios.transition-06673f18.js → ios.transition-288dfa83.js} +2 -2
  198. package/dist/cjs/loader.cjs.js +3 -3
  199. package/dist/cjs/{md.transition-4d7bb4b1.js → md.transition-6e5f6a8d.js} +2 -2
  200. package/dist/cjs/{overlays-6487955a.js → overlays-32cfd236.js} +2 -2
  201. package/dist/cjs/{status-tap-0be20572.js → status-tap-c47ff5f5.js} +1 -1
  202. package/dist/collection/collection-manifest.json +2 -2
  203. package/dist/collection/components/action-sheet/action-sheet.js +3 -3
  204. package/dist/collection/components/alert/alert.js +2 -2
  205. package/dist/collection/components/app/app.js +1 -1
  206. package/dist/collection/components/avatar/avatar.js +1 -1
  207. package/dist/collection/components/back-button/back-button.js +2 -2
  208. package/dist/collection/components/backdrop/backdrop.js +1 -1
  209. package/dist/collection/components/badge/badge.js +2 -2
  210. package/dist/collection/components/breadcrumb/breadcrumb.js +4 -4
  211. package/dist/collection/components/breadcrumbs/breadcrumbs.js +2 -2
  212. package/dist/collection/components/button/button.ios.css +47 -8
  213. package/dist/collection/components/button/button.js +2 -2
  214. package/dist/collection/components/button/button.md.css +49 -8
  215. package/dist/collection/components/buttons/buttons.js +2 -2
  216. package/dist/collection/components/card/card.js +1 -1
  217. package/dist/collection/components/card-content/card-content.js +1 -1
  218. package/dist/collection/components/card-header/card-header.js +2 -2
  219. package/dist/collection/components/card-subtitle/card-subtitle.js +2 -2
  220. package/dist/collection/components/card-title/card-title.js +2 -2
  221. package/dist/collection/components/checkbox/checkbox.ios.css +1 -0
  222. package/dist/collection/components/checkbox/checkbox.js +3 -3
  223. package/dist/collection/components/checkbox/checkbox.md.css +1 -0
  224. package/dist/collection/components/chip/chip.js +2 -2
  225. package/dist/collection/components/col/col.js +2 -2
  226. package/dist/collection/components/content/content.js +3 -3
  227. package/dist/collection/components/datetime/datetime.js +2 -2
  228. package/dist/collection/components/datetime/test/color/datetime.e2e.js +14 -7
  229. package/dist/collection/components/datetime-button/datetime-button.js +2 -2
  230. package/dist/collection/components/fab/fab.js +2 -2
  231. package/dist/collection/components/fab-button/fab-button.js +2 -2
  232. package/dist/collection/components/fab-list/fab-list.js +2 -2
  233. package/dist/collection/components/footer/footer.js +2 -2
  234. package/dist/collection/components/grid/grid.js +2 -2
  235. package/dist/collection/components/header/header.js +2 -2
  236. package/dist/collection/components/img/img.js +1 -1
  237. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  238. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  239. package/dist/collection/components/input/input.js +13 -4
  240. package/dist/collection/components/input-password-toggle/input-password-toggle.js +3 -3
  241. package/dist/collection/components/item/item.js +1 -1
  242. package/dist/collection/components/item-divider/item-divider.js +2 -2
  243. package/dist/collection/components/item-group/item-group.js +1 -1
  244. package/dist/collection/components/item-option/item-option.js +2 -2
  245. package/dist/collection/components/item-options/item-options.js +1 -1
  246. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  247. package/dist/collection/components/label/label.js +2 -2
  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/menu/menu.js +2 -2
  252. package/dist/collection/components/menu-button/menu-button.js +2 -2
  253. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  254. package/dist/collection/components/modal/gestures/sheet.js +45 -20
  255. package/dist/collection/components/modal/modal.js +4 -4
  256. package/dist/collection/components/nav/nav.js +1 -1
  257. package/dist/collection/components/nav-link/nav-link.js +1 -1
  258. package/dist/collection/components/note/note.js +2 -2
  259. package/dist/collection/components/picker/picker.js +2 -2
  260. package/dist/collection/components/picker-column/picker-column.js +3 -3
  261. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  262. package/dist/collection/components/picker-legacy/picker.js +2 -2
  263. package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
  264. package/dist/collection/components/popover/popover.ios.css +0 -1
  265. package/dist/collection/components/popover/popover.js +2 -2
  266. package/dist/collection/components/popover/popover.md.css +0 -1
  267. package/dist/collection/components/popover/test/basic/popover.e2e.js +76 -0
  268. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  269. package/dist/collection/components/radio/radio.ios.css +1 -0
  270. package/dist/collection/components/radio/radio.js +3 -3
  271. package/dist/collection/components/radio/radio.md.css +1 -0
  272. package/dist/collection/components/radio-group/radio-group.js +1 -1
  273. package/dist/collection/components/range/range.js +3 -3
  274. package/dist/collection/components/refresher/refresher.js +1 -1
  275. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  276. package/dist/collection/components/reorder/reorder.js +1 -1
  277. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  278. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  279. package/dist/collection/components/router-link/router-link.js +2 -2
  280. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  281. package/dist/collection/components/row/row.js +1 -1
  282. package/dist/collection/components/searchbar/searchbar.js +5 -5
  283. package/dist/collection/components/segment/segment.js +2 -2
  284. package/dist/collection/components/segment-button/segment-button.js +3 -3
  285. package/dist/collection/components/select/select.js +2 -2
  286. package/dist/collection/components/select-option/select-option.js +1 -1
  287. package/dist/collection/components/select-popover/select-popover.js +1 -1
  288. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  289. package/dist/collection/components/spinner/spinner.js +1 -1
  290. package/dist/collection/components/split-pane/split-pane.js +2 -2
  291. package/dist/collection/components/tab/tab.js +2 -2
  292. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  293. package/dist/collection/components/tab-button/tab-button.js +2 -2
  294. package/dist/collection/components/tabs/tabs.js +1 -1
  295. package/dist/collection/components/text/text.js +2 -2
  296. package/dist/collection/components/textarea/textarea.js +2 -2
  297. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  298. package/dist/collection/components/title/title.js +2 -2
  299. package/dist/collection/components/toast/toast.js +2 -2
  300. package/dist/collection/components/toggle/test/enable-on-off-labels/toggle.e2e.js +51 -31
  301. package/dist/collection/components/toggle/toggle.ios.css +1 -0
  302. package/dist/collection/components/toggle/toggle.js +3 -3
  303. package/dist/collection/components/toggle/toggle.md.css +1 -0
  304. package/dist/collection/components/toolbar/test/basic/toolbar.e2e.js +133 -5
  305. package/dist/collection/components/toolbar/toolbar.js +2 -2
  306. package/dist/collection/utils/input-shims/hacks/scroll-assist.js +5 -5
  307. package/dist/collection/utils/test/playwright/page/utils/goto.js +12 -3
  308. package/dist/docs.json +31 -31
  309. package/dist/esm/{app-globals-b8e5e7fa.js → app-globals-3cbaf9d9.js} +1 -1
  310. package/dist/esm/{button-active-a411da52.js → button-active-9e3c1f3b.js} +1 -1
  311. package/dist/esm/{hardware-back-button-329c81fd.js → hardware-back-button-804f43bb.js} +2 -2
  312. package/dist/esm/index-5dc2b88e.js +11942 -0
  313. package/dist/esm/{index-10916999.js → index-8dbae644.js} +2 -2
  314. package/dist/esm/{index-f1f5de26.js → index-f7fbe1fb.js} +3 -3
  315. package/dist/esm/index.js +8 -8
  316. package/dist/esm/{input-shims-4530285e.js → input-shims-0314bbe5.js} +5 -5
  317. package/dist/esm/ion-accordion_2.entry.js +2 -2
  318. package/dist/esm/ion-action-sheet.entry.js +8 -8
  319. package/dist/esm/ion-alert.entry.js +7 -7
  320. package/dist/esm/ion-app_8.entry.js +22 -22
  321. package/dist/esm/ion-avatar_3.entry.js +6 -6
  322. package/dist/esm/ion-back-button.entry.js +4 -4
  323. package/dist/esm/ion-backdrop.entry.js +3 -3
  324. package/dist/esm/ion-breadcrumb_2.entry.js +8 -8
  325. package/dist/esm/ion-button_2.entry.js +6 -6
  326. package/dist/esm/ion-card_5.entry.js +10 -10
  327. package/dist/esm/ion-checkbox.entry.js +7 -7
  328. package/dist/esm/ion-chip.entry.js +4 -4
  329. package/dist/esm/ion-col_3.entry.js +7 -7
  330. package/dist/esm/ion-datetime-button.entry.js +4 -4
  331. package/dist/esm/ion-datetime_3.entry.js +10 -10
  332. package/dist/esm/ion-fab_3.entry.js +8 -8
  333. package/dist/esm/ion-img.entry.js +3 -3
  334. package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
  335. package/dist/esm/ion-input-password-toggle.entry.js +5 -5
  336. package/dist/esm/ion-input.entry.js +14 -5
  337. package/dist/esm/ion-item-option_3.entry.js +6 -6
  338. package/dist/esm/ion-item_8.entry.js +15 -15
  339. package/dist/esm/ion-loading.entry.js +6 -6
  340. package/dist/esm/ion-menu_3.entry.js +11 -11
  341. package/dist/esm/ion-modal.entry.js +52 -28
  342. package/dist/esm/ion-nav_2.entry.js +5 -5
  343. package/dist/esm/ion-picker-column-option.entry.js +4 -4
  344. package/dist/esm/ion-picker-column.entry.js +5 -5
  345. package/dist/esm/ion-picker.entry.js +3 -3
  346. package/dist/esm/ion-popover.entry.js +9 -9
  347. package/dist/esm/ion-progress-bar.entry.js +3 -3
  348. package/dist/esm/ion-radio_2.entry.js +8 -8
  349. package/dist/esm/ion-range.entry.js +5 -5
  350. package/dist/esm/ion-refresher_2.entry.js +4 -4
  351. package/dist/esm/ion-reorder_2.entry.js +4 -4
  352. package/dist/esm/ion-ripple-effect.entry.js +3 -3
  353. package/dist/esm/ion-route_4.entry.js +4 -4
  354. package/dist/esm/ion-searchbar.entry.js +6 -6
  355. package/dist/esm/ion-segment_2.entry.js +7 -7
  356. package/dist/esm/ion-select_3.entry.js +8 -8
  357. package/dist/esm/ion-spinner.entry.js +3 -3
  358. package/dist/esm/ion-split-pane.entry.js +4 -4
  359. package/dist/esm/ion-tab-bar_2.entry.js +6 -6
  360. package/dist/esm/ion-tab_2.entry.js +4 -4
  361. package/dist/esm/ion-text.entry.js +4 -4
  362. package/dist/esm/ion-textarea.entry.js +4 -4
  363. package/dist/esm/ion-toast.entry.js +6 -6
  364. package/dist/esm/ion-toggle.entry.js +7 -7
  365. package/dist/esm/{ionic-global-c4e0c089.js → ionic-global-d2d8f882.js} +1 -1
  366. package/dist/esm/ionic.js +31 -33
  367. package/dist/esm/{ios.transition-8e181a7e.js → ios.transition-a0041e41.js} +2 -2
  368. package/dist/esm/loader.js +4 -4
  369. package/dist/esm/{md.transition-f1c3c737.js → md.transition-0c0602d9.js} +2 -2
  370. package/dist/esm/{overlays-9472c98b.js → overlays-696d25f5.js} +2 -2
  371. package/dist/esm/{status-tap-39da9160.js → status-tap-37a74d1c.js} +1 -1
  372. package/dist/esm-es5/app-globals-3cbaf9d9.js +4 -0
  373. package/dist/esm-es5/{button-active-a411da52.js → button-active-9e3c1f3b.js} +1 -1
  374. package/dist/esm-es5/{hardware-back-button-329c81fd.js → hardware-back-button-804f43bb.js} +1 -1
  375. package/dist/esm-es5/index-5dc2b88e.js +18 -0
  376. package/dist/esm-es5/{index-10916999.js → index-8dbae644.js} +1 -1
  377. package/dist/esm-es5/{index-f1f5de26.js → index-f7fbe1fb.js} +1 -1
  378. package/dist/esm-es5/index.js +1 -1
  379. package/dist/esm-es5/input-shims-0314bbe5.js +4 -0
  380. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  381. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  382. package/dist/esm-es5/ion-alert.entry.js +1 -1
  383. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  384. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  385. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  386. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  387. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  388. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  389. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  390. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  391. package/dist/esm-es5/ion-chip.entry.js +1 -1
  392. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  393. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  394. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  395. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  396. package/dist/esm-es5/ion-img.entry.js +1 -1
  397. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  398. package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
  399. package/dist/esm-es5/ion-input.entry.js +1 -1
  400. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  401. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  402. package/dist/esm-es5/ion-loading.entry.js +1 -1
  403. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  404. package/dist/esm-es5/ion-modal.entry.js +1 -1
  405. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  406. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  407. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  408. package/dist/esm-es5/ion-picker.entry.js +1 -1
  409. package/dist/esm-es5/ion-popover.entry.js +1 -1
  410. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  411. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  412. package/dist/esm-es5/ion-range.entry.js +1 -1
  413. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  414. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  415. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  416. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  417. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  418. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  419. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  420. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  421. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  422. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  423. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  424. package/dist/esm-es5/ion-text.entry.js +1 -1
  425. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  426. package/dist/esm-es5/ion-toast.entry.js +1 -1
  427. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  428. package/dist/esm-es5/{ionic-global-c4e0c089.js → ionic-global-d2d8f882.js} +1 -1
  429. package/dist/esm-es5/ionic.js +1 -1
  430. package/dist/esm-es5/{ios.transition-8e181a7e.js → ios.transition-a0041e41.js} +1 -1
  431. package/dist/esm-es5/loader.js +1 -1
  432. package/dist/esm-es5/md.transition-0c0602d9.js +4 -0
  433. package/dist/esm-es5/{overlays-9472c98b.js → overlays-696d25f5.js} +1 -1
  434. package/dist/esm-es5/{status-tap-39da9160.js → status-tap-37a74d1c.js} +1 -1
  435. package/dist/html.html-data.json +18 -18
  436. package/dist/ionic/index.esm.js +1 -1
  437. package/dist/ionic/ionic.esm.js +1 -1
  438. package/dist/ionic/ionic.js +1 -1
  439. package/dist/ionic/{p-6a7eac5a.js → p-051d2d23.js} +1 -1
  440. package/dist/ionic/p-057b5866.entry.js +4 -0
  441. package/dist/ionic/{p-546433d2.js → p-06d5221c.js} +1 -1
  442. package/dist/ionic/{p-266fc56e.system.js → p-06fad524.system.js} +1 -1
  443. package/dist/ionic/p-08c4d048.entry.js +4 -0
  444. package/dist/ionic/p-0af79ebd.entry.js +4 -0
  445. package/dist/ionic/{p-04070329.system.entry.js → p-0b12d1ee.system.entry.js} +1 -1
  446. package/dist/ionic/p-0d56dea9.entry.js +4 -0
  447. package/dist/ionic/p-0d960144.system.entry.js +4 -0
  448. package/dist/ionic/{p-4511ba0e.system.entry.js → p-13bfcef4.system.entry.js} +1 -1
  449. package/dist/ionic/{p-25575222.system.js → p-16016625.system.js} +1 -1
  450. package/dist/ionic/{p-d98c0112.entry.js → p-1930d8e7.entry.js} +1 -1
  451. package/dist/ionic/{p-5033128d.system.js → p-1980c728.system.js} +2 -2
  452. package/dist/ionic/{p-49b6fee0.system.entry.js → p-1a5227b3.system.entry.js} +1 -1
  453. package/dist/ionic/{p-9d7fc908.system.js → p-1e4d7975.system.js} +1 -1
  454. package/dist/ionic/{p-75cddcc9.js → p-20304962.js} +1 -1
  455. package/dist/ionic/p-23e440b6.entry.js +4 -0
  456. package/dist/ionic/{p-46111310.js → p-2690b1de.js} +1 -1
  457. package/dist/ionic/{p-58ea73f7.system.entry.js → p-26d33af2.system.entry.js} +1 -1
  458. package/dist/ionic/{p-2f6cedaf.system.entry.js → p-283fd4e1.system.entry.js} +1 -1
  459. package/dist/ionic/{p-4429fc97.system.entry.js → p-2a3e98fb.system.entry.js} +1 -1
  460. package/dist/ionic/{p-07ae133d.system.entry.js → p-2ab5db0d.system.entry.js} +1 -1
  461. package/dist/ionic/{p-c9c39c98.system.entry.js → p-2b1e669d.system.entry.js} +1 -1
  462. package/dist/ionic/{p-51b68ec9.system.entry.js → p-2c3c7cb9.system.entry.js} +2 -2
  463. package/dist/ionic/p-2dfdda15.system.entry.js +4 -0
  464. package/dist/ionic/{p-1672c4fd.system.entry.js → p-2f308f7f.system.entry.js} +2 -2
  465. package/dist/ionic/p-2fa34b5c.entry.js +4 -0
  466. package/dist/ionic/p-32048e4c.system.js +18 -0
  467. package/dist/ionic/{p-fbd30ec7.entry.js → p-320cfcab.entry.js} +1 -1
  468. package/dist/ionic/{p-88cff52d.entry.js → p-33d926c3.entry.js} +1 -1
  469. package/dist/ionic/{p-6994c97a.js → p-34511b1d.js} +1 -1
  470. package/dist/ionic/{p-75280815.entry.js → p-385964e6.entry.js} +1 -1
  471. package/dist/ionic/{p-0f2d99a6.entry.js → p-3f5b86b4.entry.js} +1 -1
  472. package/dist/ionic/{p-fb02eeec.system.entry.js → p-42f00e72.system.entry.js} +1 -1
  473. package/dist/ionic/{p-7df2c495.entry.js → p-4324e8a4.entry.js} +1 -1
  474. package/dist/ionic/{p-716ab5f8.system.entry.js → p-45034312.system.entry.js} +1 -1
  475. package/dist/ionic/{p-d79542bd.system.js → p-45664cb9.system.js} +1 -1
  476. package/dist/ionic/{p-c04d5a75.entry.js → p-470f73c4.entry.js} +1 -1
  477. package/dist/ionic/{p-fab4ecad.system.entry.js → p-48888af6.system.entry.js} +2 -2
  478. package/dist/ionic/p-49cdc4f2.entry.js +4 -0
  479. package/dist/ionic/p-4ad48ec9.system.entry.js +4 -0
  480. package/dist/ionic/p-4af0b730.js +8 -0
  481. package/dist/ionic/{p-3c70b01b.entry.js → p-4c153abb.entry.js} +1 -1
  482. package/dist/ionic/{p-71215c1d.system.js → p-4e5288de.system.js} +1 -1
  483. package/dist/ionic/{p-ac4e2a74.system.entry.js → p-4e548bd7.system.entry.js} +1 -1
  484. package/dist/ionic/p-4fcef939.entry.js +4 -0
  485. package/dist/ionic/{p-ff2323ba.system.entry.js → p-53a3b33c.system.entry.js} +1 -1
  486. package/dist/ionic/{p-049fa018.system.entry.js → p-567a21a2.system.entry.js} +1 -1
  487. package/dist/ionic/{p-100bedc4.system.entry.js → p-576786c0.system.entry.js} +1 -1
  488. package/dist/ionic/{p-76907c2f.system.entry.js → p-583f8865.system.entry.js} +1 -1
  489. package/dist/ionic/p-58f89707.js +4 -0
  490. package/dist/ionic/p-5a3a3373.entry.js +4 -0
  491. package/dist/ionic/{p-5e7c32e8.system.entry.js → p-5d3a8503.system.entry.js} +1 -1
  492. package/dist/ionic/p-5d4d89e0.system.entry.js +4 -0
  493. package/dist/ionic/p-5d80b741.entry.js +4 -0
  494. package/dist/ionic/{p-510578f3.system.entry.js → p-5fbc2eae.system.entry.js} +1 -1
  495. package/dist/ionic/{p-71688099.system.entry.js → p-5ff497dc.system.entry.js} +1 -1
  496. package/dist/ionic/p-63265e00.system.entry.js +4 -0
  497. package/dist/ionic/{p-cae889f9.entry.js → p-6730a2f1.entry.js} +1 -1
  498. package/dist/ionic/{p-3e3b34f7.system.entry.js → p-6e9bd6ba.system.entry.js} +1 -1
  499. package/dist/ionic/p-70181008.entry.js +4 -0
  500. package/dist/ionic/p-720927ad.entry.js +4 -0
  501. package/dist/ionic/p-748e6b2b.system.entry.js +4 -0
  502. package/dist/ionic/{p-ea4be6ac.system.js → p-7536b4b3.system.js} +1 -1
  503. package/dist/ionic/{p-c222f76a.js → p-77ce6034.js} +1 -1
  504. package/dist/ionic/{p-b689b8d4.entry.js → p-7ef5bb32.entry.js} +1 -1
  505. package/dist/ionic/p-7f59064a.entry.js +4 -0
  506. package/dist/ionic/{p-d2544865.system.js → p-806aad8f.system.js} +1 -1
  507. package/dist/ionic/{p-a1b4e619.system.entry.js → p-80f85095.system.entry.js} +1 -1
  508. package/dist/ionic/{p-d8067ea4.system.entry.js → p-819e8479.system.entry.js} +1 -1
  509. package/dist/ionic/p-8627f783.system.entry.js +4 -0
  510. package/dist/ionic/{p-df48edd6.entry.js → p-8664c316.entry.js} +1 -1
  511. package/dist/ionic/{p-7d9eefb3.system.js → p-8c4fc85f.system.js} +1 -1
  512. package/dist/ionic/{p-fb97326f.system.entry.js → p-8caca06c.system.entry.js} +1 -1
  513. package/dist/ionic/{p-a88fdfac.entry.js → p-8e031d97.entry.js} +1 -1
  514. package/dist/ionic/p-8f48c966.system.entry.js +4 -0
  515. package/dist/ionic/p-9384565a.entry.js +4 -0
  516. package/dist/ionic/{p-d5f48185.system.entry.js → p-93e43f42.system.entry.js} +1 -1
  517. package/dist/ionic/{p-e8a0e731.entry.js → p-94180ecc.entry.js} +1 -1
  518. package/dist/ionic/p-94731a92.system.entry.js +4 -0
  519. package/dist/ionic/p-9b31ebfa.entry.js +4 -0
  520. package/dist/ionic/{p-43505ff8.system.entry.js → p-a592f1b8.system.entry.js} +1 -1
  521. package/dist/ionic/p-a801da4b.system.entry.js +4 -0
  522. package/dist/ionic/{p-c1d1d004.system.entry.js → p-aa0ed22b.system.entry.js} +1 -1
  523. package/dist/ionic/{p-a8f02173.system.js → p-aa0f60b2.system.js} +1 -1
  524. package/dist/ionic/p-adb896a0.entry.js +4 -0
  525. package/dist/ionic/{p-a7ba2dcc.system.js → p-b0093947.system.js} +1 -1
  526. package/dist/ionic/{p-99daf8b7.entry.js → p-b571cab1.entry.js} +1 -1
  527. package/dist/ionic/{p-0bbb6edf.system.entry.js → p-b76bcd9e.system.entry.js} +1 -1
  528. package/dist/ionic/{p-d8f66669.entry.js → p-b799a007.entry.js} +1 -1
  529. package/dist/ionic/{p-3d6e882f.system.entry.js → p-bbbe3138.system.entry.js} +1 -1
  530. package/dist/ionic/p-bd6d9610.entry.js +4 -0
  531. package/dist/ionic/{p-fda4872f.entry.js → p-bdd3053f.entry.js} +1 -1
  532. package/dist/ionic/{p-8e9ac22d.entry.js → p-c07e7a5d.entry.js} +1 -1
  533. package/dist/ionic/{p-5da04d11.entry.js → p-c23627c3.entry.js} +1 -1
  534. package/dist/ionic/{p-0ebb1fe7.system.entry.js → p-c3ca0292.system.entry.js} +1 -1
  535. package/dist/ionic/p-c4676693.entry.js +4 -0
  536. package/dist/ionic/p-c62571da.entry.js +4 -0
  537. package/dist/ionic/{p-3040730e.js → p-c671b28e.js} +1 -1
  538. package/dist/ionic/p-c7e0b81a.entry.js +4 -0
  539. package/dist/ionic/p-c9ba1908.entry.js +4 -0
  540. package/dist/ionic/{p-4dd82d9d.system.js → p-cb4f96f3.system.js} +1 -1
  541. package/dist/ionic/p-cc856712.entry.js +4 -0
  542. package/dist/ionic/{p-f4cb521c.js → p-cd1b9056.js} +1 -1
  543. package/dist/ionic/{p-ea2c16b5.system.entry.js → p-cdee3a44.system.entry.js} +2 -2
  544. package/dist/ionic/{p-54f76ced.js → p-d11c336d.js} +1 -1
  545. package/dist/ionic/{p-83321ee8.entry.js → p-d1a8f599.entry.js} +1 -1
  546. package/dist/ionic/{p-68a1e274.system.entry.js → p-d6229f05.system.entry.js} +1 -1
  547. package/dist/ionic/p-d918e7ef.system.entry.js +4 -0
  548. package/dist/ionic/p-df062892.system.entry.js +4 -0
  549. package/dist/ionic/p-dfb78785.system.js +4 -0
  550. package/dist/ionic/{p-105f7d62.system.entry.js → p-e3005be4.system.entry.js} +1 -1
  551. package/dist/ionic/p-e49099b0.entry.js +4 -0
  552. package/dist/ionic/p-e885f3c4.entry.js +4 -0
  553. package/dist/ionic/{p-8bd567ba.system.entry.js → p-e9ef13be.system.entry.js} +1 -1
  554. package/dist/ionic/p-ebe0aa6d.entry.js +4 -0
  555. package/dist/ionic/p-ee3bbaf2.entry.js +4 -0
  556. package/dist/ionic/p-f0be340f.entry.js +4 -0
  557. package/dist/ionic/p-f5c42f72.entry.js +4 -0
  558. package/dist/ionic/p-fc94e18f.entry.js +4 -0
  559. package/dist/ionic/p-fd392e7f.system.entry.js +4 -0
  560. package/dist/ionic/p-fdf40b09.js +4 -0
  561. package/dist/types/components/datetime/utils/manipulation.d.ts +7 -7
  562. package/dist/types/components/datetime/utils/state.d.ts +2 -2
  563. package/dist/types/components/input/input.utils.d.ts +1 -1
  564. package/dist/types/components/modal/animations/sheet.d.ts +4 -4
  565. package/dist/types/components/refresher/refresher.utils.d.ts +2 -2
  566. package/dist/types/utils/framework-delegate.d.ts +1 -1
  567. package/dist/types/utils/keyboard/keyboard-controller.d.ts +1 -1
  568. package/hydrate/index.d.ts +1 -1
  569. package/hydrate/index.js +13690 -8472
  570. package/package.json +7 -7
  571. package/dist/cjs/index-af6d0fbb.js +0 -3300
  572. package/dist/esm/index-6e4709ff.js +0 -3262
  573. package/dist/esm-es5/app-globals-b8e5e7fa.js +0 -4
  574. package/dist/esm-es5/index-6e4709ff.js +0 -5
  575. package/dist/esm-es5/input-shims-4530285e.js +0 -4
  576. package/dist/esm-es5/md.transition-f1c3c737.js +0 -4
  577. package/dist/ionic/p-0aa4682e.entry.js +0 -4
  578. package/dist/ionic/p-0de546bb.entry.js +0 -4
  579. package/dist/ionic/p-17978fce.entry.js +0 -4
  580. package/dist/ionic/p-1b235142.entry.js +0 -4
  581. package/dist/ionic/p-1cff9cad.entry.js +0 -4
  582. package/dist/ionic/p-1f9cdee2.entry.js +0 -4
  583. package/dist/ionic/p-23b89985.entry.js +0 -4
  584. package/dist/ionic/p-2e12bda2.entry.js +0 -4
  585. package/dist/ionic/p-3391d9a3.entry.js +0 -4
  586. package/dist/ionic/p-352f7037.system.entry.js +0 -4
  587. package/dist/ionic/p-35b9e842.entry.js +0 -4
  588. package/dist/ionic/p-3f70bfba.entry.js +0 -4
  589. package/dist/ionic/p-46f407f0.system.js +0 -4
  590. package/dist/ionic/p-4a615fea.entry.js +0 -4
  591. package/dist/ionic/p-51ff648c.entry.js +0 -4
  592. package/dist/ionic/p-56c3b69c.entry.js +0 -4
  593. package/dist/ionic/p-596e0cf8.system.entry.js +0 -4
  594. package/dist/ionic/p-5ae49f12.entry.js +0 -4
  595. package/dist/ionic/p-5b1273f4.system.entry.js +0 -4
  596. package/dist/ionic/p-5d3f6707.entry.js +0 -4
  597. package/dist/ionic/p-65d26d94.system.entry.js +0 -4
  598. package/dist/ionic/p-6744e460.entry.js +0 -4
  599. package/dist/ionic/p-69bc14fd.entry.js +0 -4
  600. package/dist/ionic/p-6f4db5ce.system.entry.js +0 -4
  601. package/dist/ionic/p-74a9cafe.system.js +0 -5
  602. package/dist/ionic/p-7fc505bf.entry.js +0 -4
  603. package/dist/ionic/p-896111fa.entry.js +0 -4
  604. package/dist/ionic/p-9ad82dba.js +0 -5
  605. package/dist/ionic/p-a1f9f629.system.entry.js +0 -4
  606. package/dist/ionic/p-aa110ca0.system.entry.js +0 -4
  607. package/dist/ionic/p-aa4f2703.system.entry.js +0 -4
  608. package/dist/ionic/p-ab85debb.entry.js +0 -4
  609. package/dist/ionic/p-ac9f44a8.system.entry.js +0 -4
  610. package/dist/ionic/p-bb835b4d.system.entry.js +0 -4
  611. package/dist/ionic/p-c198e1e1.system.entry.js +0 -4
  612. package/dist/ionic/p-c41af68a.entry.js +0 -4
  613. package/dist/ionic/p-c80d05c9.js +0 -4
  614. package/dist/ionic/p-c8510ca2.entry.js +0 -4
  615. package/dist/ionic/p-c8f2b769.entry.js +0 -4
  616. package/dist/ionic/p-c99ccdc9.entry.js +0 -4
  617. package/dist/ionic/p-dc1372e0.entry.js +0 -4
  618. package/dist/ionic/p-df6fa126.entry.js +0 -4
  619. package/dist/ionic/p-eb3da535.system.entry.js +0 -4
  620. package/dist/ionic/p-ec2d3928.system.entry.js +0 -4
  621. package/dist/ionic/p-f0392d49.entry.js +0 -4
  622. package/dist/ionic/p-f818b01a.entry.js +0 -4
  623. package/dist/ionic/p-f94cbfe9.js +0 -4
@@ -51,11 +51,11 @@ export class TabBar {
51
51
  const { color, translucent, keyboardVisible } = this;
52
52
  const mode = getIonMode(this);
53
53
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
54
- return (h(Host, { key: '1a8f53e428102e3433006244351fd45616d469f3', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses(color, {
54
+ return (h(Host, { key: '77fe8ff42b083bfdb5e01a9873ef45b6f3ce3744', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses(color, {
55
55
  [mode]: true,
56
56
  'tab-bar-translucent': translucent,
57
57
  'tab-bar-hidden': shouldHide,
58
- }) }, h("slot", { key: 'f7b344751801feeada1e1fbd3e35442b9cce578e' })));
58
+ }) }, h("slot", { key: 'd479c80ff66f4cfc12ab4a583bd292ef8392895e' })));
59
59
  }
60
60
  static get is() { return "ion-tab-bar"; }
61
61
  static get encapsulation() { return "shadow"; }
@@ -70,7 +70,7 @@ export class TabButton {
70
70
  rel,
71
71
  target,
72
72
  };
73
- return (h(Host, { key: '2311364c7e028b9e6658f78405983e895c5f30ed', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
73
+ return (h(Host, { key: '092250aa4c247411c4717bf3871bdd7a47b7177f', 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: 'a5835459b16a4c2db298de8cb75c78a88b349dcc' }, 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: 'e19e23bbb63f8ceb9e047fc4e3b518f824645398', class: "button-inner" }, h("slot", { key: 'f6cbfa231dde5f46147bccd99c40ab974be549b2' })), mode === 'md' && h("ion-ripple-effect", { type: "unbounded" }))));
85
+ } }, h("a", Object.assign({ key: '0414e9284005ce34ad69c4858f1b30aff00beb86' }, 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: 'df97b6b56fb86507d40e68caa49f888ee29f8da4', class: "button-inner" }, h("slot", { key: '715c209dd0cd61ac37b2813815014c685b7a92bc' })), mode === 'md' && h("ion-ripple-effect", { key: 'e6894153a563f63f4f7d84f2703cef0f7522d435', 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: '05f1607d092d5bef9f1f42dd46d4bec6caa58f15', onIonTabButtonClick: this.onTabClicked }, h("slot", { key: '8e175dbf3afeb76c0b3a794b3064a2191b1b5fbc', name: "top" }), h("div", { key: 'd7120d2f0dc58cca23c0854e042a4d4b8fde4db6', class: "tabs-inner" }, h("slot", { key: 'a3651076ad9ab1c6cf56a7b82172ff59930d1963' })), h("slot", { key: 'a719a23f813740dc2c03d21af0c2fe28f1b4f8bb', name: "bottom" })));
138
+ return (h(Host, { key: '13d9b30a83eb565b635ec7c547bd99da8c96aaa0', onIonTabButtonClick: this.onTabClicked }, h("slot", { key: 'd885dbf0134cd5d256f7e3e9fc4844636c2c6cbf', name: "top" }), h("div", { key: '2f48887902d47c0e29afb8da450da22b874b0e76', class: "tabs-inner" }, h("slot", { key: 'bcdb41418edc7d176e570c37bb6a6ba1dc123f7d' })), h("slot", { key: '85101e7c57cf8cda04bd3a125f1207faf85110d2', 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: '7481d3ae97e8623e9cdbf7702b16465f9aaa13bf', class: createColorClasses(this.color, {
16
+ return (h(Host, { key: '096d8ca01301500d61d9e92299e0cc78c2ad86e3', class: createColorClasses(this.color, {
17
17
  [mode]: true,
18
- }) }, h("slot", { key: 'ae2ed8d29d2e52914f0d38b804e1cdc8941c9c64' })));
18
+ }) }, h("slot", { key: '9399d939ec4f134c24c29bda8857cd348259c666' })));
19
19
  }
20
20
  static get is() { return "ion-text"; }
21
21
  static get encapsulation() { return "shadow"; }
@@ -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: 'bb02bfa6a2f0f80d98df5a556941dfe4e6167f1a', class: createColorClasses(this.color, {
362
+ return (h(Host, { key: 'b4cf1f37cacdd1775fefb874b87b30ba753fdc3a', 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: '1b94ad5bc71dd4441fe6d35690ba2d8e19e4f59c', class: "textarea-wrapper", htmlFor: inputId }, this.renderLabelContainer(), h("div", { key: 'cd3143f63bf715782f849a4d29549473d5ee9a80', class: "textarea-wrapper-inner" }, h("div", { key: 'bebcda4eed228f9742fb3446e5b5d27daf2d2dd4', class: "start-slot-wrapper" }, h("slot", { key: '4cc32fbeae35ae04914183abc4e300aa21863ec6', name: "start" })), h("div", { key: '6f43f54dd8e0a548bc8b376025fb8f914d705130', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, h("textarea", Object.assign({ key: '11b30015d9b5daf6781651a1d0111d2be893f4c6', 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: '7dc55f082b3268b78b1f8230ce81c9b870d945a8', class: "end-slot-wrapper" }, h("slot", { key: '054c0a7e052a301c00f8fe3cb975e61e7a7b4d3c', name: "end" }))), shouldRenderHighlight && h("div", { class: "textarea-highlight" })), this.renderBottomContent()));
371
+ }) }, h("label", { key: '71673192cf9d61dd072d9c0c3caefad313ed7129', class: "textarea-wrapper", htmlFor: inputId }, this.renderLabelContainer(), h("div", { key: '6ecfbc046cf6e14f0d58dca1bff7db2093620f01', class: "textarea-wrapper-inner" }, h("div", { key: '7d2410de5dd971f74406ab8a321d87709873fa22', class: "start-slot-wrapper" }, h("slot", { key: '061cc0dd516b2f3a4ad7199790028e5d525a3ab2', name: "start" })), h("div", { key: 'f75309006f7c4e835f346cecf243f104e37bd477', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, h("textarea", Object.assign({ key: 'ba47358352fcd30e659b7ac684ce2e5b83744150', 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: 'bebb8b585bc4e7adb9192665679cd7073e23240c', class: "end-slot-wrapper" }, h("slot", { key: '734f40dcc6a57771c00f7528fb19544bb68fc563', name: "end" }))), shouldRenderHighlight && h("div", { key: 'e5a1bbebc2e16cb1b3f2bce312494447a0b36957', class: "textarea-highlight" })), this.renderBottomContent()));
372
372
  }
373
373
  static get is() { return "ion-textarea"; }
374
374
  static get encapsulation() { return "scoped"; }
@@ -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: 'b1fe245cf42f0462336519d07afd6c91eef388cf', class: getIonMode(this) }, h("slot", { key: '5e0f575864fcd9ae03ec8f5f7eb915efcf568337' })));
8
+ return (h(Host, { key: '29ed7678be93e55afad58bd37a61db3a289a5d76', class: getIonMode(this) }, h("slot", { key: 'da1eb174d2544b9d452c98076f6e0abcda60099d' })));
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: '4e7a269caceb9cf7a71c3ba5dc15903a72203132', class: createColorClasses(this.color, {
30
+ return (h(Host, { key: '5cb49f3642fb3c937cdba729ab7d561213d9bce5', class: createColorClasses(this.color, {
31
31
  [mode]: true,
32
32
  [`title-${size}`]: true,
33
33
  'title-rtl': document.dir === 'rtl',
34
- }) }, h("div", { key: 'e42d43e85a57a2ac16579021df43ade524f1d9bf', class: "toolbar-title" }, h("slot", { key: '2319bcfdb2b79eec9c03db84bea2a9f133cc8576' }))));
34
+ }) }, h("div", { key: 'f089bf6cff17ab109fec7de8b1bf96bf33bede1f', class: "toolbar-title" }, h("slot", { key: 'ed74c4e77126a309970ff719baa6ebaebb00d2e6' }))));
35
35
  }
36
36
  static get is() { return "ion-title"; }
37
37
  static get encapsulation() { return "shadow"; }
@@ -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: 'ebab697ab245b8ffe7163c59ee059d143242845a', tabindex: "-1" }, this.htmlAttributes, { style: {
391
+ return (h(Host, Object.assign({ key: 'f3555e5e093ce5dc5114df2e7ed298afa79eee02', 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: '94d1bcbb17cb4ed81ec67d63ccf61822fedbed94', class: wrapperClass }, h("div", { key: 'd10a99dcdf94d70003b70dea7d965c05baefa934', 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: '6475020a6890eb79bb37638c0ad0267f1cbf89fb', 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: '3a98853e3b9c4c015a0e4035ad34f7fe02ec3b1c', class: wrapperClass }, h("div", { key: '3c3447ce2a1fd4aecc3f7da1c1bb0c504fb6fcf7', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h("ion-icon", { key: '40bb8c55ac8bf7ce283bf2cdeb5902e76ad911ca', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), h("div", { key: 'bfe843cce24b0205cdce48a544b294dcb0946eb4', 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"; }
@@ -3,39 +3,59 @@
3
3
  */
4
4
  import { expect } from "@playwright/test";
5
5
  import { configs, test } from "../../../../utils/test/playwright/index";
6
- configs().forEach(({ title, screenshot, config }) => {
7
- test.describe(title('toggle: enableOnOffLabels'), () => {
8
- test.beforeEach(async ({ page }) => {
9
- await page.goto(`/src/components/toggle/test/enable-on-off-labels`, config);
10
- });
6
+ configs({ palettes: ['light', 'dark'] }).forEach(({ title, screenshot, config }) => {
7
+ test.describe(title('toggle: enable-on-off-labels'), () => {
11
8
  test('should not have visual regressions', async ({ page }) => {
12
- await page.setIonViewport();
13
- await expect(page).toHaveScreenshot(screenshot(`toggle-on-off-labels-diff`));
14
- });
15
- });
16
- });
17
- /**
18
- * This behavior does not vary across directions
19
- */
20
- configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
21
- test.describe(title('toggle: dark mode'), () => {
22
- test.beforeEach(async ({ page }) => {
23
- await page.goto(`/src/components/toggle/test/enable-on-off-labels`, config);
9
+ await page.setContent(`
10
+ <style>
11
+ #container {
12
+ display: grid;
13
+ grid-template-columns: repeat(2, auto);
14
+ justify-content: space-evenly;
15
+ gap: 8px;
16
+ padding: 16px 0;
17
+ }
18
+ </style>
19
+
20
+ <div id="container">
21
+ <ion-toggle enable-on-off-labels="true">Unchecked</ion-toggle>
22
+ <ion-toggle enable-on-off-labels="true" checked>Checked</ion-toggle>
23
+ </div>
24
+ `, config);
25
+ const container = page.locator('#container');
26
+ await expect(container).toHaveScreenshot(screenshot(`toggle-on-off-labels`));
24
27
  });
25
- test('should not have visual regressions', async ({ page }) => {
26
- const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent');
27
- const ionPopoverDidDismiss = await page.spyOnEvent('ionPopoverDidDismiss');
28
- await page.click('#popover-trigger');
29
- await ionPopoverDidPresent.next();
30
- await page.click('#dark-mode');
31
- await page.evaluate(() => {
32
- const popover = document.querySelector('ion-popover');
33
- return popover === null || popover === void 0 ? void 0 : popover.dismiss();
34
- });
35
- await ionPopoverDidDismiss.next();
36
- await page.waitForChanges();
37
- await page.setIonViewport();
38
- await expect(page).toHaveScreenshot(screenshot(`toggle-on-off-labels-dark-mode-diff`));
28
+ test('should not have visual regressions with color', async ({ page }) => {
29
+ await page.setContent(`
30
+ <style>
31
+ #container {
32
+ display: grid;
33
+ grid-template-columns: repeat(2, auto);
34
+ justify-content: space-evenly;
35
+ gap: 8px;
36
+ padding: 16px 0;
37
+ }
38
+ </style>
39
+
40
+ <div id="container">
41
+ <ion-toggle color="secondary" enable-on-off-labels="true">Unchecked</ion-toggle>
42
+ <ion-toggle color="secondary" enable-on-off-labels="true" checked>Checked</ion-toggle>
43
+ <ion-toggle color="success" enable-on-off-labels="true">Unchecked</ion-toggle>
44
+ <ion-toggle color="success" enable-on-off-labels="true" checked>Checked</ion-toggle>
45
+ <ion-toggle color="danger" enable-on-off-labels="true">Unchecked</ion-toggle>
46
+ <ion-toggle color="danger" enable-on-off-labels="true" checked>Checked</ion-toggle>
47
+ <ion-toggle color="tertiary" enable-on-off-labels="true">Unchecked</ion-toggle>
48
+ <ion-toggle color="tertiary" enable-on-off-labels="true" checked>Checked</ion-toggle>
49
+ <ion-toggle color="light" enable-on-off-labels="true">Unchecked</ion-toggle>
50
+ <ion-toggle color="light" enable-on-off-labels="true" checked>Checked</ion-toggle>
51
+ <ion-toggle color="medium" enable-on-off-labels="true">Unchecked</ion-toggle>
52
+ <ion-toggle color="medium" enable-on-off-labels="true" checked>Checked</ion-toggle>
53
+ <ion-toggle color="dark" enable-on-off-labels="true">Unchecked</ion-toggle>
54
+ <ion-toggle color="dark" enable-on-off-labels="true" checked>Checked</ion-toggle>
55
+ </div>
56
+ `, config);
57
+ const container = page.locator('#container');
58
+ await expect(container).toHaveScreenshot(screenshot(`toggle-on-off-labels-color`));
39
59
  });
40
60
  });
41
61
  });
@@ -82,6 +82,7 @@
82
82
  }
83
83
 
84
84
  :host(.in-item) {
85
+ flex: 1 1 0;
85
86
  width: 100%;
86
87
  height: 100%;
87
88
  }
@@ -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: '9ea705862e0a6c8c3250d19d6487ba5a312557f4', onClick: this.onClick, class: createColorClasses(color, {
160
+ return (h(Host, { key: 'c945ab955306b2fcb7833f7ff771ac943d73d27d', 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: '6347141bd48c42c10f358bdf95ee5c3e9719f7e7', class: "toggle-wrapper" }, h("input", Object.assign({ key: 'a81935c322ccdec55723986bc69556833e057b7b', 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: '0ab294895807335c63c9a31685d861a9f75f0129', class: {
170
+ }) }, h("label", { key: '71fb6976e877639ca9f28c2103f6290917cdb6ce', class: "toggle-wrapper" }, h("input", Object.assign({ key: 'ed2495568197928ef1f17fc60470f4d9754a6244', 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: '953ab9a29c432de4b869aeac296007e703bcdf27', class: {
171
171
  'label-text-wrapper': true,
172
172
  'label-text-wrapper-hidden': !this.hasLabel,
173
- }, part: "label" }, h("slot", { key: '918de14911b5c1453ac1b817a92614d80fe81082' })), h("div", { key: 'f7f8b23c1de4eacdf912034286d51d88dde09699', class: "native-wrapper" }, this.renderToggleControl()))));
173
+ }, part: "label" }, h("slot", { key: '718b24b4d59b979c11edfb1d90fa0270ac248b2f' })), h("div", { key: '293595f9dc291df38a54e23f81797b89428ff2c5', class: "native-wrapper" }, this.renderToggleControl()))));
174
174
  }
175
175
  static get is() { return "ion-toggle"; }
176
176
  static get encapsulation() { return "shadow"; }
@@ -82,6 +82,7 @@
82
82
  }
83
83
 
84
84
  :host(.in-item) {
85
+ flex: 1 1 0;
85
86
  width: 100%;
86
87
  height: 100%;
87
88
  }
@@ -3,13 +3,141 @@
3
3
  */
4
4
  import { expect } from "@playwright/test";
5
5
  import { configs, test } from "../../../../utils/test/playwright/index";
6
- configs().forEach(({ title, screenshot, config }) => {
6
+ configs({ palettes: ['light', 'dark'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
7
+ test.describe(title('toolbar: basic (LTR only)'), () => {
8
+ test('should not have visual regressions with text only', async ({ page }) => {
9
+ await page.setContent(`
10
+ <ion-header>
11
+ <ion-toolbar>
12
+ <ion-title>Toolbar</ion-title>
13
+ </ion-toolbar>
14
+ </ion-header>
15
+ `, config);
16
+ const header = page.locator('ion-header');
17
+ await expect(header).toHaveScreenshot(screenshot(`toolbar-basic-text-only`));
18
+ });
19
+ });
20
+ });
21
+ configs({ palettes: ['light', 'dark'] }).forEach(({ title, screenshot, config }) => {
7
22
  test.describe(title('toolbar: basic'), () => {
8
- test('should not have visual regressions', async ({ page }) => {
9
- await page.goto(`/src/components/toolbar/test/basic`, config);
10
- // capture both header toolbars at once, but don't include all the white space in the ion-content
23
+ test('should truncate long title with ellipsis', async ({ page }) => {
24
+ await page.setContent(`
25
+ <ion-header>
26
+ <ion-toolbar>
27
+ <ion-title>This is the title that never ends. It just goes on and on my friend.</ion-title>
28
+ </ion-toolbar>
29
+ </ion-header>
30
+ `, config);
31
+ const header = page.locator('ion-header');
32
+ await expect(header).toHaveScreenshot(screenshot(`toolbar-basic-long-text`));
33
+ });
34
+ test('should not have visual regressions with icon-only buttons', async ({ page }) => {
35
+ await page.setContent(`
36
+ <ion-header>
37
+ <ion-toolbar>
38
+ <ion-buttons slot="secondary">
39
+ <ion-button>
40
+ <ion-icon slot="icon-only" name="person-circle"></ion-icon>
41
+ </ion-button>
42
+ <ion-button>
43
+ <ion-icon slot="icon-only" name="search"></ion-icon>
44
+ </ion-button>
45
+ </ion-buttons>
46
+ <ion-buttons slot="primary">
47
+ <ion-button color="secondary">
48
+ <ion-icon slot="icon-only" ios="ellipsis-horizontal" md="ellipsis-vertical"></ion-icon>
49
+ </ion-button>
50
+ </ion-buttons>
51
+ <ion-title>Toolbar</ion-title>
52
+ </ion-toolbar>
53
+ <ion-toolbar>
54
+ <ion-buttons slot="secondary">
55
+ <ion-button class="ion-activated">
56
+ <ion-icon slot="icon-only" name="person-circle"></ion-icon>
57
+ </ion-button>
58
+ <ion-button class="ion-activated">
59
+ <ion-icon slot="icon-only" name="search"></ion-icon>
60
+ </ion-button>
61
+ </ion-buttons>
62
+ <ion-buttons slot="primary">
63
+ <ion-button color="secondary" class="ion-activated">
64
+ <ion-icon slot="icon-only" ios="ellipsis-horizontal" md="ellipsis-vertical"></ion-icon>
65
+ </ion-button>
66
+ </ion-buttons>
67
+ <ion-title>Activated Buttons</ion-title>
68
+ </ion-toolbar>
69
+ </ion-header>
70
+ `, config);
71
+ const header = page.locator('ion-header');
72
+ await expect(header).toHaveScreenshot(screenshot(`toolbar-basic-icon-buttons`));
73
+ });
74
+ test('should not have visual regressions with buttons with icons and text', async ({ page }) => {
75
+ await page.setContent(`
76
+ <ion-header>
77
+ <ion-toolbar>
78
+ <ion-buttons slot="secondary">
79
+ <ion-button fill="solid">
80
+ <ion-icon slot="start" name="person-circle"></ion-icon>
81
+ Solid
82
+ </ion-button>
83
+ </ion-buttons>
84
+ <ion-title>Solid</ion-title>
85
+ <ion-buttons slot="primary">
86
+ <ion-button fill="solid" color="secondary">
87
+ Help
88
+ <ion-icon slot="end" name="help-circle"></ion-icon>
89
+ </ion-button>
90
+ </ion-buttons>
91
+ </ion-toolbar>
92
+ <ion-toolbar>
93
+ <ion-buttons slot="secondary">
94
+ <ion-button fill="solid" class="ion-activated">
95
+ <ion-icon slot="start" name="person-circle"></ion-icon>
96
+ Solid
97
+ </ion-button>
98
+ </ion-buttons>
99
+ <ion-title>Solid Activated</ion-title>
100
+ <ion-buttons slot="primary">
101
+ <ion-button fill="solid" color="secondary" class="ion-activated">
102
+ Help
103
+ <ion-icon slot="end" name="help-circle"></ion-icon>
104
+ </ion-button>
105
+ </ion-buttons>
106
+ </ion-toolbar>
107
+ <ion-toolbar>
108
+ <ion-buttons slot="secondary">
109
+ <ion-button fill="outline">
110
+ <ion-icon slot="start" name="star"></ion-icon>
111
+ Star
112
+ </ion-button>
113
+ </ion-buttons>
114
+ <ion-title>Outline</ion-title>
115
+ <ion-buttons slot="primary">
116
+ <ion-button color="secondary" fill="outline">
117
+ Info
118
+ <ion-icon slot="end" name="information-circle"></ion-icon>
119
+ </ion-button>
120
+ </ion-buttons>
121
+ </ion-toolbar>
122
+ <ion-toolbar>
123
+ <ion-buttons slot="secondary">
124
+ <ion-button fill="outline" class="ion-activated">
125
+ <ion-icon slot="start" name="star"></ion-icon>
126
+ Star
127
+ </ion-button>
128
+ </ion-buttons>
129
+ <ion-title>Outline Activated</ion-title>
130
+ <ion-buttons slot="primary">
131
+ <ion-button color="secondary" fill="outline" class="ion-activated">
132
+ Info
133
+ <ion-icon slot="end" name="information-circle"></ion-icon>
134
+ </ion-button>
135
+ </ion-buttons>
136
+ </ion-toolbar>
137
+ </ion-header>
138
+ `, config);
11
139
  const header = page.locator('ion-header');
12
- await expect(header).toHaveScreenshot(screenshot(`toolbar-basic`));
140
+ await expect(header).toHaveScreenshot(screenshot(`toolbar-basic-text-icon-buttons`));
13
141
  });
14
142
  });
15
143
  });
@@ -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: 'f11da98ce3398f95930cd6f5b95783a5b658e206', class: Object.assign(Object.assign({}, childStyles), createColorClasses(this.color, {
65
+ return (h(Host, { key: 'af016bf9981a2d6182783c6643e2d460245ecc2f', 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: '2e473c8bebf448f411ec1a579f0c81eb05310c56', class: "toolbar-background" }), h("div", { key: 'cf2d7c69bc028410338942aaea37527c570ccec5', class: "toolbar-container" }, h("slot", { key: '445cbd5299188eef4761c605b4a8d20a61079590', name: "start" }), h("slot", { key: '77675b5c0c0afffe5251ba271f5db23f87339859', name: "secondary" }), h("div", { key: '7d5967c4ad6c0fca7573aa48da707c8b0dfcd052', class: "toolbar-content" }, h("slot", { key: 'ad5530d63df9ca101760fb9f71e3641c66e95b6c' })), h("slot", { key: '35837ac1b7a4a59f000149d480900bc19015b258', name: "primary" }), h("slot", { key: '504904cf46e2190dd0a3aa5b7855b5fc54f73726', name: "end" }))));
68
+ })) }, h("div", { key: '437debb5b7c561b315d887ae8d47186cba5521ce', class: "toolbar-background" }), h("div", { key: '4c2429fa3e8526fedf456e4658be92d5dce8ca34', class: "toolbar-container" }, h("slot", { key: '4c07db12cfc48b4836b566449b854c24db308e3a', name: "start" }), h("slot", { key: '12855ec04622c09cc404f9b4f07f57a73e5770a0', name: "secondary" }), h("div", { key: '56f37d52c91de2b76910defbc9e5b7c1def3861c', class: "toolbar-content" }, h("slot", { key: 'c10ec3fdbea10a6388f4f510d45188f7fda1a371' })), h("slot", { key: 'c8ed49c6888faf35e71f2a8f4f6bf98fb0c34a25', name: "primary" }), h("slot", { key: '0251f3980082a092304f95cbc002bc8c633c5739', name: "end" }))));
69
69
  }
70
70
  static get is() { return "ion-toolbar"; }
71
71
  static get encapsulation() { return "shadow"; }
@@ -96,7 +96,7 @@ export const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, ke
96
96
  const focusOut = () => {
97
97
  hasKeyboardBeenPresentedForTextField = false;
98
98
  win === null || win === void 0 ? void 0 : win.removeEventListener('ionKeyboardDidShow', keyboardShow);
99
- componentEl.removeEventListener('focusout', focusOut, true);
99
+ componentEl.removeEventListener('focusout', focusOut);
100
100
  };
101
101
  /**
102
102
  * When the input is about to receive
@@ -116,13 +116,13 @@ export const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, ke
116
116
  }
117
117
  jsSetFocus(componentEl, inputEl, contentEl, footerEl, keyboardHeight, addScrollPadding, disableClonedInput, platformHeight);
118
118
  win === null || win === void 0 ? void 0 : win.addEventListener('ionKeyboardDidShow', keyboardShow);
119
- componentEl.addEventListener('focusout', focusOut, true);
119
+ componentEl.addEventListener('focusout', focusOut);
120
120
  };
121
- componentEl.addEventListener('focusin', focusIn, true);
121
+ componentEl.addEventListener('focusin', focusIn);
122
122
  return () => {
123
- componentEl.removeEventListener('focusin', focusIn, true);
123
+ componentEl.removeEventListener('focusin', focusIn);
124
124
  win === null || win === void 0 ? void 0 : win.removeEventListener('ionKeyboardDidShow', keyboardShow);
125
- componentEl.removeEventListener('focusout', focusOut, true);
125
+ componentEl.removeEventListener('focusout', focusOut);
126
126
  };
127
127
  };
128
128
  /**
@@ -9,7 +9,7 @@
9
9
  * to be hydrated before proceeding with the test.
10
10
  */
11
11
  export const goto = async (page, url, testInfo, originalFn, options) => {
12
- var _a, _b, _c;
12
+ var _a, _b, _c, _d;
13
13
  if (options === undefined && testInfo.project.metadata.mode === undefined) {
14
14
  throw new Error(`
15
15
  A config must be passed to page.goto to use a generator test:
@@ -22,13 +22,16 @@ configs().forEach(({ config, title }) => {
22
22
  }
23
23
  let mode;
24
24
  let direction;
25
+ let palette;
25
26
  if (options == undefined) {
26
27
  mode = testInfo.project.metadata.mode;
27
28
  direction = testInfo.project.metadata.rtl ? 'rtl' : 'ltr';
29
+ palette = testInfo.project.metadata.palette;
28
30
  }
29
31
  else {
30
32
  mode = options.mode;
31
33
  direction = options.direction;
34
+ palette = options.palette;
32
35
  }
33
36
  const rtlString = direction === 'rtl' ? 'true' : undefined;
34
37
  const splitUrl = url.split('?');
@@ -40,12 +43,14 @@ configs().forEach(({ config, title }) => {
40
43
  const urlToParams = new URLSearchParams(paramsString);
41
44
  const formattedMode = (_a = urlToParams.get('ionic:mode')) !== null && _a !== void 0 ? _a : mode;
42
45
  const formattedRtl = (_b = urlToParams.get('rtl')) !== null && _b !== void 0 ? _b : rtlString;
43
- const ionicTesting = (_c = urlToParams.get('ionic:_testing')) !== null && _c !== void 0 ? _c : true;
46
+ const formattedPalette = (_c = urlToParams.get('palette')) !== null && _c !== void 0 ? _c : palette;
47
+ const ionicTesting = (_d = urlToParams.get('ionic:_testing')) !== null && _d !== void 0 ? _d : true;
44
48
  /**
45
49
  * Pass through other custom query params
46
50
  */
47
51
  urlToParams.delete('ionic:mode');
48
52
  urlToParams.delete('rtl');
53
+ urlToParams.delete('palette');
49
54
  urlToParams.delete('ionic:_testing');
50
55
  /**
51
56
  * Convert remaining query params to a string.
@@ -54,7 +59,7 @@ configs().forEach(({ config, title }) => {
54
59
  */
55
60
  const remainingQueryParams = decodeURIComponent(urlToParams.toString());
56
61
  const remainingQueryParamsString = remainingQueryParams == '' ? '' : `&${remainingQueryParams}`;
57
- const formattedUrl = `${splitUrl[0]}?ionic:_testing=${ionicTesting}&ionic:mode=${formattedMode}&rtl=${formattedRtl}${remainingQueryParamsString}`;
62
+ const formattedUrl = `${splitUrl[0]}?ionic:_testing=${ionicTesting}&ionic:mode=${formattedMode}&rtl=${formattedRtl}&palette=${formattedPalette}${remainingQueryParamsString}`;
58
63
  testInfo.annotations.push({
59
64
  type: 'mode',
60
65
  description: formattedMode,
@@ -63,6 +68,10 @@ configs().forEach(({ config, title }) => {
63
68
  type: 'direction',
64
69
  description: formattedRtl === 'true' ? 'rtl' : 'ltr',
65
70
  });
71
+ testInfo.annotations.push({
72
+ type: 'palette',
73
+ description: formattedPalette,
74
+ });
66
75
  const result = await Promise.all([
67
76
  page.waitForFunction(() => window.testAppLoaded === true, { timeout: 4750 }),
68
77
  originalFn(formattedUrl, options),