voyager-ionic-core 7.7.3 → 7.8.6

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 (610) 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 +1 -1
  6. package/components/checkbox.js +1 -1
  7. package/components/data.js +23 -38
  8. package/components/hardware-back-button.js +3 -3
  9. package/components/input-shims.js +5 -5
  10. package/components/ion-app.js +4 -4
  11. package/components/ion-avatar.js +1 -1
  12. package/components/ion-back-button.js +2 -2
  13. package/components/ion-badge.js +2 -2
  14. package/components/ion-breadcrumb.js +4 -4
  15. package/components/ion-breadcrumbs.js +2 -2
  16. package/components/ion-card-content.js +1 -1
  17. package/components/ion-card-header.js +2 -2
  18. package/components/ion-card-subtitle.js +2 -2
  19. package/components/ion-card-title.js +2 -2
  20. package/components/ion-card.js +1 -1
  21. package/components/ion-chip.js +2 -2
  22. package/components/ion-col.js +2 -2
  23. package/components/ion-content.js +3 -3
  24. package/components/ion-datetime-button.js +12 -11
  25. package/components/ion-datetime.js +75 -12
  26. package/components/ion-fab-button.js +2 -2
  27. package/components/ion-fab-list.js +2 -2
  28. package/components/ion-fab.js +2 -2
  29. package/components/ion-footer.js +2 -2
  30. package/components/ion-grid.js +2 -2
  31. package/components/ion-header.js +3 -3
  32. package/components/ion-img.js +1 -1
  33. package/components/ion-infinite-scroll-content.js +2 -2
  34. package/components/ion-infinite-scroll.js +1 -1
  35. package/components/ion-input.js +8 -0
  36. package/components/ion-item-divider.js +2 -2
  37. package/components/ion-item-group.js +1 -1
  38. package/components/ion-item-option.js +2 -2
  39. package/components/ion-item-options.js +1 -1
  40. package/components/ion-item-sliding.js +1 -1
  41. package/components/ion-loading.js +2 -2
  42. package/components/ion-menu-button.js +2 -2
  43. package/components/ion-menu-toggle.js +2 -2
  44. package/components/ion-menu.js +3 -3
  45. package/components/ion-modal.js +81 -25
  46. package/components/ion-nav-link.js +1 -1
  47. package/components/ion-nav.js +1 -1
  48. package/components/ion-picker.js +2 -2
  49. package/components/ion-progress-bar.js +1 -1
  50. package/components/ion-range.js +126 -21
  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 +35 -6
  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-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-thumbnail.js +1 -1
  70. package/components/ion-title.js +2 -2
  71. package/components/ion-toast.js +2 -2
  72. package/components/ion-toolbar.js +2 -2
  73. package/components/item.js +1 -1
  74. package/components/label.js +1 -1
  75. package/components/list-header.js +2 -2
  76. package/components/list.js +1 -1
  77. package/components/note.js +2 -2
  78. package/components/overlays.js +61 -19
  79. package/components/picker-column-internal.js +8 -4
  80. package/components/picker-column.js +2 -2
  81. package/components/picker-internal.js +2 -2
  82. package/components/popover.js +4 -4
  83. package/components/radio-group.js +1 -1
  84. package/components/ripple-effect.js +1 -1
  85. package/components/select-popover.js +1 -1
  86. package/components/spinner.js +1 -1
  87. package/css/core.css +1 -561
  88. package/css/core.css.map +1 -1
  89. package/css/display.css +1 -131
  90. package/css/display.css.map +1 -1
  91. package/css/flex-utils.css +1 -81
  92. package/css/flex-utils.css.map +1 -1
  93. package/css/float-elements.css +1 -293
  94. package/css/float-elements.css.map +1 -1
  95. package/css/global.bundle.css +1 -457
  96. package/css/global.bundle.css.map +1 -1
  97. package/css/ionic-swiper.css +1 -127
  98. package/css/ionic-swiper.css.map +1 -1
  99. package/css/ionic.bundle.css +1 -1
  100. package/css/ionic.bundle.css.map +1 -1
  101. package/css/normalize.css +1 -150
  102. package/css/normalize.css.map +1 -1
  103. package/css/padding.css +1 -202
  104. package/css/padding.css.map +1 -1
  105. package/css/structure.css +1 -152
  106. package/css/structure.css.map +1 -1
  107. package/css/text-alignment.css +1 -243
  108. package/css/text-alignment.css.map +1 -1
  109. package/css/text-transformation.css +1 -158
  110. package/css/text-transformation.css.map +1 -1
  111. package/css/typography.css +1 -157
  112. package/css/typography.css.map +1 -1
  113. package/css/utils.bundle.css +1 -1100
  114. package/css/utils.bundle.css.map +1 -1
  115. package/dist/cjs/{app-globals-92ad1b3d.js → app-globals-c5eb104c.js} +1 -1
  116. package/dist/cjs/{button-active-2d6520ec.js → button-active-181d142e.js} +1 -1
  117. package/dist/cjs/{data-a5109f09.js → data-4487a815.js} +22 -39
  118. package/dist/cjs/{hardware-back-button-2696acaf.js → hardware-back-button-adba3ac7.js} +5 -5
  119. package/dist/cjs/{index-9bfcb6e8.js → index-1f7c54f8.js} +3 -3
  120. package/dist/cjs/{index-0ffe376d.js → index-22617dd6.js} +51 -7
  121. package/dist/cjs/{index-4c96691f.js → index-5c38afe7.js} +2 -2
  122. package/dist/cjs/index.cjs.js +8 -8
  123. package/dist/cjs/{input-shims-a9a85bb9.js → input-shims-05ac9905.js} +5 -5
  124. package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
  125. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
  126. package/dist/cjs/ion-alert.cjs.entry.js +7 -7
  127. package/dist/cjs/ion-app_8.cjs.entry.js +24 -24
  128. package/dist/cjs/ion-avatar_3.cjs.entry.js +6 -6
  129. package/dist/cjs/ion-back-button.cjs.entry.js +4 -4
  130. package/dist/cjs/ion-backdrop.cjs.entry.js +3 -3
  131. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +8 -8
  132. package/dist/cjs/ion-button_2.cjs.entry.js +6 -6
  133. package/dist/cjs/ion-card_5.cjs.entry.js +10 -10
  134. package/dist/cjs/ion-checkbox.cjs.entry.js +3 -3
  135. package/dist/cjs/ion-chip.cjs.entry.js +4 -4
  136. package/dist/cjs/ion-col_3.cjs.entry.js +7 -7
  137. package/dist/cjs/ion-datetime-button.cjs.entry.js +14 -13
  138. package/dist/cjs/ion-datetime_3.cjs.entry.js +80 -20
  139. package/dist/cjs/ion-fab_3.cjs.entry.js +8 -8
  140. package/dist/cjs/ion-img.cjs.entry.js +3 -3
  141. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +5 -5
  142. package/dist/cjs/ion-input.cjs.entry.js +10 -2
  143. package/dist/cjs/ion-item-option_3.cjs.entry.js +6 -6
  144. package/dist/cjs/ion-item_8.cjs.entry.js +14 -14
  145. package/dist/cjs/ion-loading.cjs.entry.js +6 -6
  146. package/dist/cjs/ion-menu_3.cjs.entry.js +11 -11
  147. package/dist/cjs/ion-modal.cjs.entry.js +86 -30
  148. package/dist/cjs/ion-nav_2.cjs.entry.js +5 -5
  149. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +10 -6
  150. package/dist/cjs/ion-picker-internal.cjs.entry.js +3 -3
  151. package/dist/cjs/ion-popover.cjs.entry.js +9 -9
  152. package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -3
  153. package/dist/cjs/ion-radio_2.cjs.entry.js +3 -3
  154. package/dist/cjs/ion-range.cjs.entry.js +128 -23
  155. package/dist/cjs/ion-refresher_2.cjs.entry.js +4 -4
  156. package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
  157. package/dist/cjs/ion-ripple-effect.cjs.entry.js +3 -3
  158. package/dist/cjs/ion-route_4.cjs.entry.js +4 -4
  159. package/dist/cjs/ion-searchbar.cjs.entry.js +31 -7
  160. package/dist/cjs/ion-segment_2.cjs.entry.js +7 -7
  161. package/dist/cjs/ion-select_3.cjs.entry.js +6 -6
  162. package/dist/cjs/ion-spinner.cjs.entry.js +3 -3
  163. package/dist/cjs/ion-split-pane.cjs.entry.js +4 -4
  164. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +6 -6
  165. package/dist/cjs/ion-tab_2.cjs.entry.js +4 -4
  166. package/dist/cjs/ion-text.cjs.entry.js +4 -4
  167. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  168. package/dist/cjs/ion-toast.cjs.entry.js +6 -6
  169. package/dist/cjs/ion-toggle.cjs.entry.js +2 -2
  170. package/dist/cjs/{ionic-global-59a10130.js → ionic-global-c5503e93.js} +1 -1
  171. package/dist/cjs/ionic.cjs.js +5 -5
  172. package/dist/cjs/{ios.transition-96679580.js → ios.transition-30830fc4.js} +2 -2
  173. package/dist/cjs/loader.cjs.js +4 -4
  174. package/dist/cjs/{md.transition-d6c98822.js → md.transition-7f581866.js} +2 -2
  175. package/dist/cjs/{overlays-db5d96f3.js → overlays-129dfc13.js} +62 -20
  176. package/dist/cjs/{status-tap-7ad5f0fb.js → status-tap-03d82840.js} +1 -1
  177. package/dist/collection/collection-manifest.json +2 -2
  178. package/dist/collection/components/action-sheet/action-sheet.js +3 -3
  179. package/dist/collection/components/alert/alert.js +2 -2
  180. package/dist/collection/components/alert/test/a11y/alert.e2e.js +4 -0
  181. package/dist/collection/components/app/app.js +4 -4
  182. package/dist/collection/components/avatar/avatar.js +1 -1
  183. package/dist/collection/components/back-button/back-button.js +2 -2
  184. package/dist/collection/components/backdrop/backdrop.js +1 -1
  185. package/dist/collection/components/badge/badge.js +2 -2
  186. package/dist/collection/components/breadcrumb/breadcrumb.js +4 -4
  187. package/dist/collection/components/breadcrumbs/breadcrumbs.js +2 -2
  188. package/dist/collection/components/button/button.ios.css +5 -5
  189. package/dist/collection/components/button/button.js +2 -2
  190. package/dist/collection/components/button/button.md.css +4 -5
  191. package/dist/collection/components/buttons/buttons.js +1 -1
  192. package/dist/collection/components/card/card.js +1 -1
  193. package/dist/collection/components/card-content/card-content.js +1 -1
  194. package/dist/collection/components/card-header/card-header.js +2 -2
  195. package/dist/collection/components/card-subtitle/card-subtitle.js +2 -2
  196. package/dist/collection/components/card-title/card-title.js +2 -2
  197. package/dist/collection/components/checkbox/checkbox.js +1 -1
  198. package/dist/collection/components/checkbox/test/checkbox.spec.js +12 -0
  199. package/dist/collection/components/chip/chip.js +2 -2
  200. package/dist/collection/components/col/col.js +2 -2
  201. package/dist/collection/components/content/content.js +3 -3
  202. package/dist/collection/components/datetime/datetime.js +56 -12
  203. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +80 -1
  204. package/dist/collection/components/datetime/test/format.spec.js +65 -15
  205. package/dist/collection/components/datetime/utils/format.js +24 -37
  206. package/dist/collection/components/datetime/utils/validate.js +45 -0
  207. package/dist/collection/components/datetime-button/datetime-button.js +12 -11
  208. package/dist/collection/components/datetime-button/test/basic/datetime-button.e2e.js +65 -0
  209. package/dist/collection/components/fab/fab.js +2 -2
  210. package/dist/collection/components/fab-button/fab-button.js +2 -2
  211. package/dist/collection/components/fab-list/fab-list.js +2 -2
  212. package/dist/collection/components/footer/footer.js +2 -2
  213. package/dist/collection/components/grid/grid.js +2 -2
  214. package/dist/collection/components/header/header.ios.css +5 -2
  215. package/dist/collection/components/header/header.js +2 -2
  216. package/dist/collection/components/header/test/basic/header.e2e.js +77 -0
  217. package/dist/collection/components/img/img.js +1 -1
  218. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  219. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  220. package/dist/collection/components/input/input.js +8 -0
  221. package/dist/collection/components/item/item.js +1 -1
  222. package/dist/collection/components/item/test/buttons/item.e2e.js +20 -4
  223. package/dist/collection/components/item-divider/item-divider.js +2 -2
  224. package/dist/collection/components/item-group/item-group.js +1 -1
  225. package/dist/collection/components/item-option/item-option.js +2 -2
  226. package/dist/collection/components/item-options/item-options.js +1 -1
  227. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  228. package/dist/collection/components/label/label.js +1 -1
  229. package/dist/collection/components/list/list.js +1 -1
  230. package/dist/collection/components/list-header/list-header.js +2 -2
  231. package/dist/collection/components/loading/loading.js +2 -2
  232. package/dist/collection/components/menu/menu.js +3 -3
  233. package/dist/collection/components/menu-button/menu-button.js +2 -2
  234. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  235. package/dist/collection/components/modal/gestures/sheet.js +45 -20
  236. package/dist/collection/components/modal/modal.js +38 -6
  237. package/dist/collection/components/modal/test/modal-attributes.spec.js +32 -0
  238. package/dist/collection/components/nav/nav.js +1 -1
  239. package/dist/collection/components/nav-link/nav-link.js +1 -1
  240. package/dist/collection/components/note/note.js +2 -2
  241. package/dist/collection/components/picker/picker.js +2 -2
  242. package/dist/collection/components/picker-column/picker-column.js +2 -2
  243. package/dist/collection/components/picker-column-internal/picker-column-internal.js +8 -4
  244. package/dist/collection/components/picker-internal/picker-internal.js +2 -2
  245. package/dist/collection/components/popover/popover.ios.css +0 -1
  246. package/dist/collection/components/popover/popover.js +2 -2
  247. package/dist/collection/components/popover/popover.md.css +0 -1
  248. package/dist/collection/components/popover/test/basic/popover.e2e.js +76 -0
  249. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  250. package/dist/collection/components/radio-group/radio-group.js +1 -1
  251. package/dist/collection/components/range/range.js +126 -21
  252. package/dist/collection/components/range/test/range-events.e2e.js +27 -0
  253. package/dist/collection/components/refresher/refresher.js +1 -1
  254. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  255. package/dist/collection/components/reorder/reorder.js +1 -1
  256. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  257. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  258. package/dist/collection/components/router-link/router-link.js +2 -2
  259. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  260. package/dist/collection/components/row/row.js +1 -1
  261. package/dist/collection/components/searchbar/searchbar.js +86 -6
  262. package/dist/collection/components/searchbar/test/searchbar.spec.js +20 -2
  263. package/dist/collection/components/segment/segment.js +2 -2
  264. package/dist/collection/components/segment-button/segment-button.js +3 -3
  265. package/dist/collection/components/select-option/select-option.js +1 -1
  266. package/dist/collection/components/select-popover/select-popover.js +1 -1
  267. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  268. package/dist/collection/components/spinner/spinner.js +1 -1
  269. package/dist/collection/components/split-pane/split-pane.js +2 -2
  270. package/dist/collection/components/tab/tab.js +2 -2
  271. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  272. package/dist/collection/components/tab-button/tab-button.js +2 -2
  273. package/dist/collection/components/tabs/tabs.js +1 -1
  274. package/dist/collection/components/text/text.js +2 -2
  275. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  276. package/dist/collection/components/title/title.js +2 -2
  277. package/dist/collection/components/toast/toast.js +2 -2
  278. package/dist/collection/components/toggle/toggle.js +1 -1
  279. package/dist/collection/components/toolbar/test/basic/toolbar.e2e.js +133 -5
  280. package/dist/collection/components/toolbar/toolbar.js +2 -2
  281. package/dist/collection/utils/hardware-back-button.js +2 -2
  282. package/dist/collection/utils/input-shims/hacks/scroll-assist.js +5 -5
  283. package/dist/collection/utils/overlays.js +61 -19
  284. package/dist/collection/utils/test/overlays/overlays.spec.js +53 -0
  285. package/dist/docs.json +117 -4
  286. package/dist/esm/{app-globals-5cf6195b.js → app-globals-318eef52.js} +1 -1
  287. package/dist/esm/{button-active-47ac8092.js → button-active-414be235.js} +1 -1
  288. package/dist/esm/{data-0f3ab200.js → data-bb424ba8.js} +23 -38
  289. package/dist/esm/{hardware-back-button-b410a047.js → hardware-back-button-6107a37c.js} +5 -5
  290. package/dist/esm/{index-e1b622e3.js → index-6e05b96e.js} +2 -2
  291. package/dist/esm/{index-4c30cddd.js → index-a1a47f01.js} +51 -7
  292. package/dist/esm/{index-348ed70a.js → index-fae1515c.js} +3 -3
  293. package/dist/esm/index.js +8 -8
  294. package/dist/esm/{input-shims-5329bbe8.js → input-shims-a52daa3a.js} +5 -5
  295. package/dist/esm/ion-accordion_2.entry.js +2 -2
  296. package/dist/esm/ion-action-sheet.entry.js +8 -8
  297. package/dist/esm/ion-alert.entry.js +7 -7
  298. package/dist/esm/ion-app_8.entry.js +24 -24
  299. package/dist/esm/ion-avatar_3.entry.js +6 -6
  300. package/dist/esm/ion-back-button.entry.js +4 -4
  301. package/dist/esm/ion-backdrop.entry.js +3 -3
  302. package/dist/esm/ion-breadcrumb_2.entry.js +8 -8
  303. package/dist/esm/ion-button_2.entry.js +6 -6
  304. package/dist/esm/ion-card_5.entry.js +10 -10
  305. package/dist/esm/ion-checkbox.entry.js +3 -3
  306. package/dist/esm/ion-chip.entry.js +4 -4
  307. package/dist/esm/ion-col_3.entry.js +7 -7
  308. package/dist/esm/ion-datetime-button.entry.js +14 -13
  309. package/dist/esm/ion-datetime_3.entry.js +80 -20
  310. package/dist/esm/ion-fab_3.entry.js +8 -8
  311. package/dist/esm/ion-img.entry.js +3 -3
  312. package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
  313. package/dist/esm/ion-input.entry.js +10 -2
  314. package/dist/esm/ion-item-option_3.entry.js +6 -6
  315. package/dist/esm/ion-item_8.entry.js +14 -14
  316. package/dist/esm/ion-loading.entry.js +6 -6
  317. package/dist/esm/ion-menu_3.entry.js +11 -11
  318. package/dist/esm/ion-modal.entry.js +86 -30
  319. package/dist/esm/ion-nav_2.entry.js +5 -5
  320. package/dist/esm/ion-picker-column-internal.entry.js +10 -6
  321. package/dist/esm/ion-picker-internal.entry.js +3 -3
  322. package/dist/esm/ion-popover.entry.js +9 -9
  323. package/dist/esm/ion-progress-bar.entry.js +3 -3
  324. package/dist/esm/ion-radio_2.entry.js +3 -3
  325. package/dist/esm/ion-range.entry.js +128 -23
  326. package/dist/esm/ion-refresher_2.entry.js +4 -4
  327. package/dist/esm/ion-reorder_2.entry.js +4 -4
  328. package/dist/esm/ion-ripple-effect.entry.js +3 -3
  329. package/dist/esm/ion-route_4.entry.js +4 -4
  330. package/dist/esm/ion-searchbar.entry.js +32 -8
  331. package/dist/esm/ion-segment_2.entry.js +7 -7
  332. package/dist/esm/ion-select_3.entry.js +6 -6
  333. package/dist/esm/ion-spinner.entry.js +3 -3
  334. package/dist/esm/ion-split-pane.entry.js +4 -4
  335. package/dist/esm/ion-tab-bar_2.entry.js +6 -6
  336. package/dist/esm/ion-tab_2.entry.js +4 -4
  337. package/dist/esm/ion-text.entry.js +4 -4
  338. package/dist/esm/ion-textarea.entry.js +2 -2
  339. package/dist/esm/ion-toast.entry.js +6 -6
  340. package/dist/esm/ion-toggle.entry.js +2 -2
  341. package/dist/esm/{ionic-global-ad9a1810.js → ionic-global-94f25d1b.js} +1 -1
  342. package/dist/esm/ionic.js +6 -6
  343. package/dist/esm/{ios.transition-7459f819.js → ios.transition-a50a9a55.js} +2 -2
  344. package/dist/esm/loader.js +5 -5
  345. package/dist/esm/{md.transition-b8224313.js → md.transition-0da92976.js} +2 -2
  346. package/dist/esm/{overlays-19b26885.js → overlays-b874c3c3.js} +62 -20
  347. package/dist/esm/{status-tap-b41ece3c.js → status-tap-dfea3607.js} +1 -1
  348. package/dist/esm-es5/app-globals-318eef52.js +4 -0
  349. package/dist/esm-es5/{button-active-47ac8092.js → button-active-414be235.js} +1 -1
  350. package/dist/esm-es5/data-bb424ba8.js +4 -0
  351. package/dist/esm-es5/framework-delegate-ed4ba327.js +2 -2
  352. package/dist/esm-es5/hardware-back-button-6107a37c.js +4 -0
  353. package/dist/esm-es5/index-6e05b96e.js +4 -0
  354. package/dist/esm-es5/index-a1a47f01.js +5 -0
  355. package/dist/esm-es5/{index-348ed70a.js → index-fae1515c.js} +1 -1
  356. package/dist/esm-es5/index.js +1 -1
  357. package/dist/esm-es5/input-shims-a52daa3a.js +4 -0
  358. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  359. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  360. package/dist/esm-es5/ion-alert.entry.js +1 -1
  361. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  362. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  363. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  364. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  365. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  366. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  367. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  368. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  369. package/dist/esm-es5/ion-chip.entry.js +1 -1
  370. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  371. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  372. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  373. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  374. package/dist/esm-es5/ion-img.entry.js +1 -1
  375. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  376. package/dist/esm-es5/ion-input.entry.js +1 -1
  377. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  378. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  379. package/dist/esm-es5/ion-loading.entry.js +1 -1
  380. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  381. package/dist/esm-es5/ion-modal.entry.js +1 -1
  382. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  383. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  384. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  385. package/dist/esm-es5/ion-popover.entry.js +1 -1
  386. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  387. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  388. package/dist/esm-es5/ion-range.entry.js +1 -1
  389. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  390. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  391. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  392. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  393. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  394. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  395. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  396. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  397. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  398. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  399. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  400. package/dist/esm-es5/ion-text.entry.js +1 -1
  401. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  402. package/dist/esm-es5/ion-toast.entry.js +1 -1
  403. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  404. package/dist/esm-es5/{ionic-global-ad9a1810.js → ionic-global-94f25d1b.js} +1 -1
  405. package/dist/esm-es5/ionic.js +1 -1
  406. package/dist/esm-es5/{ios.transition-7459f819.js → ios.transition-a50a9a55.js} +1 -1
  407. package/dist/esm-es5/loader.js +1 -1
  408. package/dist/esm-es5/md.transition-0da92976.js +4 -0
  409. package/dist/esm-es5/overlays-b874c3c3.js +4 -0
  410. package/dist/esm-es5/{status-tap-b41ece3c.js → status-tap-dfea3607.js} +1 -1
  411. package/dist/html.html-data.json +13 -1
  412. package/dist/ionic/index.esm.js +1 -1
  413. package/dist/ionic/ionic.esm.js +1 -1
  414. package/dist/ionic/ionic.js +1 -1
  415. package/dist/ionic/{p-05253db9.js → p-0047bd0e.js} +1 -1
  416. package/dist/ionic/{p-ebc86ce9.system.entry.js → p-01a1ff55.system.entry.js} +1 -1
  417. package/dist/ionic/{p-2178329b.entry.js → p-01de45e4.entry.js} +1 -1
  418. package/dist/ionic/{p-125f8cdd.system.js → p-0609a7d8.system.js} +1 -1
  419. package/dist/ionic/{p-cfb4d7e0.js → p-08ab4c96.js} +1 -1
  420. package/dist/ionic/{p-76b8bcb8.system.entry.js → p-094cb5ba.system.entry.js} +1 -1
  421. package/dist/ionic/{p-6812d37d.js → p-0aac3a1c.js} +1 -1
  422. package/dist/ionic/{p-de55ec45.js → p-0b743628.js} +1 -1
  423. package/dist/ionic/p-185d82fc.entry.js +4 -0
  424. package/dist/ionic/p-193921ce.entry.js +4 -0
  425. package/dist/ionic/p-1cd372ed.js +4 -0
  426. package/dist/ionic/{p-a6c0a380.js → p-1e151efb.js} +1 -1
  427. package/dist/ionic/{p-7f30ad48.entry.js → p-211d8901.entry.js} +1 -1
  428. package/dist/ionic/p-212f2c37.entry.js +4 -0
  429. package/dist/ionic/p-2433bf5e.system.js +4 -0
  430. package/dist/ionic/p-2732a6ce.entry.js +4 -0
  431. package/dist/ionic/{p-89ca4c4b.system.js → p-280f1fe7.system.js} +1 -1
  432. package/dist/ionic/p-2c1408df.system.js +5 -0
  433. package/dist/ionic/p-2e2808f3.entry.js +4 -0
  434. package/dist/ionic/{p-70fbf4e2.entry.js → p-32086ea4.entry.js} +1 -1
  435. package/dist/ionic/{p-16a61810.entry.js → p-339dee28.entry.js} +1 -1
  436. package/dist/ionic/{p-88e9052d.entry.js → p-34e2b446.entry.js} +1 -1
  437. package/dist/ionic/{p-6e23d039.entry.js → p-374838e4.entry.js} +1 -1
  438. package/dist/ionic/p-3789920e.js +4 -0
  439. package/dist/ionic/{p-bdca4784.js → p-37aab7f7.js} +1 -1
  440. package/dist/ionic/p-3b7d328b.system.entry.js +4 -0
  441. package/dist/ionic/{p-02542247.system.entry.js → p-3b9edd02.system.entry.js} +1 -1
  442. package/dist/ionic/{p-d143fefa.system.entry.js → p-3d23a234.system.entry.js} +1 -1
  443. package/dist/ionic/{p-717e2526.system.entry.js → p-3f75319a.system.entry.js} +2 -2
  444. package/dist/ionic/p-47686f0a.system.entry.js +4 -0
  445. package/dist/ionic/{p-18918a24.system.entry.js → p-47d7ffb4.system.entry.js} +1 -1
  446. package/dist/ionic/{p-7e838f43.system.entry.js → p-48331301.system.entry.js} +1 -1
  447. package/dist/ionic/{p-a3df16b9.system.entry.js → p-491ec3d6.system.entry.js} +1 -1
  448. package/dist/ionic/p-495aabd4.system.entry.js +4 -0
  449. package/dist/ionic/{p-b0aa3806.system.entry.js → p-49616da4.system.entry.js} +1 -1
  450. package/dist/ionic/p-4c68b459.system.entry.js +4 -0
  451. package/dist/ionic/{p-5cb5f63d.system.entry.js → p-4cc54847.system.entry.js} +1 -1
  452. package/dist/ionic/p-4da978ac.entry.js +4 -0
  453. package/dist/ionic/{p-5de920f4.system.entry.js → p-4f9018d4.system.entry.js} +1 -1
  454. package/dist/ionic/{p-baf8eeac.system.entry.js → p-55ae3e14.system.entry.js} +1 -1
  455. package/dist/ionic/{p-9de75bac.system.entry.js → p-56271222.system.entry.js} +1 -1
  456. package/dist/ionic/{p-80aed9fb.system.entry.js → p-565a12d7.system.entry.js} +1 -1
  457. package/dist/ionic/{p-7e16220b.entry.js → p-56b810d5.entry.js} +1 -1
  458. package/dist/ionic/{p-a85d9047.system.entry.js → p-5a0345f7.system.entry.js} +1 -1
  459. package/dist/ionic/{p-f0e54781.system.entry.js → p-5b8d7cdb.system.entry.js} +1 -1
  460. package/dist/ionic/p-5d2011e1.entry.js +4 -0
  461. package/dist/ionic/p-5f3d659f.entry.js +4 -0
  462. package/dist/ionic/p-6236eae6.entry.js +4 -0
  463. package/dist/ionic/{p-4b8a620f.system.entry.js → p-625ef2fb.system.entry.js} +1 -1
  464. package/dist/ionic/{p-6525a8cd.system.js → p-638865d1.system.js} +1 -1
  465. package/dist/ionic/p-662cccde.entry.js +4 -0
  466. package/dist/ionic/p-68416ff0.entry.js +4 -0
  467. package/dist/ionic/{p-91f4e611.system.entry.js → p-686ddecb.system.entry.js} +2 -2
  468. package/dist/ionic/p-6a6550fa.js +4 -0
  469. package/dist/ionic/p-6a6c61b1.system.entry.js +4 -0
  470. package/dist/ionic/p-6afef6c1.system.js +2 -2
  471. package/dist/ionic/{p-abcedc15.system.entry.js → p-6b178502.system.entry.js} +1 -1
  472. package/dist/ionic/{p-2c86025e.system.js → p-6ecddf53.system.js} +1 -1
  473. package/dist/ionic/{p-822730c4.entry.js → p-70929384.entry.js} +1 -1
  474. package/dist/ionic/p-73d70509.system.js +4 -0
  475. package/dist/ionic/{p-c1a871ff.system.entry.js → p-776f7b9e.system.entry.js} +1 -1
  476. package/dist/ionic/p-7872e970.system.entry.js +4 -0
  477. package/dist/ionic/{p-657ccdd6.entry.js → p-804ffec9.entry.js} +1 -1
  478. package/dist/ionic/{p-b27bba38.system.entry.js → p-81c8fa81.system.entry.js} +1 -1
  479. package/dist/ionic/{p-8e651c29.entry.js → p-8294b727.entry.js} +1 -1
  480. package/dist/ionic/p-8528c070.entry.js +4 -0
  481. package/dist/ionic/p-87e81684.system.entry.js +4 -0
  482. package/dist/ionic/p-8954015c.entry.js +4 -0
  483. package/dist/ionic/p-8a1b0abb.system.js +4 -0
  484. package/dist/ionic/{p-2765a571.system.entry.js → p-8a335b91.system.entry.js} +1 -1
  485. package/dist/ionic/{p-479f5926.system.entry.js → p-8eba832c.system.entry.js} +1 -1
  486. package/dist/ionic/{p-b58686e0.entry.js → p-8ed4de58.entry.js} +1 -1
  487. package/dist/ionic/{p-a02ea777.entry.js → p-917bb906.entry.js} +1 -1
  488. package/dist/ionic/{p-ae2b3a7a.system.entry.js → p-93f86b06.system.entry.js} +1 -1
  489. package/dist/ionic/p-9625a2e6.entry.js +4 -0
  490. package/dist/ionic/{p-288649db.system.entry.js → p-9bc8bd0c.system.entry.js} +1 -1
  491. package/dist/ionic/{p-6f59cdbc.system.entry.js → p-9d53b773.system.entry.js} +2 -2
  492. package/dist/ionic/{p-dff97cfa.entry.js → p-9fbfbaef.entry.js} +1 -1
  493. package/dist/ionic/p-a04ecf1a.system.js +4 -0
  494. package/dist/ionic/{p-9998cb62.system.entry.js → p-a3b2d4a7.system.entry.js} +2 -2
  495. package/dist/ionic/{p-973b4db3.entry.js → p-a5cd2e1f.entry.js} +1 -1
  496. package/dist/ionic/p-a5d9fafe.entry.js +4 -0
  497. package/dist/ionic/{p-df504a37.system.js → p-a875459d.system.js} +1 -1
  498. package/dist/ionic/p-ad60590b.entry.js +4 -0
  499. package/dist/ionic/{p-c7288e78.system.entry.js → p-b1bebf4a.system.entry.js} +1 -1
  500. package/dist/ionic/p-b535c93a.entry.js +4 -0
  501. package/dist/ionic/p-b8735394.entry.js +4 -0
  502. package/dist/ionic/p-bb5bbcdf.js +4 -0
  503. package/dist/ionic/p-c379d010.system.entry.js +4 -0
  504. package/dist/ionic/{p-ce1c0a0e.system.entry.js → p-c5ce0862.system.entry.js} +2 -2
  505. package/dist/ionic/p-c76ef1ea.entry.js +4 -0
  506. package/dist/ionic/p-c8580577.system.js +4 -0
  507. package/dist/ionic/{p-2c4bfe1c.entry.js → p-cc0cf2d1.entry.js} +1 -1
  508. package/dist/ionic/{p-15a40a0b.system.entry.js → p-d3a95477.system.entry.js} +1 -1
  509. package/dist/ionic/{p-ceceac26.js → p-d68ecea4.js} +1 -1
  510. package/dist/ionic/p-d873a8c2.system.entry.js +4 -0
  511. package/dist/ionic/{p-079da3df.entry.js → p-dbd77435.entry.js} +1 -1
  512. package/dist/ionic/p-dc2d302c.entry.js +4 -0
  513. package/dist/ionic/{p-7670acd8.entry.js → p-dd2996cf.entry.js} +1 -1
  514. package/dist/ionic/{p-4788693d.entry.js → p-dec423a3.entry.js} +1 -1
  515. package/dist/ionic/{p-2ea71956.system.entry.js → p-deeae694.system.entry.js} +1 -1
  516. package/dist/ionic/p-e06d65b3.system.entry.js +4 -0
  517. package/dist/ionic/{p-cbcffe6e.system.js → p-e0948431.system.js} +1 -1
  518. package/dist/ionic/{p-86813176.system.entry.js → p-e15cfec4.system.entry.js} +1 -1
  519. package/dist/ionic/p-e1bd8d9c.system.entry.js +4 -0
  520. package/dist/ionic/{p-1636923f.system.js → p-e34eefb5.system.js} +1 -1
  521. package/dist/ionic/{p-b6279412.entry.js → p-e57a212a.entry.js} +1 -1
  522. package/dist/ionic/{p-437f4d02.system.entry.js → p-e6ee6ead.system.entry.js} +1 -1
  523. package/dist/ionic/p-e7055fb8.entry.js +4 -0
  524. package/dist/ionic/p-ea723fc4.entry.js +4 -0
  525. package/dist/ionic/p-ead0d463.js +5 -0
  526. package/dist/ionic/p-ed3ad350.entry.js +4 -0
  527. package/dist/ionic/{p-5d7e32ce.js → p-efef9f3a.js} +1 -1
  528. package/dist/ionic/p-f4ccaa64.entry.js +4 -0
  529. package/dist/ionic/{p-bcd9cad8.system.js → p-f4fb429a.system.js} +1 -1
  530. package/dist/ionic/p-f549716b.system.js +4 -0
  531. package/dist/ionic/p-f6a50d5c.entry.js +4 -0
  532. package/dist/ionic/p-fc053a55.entry.js +4 -0
  533. package/dist/ionic/{p-1f19958f.system.entry.js → p-fd059a23.system.entry.js} +1 -1
  534. package/dist/ionic/{p-e4e74b5f.system.entry.js → p-fdcf1482.system.entry.js} +1 -1
  535. package/dist/ionic/{p-3079950e.entry.js → p-fe3ae39d.entry.js} +1 -1
  536. package/dist/types/components/datetime/datetime-interface.d.ts +10 -0
  537. package/dist/types/components/datetime/datetime.d.ts +10 -1
  538. package/dist/types/components/datetime/utils/format.d.ts +7 -13
  539. package/dist/types/components/datetime/utils/manipulation.d.ts +7 -7
  540. package/dist/types/components/datetime/utils/state.d.ts +2 -2
  541. package/dist/types/components/datetime/utils/validate.d.ts +8 -0
  542. package/dist/types/components/input/input.utils.d.ts +1 -1
  543. package/dist/types/components/range/range.d.ts +29 -0
  544. package/dist/types/components/searchbar/searchbar.d.ts +37 -0
  545. package/dist/types/components/toggle/toggle.d.ts +1 -1
  546. package/dist/types/components.d.ts +36 -4
  547. package/dist/types/utils/framework-delegate.d.ts +1 -1
  548. package/dist/types/utils/hardware-back-button.d.ts +1 -1
  549. package/dist/types/utils/keyboard/keyboard-controller.d.ts +1 -1
  550. package/dist/types/utils/overlays.d.ts +2 -2
  551. package/hydrate/index.js +667 -316
  552. package/package.json +9 -5
  553. package/dist/collection/components/modal/test/a11y/modal.spec.js +0 -22
  554. package/dist/esm-es5/app-globals-5cf6195b.js +0 -4
  555. package/dist/esm-es5/data-0f3ab200.js +0 -4
  556. package/dist/esm-es5/hardware-back-button-b410a047.js +0 -4
  557. package/dist/esm-es5/index-4c30cddd.js +0 -5
  558. package/dist/esm-es5/index-e1b622e3.js +0 -4
  559. package/dist/esm-es5/input-shims-5329bbe8.js +0 -4
  560. package/dist/esm-es5/md.transition-b8224313.js +0 -4
  561. package/dist/esm-es5/overlays-19b26885.js +0 -4
  562. package/dist/ionic/p-021f9d72.entry.js +0 -4
  563. package/dist/ionic/p-02ad4bbe.js +0 -4
  564. package/dist/ionic/p-0b34d3a7.system.js +0 -4
  565. package/dist/ionic/p-12527c4b.entry.js +0 -4
  566. package/dist/ionic/p-1846513c.js +0 -4
  567. package/dist/ionic/p-1a680496.entry.js +0 -4
  568. package/dist/ionic/p-1f16d040.entry.js +0 -4
  569. package/dist/ionic/p-257046d2.system.js +0 -4
  570. package/dist/ionic/p-262024fd.entry.js +0 -4
  571. package/dist/ionic/p-2fd3c3dd.entry.js +0 -4
  572. package/dist/ionic/p-337ac0f5.entry.js +0 -4
  573. package/dist/ionic/p-36be3332.js +0 -4
  574. package/dist/ionic/p-482ea916.system.entry.js +0 -4
  575. package/dist/ionic/p-49f481cc.system.entry.js +0 -4
  576. package/dist/ionic/p-521b3971.entry.js +0 -4
  577. package/dist/ionic/p-644d03d7.system.entry.js +0 -4
  578. package/dist/ionic/p-6b6ca3f5.system.entry.js +0 -4
  579. package/dist/ionic/p-72fa96bf.system.js +0 -5
  580. package/dist/ionic/p-7330c044.system.js +0 -4
  581. package/dist/ionic/p-741a0f0d.system.entry.js +0 -4
  582. package/dist/ionic/p-7a615a5a.entry.js +0 -4
  583. package/dist/ionic/p-84b85535.entry.js +0 -4
  584. package/dist/ionic/p-85f66c3c.entry.js +0 -4
  585. package/dist/ionic/p-860e2539.system.entry.js +0 -4
  586. package/dist/ionic/p-8cc34120.entry.js +0 -4
  587. package/dist/ionic/p-9056778e.system.entry.js +0 -4
  588. package/dist/ionic/p-96084f36.entry.js +0 -4
  589. package/dist/ionic/p-97ca0cb9.system.js +0 -4
  590. package/dist/ionic/p-98aa0553.entry.js +0 -4
  591. package/dist/ionic/p-a1222c24.entry.js +0 -4
  592. package/dist/ionic/p-a4aa6dd2.system.entry.js +0 -4
  593. package/dist/ionic/p-a8459bfb.entry.js +0 -4
  594. package/dist/ionic/p-ae828bd9.system.entry.js +0 -4
  595. package/dist/ionic/p-b4d2f43c.system.js +0 -4
  596. package/dist/ionic/p-b727af6a.entry.js +0 -4
  597. package/dist/ionic/p-ba0fbecc.entry.js +0 -4
  598. package/dist/ionic/p-c1c7309e.entry.js +0 -4
  599. package/dist/ionic/p-cb3065b8.entry.js +0 -4
  600. package/dist/ionic/p-cb9812f7.entry.js +0 -4
  601. package/dist/ionic/p-d425b1de.entry.js +0 -4
  602. package/dist/ionic/p-d6c6541b.system.entry.js +0 -4
  603. package/dist/ionic/p-e1c52dc6.entry.js +0 -4
  604. package/dist/ionic/p-e626800f.system.entry.js +0 -4
  605. package/dist/ionic/p-e94c1402.entry.js +0 -4
  606. package/dist/ionic/p-ed4760ef.entry.js +0 -4
  607. package/dist/ionic/p-ed7a529f.js +0 -5
  608. package/dist/ionic/p-f02c41af.system.js +0 -4
  609. package/dist/ionic/p-f7dce541.js +0 -4
  610. package/dist/ionic/p-fa8d3b01.entry.js +0 -4
