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

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 (608) 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/ion-app.js +1 -1
  8. package/components/ion-avatar.js +1 -1
  9. package/components/ion-back-button.js +2 -2
  10. package/components/ion-badge.js +2 -2
  11. package/components/ion-breadcrumb.js +4 -4
  12. package/components/ion-breadcrumbs.js +2 -2
  13. package/components/ion-card-content.js +1 -1
  14. package/components/ion-card-header.js +2 -2
  15. package/components/ion-card-subtitle.js +2 -2
  16. package/components/ion-card-title.js +2 -2
  17. package/components/ion-card.js +1 -1
  18. package/components/ion-chip.js +2 -2
  19. package/components/ion-col.js +2 -2
  20. package/components/ion-content.js +3 -3
  21. package/components/ion-datetime-button.js +2 -2
  22. package/components/ion-datetime.js +2 -2
  23. package/components/ion-fab-button.js +2 -2
  24. package/components/ion-fab-list.js +2 -2
  25. package/components/ion-fab.js +2 -2
  26. package/components/ion-footer.js +2 -2
  27. package/components/ion-grid.js +2 -2
  28. package/components/ion-header.js +2 -2
  29. package/components/ion-img.js +1 -1
  30. package/components/ion-infinite-scroll-content.js +2 -2
  31. package/components/ion-infinite-scroll.js +1 -1
  32. package/components/ion-input-password-toggle.js +3 -3
  33. package/components/ion-input.js +3 -3
  34. package/components/ion-item-divider.js +2 -2
  35. package/components/ion-item-group.js +1 -1
  36. package/components/ion-item-option.js +2 -2
  37. package/components/ion-item-options.js +1 -1
  38. package/components/ion-item-sliding.js +1 -1
  39. package/components/ion-loading.js +2 -2
  40. package/components/ion-menu-button.js +2 -2
  41. package/components/ion-menu-toggle.js +2 -2
  42. package/components/ion-menu.js +2 -2
  43. package/components/ion-modal.js +47 -23
  44. package/components/ion-nav-link.js +1 -1
  45. package/components/ion-nav.js +1 -1
  46. package/components/ion-note.js +2 -2
  47. package/components/ion-picker-legacy.js +2 -2
  48. package/components/ion-progress-bar.js +1 -1
  49. package/components/ion-range.js +3 -3
  50. package/components/ion-refresher-content.js +1 -1
  51. package/components/ion-refresher.js +1 -1
  52. package/components/ion-reorder-group.js +1 -1
  53. package/components/ion-reorder.js +1 -1
  54. package/components/ion-router-link.js +2 -2
  55. package/components/ion-router-outlet.js +1 -1
  56. package/components/ion-row.js +1 -1
  57. package/components/ion-searchbar.js +4 -4
  58. package/components/ion-segment-button.js +3 -3
  59. package/components/ion-segment.js +2 -2
  60. package/components/ion-select-option.js +1 -1
  61. package/components/ion-select.js +2 -2
  62. package/components/ion-skeleton-text.js +2 -2
  63. package/components/ion-split-pane.js +2 -2
  64. package/components/ion-tab-bar.js +2 -2
  65. package/components/ion-tab-button.js +2 -2
  66. package/components/ion-tab.js +2 -2
  67. package/components/ion-tabs.js +1 -1
  68. package/components/ion-text.js +2 -2
  69. package/components/ion-textarea.js +2 -2
  70. package/components/ion-thumbnail.js +1 -1
  71. package/components/ion-title.js +2 -2
  72. package/components/ion-toast.js +2 -2
  73. package/components/ion-toggle.js +5 -5
  74. package/components/ion-toolbar.js +2 -2
  75. package/components/item.js +1 -1
  76. package/components/label.js +2 -2
  77. package/components/list-header.js +2 -2
  78. package/components/list.js +1 -1
  79. package/components/picker-column-option.js +2 -2
  80. package/components/picker-column.js +3 -3
  81. package/components/picker-column2.js +2 -2
  82. package/components/picker.js +2 -2
  83. package/components/popover.js +4 -4
  84. package/components/radio-group.js +1 -1
  85. package/components/radio.js +5 -5
  86. package/components/ripple-effect.js +1 -1
  87. package/components/select-popover.js +1 -1
  88. package/components/spinner.js +1 -1
  89. package/css/core.css +1 -624
  90. package/css/core.css.map +1 -1
  91. package/css/display.css +1 -131
  92. package/css/display.css.map +1 -1
  93. package/css/flex-utils.css +1 -81
  94. package/css/flex-utils.css.map +1 -1
  95. package/css/float-elements.css +1 -293
  96. package/css/float-elements.css.map +1 -1
  97. package/css/global.bundle.css +1 -457
  98. package/css/global.bundle.css.map +1 -1
  99. package/css/ionic-swiper.css +1 -127
  100. package/css/ionic-swiper.css.map +1 -1
  101. package/css/ionic.bundle.css +1 -1
  102. package/css/ionic.bundle.css.map +1 -1
  103. package/css/normalize.css +1 -150
  104. package/css/normalize.css.map +1 -1
  105. package/css/padding.css +1 -202
  106. package/css/padding.css.map +1 -1
  107. package/css/palettes/dark.always.css +1 -160
  108. package/css/palettes/dark.always.css.map +1 -1
  109. package/css/palettes/dark.class.css +1 -160
  110. package/css/palettes/dark.class.css.map +1 -1
  111. package/css/palettes/dark.css +0 -2
  112. package/css/palettes/dark.system.css +1 -162
  113. package/css/palettes/dark.system.css.map +1 -1
  114. package/css/palettes/high-contrast-dark.always.css +1 -180
  115. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  116. package/css/palettes/high-contrast-dark.class.css +1 -180
  117. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  118. package/css/palettes/high-contrast-dark.css +0 -2
  119. package/css/palettes/high-contrast-dark.system.css +1 -182
  120. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  121. package/css/palettes/high-contrast.always.css +1 -101
  122. package/css/palettes/high-contrast.always.css.map +1 -1
  123. package/css/palettes/high-contrast.class.css +1 -101
  124. package/css/palettes/high-contrast.class.css.map +1 -1
  125. package/css/palettes/high-contrast.css +0 -2
  126. package/css/palettes/high-contrast.system.css +1 -103
  127. package/css/palettes/high-contrast.system.css.map +1 -1
  128. package/css/structure.css +1 -152
  129. package/css/structure.css.map +1 -1
  130. package/css/text-alignment.css +1 -243
  131. package/css/text-alignment.css.map +1 -1
  132. package/css/text-transformation.css +1 -158
  133. package/css/text-transformation.css.map +1 -1
  134. package/css/typography.css +1 -157
  135. package/css/typography.css.map +1 -1
  136. package/css/utils.bundle.css +1 -1100
  137. package/css/utils.bundle.css.map +1 -1
  138. package/dist/cjs/{app-globals-63aebf89.js → app-globals-5bfa2d7f.js} +1 -1
  139. package/dist/cjs/{button-active-bd13859e.js → button-active-564be49f.js} +1 -1
  140. package/dist/cjs/{hardware-back-button-ad9299b4.js → hardware-back-button-44e7c052.js} +2 -2
  141. package/dist/cjs/{index-ff66cc7c.js → index-6d6ac424.js} +3 -3
  142. package/dist/cjs/{index-af6d0fbb.js → index-bbc6c29f.js} +32 -8
  143. package/dist/cjs/{index-5cf05f94.js → index-defd575f.js} +2 -2
  144. package/dist/cjs/index.cjs.js +8 -8
  145. package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
  146. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
  147. package/dist/cjs/ion-alert.cjs.entry.js +7 -7
  148. package/dist/cjs/ion-app_8.cjs.entry.js +21 -21
  149. package/dist/cjs/ion-avatar_3.cjs.entry.js +6 -6
  150. package/dist/cjs/ion-back-button.cjs.entry.js +4 -4
  151. package/dist/cjs/ion-backdrop.cjs.entry.js +3 -3
  152. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +8 -8
  153. package/dist/cjs/ion-button_2.cjs.entry.js +6 -6
  154. package/dist/cjs/ion-card_5.cjs.entry.js +10 -10
  155. package/dist/cjs/ion-checkbox.cjs.entry.js +7 -7
  156. package/dist/cjs/ion-chip.cjs.entry.js +4 -4
  157. package/dist/cjs/ion-col_3.cjs.entry.js +7 -7
  158. package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -4
  159. package/dist/cjs/ion-datetime_3.cjs.entry.js +10 -10
  160. package/dist/cjs/ion-fab_3.cjs.entry.js +8 -8
  161. package/dist/cjs/ion-img.cjs.entry.js +3 -3
  162. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +5 -5
  163. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +5 -5
  164. package/dist/cjs/ion-input.cjs.entry.js +5 -5
  165. package/dist/cjs/ion-item-option_3.cjs.entry.js +6 -6
  166. package/dist/cjs/ion-item_8.cjs.entry.js +15 -15
  167. package/dist/cjs/ion-loading.cjs.entry.js +6 -6
  168. package/dist/cjs/ion-menu_3.cjs.entry.js +11 -11
  169. package/dist/cjs/ion-modal.cjs.entry.js +52 -28
  170. package/dist/cjs/ion-nav_2.cjs.entry.js +5 -5
  171. package/dist/cjs/ion-picker-column-option.cjs.entry.js +4 -4
  172. package/dist/cjs/ion-picker-column.cjs.entry.js +5 -5
  173. package/dist/cjs/ion-picker.cjs.entry.js +3 -3
  174. package/dist/cjs/ion-popover.cjs.entry.js +9 -9
  175. package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -3
  176. package/dist/cjs/ion-radio_2.cjs.entry.js +8 -8
  177. package/dist/cjs/ion-range.cjs.entry.js +5 -5
  178. package/dist/cjs/ion-refresher_2.cjs.entry.js +4 -4
  179. package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
  180. package/dist/cjs/ion-ripple-effect.cjs.entry.js +3 -3
  181. package/dist/cjs/ion-route_4.cjs.entry.js +4 -4
  182. package/dist/cjs/ion-searchbar.cjs.entry.js +6 -6
  183. package/dist/cjs/ion-segment_2.cjs.entry.js +7 -7
  184. package/dist/cjs/ion-select_3.cjs.entry.js +8 -8
  185. package/dist/cjs/ion-spinner.cjs.entry.js +3 -3
  186. package/dist/cjs/ion-split-pane.cjs.entry.js +4 -4
  187. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +6 -6
  188. package/dist/cjs/ion-tab_2.cjs.entry.js +4 -4
  189. package/dist/cjs/ion-text.cjs.entry.js +4 -4
  190. package/dist/cjs/ion-textarea.cjs.entry.js +4 -4
  191. package/dist/cjs/ion-toast.cjs.entry.js +6 -6
  192. package/dist/cjs/ion-toggle.cjs.entry.js +7 -7
  193. package/dist/cjs/{ionic-global-1adf9bc4.js → ionic-global-62487d02.js} +1 -1
  194. package/dist/cjs/ionic.cjs.js +4 -4
  195. package/dist/cjs/{ios.transition-06673f18.js → ios.transition-d4f0ca4e.js} +2 -2
  196. package/dist/cjs/loader.cjs.js +3 -3
  197. package/dist/cjs/{md.transition-4d7bb4b1.js → md.transition-857328f3.js} +2 -2
  198. package/dist/cjs/{overlays-6487955a.js → overlays-10c452b2.js} +2 -2
  199. package/dist/cjs/{status-tap-0be20572.js → status-tap-81daddfa.js} +1 -1
  200. package/dist/collection/collection-manifest.json +2 -2
  201. package/dist/collection/components/action-sheet/action-sheet.js +3 -3
  202. package/dist/collection/components/alert/alert.js +2 -2
  203. package/dist/collection/components/app/app.js +1 -1
  204. package/dist/collection/components/avatar/avatar.js +1 -1
  205. package/dist/collection/components/back-button/back-button.js +2 -2
  206. package/dist/collection/components/backdrop/backdrop.js +1 -1
  207. package/dist/collection/components/badge/badge.js +2 -2
  208. package/dist/collection/components/breadcrumb/breadcrumb.js +4 -4
  209. package/dist/collection/components/breadcrumbs/breadcrumbs.js +2 -2
  210. package/dist/collection/components/button/button.ios.css +47 -8
  211. package/dist/collection/components/button/button.js +2 -2
  212. package/dist/collection/components/button/button.md.css +49 -8
  213. package/dist/collection/components/buttons/buttons.js +2 -2
  214. package/dist/collection/components/card/card.js +1 -1
  215. package/dist/collection/components/card-content/card-content.js +1 -1
  216. package/dist/collection/components/card-header/card-header.js +2 -2
  217. package/dist/collection/components/card-subtitle/card-subtitle.js +2 -2
  218. package/dist/collection/components/card-title/card-title.js +2 -2
  219. package/dist/collection/components/checkbox/checkbox.ios.css +1 -0
  220. package/dist/collection/components/checkbox/checkbox.js +3 -3
  221. package/dist/collection/components/checkbox/checkbox.md.css +1 -0
  222. package/dist/collection/components/chip/chip.js +2 -2
  223. package/dist/collection/components/col/col.js +2 -2
  224. package/dist/collection/components/content/content.js +3 -3
  225. package/dist/collection/components/datetime/datetime.js +2 -2
  226. package/dist/collection/components/datetime-button/datetime-button.js +2 -2
  227. package/dist/collection/components/fab/fab.js +2 -2
  228. package/dist/collection/components/fab-button/fab-button.js +2 -2
  229. package/dist/collection/components/fab-list/fab-list.js +2 -2
  230. package/dist/collection/components/footer/footer.js +2 -2
  231. package/dist/collection/components/grid/grid.js +2 -2
  232. package/dist/collection/components/header/header.js +2 -2
  233. package/dist/collection/components/img/img.js +1 -1
  234. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  235. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  236. package/dist/collection/components/input/input.js +4 -4
  237. package/dist/collection/components/input-password-toggle/input-password-toggle.js +3 -3
  238. package/dist/collection/components/item/item.js +1 -1
  239. package/dist/collection/components/item-divider/item-divider.js +2 -2
  240. package/dist/collection/components/item-group/item-group.js +1 -1
  241. package/dist/collection/components/item-option/item-option.js +2 -2
  242. package/dist/collection/components/item-options/item-options.js +1 -1
  243. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  244. package/dist/collection/components/label/label.js +2 -2
  245. package/dist/collection/components/list/list.js +1 -1
  246. package/dist/collection/components/list-header/list-header.js +2 -2
  247. package/dist/collection/components/loading/loading.js +2 -2
  248. package/dist/collection/components/menu/menu.js +2 -2
  249. package/dist/collection/components/menu-button/menu-button.js +2 -2
  250. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  251. package/dist/collection/components/modal/gestures/sheet.js +45 -20
  252. package/dist/collection/components/modal/modal.js +4 -4
  253. package/dist/collection/components/nav/nav.js +1 -1
  254. package/dist/collection/components/nav-link/nav-link.js +1 -1
  255. package/dist/collection/components/note/note.js +2 -2
  256. package/dist/collection/components/picker/picker.js +2 -2
  257. package/dist/collection/components/picker-column/picker-column.js +3 -3
  258. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  259. package/dist/collection/components/picker-legacy/picker.js +2 -2
  260. package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
  261. package/dist/collection/components/popover/popover.ios.css +0 -1
  262. package/dist/collection/components/popover/popover.js +2 -2
  263. package/dist/collection/components/popover/popover.md.css +0 -1
  264. package/dist/collection/components/popover/test/basic/popover.e2e.js +76 -0
  265. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  266. package/dist/collection/components/radio/radio.ios.css +1 -0
  267. package/dist/collection/components/radio/radio.js +3 -3
  268. package/dist/collection/components/radio/radio.md.css +1 -0
  269. package/dist/collection/components/radio-group/radio-group.js +1 -1
  270. package/dist/collection/components/range/range.js +3 -3
  271. package/dist/collection/components/refresher/refresher.js +1 -1
  272. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  273. package/dist/collection/components/reorder/reorder.js +1 -1
  274. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  275. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  276. package/dist/collection/components/router-link/router-link.js +2 -2
  277. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  278. package/dist/collection/components/row/row.js +1 -1
  279. package/dist/collection/components/searchbar/searchbar.js +5 -5
  280. package/dist/collection/components/segment/segment.js +2 -2
  281. package/dist/collection/components/segment-button/segment-button.js +3 -3
  282. package/dist/collection/components/select/select.js +2 -2
  283. package/dist/collection/components/select-option/select-option.js +1 -1
  284. package/dist/collection/components/select-popover/select-popover.js +1 -1
  285. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  286. package/dist/collection/components/spinner/spinner.js +1 -1
  287. package/dist/collection/components/split-pane/split-pane.js +2 -2
  288. package/dist/collection/components/tab/tab.js +2 -2
  289. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  290. package/dist/collection/components/tab-button/tab-button.js +2 -2
  291. package/dist/collection/components/tabs/tabs.js +1 -1
  292. package/dist/collection/components/text/text.js +2 -2
  293. package/dist/collection/components/textarea/textarea.js +2 -2
  294. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  295. package/dist/collection/components/title/title.js +2 -2
  296. package/dist/collection/components/toast/toast.js +2 -2
  297. package/dist/collection/components/toggle/toggle.ios.css +1 -0
  298. package/dist/collection/components/toggle/toggle.js +3 -3
  299. package/dist/collection/components/toggle/toggle.md.css +1 -0
  300. package/dist/collection/components/toolbar/test/basic/toolbar.e2e.js +133 -5
  301. package/dist/collection/components/toolbar/toolbar.js +2 -2
  302. package/dist/docs.json +31 -31
  303. package/dist/esm/{app-globals-b8e5e7fa.js → app-globals-49873df1.js} +1 -1
  304. package/dist/esm/{button-active-a411da52.js → button-active-46df59c1.js} +1 -1
  305. package/dist/esm/{hardware-back-button-329c81fd.js → hardware-back-button-ba8f64c2.js} +2 -2
  306. package/dist/esm/{index-10916999.js → index-56d90da9.js} +2 -2
  307. package/dist/esm/{index-6e4709ff.js → index-bcd8859b.js} +32 -8
  308. package/dist/esm/{index-f1f5de26.js → index-f0d7371a.js} +3 -3
  309. package/dist/esm/index.js +8 -8
  310. package/dist/esm/ion-accordion_2.entry.js +2 -2
  311. package/dist/esm/ion-action-sheet.entry.js +8 -8
  312. package/dist/esm/ion-alert.entry.js +7 -7
  313. package/dist/esm/ion-app_8.entry.js +21 -21
  314. package/dist/esm/ion-avatar_3.entry.js +6 -6
  315. package/dist/esm/ion-back-button.entry.js +4 -4
  316. package/dist/esm/ion-backdrop.entry.js +3 -3
  317. package/dist/esm/ion-breadcrumb_2.entry.js +8 -8
  318. package/dist/esm/ion-button_2.entry.js +6 -6
  319. package/dist/esm/ion-card_5.entry.js +10 -10
  320. package/dist/esm/ion-checkbox.entry.js +7 -7
  321. package/dist/esm/ion-chip.entry.js +4 -4
  322. package/dist/esm/ion-col_3.entry.js +7 -7
  323. package/dist/esm/ion-datetime-button.entry.js +4 -4
  324. package/dist/esm/ion-datetime_3.entry.js +10 -10
  325. package/dist/esm/ion-fab_3.entry.js +8 -8
  326. package/dist/esm/ion-img.entry.js +3 -3
  327. package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
  328. package/dist/esm/ion-input-password-toggle.entry.js +5 -5
  329. package/dist/esm/ion-input.entry.js +5 -5
  330. package/dist/esm/ion-item-option_3.entry.js +6 -6
  331. package/dist/esm/ion-item_8.entry.js +15 -15
  332. package/dist/esm/ion-loading.entry.js +6 -6
  333. package/dist/esm/ion-menu_3.entry.js +11 -11
  334. package/dist/esm/ion-modal.entry.js +52 -28
  335. package/dist/esm/ion-nav_2.entry.js +5 -5
  336. package/dist/esm/ion-picker-column-option.entry.js +4 -4
  337. package/dist/esm/ion-picker-column.entry.js +5 -5
  338. package/dist/esm/ion-picker.entry.js +3 -3
  339. package/dist/esm/ion-popover.entry.js +9 -9
  340. package/dist/esm/ion-progress-bar.entry.js +3 -3
  341. package/dist/esm/ion-radio_2.entry.js +8 -8
  342. package/dist/esm/ion-range.entry.js +5 -5
  343. package/dist/esm/ion-refresher_2.entry.js +4 -4
  344. package/dist/esm/ion-reorder_2.entry.js +4 -4
  345. package/dist/esm/ion-ripple-effect.entry.js +3 -3
  346. package/dist/esm/ion-route_4.entry.js +4 -4
  347. package/dist/esm/ion-searchbar.entry.js +6 -6
  348. package/dist/esm/ion-segment_2.entry.js +7 -7
  349. package/dist/esm/ion-select_3.entry.js +8 -8
  350. package/dist/esm/ion-spinner.entry.js +3 -3
  351. package/dist/esm/ion-split-pane.entry.js +4 -4
  352. package/dist/esm/ion-tab-bar_2.entry.js +6 -6
  353. package/dist/esm/ion-tab_2.entry.js +4 -4
  354. package/dist/esm/ion-text.entry.js +4 -4
  355. package/dist/esm/ion-textarea.entry.js +4 -4
  356. package/dist/esm/ion-toast.entry.js +6 -6
  357. package/dist/esm/ion-toggle.entry.js +7 -7
  358. package/dist/esm/{ionic-global-c4e0c089.js → ionic-global-e6c98cd0.js} +1 -1
  359. package/dist/esm/ionic.js +5 -5
  360. package/dist/esm/{ios.transition-8e181a7e.js → ios.transition-71bfa932.js} +2 -2
  361. package/dist/esm/loader.js +4 -4
  362. package/dist/esm/{md.transition-f1c3c737.js → md.transition-86aef3c0.js} +2 -2
  363. package/dist/esm/{overlays-9472c98b.js → overlays-6fb4a2f2.js} +2 -2
  364. package/dist/esm/{status-tap-39da9160.js → status-tap-299361cd.js} +1 -1
  365. package/dist/esm-es5/app-globals-49873df1.js +4 -0
  366. package/dist/esm-es5/{button-active-a411da52.js → button-active-46df59c1.js} +1 -1
  367. package/dist/esm-es5/{hardware-back-button-329c81fd.js → hardware-back-button-ba8f64c2.js} +1 -1
  368. package/dist/esm-es5/{index-10916999.js → index-56d90da9.js} +1 -1
  369. package/dist/esm-es5/index-bcd8859b.js +5 -0
  370. package/dist/esm-es5/{index-f1f5de26.js → index-f0d7371a.js} +1 -1
  371. package/dist/esm-es5/index.js +1 -1
  372. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  373. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  374. package/dist/esm-es5/ion-alert.entry.js +1 -1
  375. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  376. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  377. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  378. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  379. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  380. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  381. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  382. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  383. package/dist/esm-es5/ion-chip.entry.js +1 -1
  384. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  385. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  386. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  387. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  388. package/dist/esm-es5/ion-img.entry.js +1 -1
  389. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  390. package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
  391. package/dist/esm-es5/ion-input.entry.js +1 -1
  392. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  393. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  394. package/dist/esm-es5/ion-loading.entry.js +1 -1
  395. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  396. package/dist/esm-es5/ion-modal.entry.js +1 -1
  397. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  398. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  399. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  400. package/dist/esm-es5/ion-picker.entry.js +1 -1
  401. package/dist/esm-es5/ion-popover.entry.js +1 -1
  402. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  403. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  404. package/dist/esm-es5/ion-range.entry.js +1 -1
  405. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  406. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  407. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  408. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  409. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  410. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  411. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  412. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  413. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  414. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  415. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  416. package/dist/esm-es5/ion-text.entry.js +1 -1
  417. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  418. package/dist/esm-es5/ion-toast.entry.js +1 -1
  419. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  420. package/dist/esm-es5/{ionic-global-c4e0c089.js → ionic-global-e6c98cd0.js} +1 -1
  421. package/dist/esm-es5/ionic.js +1 -1
  422. package/dist/esm-es5/{ios.transition-8e181a7e.js → ios.transition-71bfa932.js} +1 -1
  423. package/dist/esm-es5/loader.js +1 -1
  424. package/dist/esm-es5/md.transition-86aef3c0.js +4 -0
  425. package/dist/esm-es5/{overlays-9472c98b.js → overlays-6fb4a2f2.js} +1 -1
  426. package/dist/esm-es5/{status-tap-39da9160.js → status-tap-299361cd.js} +1 -1
  427. package/dist/html.html-data.json +18 -18
  428. package/dist/ionic/index.esm.js +1 -1
  429. package/dist/ionic/ionic.esm.js +1 -1
  430. package/dist/ionic/ionic.js +1 -1
  431. package/dist/ionic/{p-105f7d62.system.entry.js → p-005deca1.system.entry.js} +1 -1
  432. package/dist/ionic/{p-a8f02173.system.js → p-07584ab4.system.js} +1 -1
  433. package/dist/ionic/p-0bd47555.js +4 -0
  434. package/dist/ionic/{p-75cddcc9.js → p-0e713efe.js} +1 -1
  435. package/dist/ionic/p-13cc6ee6.entry.js +4 -0
  436. package/dist/ionic/p-1472c130.entry.js +4 -0
  437. package/dist/ionic/{p-5da04d11.entry.js → p-151e8afd.entry.js} +1 -1
  438. package/dist/ionic/{p-b689b8d4.entry.js → p-1b0f4e6c.entry.js} +1 -1
  439. package/dist/ionic/p-1ba197b6.entry.js +4 -0
  440. package/dist/ionic/p-1c42ad90.entry.js +4 -0
  441. package/dist/ionic/{p-ab85debb.entry.js → p-1fa53d02.entry.js} +1 -1
  442. package/dist/ionic/{p-99daf8b7.entry.js → p-1fe1f512.entry.js} +1 -1
  443. package/dist/ionic/{p-17978fce.entry.js → p-23fdee0e.entry.js} +1 -1
  444. package/dist/ionic/{p-4dd82d9d.system.js → p-2613c305.system.js} +1 -1
  445. package/dist/ionic/{p-a1b4e619.system.entry.js → p-275dd0ba.system.entry.js} +1 -1
  446. package/dist/ionic/{p-68a1e274.system.entry.js → p-2b86020c.system.entry.js} +1 -1
  447. package/dist/ionic/{p-3d6e882f.system.entry.js → p-3008ca4e.system.entry.js} +1 -1
  448. package/dist/ionic/p-332aa81e.entry.js +4 -0
  449. package/dist/ionic/p-341b3f37.entry.js +4 -0
  450. package/dist/ionic/{p-51b68ec9.system.entry.js → p-3d977e09.system.entry.js} +2 -2
  451. package/dist/ionic/{p-d5f48185.system.entry.js → p-3de2aab8.system.entry.js} +1 -1
  452. package/dist/ionic/p-405fd996.entry.js +4 -0
  453. package/dist/ionic/{p-c1d1d004.system.entry.js → p-4809ddae.system.entry.js} +1 -1
  454. package/dist/ionic/{p-83321ee8.entry.js → p-48f60474.entry.js} +1 -1
  455. package/dist/ionic/p-495ed1c3.entry.js +4 -0
  456. package/dist/ionic/{p-c04d5a75.entry.js → p-4a01cec0.entry.js} +1 -1
  457. package/dist/ionic/p-4de53118.js +4 -0
  458. package/dist/ionic/p-4edce583.system.entry.js +4 -0
  459. package/dist/ionic/p-4f6ebc2b.entry.js +4 -0
  460. package/dist/ionic/p-4f77a080.system.entry.js +4 -0
  461. package/dist/ionic/{p-88cff52d.entry.js → p-4fadf4b0.entry.js} +1 -1
  462. package/dist/ionic/{p-8bd567ba.system.entry.js → p-50205ef9.system.entry.js} +1 -1
  463. package/dist/ionic/{p-266fc56e.system.js → p-510cb8e6.system.js} +1 -1
  464. package/dist/ionic/p-530207f9.entry.js +4 -0
  465. package/dist/ionic/p-53d37363.entry.js +4 -0
  466. package/dist/ionic/{p-49b6fee0.system.entry.js → p-53d69c70.system.entry.js} +1 -1
  467. package/dist/ionic/{p-c9c39c98.system.entry.js → p-55bc2a11.system.entry.js} +1 -1
  468. package/dist/ionic/p-582db405.system.entry.js +4 -0
  469. package/dist/ionic/p-5ad55625.entry.js +4 -0
  470. package/dist/ionic/p-5c26fed5.system.entry.js +4 -0
  471. package/dist/ionic/p-5f28cb75.js +4 -0
  472. package/dist/ionic/{p-c222f76a.js → p-67f5b57a.js} +1 -1
  473. package/dist/ionic/p-68afa357.system.entry.js +4 -0
  474. package/dist/ionic/{p-9d7fc908.system.js → p-6ac30fc3.system.js} +1 -1
  475. package/dist/ionic/p-6c5c1bb5.system.js +4 -0
  476. package/dist/ionic/{p-04070329.system.entry.js → p-6cf780b6.system.entry.js} +1 -1
  477. package/dist/ionic/p-6dc81903.entry.js +4 -0
  478. package/dist/ionic/{p-cae889f9.entry.js → p-6e4dac1a.entry.js} +1 -1
  479. package/dist/ionic/{p-fb02eeec.system.entry.js → p-6ef17d86.system.entry.js} +1 -1
  480. package/dist/ionic/p-7372cf23.system.entry.js +4 -0
  481. package/dist/ionic/p-7492572a.entry.js +4 -0
  482. package/dist/ionic/p-7596e24d.system.js +5 -0
  483. package/dist/ionic/p-76971b4f.entry.js +4 -0
  484. package/dist/ionic/{p-d2544865.system.js → p-7a7ff5e3.system.js} +1 -1
  485. package/dist/ionic/{p-5033128d.system.js → p-7bbcce53.system.js} +2 -2
  486. package/dist/ionic/{p-fb97326f.system.entry.js → p-7c93f00b.system.entry.js} +1 -1
  487. package/dist/ionic/{p-43505ff8.system.entry.js → p-7f33a6e2.system.entry.js} +2 -2
  488. package/dist/ionic/{p-07ae133d.system.entry.js → p-814efd87.system.entry.js} +1 -1
  489. package/dist/ionic/{p-6994c97a.js → p-83b445c3.js} +1 -1
  490. package/dist/ionic/{p-f818b01a.entry.js → p-8a5152e5.entry.js} +1 -1
  491. package/dist/ionic/{p-54f76ced.js → p-8f9e2850.js} +1 -1
  492. package/dist/ionic/{p-fab4ecad.system.entry.js → p-904df2ee.system.entry.js} +2 -2
  493. package/dist/ionic/{p-8e9ac22d.entry.js → p-90f8498c.entry.js} +1 -1
  494. package/dist/ionic/{p-58ea73f7.system.entry.js → p-91b568e2.system.entry.js} +1 -1
  495. package/dist/ionic/{p-25575222.system.js → p-91dabef7.system.js} +1 -1
  496. package/dist/ionic/{p-3040730e.js → p-96a561dd.js} +1 -1
  497. package/dist/ionic/p-987e38ef.system.entry.js +4 -0
  498. package/dist/ionic/{p-4429fc97.system.entry.js → p-98af538a.system.entry.js} +1 -1
  499. package/dist/ionic/p-9ccc8035.system.entry.js +4 -0
  500. package/dist/ionic/p-9fa5ff32.system.js +4 -0
  501. package/dist/ionic/{p-ea2c16b5.system.entry.js → p-9fd3ca09.system.entry.js} +2 -2
  502. package/dist/ionic/{p-049fa018.system.entry.js → p-a28ea4d8.system.entry.js} +1 -1
  503. package/dist/ionic/{p-75280815.entry.js → p-a39a73e3.entry.js} +1 -1
  504. package/dist/ionic/{p-f4cb521c.js → p-a90201f2.js} +1 -1
  505. package/dist/ionic/{p-1672c4fd.system.entry.js → p-aa79cc0e.system.entry.js} +2 -2
  506. package/dist/ionic/{p-ac4e2a74.system.entry.js → p-aa8a2f40.system.entry.js} +1 -1
  507. package/dist/ionic/p-ac045dad.entry.js +4 -0
  508. package/dist/ionic/{p-3c70b01b.entry.js → p-ad2b9596.entry.js} +1 -1
  509. package/dist/ionic/p-ae42c907.entry.js +4 -0
  510. package/dist/ionic/{p-2f6cedaf.system.entry.js → p-aea5f293.system.entry.js} +1 -1
  511. package/dist/ionic/p-b4a7f856.system.entry.js +4 -0
  512. package/dist/ionic/p-b6519a42.entry.js +4 -0
  513. package/dist/ionic/{p-a88fdfac.entry.js → p-ba35f07f.entry.js} +1 -1
  514. package/dist/ionic/{p-fda4872f.entry.js → p-bc3d649d.entry.js} +1 -1
  515. package/dist/ionic/p-c1c77386.js +5 -0
  516. package/dist/ionic/{p-76907c2f.system.entry.js → p-c2762c6a.system.entry.js} +1 -1
  517. package/dist/ionic/{p-ea4be6ac.system.js → p-c4e495a3.system.js} +1 -1
  518. package/dist/ionic/{p-d8067ea4.system.entry.js → p-c4eafa12.system.entry.js} +1 -1
  519. package/dist/ionic/{p-ff2323ba.system.entry.js → p-c54b167f.system.entry.js} +1 -1
  520. package/dist/ionic/{p-510578f3.system.entry.js → p-c927dbe2.system.entry.js} +1 -1
  521. package/dist/ionic/{p-716ab5f8.system.entry.js → p-ca5bb110.system.entry.js} +1 -1
  522. package/dist/ionic/p-ca6decbd.entry.js +4 -0
  523. package/dist/ionic/p-cbd87df6.entry.js +4 -0
  524. package/dist/ionic/p-cf45a5c7.system.entry.js +4 -0
  525. package/dist/ionic/{p-100bedc4.system.entry.js → p-cf8101a6.system.entry.js} +1 -1
  526. package/dist/ionic/p-d061515d.system.entry.js +4 -0
  527. package/dist/ionic/{p-2e12bda2.entry.js → p-d73f49d0.entry.js} +1 -1
  528. package/dist/ionic/{p-d8f66669.entry.js → p-dbc3e90c.entry.js} +1 -1
  529. package/dist/ionic/{p-4511ba0e.system.entry.js → p-dc4406d7.system.entry.js} +1 -1
  530. package/dist/ionic/p-dec86943.entry.js +4 -0
  531. package/dist/ionic/p-df0d39c7.system.entry.js +4 -0
  532. package/dist/ionic/{p-fbd30ec7.entry.js → p-e099a6f3.entry.js} +1 -1
  533. package/dist/ionic/p-e1ad8e76.entry.js +4 -0
  534. package/dist/ionic/{p-0bbb6edf.system.entry.js → p-e292247e.system.entry.js} +1 -1
  535. package/dist/ionic/p-e548fedf.system.entry.js +4 -0
  536. package/dist/ionic/{p-a7ba2dcc.system.js → p-e5a3659f.system.js} +1 -1
  537. package/dist/ionic/{p-71688099.system.entry.js → p-e6d46b5d.system.entry.js} +1 -1
  538. package/dist/ionic/p-e781c893.entry.js +4 -0
  539. package/dist/ionic/{p-3e3b34f7.system.entry.js → p-e81c3ca2.system.entry.js} +1 -1
  540. package/dist/ionic/{p-e8a0e731.entry.js → p-e8a713b5.entry.js} +1 -1
  541. package/dist/ionic/{p-d98c0112.entry.js → p-e93cd31c.entry.js} +1 -1
  542. package/dist/ionic/p-ec178f19.entry.js +4 -0
  543. package/dist/ionic/{p-7df2c495.entry.js → p-eda2459e.entry.js} +1 -1
  544. package/dist/ionic/{p-5e7c32e8.system.entry.js → p-f13dc6bd.system.entry.js} +1 -1
  545. package/dist/ionic/p-f6ca4d02.js +4 -0
  546. package/dist/ionic/{p-df48edd6.entry.js → p-f6fec6a0.entry.js} +1 -1
  547. package/dist/ionic/{p-0ebb1fe7.system.entry.js → p-f8f8c5a8.system.entry.js} +1 -1
  548. package/dist/ionic/{p-0f2d99a6.entry.js → p-f956e38a.entry.js} +1 -1
  549. package/dist/ionic/p-fea11771.entry.js +4 -0
  550. package/dist/ionic/{p-71215c1d.system.js → p-ffbc80ae.system.js} +1 -1
  551. package/dist/types/components/datetime/utils/manipulation.d.ts +7 -7
  552. package/dist/types/components/datetime/utils/state.d.ts +2 -2
  553. package/dist/types/components/input/input.utils.d.ts +1 -1
  554. package/dist/types/components/modal/animations/sheet.d.ts +4 -4
  555. package/dist/types/components/refresher/refresher.utils.d.ts +2 -2
  556. package/dist/types/utils/framework-delegate.d.ts +1 -1
  557. package/dist/types/utils/keyboard/keyboard-controller.d.ts +1 -1
  558. package/hydrate/index.js +245 -199
  559. package/package.json +6 -6
  560. package/dist/esm-es5/app-globals-b8e5e7fa.js +0 -4
  561. package/dist/esm-es5/index-6e4709ff.js +0 -5
  562. package/dist/esm-es5/md.transition-f1c3c737.js +0 -4
  563. package/dist/ionic/p-0aa4682e.entry.js +0 -4
  564. package/dist/ionic/p-0de546bb.entry.js +0 -4
  565. package/dist/ionic/p-1b235142.entry.js +0 -4
  566. package/dist/ionic/p-1cff9cad.entry.js +0 -4
  567. package/dist/ionic/p-1f9cdee2.entry.js +0 -4
  568. package/dist/ionic/p-23b89985.entry.js +0 -4
  569. package/dist/ionic/p-3391d9a3.entry.js +0 -4
  570. package/dist/ionic/p-352f7037.system.entry.js +0 -4
  571. package/dist/ionic/p-35b9e842.entry.js +0 -4
  572. package/dist/ionic/p-3f70bfba.entry.js +0 -4
  573. package/dist/ionic/p-4a615fea.entry.js +0 -4
  574. package/dist/ionic/p-51ff648c.entry.js +0 -4
  575. package/dist/ionic/p-546433d2.js +0 -4
  576. package/dist/ionic/p-56c3b69c.entry.js +0 -4
  577. package/dist/ionic/p-596e0cf8.system.entry.js +0 -4
  578. package/dist/ionic/p-5ae49f12.entry.js +0 -4
  579. package/dist/ionic/p-5b1273f4.system.entry.js +0 -4
  580. package/dist/ionic/p-5d3f6707.entry.js +0 -4
  581. package/dist/ionic/p-65d26d94.system.entry.js +0 -4
  582. package/dist/ionic/p-6744e460.entry.js +0 -4
  583. package/dist/ionic/p-69bc14fd.entry.js +0 -4
  584. package/dist/ionic/p-6a7eac5a.js +0 -4
  585. package/dist/ionic/p-6f4db5ce.system.entry.js +0 -4
  586. package/dist/ionic/p-74a9cafe.system.js +0 -5
  587. package/dist/ionic/p-7d9eefb3.system.js +0 -4
  588. package/dist/ionic/p-7fc505bf.entry.js +0 -4
  589. package/dist/ionic/p-896111fa.entry.js +0 -4
  590. package/dist/ionic/p-9ad82dba.js +0 -5
  591. package/dist/ionic/p-a1f9f629.system.entry.js +0 -4
  592. package/dist/ionic/p-aa110ca0.system.entry.js +0 -4
  593. package/dist/ionic/p-aa4f2703.system.entry.js +0 -4
  594. package/dist/ionic/p-ac9f44a8.system.entry.js +0 -4
  595. package/dist/ionic/p-bb835b4d.system.entry.js +0 -4
  596. package/dist/ionic/p-c198e1e1.system.entry.js +0 -4
  597. package/dist/ionic/p-c41af68a.entry.js +0 -4
  598. package/dist/ionic/p-c80d05c9.js +0 -4
  599. package/dist/ionic/p-c8510ca2.entry.js +0 -4
  600. package/dist/ionic/p-c8f2b769.entry.js +0 -4
  601. package/dist/ionic/p-c99ccdc9.entry.js +0 -4
  602. package/dist/ionic/p-d79542bd.system.js +0 -4
  603. package/dist/ionic/p-dc1372e0.entry.js +0 -4
  604. package/dist/ionic/p-df6fa126.entry.js +0 -4
  605. package/dist/ionic/p-eb3da535.system.entry.js +0 -4
  606. package/dist/ionic/p-ec2d3928.system.entry.js +0 -4
  607. package/dist/ionic/p-f0392d49.entry.js +0 -4
  608. package/dist/ionic/p-f94cbfe9.js +0 -4
@@ -17,7 +17,7 @@ export class ItemOptions {
17
17
  render() {
18
18
  const mode = getIonMode(this);
19
19
  const isEnd = isEndSide(this.side);
20
- return (h(Host, { key: 'ac0cec6a2ea83c9633c10bce379ffdcc99221b52', class: {
20
+ return (h(Host, { key: '6d91399d2aaaa81d514d0bbc8dffe53eeec25d36', class: {
21
21
  [mode]: true,
22
22
  // Used internally for styling
23
23
  [`item-options-${mode}`]: true,
@@ -386,7 +386,7 @@ export class ItemSliding {
386
386
  }
387
387
  render() {
388
388
  const mode = getIonMode(this);
389
- return (h(Host, { key: 'ae9da267d130e2875b2d854952b70daa739effd8', class: {
389
+ return (h(Host, { key: '47a3edd2ef2080ed9cfc2784277dea09785c7dc4', class: {
390
390
  [mode]: true,
391
391
  'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
392
392
  'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
@@ -55,13 +55,13 @@ export class Label {
55
55
  render() {
56
56
  const position = this.position;
57
57
  const mode = getIonMode(this);
58
- return (h(Host, { key: '6820fe45a0aa73dca665a43f588f952e94c194c7', class: createColorClasses(this.color, {
58
+ return (h(Host, { key: '6353a70565ef6fbbbf4042b000e536c61bcf99a9', class: createColorClasses(this.color, {
59
59
  [mode]: true,
60
60
  'in-item-color': hostContext('ion-item.ion-color', this.el),
61
61
  [`label-${position}`]: position !== undefined,
62
62
  [`label-no-animate`]: this.noAnimate,
63
63
  'label-rtl': document.dir === 'rtl',
64
- }) }, h("slot", { key: '79815d03fbfc141573f69eb037592837ca3428ce' })));
64
+ }) }, h("slot", { key: '6ef9c2758c0168442aa84941af0a6cec1ef1ec21' })));
65
65
  }
66
66
  static get is() { return "ion-label"; }
67
67
  static get encapsulation() { return "scoped"; }
@@ -27,7 +27,7 @@ export class List {
27
27
  render() {
28
28
  const mode = getIonMode(this);
29
29
  const { lines, inset } = this;
30
- return (h(Host, { key: '9a0eab31e53ae22dbfa7aa58d779d3976797ea08', role: "list", class: {
30
+ return (h(Host, { key: '5ff2b0b3989cc99ce17abb8bcd7ec1847940d1ec', role: "list", class: {
31
31
  [mode]: true,
32
32
  // Used internally for styling
33
33
  [`list-${mode}`]: true,
@@ -15,10 +15,10 @@ export class ListHeader {
15
15
  render() {
16
16
  const { lines } = this;
17
17
  const mode = getIonMode(this);
18
- return (h(Host, { key: '8788351ca44861f264661da2412d6ce7906126bd', class: createColorClasses(this.color, {
18
+ return (h(Host, { key: 'fb78bd8601cbd7b90ec84a96e0c8325be1132b1e', class: createColorClasses(this.color, {
19
19
  [mode]: true,
20
20
  [`list-header-lines-${lines}`]: lines !== undefined,
21
- }) }, h("div", { key: '8801cb2fdddb2dab0c649aef1ffbac8f0ba9fbe0', class: "list-header-inner" }, h("slot", { key: '7fc87318333b7ee0c3eee91abc64a9275ad43a26' }))));
21
+ }) }, h("div", { key: '2580ad49f3a54973e15f14d645a1e55a6fa066ac', class: "list-header-inner" }, h("slot", { key: '677b2e2ec8eeb3ae6ad329e86c76451cf3ae6c2f' }))));
22
22
  }
23
23
  static get is() { return "ion-list-header"; }
24
24
  static get encapsulation() { return "shadow"; }
@@ -158,9 +158,9 @@ export class Loading {
158
158
  * Otherwise, don't set aria-labelledby.
159
159
  */
160
160
  const ariaLabelledBy = message !== undefined ? msgId : null;
161
- return (h(Host, Object.assign({ key: '255c2d52a0788769ca8ac027eababc903f525d0e', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
161
+ return (h(Host, Object.assign({ key: 'f48fc35c38f3c200f39a44f3e741c1676057248e', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
162
162
  zIndex: `${40000 + this.overlayIndex}`,
163
- }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { key: 'd3a70d4e67a6578b01a82f97cb54f79342e7fd62', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: '9641470dc2f759e674cd176662c12161bf22e078', tabindex: "0" }), h("div", { key: 'a1b986633eff28e8da49eec08dfb27acab63a88e', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (h("div", { class: "loading-spinner" }, h("ion-spinner", { name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), h("div", { key: 'ab8a43e8d71756be287f92961ebdc0bbe2d1882b', tabindex: "0" })));
163
+ }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { key: 'e46058f693235c8ce5474df167595f6a80e4559d', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: '2ecd77581a2f130616033b8a78fb9da9d508b588', tabindex: "0" }), h("div", { key: '0243f93c41684f30c81623a8fbb533fd8f17b679', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (h("div", { key: '0643bc42b6e691580d29af27ea5a9fe395a6c5ce', class: "loading-spinner" }, h("ion-spinner", { key: 'f0417802dfbcad6ab9903b84bad692eedd326c88', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), h("div", { key: '3d3a256fe1074bda91cd09212460aa6460c4c723', tabindex: "0" })));
164
164
  }
165
165
  static get is() { return "ion-loading"; }
166
166
  static get encapsulation() { return "scoped"; }
@@ -586,14 +586,14 @@ export class Menu {
586
586
  * the ionBackButton listener in the menu controller
587
587
  * will handle closing the menu when Escape is pressed.
588
588
  */
589
- return (h(Host, { key: 'f5f151ca5bf4963c0300656327bb9c38bc7869fb', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
589
+ return (h(Host, { key: '68ea0bdf902c1f6369db93d69cacc0f30e1df32b', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
590
590
  [mode]: true,
591
591
  [`menu-type-${type}`]: true,
592
592
  'menu-enabled': !disabled,
593
593
  [`menu-side-${side}`]: true,
594
594
  'menu-pane-visible': isPaneVisible,
595
595
  'split-pane-side': hostContext('ion-split-pane', el),
596
- } }, h("div", { key: '39ddd64f884cc667e45f99a2922077d87f209205', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, h("slot", { key: '1ccce2c24ec0dfc81a34580c8be60c69c68d2d2d' })), h("ion-backdrop", { key: 'cf2bdf7f4171a4ada3cb55dd15f6b921b626a347', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
596
+ } }, h("div", { key: '7f32097faa4dcf64a568c7cf4b8397bbffc9f7a4', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, h("slot", { key: '3d4fbc9142297708aa1b31eed875afe6ea79de04' })), h("ion-backdrop", { key: 'f29f4615913da302212d54a43dce94ca5bfa86a5', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
597
597
  }
598
598
  static get is() { return "ion-menu"; }
599
599
  static get encapsulation() { return "shadow"; }
@@ -46,7 +46,7 @@ export class MenuButton {
46
46
  type: this.type,
47
47
  };
48
48
  const ariaLabel = inheritedAttributes['aria-label'] || 'menu';
49
- return (h(Host, { key: '1588897aeaefa91e13ed15927f2eeaebc01e8f18', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses(color, {
49
+ return (h(Host, { key: '7ec29715ce7926b7c2b08f3d9cac8aaa16b3dc28', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses(color, {
50
50
  [mode]: true,
51
51
  button: true, // ion-buttons target .button
52
52
  'menu-button-hidden': hidden,
@@ -55,7 +55,7 @@ export class MenuButton {
55
55
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
56
56
  'ion-activatable': true,
57
57
  'ion-focusable': true,
58
- }) }, h("button", Object.assign({ key: 'cb4e5b3d2095e15a53fa24ac65209162ec635476' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), h("span", { key: '1c2f499b40e8b9b18e3cb0ed28bbcca01e6d777f', class: "button-inner" }, h("slot", { key: 'df2f969098b5779f54c2d51b4816c7b78b45c860' }, h("ion-icon", { key: 'd093d7377c7f1a5a47b3cc319b36e5087421cf4c', part: "icon", icon: menuIcon, mode: mode, lazy: false, "aria-hidden": "true" }))), mode === 'md' && h("ion-ripple-effect", { type: "unbounded" }))));
58
+ }) }, h("button", Object.assign({ key: 'd4c5929264af3ba0328118bcc27d2ab7ef5d3809' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), h("span", { key: '7bfa6e9a93105486623d044861e879ec79ff64f1', class: "button-inner" }, h("slot", { key: '071ab58e285832fc188706166f5547d45d501ac5' }, h("ion-icon", { key: '918ec5d791921de9821c347af4f65f97dd94aabf', part: "icon", icon: menuIcon, mode: mode, lazy: false, "aria-hidden": "true" }))), mode === 'md' && h("ion-ripple-effect", { key: '00ffdd53f635e706c1dbd01b8e7944498650fe81', type: "unbounded" }))));
59
59
  }
60
60
  static get is() { return "ion-menu-button"; }
61
61
  static get encapsulation() { return "shadow"; }
@@ -26,10 +26,10 @@ export class MenuToggle {
26
26
  render() {
27
27
  const mode = getIonMode(this);
28
28
  const hidden = this.autoHide && !this.visible;
29
- return (h(Host, { key: '63bcdda9e9917133893d92284b9a91dfe38596a9', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
29
+ return (h(Host, { key: '7c27ea5b0795676bf5cb33e1f83aa142c197f64e', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
30
30
  [mode]: true,
31
31
  'menu-toggle-hidden': hidden,
32
- } }, h("slot", { key: 'a3ecc57b11c04b2f9911e5703ea0c6f66515b2f2' })));
32
+ } }, h("slot", { key: '69f187becedc0fe34603d41d279f043cf0fdf776' })));
33
33
  }
34
34
  static get is() { return "ion-menu-toggle"; }
35
35
  static get encapsulation() { return "shadow"; }
@@ -1,8 +1,9 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
+ import { isIonContent, findClosestIonContent } from "../../../utils/content/index";
4
5
  import { createGesture } from "../../../utils/gesture/index";
5
- import { clamp, raf } from "../../../utils/helpers";
6
+ import { clamp, raf, getElementRoot } from "../../../utils/helpers";
6
7
  import { getBackdropValueForSheet } from "../utils";
7
8
  import { calculateSpringStep, handleCanDismiss } from "./utils";
8
9
  export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
@@ -87,19 +88,32 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
87
88
  }
88
89
  const canStart = (detail) => {
89
90
  /**
90
- * If the sheet is fully expanded and
91
- * the user is swiping on the content,
92
- * the gesture should not start to
93
- * allow for scrolling on the content.
91
+ * If we are swiping on the content, swiping should only be possible if the content
92
+ * is scrolled all the way to the top so that we do not interfere with scrolling.
93
+ *
94
+ * We cannot assume that the `ion-content` target will remain consistent between swipes.
95
+ * For example, when using ion-nav within a modal it is possible to swipe, push a view,
96
+ * and then swipe again. The target content will not be the same between swipes.
94
97
  */
95
- const content = detail.event.target.closest('ion-content');
98
+ const contentEl = findClosestIonContent(detail.event.target);
96
99
  currentBreakpoint = getCurrentBreakpoint();
97
- if (currentBreakpoint === 1 && content) {
98
- return false;
100
+ if (currentBreakpoint === 1 && contentEl) {
101
+ /**
102
+ * The modal should never swipe to close on the content with a refresher.
103
+ * Note 1: We cannot solve this by making this gesture have a higher priority than
104
+ * the refresher gesture as the iOS native refresh gesture uses a scroll listener in
105
+ * addition to a gesture.
106
+ *
107
+ * Note 2: Do not use getScrollElement here because we need this to be a synchronous
108
+ * operation, and getScrollElement is asynchronous.
109
+ */
110
+ const scrollEl = isIonContent(contentEl) ? getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
111
+ const hasRefresherInContent = !!contentEl.querySelector('ion-refresher');
112
+ return !hasRefresherInContent && scrollEl.scrollTop === 0;
99
113
  }
100
114
  return true;
101
115
  };
102
- const onStart = () => {
116
+ const onStart = (detail) => {
103
117
  /**
104
118
  * If canDismiss is anything other than `true`
105
119
  * then users should be able to swipe down
@@ -114,11 +128,10 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
114
128
  */
115
129
  canDismissBlocksGesture = baseEl.canDismiss !== undefined && baseEl.canDismiss !== true && minBreakpoint === 0;
116
130
  /**
117
- * If swiping on the content
118
- * we should disable scrolling otherwise
119
- * the sheet will expand and the content will scroll.
131
+ * If we are pulling down, then it is possible we are pulling on the content.
132
+ * We do not want scrolling to happen at the same time as the gesture.
120
133
  */
121
- if (contentEl) {
134
+ if (detail.deltaY > 0 && contentEl) {
122
135
  contentEl.scrollY = false;
123
136
  }
124
137
  raf(() => {
@@ -131,6 +144,15 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
131
144
  animation.progressStart(true, 1 - currentBreakpoint);
132
145
  };
133
146
  const onMove = (detail) => {
147
+ /**
148
+ * If we are pulling down, then it is possible we are pulling on the content.
149
+ * We do not want scrolling to happen at the same time as the gesture.
150
+ * This accounts for when the user scrolls down, scrolls all the way up, and then
151
+ * pulls down again such that the modal should start to move.
152
+ */
153
+ if (detail.deltaY > 0 && contentEl) {
154
+ contentEl.scrollY = false;
155
+ }
134
156
  /**
135
157
  * Given the change in gesture position on the Y axis,
136
158
  * compute where the offset of the animation should be
@@ -233,6 +255,16 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
233
255
  else if (!shouldRemainOpen) {
234
256
  onDismiss();
235
257
  }
258
+ /**
259
+ * If the sheet is going to be fully expanded then we should enable
260
+ * scrolling immediately. The sheet modal animation takes ~500ms to finish
261
+ * so if we wait until then there is a visible delay for when scrolling is
262
+ * re-enabled. Native iOS allows for scrolling on the sheet modal as soon
263
+ * as the gesture is released, so we align with that.
264
+ */
265
+ if (contentEl && snapToBreakpoint === breakpoints[breakpoints.length - 1]) {
266
+ contentEl.scrollY = true;
267
+ }
236
268
  return new Promise((resolve) => {
237
269
  animation
238
270
  .onFinish(() => {
@@ -251,13 +283,6 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
251
283
  animation.progressStart(true, 1 - snapToBreakpoint);
252
284
  currentBreakpoint = snapToBreakpoint;
253
285
  onBreakpointChange(currentBreakpoint);
254
- /**
255
- * If the sheet is fully expanded, we can safely
256
- * enable scrolling again.
257
- */
258
- if (contentEl && currentBreakpoint === breakpoints[breakpoints.length - 1]) {
259
- contentEl.scrollY = true;
260
- }
261
286
  /**
262
287
  * Backdrop should become enabled
263
288
  * after the backdropBreakpoint value
@@ -562,18 +562,18 @@ export class Modal {
562
562
  const mode = getIonMode(this);
563
563
  const isCardModal = presentingElement !== undefined && mode === 'ios';
564
564
  const isHandleCycle = handleBehavior === 'cycle';
565
- return (h(Host, Object.assign({ key: '18053756559601f785776196d9dd269f8250c813', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
565
+ return (h(Host, Object.assign({ key: 'bb00efb8cbbdb2d1bbcc5e9c638586e2904882a8', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
566
566
  zIndex: `${20000 + this.overlayIndex}`,
567
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), h("ion-backdrop", { key: 'c080204fb09a67046d1986db28ccb7a1c8f0704d', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { class: "modal-shadow" }), h("div", Object.assign({ key: '1988ad86ef92108ad4c980ee6d98f280e368dee4',
567
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), h("ion-backdrop", { key: 'd2d50f736fdc34b933c00309fe0b67e4aff7ee63', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: '5d3523a04da9350ae435a4f3247198095b71f206', class: "modal-shadow" }), h("div", Object.assign({ key: '09b3c4b629155f8c32f5c896cf689ffbe7004de8',
568
568
  /*
569
569
  role and aria-modal must be used on the
570
570
  same element. They must also be set inside the
571
571
  shadow DOM otherwise ion-button will not be highlighted
572
572
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
573
573
  */
574
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { class: "modal-handle",
574
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: 'e47d90068927f3a518e4144e17f18ac326126712', class: "modal-handle",
575
575
  // Prevents the handle from receiving keyboard focus when it does not cycle
576
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: '321e79f29eba3faab323d17ae575300e25fc0c51' }))));
576
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: '5733e94b3ecc4ed9bfb6aec5cd254cd0e43ee8f7' }))));
577
577
  }
578
578
  static get is() { return "ion-modal"; }
579
579
  static get encapsulation() { return "shadow"; }
@@ -830,7 +830,7 @@ export class Nav {
830
830
  }
831
831
  }
832
832
  render() {
833
- return h("slot", { key: '2cb1a430d8d29b0f54b1ec80f98e4b82b6c8cc0a' });
833
+ return h("slot", { key: 'dfe98cb6604a2015a49f41beffebdd2da957dfff' });
834
834
  }
835
835
  static get is() { return "ion-nav"; }
836
836
  static get encapsulation() { return "shadow"; }
@@ -14,7 +14,7 @@ export class NavLink {
14
14
  this.routerAnimation = undefined;
15
15
  }
16
16
  render() {
17
- return h(Host, { key: 'e4aebea5eb131852acea407afb84597df71be4a4', onClick: this.onClick });
17
+ return h(Host, { key: 'd2f8545b4fbd5aa25ef36eb01dffbc5d35ccfbb9', onClick: this.onClick });
18
18
  }
19
19
  static get is() { return "ion-nav-link"; }
20
20
  static get properties() {
@@ -13,9 +13,9 @@ export class Note {
13
13
  }
14
14
  render() {
15
15
  const mode = getIonMode(this);
16
- return (h(Host, { key: '4064be8c5aceec02a25b8933338596b1720e19d9', class: createColorClasses(this.color, {
16
+ return (h(Host, { key: '10a3495bc21166176986441479f8f7539029d161', class: createColorClasses(this.color, {
17
17
  [mode]: true,
18
- }) }, h("slot", { key: '9b4265b01387096a8a6aba34a1d8217733bb6f1f' })));
18
+ }) }, h("slot", { key: 'b6a9459e1b85f608fafd060a4bfeb11637ebe873' })));
19
19
  }
20
20
  static get is() { return "ion-note"; }
21
21
  static get encapsulation() { return "shadow"; }
@@ -474,7 +474,7 @@ export class Picker {
474
474
  this.emitInputModeChange();
475
475
  }
476
476
  render() {
477
- return (h(Host, { key: '16c8d2d72dcbd64e2b2fb77200ead6a2107d24a6', onPointerDown: (ev) => this.onPointerDown(ev), onClick: () => this.onClick() }, h("input", { key: 'f7f4c77bde934813a18f221308277580c45715e3', "aria-hidden": "true", tabindex: -1, inputmode: "numeric", type: "number", onKeyDown: (ev) => {
477
+ return (h(Host, { key: 'f92214a09dc85b65873676f40fde2b802960e704', onPointerDown: (ev) => this.onPointerDown(ev), onClick: () => this.onClick() }, h("input", { key: '6da37f75aca4ea1c9cb3bc733ebda2116279f313', "aria-hidden": "true", tabindex: -1, inputmode: "numeric", type: "number", onKeyDown: (ev) => {
478
478
  var _a;
479
479
  /**
480
480
  * The "Enter" key represents
@@ -489,7 +489,7 @@ export class Picker {
489
489
  if (ev.key === 'Enter') {
490
490
  (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.blur();
491
491
  }
492
- }, ref: (el) => (this.inputEl = el), onInput: () => this.onInputChange(), onBlur: () => this.exitInputMode() }), h("div", { key: '0eead52707acfa004c83fe0acfd4f9162b19f09b', class: "picker-before" }), h("div", { key: '5b4b531e3ed4fd35f1380156cf5332a455433a19', class: "picker-after" }), h("div", { key: '2b478202ac99703e4f72b30906915c7058ca9b9f', class: "picker-highlight", ref: (el) => (this.highlightEl = el) }), h("slot", { key: '4a93ca36194ea1d2cec8bef8a0f402c14ee74576' })));
492
+ }, ref: (el) => (this.inputEl = el), onInput: () => this.onInputChange(), onBlur: () => this.exitInputMode() }), h("div", { key: '298e99d83dd3f5bf2798150bab0bb4024af472fa', class: "picker-before" }), h("div", { key: 'ea578f04eb562a4dc6d6cc92de133dcb9fb7f42a', class: "picker-after" }), h("div", { key: '84567824956dfe967992a629904836ba8b75b3ec', class: "picker-highlight", ref: (el) => (this.highlightEl = el) }), h("slot", { key: 'df81f8fb90e1f649b608328034528f5c31c70c3b' })));
493
493
  }
494
494
  static get is() { return "ion-picker"; }
495
495
  static get encapsulation() { return "shadow"; }
@@ -383,14 +383,14 @@ export class PickerColumn {
383
383
  render() {
384
384
  const { color, disabled, isActive, numericInput } = this;
385
385
  const mode = getIonMode(this);
386
- return (h(Host, { key: '20de89f624d0fdbb4eadf912a6a8a8c1f3c374bc', class: createColorClasses(color, {
386
+ return (h(Host, { key: '59648ef23cef1ab6d30955bb95bc23e670ec7256', class: createColorClasses(color, {
387
387
  [mode]: true,
388
388
  ['picker-column-active']: isActive,
389
389
  ['picker-column-numeric-input']: numericInput,
390
390
  ['picker-column-disabled']: disabled,
391
- }) }, h("slot", { key: '39bd2171785e21aef935787d8222949a2d29a771', name: "prefix" }), h("div", { key: '97217b758b65913db869f322b8f127f0da3a1c28', class: "picker-opts", tabindex: disabled ? undefined : 0, ref: (el) => {
391
+ }) }, h("slot", { key: 'fd93192d4945b2c33e0fe93cc90b505f2cec12fc', name: "prefix" }), h("div", { key: '99e49c6d58badd2fe5e75f0ebcd4bc00eb50aa58', class: "picker-opts", tabindex: disabled ? undefined : 0, ref: (el) => {
392
392
  this.scrollEl = el;
393
- } }, h("div", { key: '8cfd8f5de1c274f7b2b5b14c7f6f875d475edc5c', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'cfbf7e8abe54c4df98addb9a24e82dd803ba95c0', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '8049923186d8b5ce28da2ce90ad720c244395f9c', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("slot", { key: '180efa3b7874e2b4269fb150794eaeab9f648f2e' }), h("div", { key: '9161cc3e344b92354276981813e1d55ef9979dea', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'ce703fb3ea07d5ea2abf526d64ca85d2beed15f1', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '6ce6cb5de80ac316a664e9cfcecf1897c8f90e58', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), h("slot", { key: 'ecccfa6bd8f6d2d641109e74d0788081e3f29801', name: "suffix" })));
393
+ } }, h("div", { key: 'bb44892ef179b25373e45e4b4bc4d1fa617b1ea1', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '9ee7aeb8468bbb03f7192d56849dae089b7a0250', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '0baa4bda4bf02a8d06dbf3392b1516ca8ea8d26a', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("slot", { key: 'ff4cad20fd82ab66599473f60d10c18dc1dc76d8' }), h("div", { key: '04dcb0390209081e6223b90e45b8f2ef0fdf94bd', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '734e3b431a30ce93957e1452516efc86e29ff9c9', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '1c68dcf9a029e607bb6bc9c19cd02214914eb6d7', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), h("slot", { key: 'd85210cc99c8c1bf83eb1cd51540ebe875d4adeb', name: "suffix" })));
394
394
  }
395
395
  static get is() { return "ion-picker-column"; }
396
396
  static get encapsulation() { return "shadow"; }
@@ -76,10 +76,10 @@ export class PickerColumnOption {
76
76
  render() {
77
77
  const { color, disabled, ariaLabel } = this;
78
78
  const mode = getIonMode(this);
79
- return (h(Host, { key: '9333d9ac8e9990fc840f31e00391177d9cd563b3', class: createColorClasses(color, {
79
+ return (h(Host, { key: 'c743c6ef44bb9f765cc15b3b5d2864de6520203a', class: createColorClasses(color, {
80
80
  [mode]: true,
81
81
  ['option-disabled']: disabled,
82
- }) }, h("button", { key: '6ca92bc584587230135982106eab542589fc4c9d', tabindex: "-1", "aria-label": ariaLabel, disabled: disabled, onClick: () => this.onClick() }, h("slot", { key: 'd9a68906017f77143a0691b9bbc59ae2142da6aa' }))));
82
+ }) }, h("button", { key: '4c3d9eb245c52b2c007f727e145cfb55759bd7a9', tabindex: "-1", "aria-label": ariaLabel, disabled: disabled, onClick: () => this.onClick() }, h("slot", { key: '4c907d2187cbe9d5941e27f2b12578e2b7271461' }))));
83
83
  }
84
84
  static get is() { return "ion-picker-column-option"; }
85
85
  static get encapsulation() { return "shadow"; }
@@ -182,11 +182,11 @@ export class Picker {
182
182
  render() {
183
183
  const { htmlAttributes } = this;
184
184
  const mode = getIonMode(this);
185
- return (h(Host, Object.assign({ key: '91d3d127c46d125a2a86222e3002d804ebd8bc84', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
185
+ return (h(Host, Object.assign({ key: 'cb1495acc8842c00e9f51ae792a01f769e36b0c6', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
186
186
  zIndex: `${20000 + this.overlayIndex}`,
187
187
  }, class: Object.assign({ [mode]: true,
188
188
  // Used internally for styling
189
- [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), h("ion-backdrop", { key: '63140c43f7a2e3000076adec0406197cb569f985', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: '3e86ec5e61adf40983a1d33ef24f66f4f75307e8', tabindex: "0" }), h("div", { key: '3c3844f369da33e35c9a498d88d1b7e4d686b8ce', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, h("div", { key: 'e03200231976723409505b0c4070e7f596815e50', class: "picker-toolbar" }, this.buttons.map((b) => (h("div", { class: buttonWrapperClass(b) }, h("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass(b) }, b.text))))), h("div", { key: 'd59de79e8c364376bc16d2edae3672b21443f3fe', class: "picker-columns" }, h("div", { key: 'e79cb88c5397047bc8c7e71efb4f1a338773e744', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => h("ion-picker-legacy-column", { col: c })), h("div", { key: '776de64da09485ad1dbf78d4d402e297b94348a6', class: "picker-below-highlight" }))), h("div", { key: 'f0aa77e3b467c3fb4950389d27c13769dc913b14', tabindex: "0" })));
189
+ [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), h("ion-backdrop", { key: 'eecbcdfd474f5ab2f9962a030b1dcbf7714fe938', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: '262e1d3bc916b30068f7be1edbc73283a815fc0f', tabindex: "0" }), h("div", { key: 'a036cf789ab768428aae26a19dbd0c5cb696188c', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, h("div", { key: '6be7a8986976ead39611ce398ed6ad71f3b7427e', class: "picker-toolbar" }, this.buttons.map((b) => (h("div", { class: buttonWrapperClass(b) }, h("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass(b) }, b.text))))), h("div", { key: '66a1d99aebf48219cab4177d06d893fe1d458a1f', class: "picker-columns" }, h("div", { key: 'ed7fd940c5f54453587e13ab52cbfd4122a397c6', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => h("ion-picker-legacy-column", { col: c })), h("div", { key: '21c491c08bce126dde03196b21e28d903e157e1f', class: "picker-below-highlight" }))), h("div", { key: 'bd892f74b886ae1bfd010d687a2b9741213b246c', tabindex: "0" })));
190
190
  }
191
191
  static get is() { return "ion-picker-legacy"; }
192
192
  static get encapsulation() { return "scoped"; }
@@ -336,9 +336,9 @@ export class PickerColumnCmp {
336
336
  render() {
337
337
  const col = this.col;
338
338
  const mode = getIonMode(this);
339
- return (h(Host, { key: '90b9d07917c0643cf8a622f090abefcd2846ac96', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
339
+ return (h(Host, { key: 'c015eb8bc01b3287cbd1d71af0aa311b6be89d36', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
340
340
  'max-width': this.col.columnWidth,
341
- } }, col.prefix && (h("div", { class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), h("div", { key: '4adca834de9295a18bdb355ebbfa49813f0f93f8', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (h("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (h("div", { class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
341
+ } }, col.prefix && (h("div", { key: 'f9de3fe2f5c7ad3256d6e5f44b6d03a2b1f96ffb', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), h("div", { key: '10f9c12aa174f96c7cf9adc30efbb26695c0aa64', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (h("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (h("div", { key: '1d9c0892ce56e0da9044c79eb953827166f5190b', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
342
342
  }
343
343
  static get is() { return "ion-picker-legacy-column"; }
344
344
  static get originalStyleUrls() {
@@ -141,7 +141,6 @@
141
141
  --ion-safe-area-left: 0px;
142
142
  display: flex;
143
143
  flex-direction: column;
144
- overflow: hidden;
145
144
  }
146
145
 
147
146
  :host(.popover-nested.popover-side-left) {
@@ -336,9 +336,9 @@ export class Popover {
336
336
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes } = this;
337
337
  const desktop = isPlatform('desktop');
338
338
  const enableArrow = arrow && !parentPopover;
339
- return (h(Host, Object.assign({ key: '8e3ff2681dbd4d2a659633ba2d5419abb2646858', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
339
+ return (h(Host, Object.assign({ key: '4bccccf57df72e1196c6a28e803831c0520aef53', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
340
340
  zIndex: `${20000 + this.overlayIndex}`,
341
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: '9bdb7b263b7ecaee62fd091dbc55ea3b8cf02b45', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { class: "popover-arrow", part: "arrow" }), h("div", { key: '03bf042a104e8d019bd815ce0cc63a1b503cd644', class: "popover-content", part: "content" }, h("slot", { key: 'dd9e35e0af13da7b98d094cc1d5b1161afaf267b' })))));
341
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { key: 'e42f4f61150b7b41093d37d187d1b7bb4187a00e', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: '386ac3247b0f82566aae07b6dbf5e97d243ce367', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { key: '28f0e5ea2fa099b808ffb77a9a0d78b8b46c1513', class: "popover-arrow", part: "arrow" }), h("div", { key: '7ba2e3dee529015c4e07ce78ec10dc59985ec6a2', class: "popover-content", part: "content" }, h("slot", { key: '915cdc8e389fda210f83aec8b7bbbfa6f830a884' })))));
342
342
  }
343
343
  static get is() { return "ion-popover"; }
344
344
  static get encapsulation() { return "shadow"; }
@@ -141,7 +141,6 @@
141
141
  --ion-safe-area-left: 0px;
142
142
  display: flex;
143
143
  flex-direction: column;
144
- overflow: hidden;
145
144
  }
146
145
 
147
146
  :host(.popover-nested.popover-side-left) {
@@ -46,6 +46,82 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
46
46
  * Translucent popovers are only available on iOS
47
47
  */
48
48
  configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
49
+ test.describe(title('popover: scrolling'), async () => {
50
+ test.beforeEach(({ skip }) => {
51
+ test.info().annotations.push({
52
+ type: 'issue',
53
+ description: 'https://github.com/ionic-team/ionic-framework/issues/29211',
54
+ });
55
+ // We are testing if Ionic sets overflow is set correctly on elements,
56
+ // so we do not need to test across browsers
57
+ skip.browser('webkit', 'Behavior does not vary across browsers');
58
+ skip.browser('firefox', 'Behavior does not vary across browsers');
59
+ });
60
+ test('should scroll to bottom without IonContent', async ({ page }) => {
61
+ await page.setContent(`
62
+ <style>
63
+ ion-popover {
64
+ --height: 150px;
65
+ }
66
+ </style>
67
+ <ion-popover>
68
+ <p>Text</p>
69
+ <p>Text</p>
70
+ <p>Text</p>
71
+ <p>Text</p>
72
+ <p>Text</p>
73
+ <p>Text</p>
74
+ <p>Text</p>
75
+ <p>Text</p>
76
+ <p>Text</p>
77
+ <p>Text</p>
78
+ </ion-popover>
79
+ `, config);
80
+ const popover = page.locator('ion-popover');
81
+ const viewport = popover.locator('.popover-viewport');
82
+ const p = popover.locator('p');
83
+ const lastP = await p.last();
84
+ await popover.evaluate((el) => el.present());
85
+ await expect(lastP).not.toBeInViewport();
86
+ // hover over viewport and scroll to bottom
87
+ await viewport.hover();
88
+ await page.mouse.wheel(0, 500);
89
+ await expect(lastP).toBeInViewport();
90
+ });
91
+ test('should scroll to bottom with IonContent', async ({ page }) => {
92
+ await page.setContent(`
93
+ <style>
94
+ ion-popover {
95
+ --height: 150px;
96
+ }
97
+ </style>
98
+ <ion-popover>
99
+ <ion-content>
100
+ <p>Text</p>
101
+ <p>Text</p>
102
+ <p>Text</p>
103
+ <p>Text</p>
104
+ <p>Text</p>
105
+ <p>Text</p>
106
+ <p>Text</p>
107
+ <p>Text</p>
108
+ <p>Text</p>
109
+ <p>Text</p>
110
+ </ion-content>
111
+ </ion-popover>
112
+ `, config);
113
+ const popover = page.locator('ion-popover');
114
+ const content = popover.locator('ion-content');
115
+ const p = popover.locator('p');
116
+ const lastP = await p.last();
117
+ await popover.evaluate((el) => el.present());
118
+ await expect(lastP).not.toBeInViewport();
119
+ // hover over viewport and scroll to bottom
120
+ await content.hover();
121
+ await page.mouse.wheel(0, 500);
122
+ await expect(lastP).toBeInViewport();
123
+ });
124
+ });
49
125
  test.describe(title('popover: translucent variants'), async () => {
50
126
  let popoverFixture;
51
127
  test.beforeEach(async ({ page }) => {
@@ -28,7 +28,7 @@ export class ProgressBar {
28
28
  const mode = getIonMode(this);
29
29
  // If the progress is displayed as a solid bar.
30
30
  const progressSolid = buffer === 1;
31
- return (h(Host, { key: '63b306c91da12d1fa18d6f6c4726871ef727c9f3', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses(color, {
31
+ return (h(Host, { key: '8d8ddf0b26fe33803d3a6168cbedd523d1a888e7', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses(color, {
32
32
  [mode]: true,
33
33
  [`progress-bar-${type}`]: true,
34
34
  'progress-paused': paused,
@@ -113,6 +113,7 @@ input {
113
113
  }
114
114
 
115
115
  :host(.in-item) {
116
+ flex: 1 1 0;
116
117
  width: 100%;
117
118
  height: 100%;
118
119
  }
@@ -107,7 +107,7 @@ export class Radio {
107
107
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
108
108
  const mode = getIonMode(this);
109
109
  const inItem = hostContext('ion-item', el);
110
- return (h(Host, { key: '46bb0202f75b6cc81df10de71fbe971dc4dcaa68', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses(color, {
110
+ return (h(Host, { key: 'cb00934d052260e97462e97a1669045cbb0b963a', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses(color, {
111
111
  [mode]: true,
112
112
  'in-item': inItem,
113
113
  'radio-checked': checked,
@@ -118,10 +118,10 @@ export class Radio {
118
118
  // Focus and active styling should not apply when the radio is in an item
119
119
  'ion-activatable': !inItem,
120
120
  'ion-focusable': !inItem,
121
- }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, h("label", { key: '55061e8cc857752d963c9e4a65f46727f5c2cd9d', class: "radio-wrapper" }, h("div", { key: '589fd41fccd0e6d007e7bc502067f3f2447e4b80', class: {
121
+ }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, h("label", { key: '05613f89400469692442bf3c02c27f9299c5d6ef', class: "radio-wrapper" }, h("div", { key: '89b5d7668c3856f417c318629086cf46a072efbe', class: {
122
122
  'label-text-wrapper': true,
123
123
  'label-text-wrapper-hidden': !hasLabel,
124
- }, part: "label" }, h("slot", { key: '0076f1f3b64c1a0cf2bc511424956a63d6cf2db9' })), h("div", { key: '1505a84e6dc8715f8fcb19ce94fab79e624a0622', class: "native-wrapper" }, this.renderRadioControl()))));
124
+ }, part: "label" }, h("slot", { key: 'd5e43a8d0fe5a7fc323887d310fd64d6f87deef7' })), h("div", { key: '7fd221189adcfccca1ed18dcd0a60cde6261120b', class: "native-wrapper" }, this.renderRadioControl()))));
125
125
  }
126
126
  static get is() { return "ion-radio"; }
127
127
  static get encapsulation() { return "shadow"; }
@@ -113,6 +113,7 @@ input {
113
113
  }
114
114
 
115
115
  :host(.in-item) {
116
+ flex: 1 1 0;
116
117
  width: 100%;
117
118
  height: 100%;
118
119
  }
@@ -153,7 +153,7 @@ export class RadioGroup {
153
153
  const { label, labelId, el, name, value } = this;
154
154
  const mode = getIonMode(this);
155
155
  renderHiddenInput(true, el, name, value, false);
156
- return h(Host, { key: '3d43aa6696c5293b49fc44cf91e3e41c4f4d12df', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
156
+ return h(Host, { key: 'b6b439d6d53d17a5a4d9853a7cf6065b28213338', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
157
157
  }
158
158
  static get is() { return "ion-radio-group"; }
159
159
  static get properties() {