@@ -391,9 +391,9 @@ export class Alert {
391
391
  * If neither is defined, don't set aria-labelledby.
392
392
  */
393
393
  const ariaLabelledBy = header ? hdrId : subHeader ? subHdrId : null;
394
- return (h(Host, Object.assign({ key: '4b7f7880dc5f39aa9b61981af0a821ac0350af7f', role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "-1" }, htmlAttributes, { style: {
394
+ return (h(Host, Object.assign({ key: 'd623baf94bddc6b1932f128f6a605c6232b37fb5', role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "-1" }, htmlAttributes, { style: {
395
395
  zIndex: `${20000 + overlayIndex}`,
396
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), h("ion-backdrop", { key: '961a2684013ac61d59882914fd8d759ddb542fe7', tappable: this.backdropDismiss }), h("div", { key: '2ec08c3719b3cd8a4cae09d2c6ac778ffad5f940', tabindex: "0" }), h("div", { key: 'ee543683d20693c9a9497aca4d41f032aa580c9c', class: "alert-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, h("div", { key: '55015102b67d080249a8859fc8788f3a82d5ead9', class: "alert-head" }, header && (h("h2", { id: hdrId, class: "alert-title" }, header)), subHeader && (h("h2", { id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), h("div", { key: 'df7bcfb0cb41965f169de05edd631a050d5ce648', tabindex: "0" })));
396
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), h("ion-backdrop", { key: 'a594ba787a73a33ba10e7a32ca863bd610730cb6', tappable: this.backdropDismiss }), h("div", { key: 'c95ef8332f46ce93fb8d3b7f0168ae5b939c52fd', tabindex: "0" }), h("div", { key: '1895ea338a8e446d01c6151552af658e1e1c841d', class: "alert-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, h("div", { key: '5156393eb8a8f3e60e7d4bce20b0b85196141b0e', class: "alert-head" }, header && (h("h2", { key: '72ba8253644adfeeb8472531234d3572af28b473', id: hdrId, class: "alert-title" }, header)), subHeader && (h("h2", { key: 'eb8d2443170fbea182199bb3b3f5446c98f1c17e', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), h("div", { key: '13c6fac1a58574156951ae2dfdd24790c0812e11', tabindex: "0" })));
397
397
  }
398
398
  static get is() { return "ion-alert"; }
399
399
  static get encapsulation() { return "scoped"; }
@@ -222,6 +222,10 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
222
222
  const ionAlertDidPresent = await page.spyOnEvent('ionAlertDidPresent');
223
223
  await alert.evaluate((el) => el.present());
224
224
  await ionAlertDidPresent.next();
225
+ /**
226
+ * The borders on the text fields may not be visible in the screenshot
227
+ * when using Safari, this is due to a WebKit rendering quirk.
228
+ */
225
229
  await expect(page).toHaveScreenshot(screenshot(`alert-text-fields-scale`));
226
230
  });
227
231
  });
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { Build, Host, h } from "@stencil/core";
5
- import { shoudUseCloseWatcher } from "../../utils/hardware-back-button";
5
+ import { shouldUseCloseWatcher } from "../../utils/hardware-back-button";
6
6
  import { printIonWarning } from "../../utils/logging/index";
7
7
  import { isPlatform } from "../../utils/platform";
8
8
  import { config } from "../../global/config";
@@ -27,7 +27,7 @@ export class App {
27
27
  import('../../utils/input-shims/input-shims').then((module) => module.startInputShims(config, platform));
28
28
  }
29
29
  const hardwareBackButtonModule = await import('../../utils/hardware-back-button');
30
- const supportsHardwareBackButtonEvents = isHybrid || shoudUseCloseWatcher();
30
+ const supportsHardwareBackButtonEvents = isHybrid || shouldUseCloseWatcher();
31
31
  if (config.getBoolean('hardwareBackButton', supportsHardwareBackButtonEvents)) {
32
32
  hardwareBackButtonModule.startHardwareBackButton();
33
33
  }
@@ -36,7 +36,7 @@ export class App {
36
36
  * If an app sets hardwareBackButton: false and experimentalCloseWatcher: true
37
37
  * then the close watcher will not be used.
38
38
  */
39
- if (shoudUseCloseWatcher()) {
39
+ if (shouldUseCloseWatcher()) {
40
40
  printIonWarning('experimentalCloseWatcher was set to `true`, but hardwareBackButton was set to `false`. Both config options must be `true` for the Close Watcher API to be used.');
41
41
  }
42
42
  hardwareBackButtonModule.blockHardwareBackButton();
@@ -65,7 +65,7 @@ export class App {
65
65
  }
66
66
  render() {
67
67
  const mode = getIonMode(this);
68
- return (h(Host, { key: '3535eb5c0dab78a78011e552524a98599b2b650f', class: {
68
+ return (h(Host, { key: '6d7c57453b4be454690e8f1a0721f1e3da8f92aa', class: {
69
69
  [mode]: true,
70
70
  'ion-page': true,
71
71
  'force-statusbar-padding': config.getBoolean('_forceStatusbarPadding'),
@@ -5,7 +5,7 @@ import { Host, h } from "@stencil/core";
5
5
  import { getIonMode } from "../../global/ionic-global";
6
6
  export class Avatar {
7
7
  render() {
8
- return (h(Host, { key: '95d7ca334f9b66e0983cbc1b782ded0b9a54eaa9', class: getIonMode(this) }, h("slot", { key: '011d20189acdb03bee328aa4fa0511826a0b3a36' })));
8
+ return (h(Host, { key: 'f6014b524497bb18ae919ba6f6928407310d6870', class: getIonMode(this) }, h("slot", { key: '192ff4a8e10c0b0a4a2ed795ff2675afa8b23449' })));
9
9
  }
10
10
  static get is() { return "ion-avatar"; }
11
11
  static get encapsulation() { return "shadow"; }
@@ -72,7 +72,7 @@ export class BackButton {
72
72
  const showBackButton = defaultHref !== undefined;
73
73
  const mode = getIonMode(this);
74
74
  const ariaLabel = inheritedAttributes['aria-label'] || backButtonText || 'back';
75
- return (h(Host, { key: '175fff2d7a41d2deaaf7b781c5ba2aac9311ebf4', onClick: this.onClick, class: createColorClasses(color, {
75
+ return (h(Host, { key: '9e837be314ee8ea487ba2771d36668ef58442faa', onClick: this.onClick, class: createColorClasses(color, {
76
76
  [mode]: true,
77
77
  button: true, // ion-buttons target .button
78
78
  'back-button-disabled': disabled,
@@ -82,7 +82,7 @@ export class BackButton {
82
82
  'ion-activatable': true,
83
83
  'ion-focusable': true,
84
84
  'show-back-button': showBackButton,
85
- }) }, h("button", { key: '59fe30c167ea82e2431e45d46060a01bcb2aea77', type: type, disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }, h("span", { key: '3d704fb7ef001446361e7a09d43763a771b242b9', class: "button-inner" }, backButtonIcon && (h("ion-icon", { part: "icon", icon: backButtonIcon, "aria-hidden": "true", lazy: false, "flip-rtl": icon === undefined })), backButtonText && (h("span", { part: "text", "aria-hidden": "true", class: "button-text" }, backButtonText))), mode === 'md' && h("ion-ripple-effect", { type: this.rippleType }))));
85
+ }) }, h("button", { key: 'c4531348bd80cf6163931c5fb432526aa8127043', type: type, disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }, h("span", { key: 'aab8c6d5f0a84aed9f4e4a2532a239b28c7d5589', class: "button-inner" }, backButtonIcon && (h("ion-icon", { key: '121eae10947b46a3d109709b79f4126b1c40ade4', part: "icon", icon: backButtonIcon, "aria-hidden": "true", lazy: false, "flip-rtl": icon === undefined })), backButtonText && (h("span", { key: '11c28875cc52b99470525d18c1f88f27c390a75a', part: "text", "aria-hidden": "true", class: "button-text" }, backButtonText))), mode === 'md' && h("ion-ripple-effect", { key: '804bf8a06cd033c99d61ec2665c842b3b25945fa', type: this.rippleType }))));
86
86
  }
87
87
  static get is() { return "ion-back-button"; }
88
88
  static get encapsulation() { return "shadow"; }
@@ -35,7 +35,7 @@ export class Backdrop {
35
35
  }
36
36
  render() {
37
37
  const mode = getIonMode(this);
38
- return (h(Host, { key: 'b2adb9dabef01fa49388d67d9e8a4a370931f633', tabindex: "-1", "aria-hidden": "true", class: {
38
+ return (h(Host, { key: '16b1328f4a058b8d3752e58dc56c44bed556c425', tabindex: "-1", "aria-hidden": "true", class: {
39
39
  [mode]: true,
40
40
  'backdrop-hide': !this.visible,
41
41
  'backdrop-no-tappable': !this.tappable,
@@ -13,9 +13,9 @@ export class Badge {
13
13
  }
14
14
  render() {
15
15
  const mode = getIonMode(this);
16
- return (h(Host, { key: '043eea016721e53f0af1cbf1371bc08694281204', class: createColorClasses(this.color, {
16
+ return (h(Host, { key: '22d41ceefb76f40dfbf739fd71483f1272a45858', class: createColorClasses(this.color, {
17
17
  [mode]: true,
18
- }) }, h("slot", { key: 'bd510450d6b60f2794491244e68a83049a5ef6dd' })));
18
+ }) }, h("slot", { key: 'e7e65463bac5903971a8f9f6be55515f42b81a83' })));
19
19
  }
20
20
  static get is() { return "ion-badge"; }
21
21
  static get encapsulation() { return "shadow"; }
@@ -64,7 +64,7 @@ export class Breadcrumb {
64
64
  // to show the separator as long as it isn't also the last breadcrumb
65
65
  // otherwise if not collapsed use the value in separator
66
66
  const showSeparator = last ? false : collapsed ? (showCollapsedIndicator && !last ? true : false) : separator;
67
- return (h(Host, { key: '632efa1bc6dc446e81efe8cd7763cb9b16466563', onClick: (ev) => openURL(href, ev, routerDirection, routerAnimation), "aria-disabled": disabled ? 'true' : null, class: createColorClasses(color, {
67
+ return (h(Host, { key: '6d354439f90ec3cfab9fbf93cb17a67fb9ca6034', onClick: (ev) => openURL(href, ev, routerDirection, routerAnimation), "aria-disabled": disabled ? 'true' : null, class: createColorClasses(color, {
68
68
  [mode]: true,
69
69
  'breadcrumb-active': active,
70
70
  'breadcrumb-collapsed': collapsed,
@@ -74,15 +74,15 @@ export class Breadcrumb {
74
74
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
75
75
  'ion-activatable': clickable,
76
76
  'ion-focusable': clickable,
77
- }) }, h(TagType, Object.assign({ key: '6f232cfc590b2e2a23a2e1ee40d6658e7d8b4953' }, attrs, { class: "breadcrumb-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }, inheritedAttributes), h("slot", { key: 'fec56c6f92c147fbd6273d3efb82b1a6c944699c', name: "start" }), h("slot", { key: '80aa33cdcaab810f544803c6105b489172542846' }), h("slot", { key: '6e1d3f332ae35f5061204bece9756a9bac4aaf4a', name: "end" })), showCollapsedIndicator && (h("button", { part: "collapsed-indicator", "aria-label": "Show more breadcrumbs", onClick: () => this.collapsedIndicatorClick(), ref: (collapsedEl) => (this.collapsedRef = collapsedEl), class: {
77
+ }) }, h(TagType, Object.assign({ key: '4782977969bd84af02b1834573a6e51069b798ae' }, attrs, { class: "breadcrumb-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }, inheritedAttributes), h("slot", { key: '7d5fb845e463b8195142099773e7f258fc8ed31d', name: "start" }), h("slot", { key: '6b642ccb9101c12f72124fed5dd0f6362345fb41' }), h("slot", { key: '9fb0841fed712e21d1e84b187e1bc9159cf80b56', name: "end" })), showCollapsedIndicator && (h("button", { key: '4b64544d879224d491447a79da8f8672b994af0b', part: "collapsed-indicator", "aria-label": "Show more breadcrumbs", onClick: () => this.collapsedIndicatorClick(), ref: (collapsedEl) => (this.collapsedRef = collapsedEl), class: {
78
78
  'breadcrumbs-collapsed-indicator': true,
79
- } }, h("ion-icon", { "aria-hidden": "true", icon: ellipsisHorizontal, lazy: false }))), showSeparator && (
79
+ } }, h("ion-icon", { key: '5a2511b237aa8c401f416e967a831f8315423949', "aria-hidden": "true", icon: ellipsisHorizontal, lazy: false }))), showSeparator && (
80
80
  /**
81
81
  * Separators should not be announced by narrators.
82
82
  * We add aria-hidden on the span so that this applies
83
83
  * to any custom separators too.
84
84
  */
85
- h("span", { class: "breadcrumb-separator", part: "separator", "aria-hidden": "true" }, h("slot", { name: "separator" }, mode === 'ios' ? (h("ion-icon", { icon: chevronForwardOutline, lazy: false, "flip-rtl": true })) : (h("span", null, "/")))))));
85
+ h("span", { key: '348952855dd79eb92f8d370e5839a8d09aff4097', class: "breadcrumb-separator", part: "separator", "aria-hidden": "true" }, h("slot", { key: '0120f416edb1d776fa6900b5986b2b57eef554b3', name: "separator" }, mode === 'ios' ? (h("ion-icon", { icon: chevronForwardOutline, lazy: false, "flip-rtl": true })) : (h("span", null, "/")))))));
86
86
  }
87
87
  static get is() { return "ion-breadcrumb"; }
88
88
  static get encapsulation() { return "shadow"; }
@@ -105,12 +105,12 @@ export class Breadcrumbs {
105
105
  render() {
106
106
  const { color, collapsed } = this;
107
107
  const mode = getIonMode(this);
108
- return (h(Host, { key: '35f8a2bffdd85ba6dc31834ebef69602a5a7cca1', class: createColorClasses(color, {
108
+ return (h(Host, { key: 'cd288d4bf5498f86d086eb999b506993818642f3', class: createColorClasses(color, {
109
109
  [mode]: true,
110
110
  'in-toolbar': hostContext('ion-toolbar', this.el),
111
111
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
112
112
  'breadcrumbs-collapsed': collapsed,
113
- }) }, h("slot", { key: 'ada062b5d17380d311861d1cf1a22dd62bac5497', onSlotchange: this.slotChanged })));
113
+ }) }, h("slot", { key: '73c802065511dbebef3867b01ce929313d24cba2', onSlotchange: this.slotChanged })));
114
114
  }
115
115
  static get is() { return "ion-breadcrumbs"; }
116
116
  static get encapsulation() { return "shadow"; }
@@ -330,11 +330,6 @@ ion-ripple-effect {
330
330
  color: var(--ion-toolbar-background, var(--color));
331
331
  }
332
332
 
333
- :host(.button-outline.ion-activated.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native {
334
- background: var(--ion-toolbar-color, var(--color));
335
- color: var(--ion-toolbar-background, var(--background), var(--ion-color-primary-contrast, #fff));
336
- }
337
-
338
333
  /**
339
334
  * Convert a font size to a dynamic font size.
340
335
  * Fonts that participate in Dynamic Type should use
@@ -593,4 +588,9 @@ ion-ripple-effect {
593
588
 
594
589
  :host(.button-solid.ion-color.ion-activated) .button-native::after {
595
590
  background: var(--ion-color-shade);
591
+ }
592
+
593
+ :host(.button-outline.ion-activated.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native {
594
+ background: var(--ion-toolbar-color, var(--color));
595
+ color: var(--ion-toolbar-background, var(--background), var(--ion-color-primary-contrast, #fff));
596
596
  }
@@ -199,7 +199,7 @@ export class Button {
199
199
  {
200
200
  type !== 'button' && this.renderHiddenButton();
201
201
  }
202
- return (h(Host, { key: '8533314504b286ec10e26722f93376d86a7ca1c9', onClick: this.handleClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses(color, {
202
+ return (h(Host, { key: '54569350aae49882123f0e22a720956eddee33f5', onClick: this.handleClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses(color, {
203
203
  [mode]: true,
204
204
  [buttonType]: true,
205
205
  [`${buttonType}-${expand}`]: expand !== undefined,
@@ -214,7 +214,7 @@ export class Button {
214
214
  'button-disabled': disabled,
215
215
  'ion-activatable': true,
216
216
  'ion-focusable': true,
217
- }) }, h(TagType, Object.assign({ key: '79bf020fdac0c2ceb2b05547b3e5a9a11e60abb4' }, attrs, { class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }, inheritedAttributes), h("span", { key: '109481ba86102647023b746b054b2718d3c9d92a', class: "button-inner" }, h("slot", { key: 'f824ddd9f988b9bd33136555b16aa790d9291b49', name: "icon-only" }), h("slot", { key: 'd614f4e430792c5f93be4b3a8c57a826d74b9cfd', name: "start" }), h("slot", { key: '95d00c8a980c31cc7f84732f51a17a0cd285a7cb' }), h("slot", { key: 'a228ff52cbe04dc9d2e22bb66611ecc96d130e6f', name: "end" })), mode === 'md' && h("ion-ripple-effect", { type: this.rippleType }))));
217
+ }) }, h(TagType, Object.assign({ key: '95c196fc5bf080ef308532c3627e2a9d68f24996' }, attrs, { class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }, inheritedAttributes), h("span", { key: 'e247013b847158187258d28f37ab23905fe49110', class: "button-inner" }, h("slot", { key: '58ac0bd8f643f4392ddbe465fab26eedffe02b7a', name: "icon-only" }), h("slot", { key: '2289d37a37a64472ffe818b3b1126945cebf101e', name: "start" }), h("slot", { key: 'b69a915dff465d251f0466449b91450d4a4048a9' }), h("slot", { key: '594a80d6707fd5edabc03e467f7aae3011d020f6', name: "end" })), mode === 'md' && h("ion-ripple-effect", { key: 'b034770cadefe74922ed6564a17147ddc6c9fdb1', type: this.rippleType }))));
218
218
  }
219
219
  static get is() { return "ion-button"; }
220
220
  static get encapsulation() { return "shadow"; }
@@ -330,11 +330,6 @@ ion-ripple-effect {
330
330
  color: var(--ion-toolbar-background, var(--color));
331
331
  }
332
332
 
333
- :host(.button-outline.ion-activated.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native {
334
- background: var(--ion-toolbar-color, var(--color));
335
- color: var(--ion-toolbar-background, var(--background), var(--ion-color-primary-contrast, #fff));
336
- }
337
-
338
333
  /**
339
334
  * Convert a font size to a dynamic font size.
340
335
  * Fonts that participate in Dynamic Type should use
@@ -515,4 +510,8 @@ ion-ripple-effect {
515
510
  :host(.button-outline.ion-color:hover) .button-native::after {
516
511
  background: var(--ion-color-base);
517
512
  }
513
+ }
514
+ :host(.button-outline.ion-activated.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native {
515
+ background: var(--ion-toolbar-background, var(--color));
516
+ color: var(--ion-toolbar-color, var(--background), var(--ion-color-primary-contrast, #fff));
518
517
  }
@@ -9,7 +9,7 @@ export class Buttons {
9
9
  }
10
10
  render() {
11
11
  const mode = getIonMode(this);
12
- return (h(Host, { key: '52c0c5535f5688a481746fe8fd92b6c02941526f', class: {
12
+ return (h(Host, { key: '2929fd8c4469bab2953c23d47f601706acb104f1', class: {
13
13
  [mode]: true,
14
14
  ['buttons-collapse']: this.collapse,
15
15
  } }));
@@ -49,7 +49,7 @@ export class Card {
49
49
  }
50
50
  render() {
51
51
  const mode = getIonMode(this);
52
- return (h(Host, { key: '9e35c114ce466623024b94dd6797118ad027417d', class: createColorClasses(this.color, {
52
+ return (h(Host, { key: 'b92792294360fd974324b31ed2d3db00d3e2f8cd', class: createColorClasses(this.color, {
53
53
  [mode]: true,
54
54
  'card-disabled': this.disabled,
55
55
  'ion-activatable': this.isClickable(),
@@ -9,7 +9,7 @@ import { getIonMode } from "../../global/ionic-global";
9
9
  export class CardContent {
10
10
  render() {
11
11
  const mode = getIonMode(this);
12
- return (h(Host, { key: 'd4da147bb0b0b14684b54d37d04ba5a8f7a7d71d', class: {
12
+ return (h(Host, { key: 'dd95806f042fcd124b18126679f671be6e32a021', class: {
13
13
  [mode]: true,
14
14
  // Used internally for styling
15
15
  [`card-content-${mode}`]: true,
@@ -14,11 +14,11 @@ export class CardHeader {
14
14
  }
15
15
  render() {
16
16
  const mode = getIonMode(this);
17
- return (h(Host, { key: '070294064c4b17c941961c9cccf1ae6592b385b6', class: createColorClasses(this.color, {
17
+ return (h(Host, { key: '44077ad8e3edf7726d0f7a039046e32dc56a83c9', class: createColorClasses(this.color, {
18
18
  'card-header-translucent': this.translucent,
19
19
  'ion-inherit-color': true,
20
20
  [mode]: true,
21
- }) }, h("slot", { key: 'adac918d5e93bf69b07c5bda329ebf8c719bd623' })));
21
+ }) }, h("slot", { key: '51b6f4048d25521ece18d79e5361c762af41cae7' })));
22
22
  }
23
23
  static get is() { return "ion-card-header"; }
24
24
  static get encapsulation() { return "shadow"; }
@@ -13,10 +13,10 @@ export class CardSubtitle {
13
13
  }
14
14
  render() {
15
15
  const mode = getIonMode(this);
16
- return (h(Host, { key: 'ae115cf349cd13f88d20b1fbab6b8a813a87b925', role: "heading", "aria-level": "3", class: createColorClasses(this.color, {
16
+ return (h(Host, { key: '6f94c9ced239cc945a148e0ecc7ab848fa70d8e3', role: "heading", "aria-level": "3", class: createColorClasses(this.color, {
17
17
  'ion-inherit-color': true,
18
18
  [mode]: true,
19
- }) }, h("slot", { key: 'f5dd779b34b5c5c541cbbe56cc8a877e50513252' })));
19
+ }) }, h("slot", { key: '445f81155799be5e81baa571bd16d57e5149df62' })));
20
20
  }
21
21
  static get is() { return "ion-card-subtitle"; }
22
22
  static get encapsulation() { return "shadow"; }
@@ -13,10 +13,10 @@ export class CardTitle {
13
13
  }
14
14
  render() {
15
15
  const mode = getIonMode(this);
16
- return (h(Host, { key: '432d7bf971fda63c30c748986143ec2a8be9e4af', role: "heading", "aria-level": "2", class: createColorClasses(this.color, {
16
+ return (h(Host, { key: 'a9e4190346e7d0a8e6089ec1fe01bca0f5f7200d', role: "heading", "aria-level": "2", class: createColorClasses(this.color, {
17
17
  'ion-inherit-color': true,
18
18
  [mode]: true,
19
- }) }, h("slot", { key: '3c5dcf6ac1bf981c6c0488f0027765269c80db5a' })));
19
+ }) }, h("slot", { key: '8d87636ad703545b6d2297629205a5a8616eb94e' })));
20
20
  }
21
21
  static get is() { return "ion-card-title"; }
22
22
  static get encapsulation() { return "shadow"; }
@@ -105,7 +105,7 @@ export class Checkbox {
105
105
  const mode = getIonMode(this);
106
106
  const path = getSVGPath(mode, indeterminate);
107
107
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
108
- return (h(Host, { class: createColorClasses(color, {
108
+ return (h(Host, { "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses(color, {
109
109
  [mode]: true,
110
110
  'in-item': hostContext('ion-item', el),
111
111
  'checkbox-checked': checked,
@@ -32,3 +32,15 @@ describe('ion-checkbox: disabled', () => {
32
32
  expect(checkbox.checked).toBe(false);
33
33
  });
34
34
  });
35
+ describe('ion-checkbox: indeterminate', () => {
36
+ it('should have a mixed value for aria-checked', async () => {
37
+ const page = await newSpecPage({
38
+ components: [Checkbox],
39
+ html: `
40
+ <ion-checkbox indeterminate="true">Checkbox</ion-checkbox>
41
+ `,
42
+ });
43
+ const checkbox = page.body.querySelector('ion-checkbox');
44
+ expect(checkbox.getAttribute('aria-checked')).toBe('mixed');
45
+ });
46
+ });
@@ -15,12 +15,12 @@ export class Chip {
15
15
  }
16
16
  render() {
17
17
  const mode = getIonMode(this);
18
- return (h(Host, { key: 'eca7cc616c0c9dd2ab28efd41e203fa094880e9e', "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
18
+ return (h(Host, { key: '886c26b6e7b3e3ca8622a4a0926bdf6dea0a71d4', "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
19
19
  [mode]: true,
20
20
  'chip-outline': this.outline,
21
21
  'chip-disabled': this.disabled,
22
22
  'ion-activatable': true,
23
- }) }, h("slot", { key: 'b64c9067132791f73a8434c37d5a335fb2d96f74' }), mode === 'md' && h("ion-ripple-effect", null)));
23
+ }) }, h("slot", { key: 'd24353e79ac84013758cee1acb1b0f9b2ebb4d67' }), mode === 'md' && h("ion-ripple-effect", { key: 'b69bb3ce3d464251d5e11ba6a5240e4567f72f05' })));
24
24
  }
25
25
  static get is() { return "ion-chip"; }
26
26
  static get encapsulation() { return "shadow"; }
@@ -111,9 +111,9 @@ export class Col {
111
111
  render() {
112
112
  const isRTL = document.dir === 'rtl';
113
113
  const mode = getIonMode(this);
114
- return (h(Host, { key: 'c186972dd12d10a4600975c326f20666fed96abf', class: {
114
+ return (h(Host, { key: '56ecf3b3f2be05d5f179f2d136d4ab05a4525da9', class: {
115
115
  [mode]: true,
116
- }, style: Object.assign(Object.assign(Object.assign(Object.assign({}, this.calculateOffset(isRTL)), this.calculatePull(isRTL)), this.calculatePush(isRTL)), this.calculateSize()) }, h("slot", { key: '54cc8bd92f94cfd30d9f3e8e59e0f0dc38abfd63' })));
116
+ }, style: Object.assign(Object.assign(Object.assign(Object.assign({}, this.calculateOffset(isRTL)), this.calculatePull(isRTL)), this.calculatePush(isRTL)), this.calculateSize()) }, h("slot", { key: '8f1113d39dcb709300ebbeaf81bc092c1dd8da3e' })));
117
117
  }
118
118
  static get is() { return "ion-col"; }
119
119
  static get encapsulation() { return "shadow"; }
@@ -336,7 +336,7 @@ export class Content {
336
336
  const transitionShadow = mode === 'ios';
337
337
  const TagType = isMainContent ? 'main' : 'div';
338
338
  this.resize();
339
- return (h(Host, { key: '65d85e1f7f85876a76eec79addc4bd9f697a5d84', class: createColorClasses(this.color, {
339
+ return (h(Host, { key: 'e13815c0e6f6095150b112d3a1aaf2f509aa0d0b', class: createColorClasses(this.color, {
340
340
  [mode]: true,
341
341
  'content-sizing': hostContext('ion-popover', this.el),
342
342
  overscroll: forceOverscroll,
@@ -344,12 +344,12 @@ export class Content {
344
344
  }), style: {
345
345
  '--offset-top': `${this.cTop}px`,
346
346
  '--offset-bottom': `${this.cBottom}px`,
347
- } }, h("div", { key: 'e2ac474a62cbc864772c497469100436f41289ff', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), h(TagType, { key: '567a4bc2bcb13adfd987b088f95ac4b20b789f2c', class: {
347
+ } }, h("div", { key: '8006c4a10d8f7dc83c646246961d018a8097236e', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), h(TagType, { key: '4dd2f58421493f7a4ca42f8f5d7b85cda8e320ea', class: {
348
348
  'inner-scroll': true,
349
349
  'scroll-x': scrollX,
350
350
  'scroll-y': scrollY,
351
351
  overscroll: (scrollX || scrollY) && forceOverscroll,
352
- }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, h("slot", { key: '13909f87dd9f49bf1664ad95038499da376b9480' })), transitionShadow ? (h("div", { class: "transition-effect" }, h("div", { class: "transition-cover" }), h("div", { class: "transition-shadow" }))) : null, h("slot", { key: '05b56c139e203cfd1e3dd08054e99328e97e9243', name: "fixed" })));
352
+ }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, h("slot", { key: '37904f8f1d8319156cd901feb21930ef674fe0f7' })), transitionShadow ? (h("div", { class: "transition-effect" }, h("div", { class: "transition-cover" }), h("div", { class: "transition-shadow" }))) : null, h("slot", { key: '8f696583903af0548d064dca1a6bae060e127485', name: "fixed" })));
353
353
  }
354
354
  static get is() { return "ion-content"; }
355
355
  static get encapsulation() { return "shadow"; }
@@ -11,11 +11,12 @@ import { caretDownSharp, caretUpSharp, chevronBack, chevronDown, chevronForward
11
11
  import { getIonMode } from "../../global/ionic-global";
12
12
  import { isSameDay, warnIfValueOutOfBounds, isBefore, isAfter } from "./utils/comparison";
13
13
  import { generateMonths, getDaysOfMonth, getDaysOfWeek, getToday, getMonthColumnData, getDayColumnData, getYearColumnData, getTimeColumnsData, getCombinedDateColumnData, } from "./utils/data";
14
- import { formatValue, getLocalizedTime, getMonthAndDay, getMonthAndYear } from "./utils/format";
14
+ import { formatValue, getLocalizedDateTime, getLocalizedTime, getMonthAndYear } from "./utils/format";
15
15
  import { isLocaleDayPeriodRTL, isMonthFirstLocale, getNumDaysInMonth, getHourCycle } from "./utils/helpers";
16
16
  import { calculateHourFromAMPM, convertDataToISO, getClosestValidDate, getEndOfWeek, getNextDay, getNextMonth, getNextWeek, getNextYear, getPreviousDay, getPreviousMonth, getPreviousWeek, getPreviousYear, getStartOfWeek, validateParts, } from "./utils/manipulation";
17
17
  import { clampDate, convertToArrayOfNumbers, getPartsFromCalendarDay, parseAmPm, parseDate, parseMaxParts, parseMinParts, } from "./utils/parse";
18
18
  import { getCalendarDayState, getHighlightStyles, isDayDisabled, isMonthDisabled, isNextMonthDisabled, isPrevMonthDisabled, } from "./utils/state";
19
+ import { checkForPresentationFormatMismatch, warnIfTimeZoneProvided } from "./utils/validate";
19
20
  /**
20
21
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
21
22
  *
@@ -650,6 +651,7 @@ export class Datetime {
650
651
  this.color = 'primary';
651
652
  this.name = this.inputId;
652
653
  this.disabled = false;
654
+ this.formatOptions = undefined;
653
655
  this.readonly = false;
654
656
  this.isDateEnabled = undefined;
655
657
  this.min = undefined;
@@ -677,6 +679,11 @@ export class Datetime {
677
679
  this.size = 'fixed';
678
680
  this.preferWheel = false;
679
681
  }
682
+ formatOptionsChanged() {
683
+ const { el, formatOptions, presentation } = this;
684
+ checkForPresentationFormatMismatch(el, presentation, formatOptions);
685
+ warnIfTimeZoneProvided(el, formatOptions);
686
+ }
680
687
  disabledChanged() {
681
688
  this.emitStyle();
682
689
  }
@@ -686,6 +693,10 @@ export class Datetime {
686
693
  maxChanged() {
687
694
  this.processMaxParts();
688
695
  }
696
+ presentationChanged() {
697
+ const { el, formatOptions, presentation } = this;
698
+ checkForPresentationFormatMismatch(el, presentation, formatOptions);
699
+ }
689
700
  get isGridStyle() {
690
701
  const { presentation, preferWheel } = this;
691
702
  const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
@@ -788,6 +799,7 @@ export class Datetime {
788
799
  this.initializeKeyboardListeners();
789
800
  }
790
801
  componentDidLoad() {
802
+ const { el, intersectionTrackerRef } = this;
791
803
  /**
792
804
  * If a scrollable element is hidden using `display: none`,
793
805
  * it will not have a scroll height meaning we cannot scroll elements
@@ -813,14 +825,14 @@ export class Datetime {
813
825
  this.el.classList.add('datetime-ready');
814
826
  });
815
827
  };
816
- const visibleIO = new IntersectionObserver(visibleCallback, { threshold: 0.01 });
828
+ const visibleIO = new IntersectionObserver(visibleCallback, { threshold: 0.01, root: el });
817
829
  /**
818
830
  * Use raf to avoid a race condition between the component loading and
819
831
  * its display animation starting (such as when shown in a modal). This
820
832
  * could cause the datetime to start at a visibility of 0, erroneously
821
833
  * triggering the `hiddenIO` observer below.
822
834
  */
823
- raf(() => visibleIO === null || visibleIO === void 0 ? void 0 : visibleIO.observe(this.el));
835
+ raf(() => visibleIO === null || visibleIO === void 0 ? void 0 : visibleIO.observe(intersectionTrackerRef));
824
836
  /**
825
837
  * We need to clean up listeners when the datetime is hidden
826
838
  * in a popover/modal so that we can properly scroll containers
@@ -846,8 +858,8 @@ export class Datetime {
846
858
  this.el.classList.remove('datetime-ready');
847
859
  });
848
860
  };
849
- const hiddenIO = new IntersectionObserver(hiddenCallback, { threshold: 0 });
850
- raf(() => hiddenIO === null || hiddenIO === void 0 ? void 0 : hiddenIO.observe(this.el));
861
+ const hiddenIO = new IntersectionObserver(hiddenCallback, { threshold: 0, root: el });
862
+ raf(() => hiddenIO === null || hiddenIO === void 0 ? void 0 : hiddenIO.observe(intersectionTrackerRef));
851
863
  /**
852
864
  * Datetime uses Ionic components that emit
853
865
  * ionFocus and ionBlur. These events are
@@ -921,7 +933,7 @@ export class Datetime {
921
933
  });
922
934
  }
923
935
  componentWillLoad() {
924
- const { el, highlightedDates, multiple, presentation, preferWheel } = this;
936
+ const { el, formatOptions, highlightedDates, multiple, presentation, preferWheel } = this;
925
937
  if (multiple) {
926
938
  if (presentation !== 'date') {
927
939
  printIonWarning('Multiple date selection is only supported for presentation="date".', el);
@@ -938,6 +950,10 @@ export class Datetime {
938
950
  printIonWarning('The highlightedDates property is not supported with preferWheel="true".', el);
939
951
  }
940
952
  }
953
+ if (formatOptions) {
954
+ checkForPresentationFormatMismatch(el, presentation, formatOptions);
955
+ warnIfTimeZoneProvided(el, formatOptions);
956
+ }
941
957
  const hourValues = (this.parsedHourValues = convertToArrayOfNumbers(this.hourValues));
942
958
  const minuteValues = (this.parsedMinuteValues = convertToArrayOfNumbers(this.minuteValues));
943
959
  const monthValues = (this.parsedMonthValues = convertToArrayOfNumbers(this.monthValues));
@@ -1445,7 +1461,7 @@ export class Datetime {
1445
1461
  return h("slot", { name: "time-label" }, "Time");
1446
1462
  }
1447
1463
  renderTimeOverlay() {
1448
- const { disabled, hourCycle, isTimePopoverOpen, locale } = this;
1464
+ const { disabled, hourCycle, isTimePopoverOpen, locale, formatOptions } = this;
1449
1465
  const computedHourCycle = getHourCycle(locale, hourCycle);
1450
1466
  const activePart = this.getActivePartsWithFallback();
1451
1467
  return [
@@ -1465,7 +1481,7 @@ export class Datetime {
1465
1481
  await popoverRef.onWillDismiss();
1466
1482
  this.isTimePopoverOpen = false;
1467
1483
  }
1468
- } }, getLocalizedTime(locale, activePart, computedHourCycle)),
1484
+ } }, getLocalizedTime(locale, activePart, computedHourCycle, formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time)),
1469
1485
  h("ion-popover", { alignment: "center", translucent: true, overlayIndex: 1, arrow: false, onWillPresent: (ev) => {
1470
1486
  /**
1471
1487
  * Intersection Observers do not consistently fire between Blink and Webkit
@@ -1488,7 +1504,8 @@ export class Datetime {
1488
1504
  ];
1489
1505
  }
1490
1506
  getHeaderSelectedDateText() {
1491
- const { activeParts, multiple, titleSelectedDatesFormatter } = this;
1507
+ var _a;
1508
+ const { activeParts, formatOptions, multiple, titleSelectedDatesFormatter } = this;
1492
1509
  const isArray = Array.isArray(activeParts);
1493
1510
  let headerText;
1494
1511
  if (multiple && isArray && activeParts.length !== 1) {
@@ -1504,7 +1521,7 @@ export class Datetime {
1504
1521
  }
1505
1522
  else {
1506
1523
  // for exactly 1 day selected (multiple set or not), show a formatted version of that
1507
- headerText = getMonthAndDay(this.locale, this.getActivePartsWithFallback());
1524
+ headerText = getLocalizedDateTime(this.locale, this.getActivePartsWithFallback(), (_a = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.date) !== null && _a !== void 0 ? _a : { weekday: 'short', month: 'short', day: 'numeric' });
1508
1525
  }
1509
1526
  return headerText;
1510
1527
  }
@@ -1593,7 +1610,7 @@ export class Datetime {
1593
1610
  const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
1594
1611
  const hasWheelVariant = hasDatePresentation && preferWheel;
1595
1612
  renderHiddenInput(true, el, name, formatValue(value), disabled);
1596
- return (h(Host, { key: 'b00545b7bbba3ccf35d53c1eec4f1614fb830c11', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses(color, {
1613
+ return (h(Host, { key: '8490192beb6c5c6064ed8f2a7be2d51846f84f36', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses(color, {
1597
1614
  [mode]: true,
1598
1615
  ['datetime-readonly']: readonly,
1599
1616
  ['datetime-disabled']: disabled,
@@ -1603,7 +1620,7 @@ export class Datetime {
1603
1620
  [`datetime-size-${size}`]: true,
1604
1621
  [`datetime-prefer-wheel`]: hasWheelVariant,
1605
1622
  [`datetime-grid`]: isGridStyle,
1606
- })) }, this.renderDatetime(mode)));
1623
+ })) }, h("div", { key: 'a2959c07ed871f9004a2f11ab1385a5a7b5737fd', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
1607
1624
  }
1608
1625
  static get is() { return "ion-datetime"; }
1609
1626
  static get encapsulation() { return "shadow"; }
@@ -1681,6 +1698,27 @@ export class Datetime {
1681
1698
  "reflect": false,
1682
1699
  "defaultValue": "false"
1683
1700
  },
1701
+ "formatOptions": {
1702
+ "type": "unknown",
1703
+ "mutable": false,
1704
+ "complexType": {
1705
+ "original": "FormatOptions",
1706
+ "resolved": "undefined | { date: DateTimeFormatOptions; time?: DateTimeFormatOptions | undefined; } | { date?: DateTimeFormatOptions | undefined; time: DateTimeFormatOptions; }",
1707
+ "references": {
1708
+ "FormatOptions": {
1709
+ "location": "import",
1710
+ "path": "./datetime-interface",
1711
+ "id": "src/components/datetime/datetime-interface.ts::FormatOptions"
1712
+ }
1713
+ }
1714
+ },
1715
+ "required": false,
1716
+ "optional": true,
1717
+ "docs": {
1718
+ "tags": [],
1719
+ "text": "Formatting options for dates and times.\nShould include a 'date' and/or 'time' object, each of which is of type [Intl.DateTimeFormatOptions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat#options)."
1720
+ }
1721
+ },
1684
1722
  "readonly": {
1685
1723
  "type": "boolean",
1686
1724
  "mutable": false,
@@ -2376,6 +2414,9 @@ export class Datetime {
2376
2414
  static get elementRef() { return "el"; }
2377
2415
  static get watchers() {
2378
2416
  return [{
2417
+ "propName": "formatOptions",
2418
+ "methodName": "formatOptionsChanged"
2419
+ }, {
2379
2420
  "propName": "disabled",
2380
2421
  "methodName": "disabledChanged"
2381
2422
  }, {
@@ -2384,6 +2425,9 @@ export class Datetime {
2384
2425
  }, {
2385
2426
  "propName": "max",
2386
2427
  "methodName": "maxChanged"
2428
+ }, {
2429
+ "propName": "presentation",
2430
+ "methodName": "presentationChanged"
2387
2431
  }, {
2388
2432
  "propName": "yearValues",
2389
2433
  "methodName": "yearValuesChanged"