voyager-ionic-core 7.4.3 → 7.5.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 (687) hide show
  1. package/components/action-sheet.js +2 -2
  2. package/components/alert.js +10 -2
  3. package/components/animation.js +60 -1
  4. package/components/button.js +2 -2
  5. package/components/buttons.js +2 -2
  6. package/components/checkbox.js +4 -1
  7. package/components/data.js +96 -22
  8. package/components/haptic.js +1 -0
  9. package/components/icon.js +31 -18
  10. package/components/index.js +1 -0
  11. package/components/index4.js +26 -19
  12. package/components/index7.js +1 -1
  13. package/components/ion-back-button.js +2 -2
  14. package/components/ion-badge.js +2 -2
  15. package/components/ion-breadcrumb.js +2 -2
  16. package/components/ion-card-content.js +2 -2
  17. package/components/ion-card-subtitle.js +2 -2
  18. package/components/ion-card-title.js +2 -2
  19. package/components/ion-card.js +2 -2
  20. package/components/ion-chip.js +8 -3
  21. package/components/ion-datetime-button.js +6 -6
  22. package/components/ion-datetime.js +6 -6
  23. package/components/ion-header.js +1 -1
  24. package/components/ion-input.js +2 -2
  25. package/components/ion-item-divider.js +2 -2
  26. package/components/ion-item-option.js +2 -2
  27. package/components/ion-item-options.js +2 -2
  28. package/components/ion-loading.js +2 -2
  29. package/components/ion-menu-button.js +2 -2
  30. package/components/ion-menu.js +48 -28
  31. package/components/ion-nav.js +1 -0
  32. package/components/ion-range.js +2 -2
  33. package/components/ion-reorder.js +2 -2
  34. package/components/ion-router.js +3 -0
  35. package/components/ion-searchbar.js +9 -3
  36. package/components/ion-select.js +34 -20
  37. package/components/ion-textarea.js +2 -2
  38. package/components/ion-title.js +2 -2
  39. package/components/ion-toast.js +159 -15
  40. package/components/ion-toggle.js +3 -0
  41. package/components/ion-toolbar.js +1 -1
  42. package/components/ios.transition.js +5 -4
  43. package/components/item.js +2 -2
  44. package/components/label.js +2 -2
  45. package/components/list-header.js +2 -2
  46. package/components/note.js +2 -2
  47. package/components/overlays.js +1 -0
  48. package/components/radio-group.js +1 -1
  49. package/components/radio.js +6 -3
  50. package/components/swipe-back.js +4 -0
  51. package/css/core.css +100 -0
  52. package/css/core.css.map +1 -1
  53. package/css/display.css +33 -0
  54. package/css/display.css.map +1 -1
  55. package/css/float-elements.css +33 -0
  56. package/css/float-elements.css.map +1 -1
  57. package/css/global.bundle.css +84 -6
  58. package/css/global.bundle.css.map +1 -1
  59. package/css/ionic-swiper.css +33 -0
  60. package/css/ionic-swiper.css.map +1 -1
  61. package/css/ionic.bundle.css +1 -1
  62. package/css/ionic.bundle.css.map +1 -1
  63. package/css/padding.css +33 -0
  64. package/css/padding.css.map +1 -1
  65. package/css/structure.css +33 -0
  66. package/css/structure.css.map +1 -1
  67. package/css/text-alignment.css +33 -0
  68. package/css/text-alignment.css.map +1 -1
  69. package/css/text-transformation.css +33 -0
  70. package/css/text-transformation.css.map +1 -1
  71. package/css/typography.css +51 -6
  72. package/css/typography.css.map +1 -1
  73. package/css/utils.bundle.css +165 -0
  74. package/css/utils.bundle.css.map +1 -1
  75. package/dist/cjs/{animation-2bb33618.js → animation-c8bdd3c7.js} +60 -1
  76. package/dist/cjs/{app-globals-84b6a756.js → app-globals-fe1ad535.js} +1 -1
  77. package/dist/cjs/{button-active-c358e83c.js → button-active-c0ff1915.js} +2 -2
  78. package/dist/cjs/{data-db832785.js → data-c8d21093.js} +96 -22
  79. package/dist/cjs/{haptic-c5f6b4d5.js → haptic-678abc9f.js} +1 -0
  80. package/dist/cjs/{index-d8d1fc0b.js → index-09471526.js} +1 -1
  81. package/dist/cjs/{index-14a4821e.js → index-305a23dc.js} +95 -51
  82. package/dist/cjs/{index-97a3eade.js → index-5e7529f6.js} +28 -21
  83. package/dist/cjs/{index-acf6bdf0.js → index-d93fb71d.js} +3 -3
  84. package/dist/cjs/index.cjs.js +11 -9
  85. package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
  86. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
  87. package/dist/cjs/ion-alert.cjs.entry.js +16 -8
  88. package/dist/cjs/ion-app_8.cjs.entry.js +11 -11
  89. package/dist/cjs/ion-avatar_3.cjs.entry.js +4 -4
  90. package/dist/cjs/ion-back-button.cjs.entry.js +5 -5
  91. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  92. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +5 -5
  93. package/dist/cjs/ion-button_2.cjs.entry.js +35 -22
  94. package/dist/cjs/ion-card_5.cjs.entry.js +10 -10
  95. package/dist/cjs/ion-checkbox.cjs.entry.js +6 -3
  96. package/dist/cjs/ion-chip.cjs.entry.js +9 -4
  97. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  98. package/dist/cjs/ion-datetime-button.cjs.entry.js +8 -8
  99. package/dist/cjs/ion-datetime_3.cjs.entry.js +12 -12
  100. package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
  101. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  102. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
  103. package/dist/cjs/ion-input.cjs.entry.js +5 -5
  104. package/dist/cjs/ion-item-option_3.cjs.entry.js +6 -6
  105. package/dist/cjs/ion-item_8.cjs.entry.js +13 -13
  106. package/dist/cjs/ion-loading.cjs.entry.js +6 -6
  107. package/dist/cjs/ion-menu_3.cjs.entry.js +59 -38
  108. package/dist/cjs/ion-modal.cjs.entry.js +5 -5
  109. package/dist/cjs/ion-nav_2.cjs.entry.js +5 -4
  110. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +3 -3
  111. package/dist/cjs/ion-picker-internal.cjs.entry.js +1 -1
  112. package/dist/cjs/ion-popover.cjs.entry.js +5 -5
  113. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  114. package/dist/cjs/ion-radio_2.cjs.entry.js +9 -6
  115. package/dist/cjs/ion-range.cjs.entry.js +4 -4
  116. package/dist/cjs/ion-refresher_2.cjs.entry.js +5 -5
  117. package/dist/cjs/ion-reorder_2.cjs.entry.js +6 -6
  118. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  119. package/dist/cjs/ion-route_4.cjs.entry.js +5 -2
  120. package/dist/cjs/ion-searchbar.cjs.entry.js +12 -6
  121. package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
  122. package/dist/cjs/ion-select_3.cjs.entry.js +38 -24
  123. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  124. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  125. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
  126. package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
  127. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  128. package/dist/cjs/ion-textarea.cjs.entry.js +4 -4
  129. package/dist/cjs/ion-toast.cjs.entry.js +178 -36
  130. package/dist/cjs/ion-toggle.cjs.entry.js +7 -4
  131. package/dist/cjs/{ionic-global-a71608df.js → ionic-global-fb752503.js} +1 -1
  132. package/dist/cjs/ionic.cjs.js +5 -5
  133. package/dist/cjs/{ios.transition-e31445c2.js → ios.transition-a4d545dd.js} +8 -7
  134. package/dist/cjs/loader.cjs.js +4 -4
  135. package/dist/cjs/{md.transition-fb13ac79.js → md.transition-80bb961b.js} +3 -3
  136. package/dist/cjs/{overlays-efc9d511.js → overlays-1a734051.js} +2 -1
  137. package/dist/cjs/{status-tap-8c22e017.js → status-tap-778e8054.js} +1 -1
  138. package/dist/cjs/{swipe-back-d97c74d1.js → swipe-back-7e843e77.js} +4 -0
  139. package/dist/collection/collection-manifest.json +1 -1
  140. package/dist/collection/components/accordion/accordion.ios.css +66 -0
  141. package/dist/collection/components/accordion/accordion.md.css +33 -0
  142. package/dist/collection/components/accordion-group/accordion-group.ios.css +66 -0
  143. package/dist/collection/components/accordion-group/accordion-group.md.css +99 -0
  144. package/dist/collection/components/action-sheet/action-sheet.ios.css +80 -12
  145. package/dist/collection/components/action-sheet/action-sheet.md.css +76 -8
  146. package/dist/collection/components/action-sheet/test/a11y/action-sheet.e2e.js +27 -0
  147. package/dist/collection/components/alert/alert.ios.css +138 -21
  148. package/dist/collection/components/alert/alert.js +8 -0
  149. package/dist/collection/components/alert/alert.md.css +108 -8
  150. package/dist/collection/components/alert/test/a11y/alert.e2e.js +122 -0
  151. package/dist/collection/components/avatar/avatar.ios.css +66 -0
  152. package/dist/collection/components/avatar/avatar.md.css +66 -0
  153. package/dist/collection/components/back-button/back-button.ios.css +83 -1
  154. package/dist/collection/components/back-button/back-button.md.css +75 -3
  155. package/dist/collection/components/back-button/test/a11y/back-button.e2e.js +26 -0
  156. package/dist/collection/components/backdrop/backdrop.ios.css +66 -0
  157. package/dist/collection/components/backdrop/backdrop.md.css +66 -0
  158. package/dist/collection/components/badge/badge.ios.css +75 -1
  159. package/dist/collection/components/badge/badge.md.css +67 -1
  160. package/dist/collection/components/badge/test/a11y/badge.e2e.js +22 -0
  161. package/dist/collection/components/breadcrumb/breadcrumb.ios.css +80 -3
  162. package/dist/collection/components/breadcrumb/breadcrumb.md.css +69 -3
  163. package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +33 -0
  164. package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +33 -0
  165. package/dist/collection/components/breadcrumbs/test/a11y/breadcrumbs.e2e.js +21 -0
  166. package/dist/collection/components/button/button.ios.css +118 -19
  167. package/dist/collection/components/button/button.md.css +69 -3
  168. package/dist/collection/components/button/test/a11y/button.e2e.js +61 -0
  169. package/dist/collection/components/buttons/buttons.ios.css +102 -3
  170. package/dist/collection/components/buttons/buttons.md.css +101 -2
  171. package/dist/collection/components/buttons/test/a11y/buttons.e2e.js +74 -0
  172. package/dist/collection/components/card/card.ios.css +67 -1
  173. package/dist/collection/components/card/card.md.css +67 -1
  174. package/dist/collection/components/card/test/a11y/card.e2e.js +31 -0
  175. package/dist/collection/components/card-content/card-content.ios.css +71 -5
  176. package/dist/collection/components/card-content/card-content.md.css +71 -5
  177. package/dist/collection/components/card-header/card-header.ios.css +66 -0
  178. package/dist/collection/components/card-header/card-header.md.css +66 -0
  179. package/dist/collection/components/card-subtitle/card-subtitle.ios.css +67 -1
  180. package/dist/collection/components/card-subtitle/card-subtitle.md.css +67 -1
  181. package/dist/collection/components/card-title/card-title.ios.css +67 -1
  182. package/dist/collection/components/card-title/card-title.md.css +67 -1
  183. package/dist/collection/components/checkbox/checkbox.ios.css +101 -2
  184. package/dist/collection/components/checkbox/checkbox.js +3 -0
  185. package/dist/collection/components/checkbox/checkbox.md.css +99 -0
  186. package/dist/collection/components/checkbox/test/a11y/checkbox.e2e.js +18 -0
  187. package/dist/collection/components/chip/chip.ios.css +190 -0
  188. package/dist/collection/components/chip/chip.js +4 -2
  189. package/dist/collection/components/chip/{chip.css → chip.md.css} +43 -7
  190. package/dist/collection/components/chip/test/a11y/chip.e2e.js +58 -0
  191. package/dist/collection/components/col/col.css +66 -0
  192. package/dist/collection/components/content/content.css +33 -0
  193. package/dist/collection/components/datetime/datetime.ios.css +198 -7
  194. package/dist/collection/components/datetime/datetime.js +13 -7
  195. package/dist/collection/components/datetime/datetime.md.css +97 -5
  196. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +28 -0
  197. package/dist/collection/components/datetime/test/hour-cycle/datetime.e2e.js +14 -0
  198. package/dist/collection/components/datetime/utils/data.js +33 -7
  199. package/dist/collection/components/datetime/utils/format.js +27 -10
  200. package/dist/collection/components/datetime/utils/helpers.js +37 -5
  201. package/dist/collection/components/datetime-button/datetime-button.css +36 -2
  202. package/dist/collection/components/datetime-button/datetime-button.js +4 -4
  203. package/dist/collection/components/datetime-button/test/a11y/datetime-button.e2e.js +38 -0
  204. package/dist/collection/components/fab/fab.css +132 -0
  205. package/dist/collection/components/fab-button/fab-button.ios.css +66 -0
  206. package/dist/collection/components/fab-button/fab-button.md.css +66 -0
  207. package/dist/collection/components/fab-list/fab-list.css +66 -0
  208. package/dist/collection/components/footer/footer.ios.css +66 -0
  209. package/dist/collection/components/footer/footer.md.css +66 -0
  210. package/dist/collection/components/grid/grid.css +66 -0
  211. package/dist/collection/components/header/header.ios.css +71 -2
  212. package/dist/collection/components/header/header.md.css +66 -0
  213. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +66 -0
  214. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +66 -0
  215. package/dist/collection/components/input/input.ios.css +100 -1
  216. package/dist/collection/components/input/input.md.css +199 -1
  217. package/dist/collection/components/input/test/a11y/input.e2e.js +15 -1
  218. package/dist/collection/components/item/item.ios.css +70 -4
  219. package/dist/collection/components/item/item.md.css +138 -6
  220. package/dist/collection/components/item/test/a11y/item.e2e.js +116 -1
  221. package/dist/collection/components/item-divider/item-divider.ios.css +101 -9
  222. package/dist/collection/components/item-divider/item-divider.md.css +103 -11
  223. package/dist/collection/components/item-divider/test/a11y/item-divider.e2e.js +44 -0
  224. package/dist/collection/components/item-group/item-group.ios.css +68 -1
  225. package/dist/collection/components/item-group/item-group.md.css +68 -1
  226. package/dist/collection/components/item-option/item-option.ios.css +67 -1
  227. package/dist/collection/components/item-option/item-option.md.css +67 -1
  228. package/dist/collection/components/item-options/item-options.ios.css +99 -1
  229. package/dist/collection/components/item-options/item-options.md.css +99 -1
  230. package/dist/collection/components/item-sliding/item-sliding.css +33 -0
  231. package/dist/collection/components/item-sliding/test/a11y/item-sliding.e2e.js +34 -0
  232. package/dist/collection/components/label/label.ios.css +105 -6
  233. package/dist/collection/components/label/label.md.css +104 -5
  234. package/dist/collection/components/label/test/a11y/label.e2e.js +66 -0
  235. package/dist/collection/components/list/list.ios.css +99 -0
  236. package/dist/collection/components/list/list.md.css +99 -0
  237. package/dist/collection/components/list-header/list-header.ios.css +100 -1
  238. package/dist/collection/components/list-header/list-header.md.css +100 -1
  239. package/dist/collection/components/list-header/test/a11y/list-header.e2e.js +24 -0
  240. package/dist/collection/components/loading/loading.ios.css +67 -1
  241. package/dist/collection/components/loading/loading.md.css +67 -1
  242. package/dist/collection/components/loading/test/a11y/loading.e2e.js +19 -0
  243. package/dist/collection/components/menu/menu.ios.css +66 -0
  244. package/dist/collection/components/menu/menu.js +48 -28
  245. package/dist/collection/components/menu/menu.md.css +66 -0
  246. package/dist/collection/components/menu/test/disable/menu.e2e.js +55 -0
  247. package/dist/collection/components/menu/test/multiple/menu.e2e.js +60 -0
  248. package/dist/collection/components/menu-button/menu-button.ios.css +70 -2
  249. package/dist/collection/components/menu-button/menu-button.md.css +71 -3
  250. package/dist/collection/components/menu-button/test/a11y/menu-button.e2e.js +20 -1
  251. package/dist/collection/components/modal/modal.ios.css +66 -0
  252. package/dist/collection/components/modal/modal.md.css +66 -0
  253. package/dist/collection/components/nav/nav.css +33 -0
  254. package/dist/collection/components/nav/nav.js +1 -0
  255. package/dist/collection/components/note/note.ios.css +67 -0
  256. package/dist/collection/components/note/note.md.css +67 -1
  257. package/dist/collection/components/note/test/a11y/note.e2e.js +52 -0
  258. package/dist/collection/components/picker/picker.ios.css +66 -0
  259. package/dist/collection/components/picker/picker.md.css +66 -0
  260. package/dist/collection/components/picker-column/picker-column.ios.css +66 -0
  261. package/dist/collection/components/picker-column/picker-column.md.css +66 -0
  262. package/dist/collection/components/picker-column-internal/picker-column-internal.ios.css +33 -0
  263. package/dist/collection/components/picker-column-internal/picker-column-internal.md.css +66 -0
  264. package/dist/collection/components/picker-internal/picker-internal.ios.css +66 -0
  265. package/dist/collection/components/picker-internal/picker-internal.md.css +66 -0
  266. package/dist/collection/components/popover/popover.ios.css +66 -0
  267. package/dist/collection/components/popover/popover.md.css +66 -0
  268. package/dist/collection/components/progress-bar/progress-bar.ios.css +33 -0
  269. package/dist/collection/components/progress-bar/progress-bar.md.css +33 -0
  270. package/dist/collection/components/radio/radio.ios.css +104 -5
  271. package/dist/collection/components/radio/radio.js +4 -1
  272. package/dist/collection/components/radio/radio.md.css +104 -5
  273. package/dist/collection/components/radio/test/a11y/radio.e2e.js +21 -0
  274. package/dist/collection/components/radio-group/radio-group.js +1 -1
  275. package/dist/collection/components/range/range.ios.css +82 -8
  276. package/dist/collection/components/range/range.md.css +99 -11
  277. package/dist/collection/components/range/test/a11y/range.e2e.js +22 -0
  278. package/dist/collection/components/refresher/refresher.ios.css +66 -0
  279. package/dist/collection/components/refresher/refresher.md.css +66 -0
  280. package/dist/collection/components/reorder/reorder.ios.css +75 -2
  281. package/dist/collection/components/reorder/reorder.md.css +75 -2
  282. package/dist/collection/components/reorder-group/reorder-group.css +33 -0
  283. package/dist/collection/components/reorder-group/test/a11y/reorder-group.e2e.js +33 -0
  284. package/dist/collection/components/ripple-effect/ripple-effect.css +33 -0
  285. package/dist/collection/components/router/router.js +2 -0
  286. package/dist/collection/components/router/utils/path.js +1 -0
  287. package/dist/collection/components/router-link/router-link.css +33 -0
  288. package/dist/collection/components/router-outlet/router-outlet.css +33 -0
  289. package/dist/collection/components/row/row.css +66 -0
  290. package/dist/collection/components/searchbar/searchbar.ios.css +95 -16
  291. package/dist/collection/components/searchbar/searchbar.js +7 -1
  292. package/dist/collection/components/searchbar/searchbar.md.css +77 -10
  293. package/dist/collection/components/searchbar/test/a11y/searchbar.e2e.js +37 -0
  294. package/dist/collection/components/searchbar/test/basic/searchbar.e2e.js +18 -0
  295. package/dist/collection/components/segment/segment.ios.css +99 -0
  296. package/dist/collection/components/segment/segment.md.css +99 -0
  297. package/dist/collection/components/segment-button/segment-button.ios.css +66 -0
  298. package/dist/collection/components/segment-button/segment-button.md.css +66 -0
  299. package/dist/collection/components/select/select.ios.css +102 -3
  300. package/dist/collection/components/select/select.js +32 -18
  301. package/dist/collection/components/select/select.md.css +167 -2
  302. package/dist/collection/components/select/test/a11y/select.e2e.js +22 -0
  303. package/dist/collection/components/select/test/disabled/select.e2e.js +30 -0
  304. package/dist/collection/components/select-popover/select-popover.ios.css +101 -1
  305. package/dist/collection/components/select-popover/select-popover.md.css +99 -0
  306. package/dist/collection/components/skeleton-text/skeleton-text.css +33 -0
  307. package/dist/collection/components/spinner/spinner.css +33 -0
  308. package/dist/collection/components/split-pane/split-pane.ios.css +99 -0
  309. package/dist/collection/components/split-pane/split-pane.md.css +99 -0
  310. package/dist/collection/components/tab-bar/tab-bar.ios.css +99 -0
  311. package/dist/collection/components/tab-bar/tab-bar.md.css +99 -0
  312. package/dist/collection/components/tab-button/tab-button.ios.css +66 -0
  313. package/dist/collection/components/tab-button/tab-button.md.css +66 -0
  314. package/dist/collection/components/tabs/tabs.css +33 -0
  315. package/dist/collection/components/text/text.css +33 -0
  316. package/dist/collection/components/textarea/test/a11y/textarea.e2e.js +15 -1
  317. package/dist/collection/components/textarea/textarea.ios.css +133 -1
  318. package/dist/collection/components/textarea/textarea.md.css +199 -1
  319. package/dist/collection/components/thumbnail/thumbnail.css +33 -0
  320. package/dist/collection/components/title/test/a11y/title.e2e.js +61 -0
  321. package/dist/collection/components/title/title.ios.css +43 -10
  322. package/dist/collection/components/title/title.md.css +35 -2
  323. package/dist/collection/components/toast/animations/ios.enter.js +2 -3
  324. package/dist/collection/components/toast/animations/ios.leave.js +2 -3
  325. package/dist/collection/components/toast/animations/md.enter.js +2 -3
  326. package/dist/collection/components/toast/animations/utils.js +85 -0
  327. package/dist/collection/components/toast/test/a11y/toast.e2e.js +98 -1
  328. package/dist/collection/components/toast/test/position-anchor/toast.e2e.js +45 -0
  329. package/dist/collection/components/toast/toast.ios.css +74 -3
  330. package/dist/collection/components/toast/toast.js +98 -9
  331. package/dist/collection/components/toast/toast.md.css +74 -4
  332. package/dist/collection/components/toggle/toggle.ios.css +99 -0
  333. package/dist/collection/components/toggle/toggle.js +3 -0
  334. package/dist/collection/components/toggle/toggle.md.css +99 -0
  335. package/dist/collection/components/toolbar/toolbar.ios.css +66 -14
  336. package/dist/collection/components/toolbar/toolbar.md.css +66 -0
  337. package/dist/collection/css/test/a11y/typography.e2e.js +32 -0
  338. package/dist/collection/index.js +1 -0
  339. package/dist/collection/utils/animation/animation.js +60 -1
  340. package/dist/collection/utils/gesture/swipe-back.js +4 -0
  341. package/dist/collection/utils/menu-controller/index.js +26 -19
  342. package/dist/collection/utils/native/haptic.js +1 -0
  343. package/dist/collection/utils/overlays.js +1 -0
  344. package/dist/collection/utils/transition/ios.transition.js +5 -4
  345. package/dist/docs.json +74 -11
  346. package/dist/esm/{animation-a1d9e088.js → animation-92066c62.js} +60 -1
  347. package/dist/esm/{app-globals-df292a32.js → app-globals-ec816a70.js} +1 -1
  348. package/dist/esm/{button-active-7180a130.js → button-active-d926d4f4.js} +2 -2
  349. package/dist/esm/{data-009dbf15.js → data-44d9e816.js} +96 -22
  350. package/dist/esm/{haptic-6447af60.js → haptic-1243b917.js} +1 -0
  351. package/dist/esm/{index-32c6828b.js → index-7d2b2808.js} +3 -3
  352. package/dist/esm/{index-cb894020.js → index-b49b173c.js} +95 -51
  353. package/dist/esm/{index-ecfc2c9f.js → index-c132c5f1.js} +1 -1
  354. package/dist/esm/{index-3d6aefa2.js → index-df55802d.js} +28 -21
  355. package/dist/esm/index.js +10 -9
  356. package/dist/esm/ion-accordion_2.entry.js +3 -3
  357. package/dist/esm/ion-action-sheet.entry.js +8 -8
  358. package/dist/esm/ion-alert.entry.js +16 -8
  359. package/dist/esm/ion-app_8.entry.js +11 -11
  360. package/dist/esm/ion-avatar_3.entry.js +4 -4
  361. package/dist/esm/ion-back-button.entry.js +5 -5
  362. package/dist/esm/ion-backdrop.entry.js +2 -2
  363. package/dist/esm/ion-breadcrumb_2.entry.js +5 -5
  364. package/dist/esm/ion-button_2.entry.js +35 -22
  365. package/dist/esm/ion-card_5.entry.js +10 -10
  366. package/dist/esm/ion-checkbox.entry.js +6 -3
  367. package/dist/esm/ion-chip.entry.js +9 -4
  368. package/dist/esm/ion-col_3.entry.js +2 -2
  369. package/dist/esm/ion-datetime-button.entry.js +8 -8
  370. package/dist/esm/ion-datetime_3.entry.js +12 -12
  371. package/dist/esm/ion-fab_3.entry.js +3 -3
  372. package/dist/esm/ion-img.entry.js +2 -2
  373. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
  374. package/dist/esm/ion-input.entry.js +5 -5
  375. package/dist/esm/ion-item-option_3.entry.js +6 -6
  376. package/dist/esm/ion-item_8.entry.js +13 -13
  377. package/dist/esm/ion-loading.entry.js +6 -6
  378. package/dist/esm/ion-menu_3.entry.js +58 -37
  379. package/dist/esm/ion-modal.entry.js +5 -5
  380. package/dist/esm/ion-nav_2.entry.js +5 -4
  381. package/dist/esm/ion-picker-column-internal.entry.js +3 -3
  382. package/dist/esm/ion-picker-internal.entry.js +1 -1
  383. package/dist/esm/ion-popover.entry.js +5 -5
  384. package/dist/esm/ion-progress-bar.entry.js +2 -2
  385. package/dist/esm/ion-radio_2.entry.js +9 -6
  386. package/dist/esm/ion-range.entry.js +4 -4
  387. package/dist/esm/ion-refresher_2.entry.js +5 -5
  388. package/dist/esm/ion-reorder_2.entry.js +6 -6
  389. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  390. package/dist/esm/ion-route_4.entry.js +5 -2
  391. package/dist/esm/ion-searchbar.entry.js +12 -6
  392. package/dist/esm/ion-segment_2.entry.js +2 -2
  393. package/dist/esm/ion-select_3.entry.js +38 -24
  394. package/dist/esm/ion-spinner.entry.js +2 -2
  395. package/dist/esm/ion-split-pane.entry.js +2 -2
  396. package/dist/esm/ion-tab-bar_2.entry.js +2 -2
  397. package/dist/esm/ion-tab_2.entry.js +1 -1
  398. package/dist/esm/ion-text.entry.js +2 -2
  399. package/dist/esm/ion-textarea.entry.js +4 -4
  400. package/dist/esm/ion-toast.entry.js +162 -20
  401. package/dist/esm/ion-toggle.entry.js +7 -4
  402. package/dist/esm/{ionic-global-63a8d8c9.js → ionic-global-246ca78f.js} +1 -1
  403. package/dist/esm/ionic.js +6 -6
  404. package/dist/esm/{ios.transition-d8223b18.js → ios.transition-a86d7bbe.js} +8 -7
  405. package/dist/esm/loader.js +5 -5
  406. package/dist/esm/{md.transition-caed184e.js → md.transition-365ef6b6.js} +3 -3
  407. package/dist/esm/{overlays-84621c0a.js → overlays-cec6bac8.js} +2 -1
  408. package/dist/esm/{status-tap-73e982b6.js → status-tap-9aeeaca5.js} +1 -1
  409. package/dist/esm/{swipe-back-6e8158bc.js → swipe-back-cd4295f3.js} +4 -0
  410. package/dist/esm-es5/animation-92066c62.js +4 -0
  411. package/dist/esm-es5/app-globals-ec816a70.js +4 -0
  412. package/dist/esm-es5/{button-active-7180a130.js → button-active-d926d4f4.js} +1 -1
  413. package/dist/esm-es5/data-44d9e816.js +4 -0
  414. package/dist/esm-es5/{index-32c6828b.js → index-7d2b2808.js} +1 -1
  415. package/dist/esm-es5/index-b49b173c.js +5 -0
  416. package/dist/esm-es5/index-df55802d.js +4 -0
  417. package/dist/esm-es5/index.js +1 -1
  418. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  419. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  420. package/dist/esm-es5/ion-alert.entry.js +1 -1
  421. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  422. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  423. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  424. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  425. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  426. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  427. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  428. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  429. package/dist/esm-es5/ion-chip.entry.js +1 -1
  430. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  431. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  432. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  433. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  434. package/dist/esm-es5/ion-img.entry.js +1 -1
  435. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  436. package/dist/esm-es5/ion-input.entry.js +1 -1
  437. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  438. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  439. package/dist/esm-es5/ion-loading.entry.js +1 -1
  440. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  441. package/dist/esm-es5/ion-modal.entry.js +1 -1
  442. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  443. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  444. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  445. package/dist/esm-es5/ion-popover.entry.js +1 -1
  446. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  447. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  448. package/dist/esm-es5/ion-range.entry.js +1 -1
  449. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  450. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  451. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  452. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  453. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  454. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  455. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  456. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  457. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  458. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  459. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  460. package/dist/esm-es5/ion-text.entry.js +1 -1
  461. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  462. package/dist/esm-es5/ion-toast.entry.js +1 -1
  463. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  464. package/dist/esm-es5/{ionic-global-63a8d8c9.js → ionic-global-246ca78f.js} +1 -1
  465. package/dist/esm-es5/ionic.js +1 -1
  466. package/dist/esm-es5/ios.transition-a86d7bbe.js +4 -0
  467. package/dist/esm-es5/loader.js +1 -1
  468. package/dist/esm-es5/{md.transition-caed184e.js → md.transition-365ef6b6.js} +1 -1
  469. package/dist/esm-es5/{overlays-84621c0a.js → overlays-cec6bac8.js} +1 -1
  470. package/dist/esm-es5/{status-tap-73e982b6.js → status-tap-9aeeaca5.js} +1 -1
  471. package/dist/html.html-data.json +11 -1
  472. package/dist/ionic/index.esm.js +1 -1
  473. package/dist/ionic/ionic.esm.js +1 -1
  474. package/dist/ionic/ionic.js +1 -1
  475. package/dist/ionic/p-012952cd.system.entry.js +4 -0
  476. package/dist/ionic/p-015187e5.system.js +4 -0
  477. package/dist/ionic/p-06ac429a.js +5 -0
  478. package/dist/ionic/{p-dd0c00ed.entry.js → p-0ac3fb2c.entry.js} +1 -1
  479. package/dist/ionic/{p-a1d7f4ef.entry.js → p-0b00b937.entry.js} +1 -1
  480. package/dist/ionic/{p-a8403bed.system.entry.js → p-0b7c25ee.system.entry.js} +1 -1
  481. package/dist/ionic/p-0bbede6a.system.entry.js +4 -0
  482. package/dist/ionic/{p-a4e95028.system.entry.js → p-0f1f59da.system.entry.js} +1 -1
  483. package/dist/ionic/{p-7887ac7a.entry.js → p-108f9d49.entry.js} +1 -1
  484. package/dist/ionic/{p-e263255c.system.entry.js → p-1289b3b5.system.entry.js} +1 -1
  485. package/dist/ionic/{p-a760fd9a.system.js → p-128a98e8.system.js} +1 -1
  486. package/dist/ionic/{p-63f39d2f.entry.js → p-15decbec.entry.js} +1 -1
  487. package/dist/ionic/p-16e44585.js +4 -0
  488. package/dist/ionic/p-17240d90.js +4 -0
  489. package/dist/ionic/{p-8a289322.js → p-181b7c2a.js} +1 -1
  490. package/dist/ionic/p-19fba51c.entry.js +4 -0
  491. package/dist/ionic/p-1a463b1e.system.entry.js +4 -0
  492. package/dist/ionic/{p-9201a4d3.entry.js → p-1ecba429.entry.js} +1 -1
  493. package/dist/ionic/p-1edb53a1.entry.js +4 -0
  494. package/dist/ionic/p-1f260a7b.entry.js +4 -0
  495. package/dist/ionic/{p-3db27dec.entry.js → p-1f81b5be.entry.js} +1 -1
  496. package/dist/ionic/p-28ea45b9.js +4 -0
  497. package/dist/ionic/{p-8f36cde3.system.entry.js → p-29073efe.system.entry.js} +1 -1
  498. package/dist/ionic/p-2bbf3ac4.system.entry.js +4 -0
  499. package/dist/ionic/p-303bf1e8.system.entry.js +4 -0
  500. package/dist/ionic/p-31119a15.entry.js +4 -0
  501. package/dist/ionic/{p-c09e1da9.system.entry.js → p-33a8349a.system.entry.js} +1 -1
  502. package/dist/ionic/p-34259245.system.entry.js +4 -0
  503. package/dist/ionic/{p-7cad90ed.entry.js → p-35b26732.entry.js} +1 -1
  504. package/dist/ionic/p-35e399bd.entry.js +4 -0
  505. package/dist/ionic/p-38089641.entry.js +4 -0
  506. package/dist/ionic/{p-a6c52452.entry.js → p-3818f63f.entry.js} +1 -1
  507. package/dist/ionic/p-38c5fe2b.system.entry.js +4 -0
  508. package/dist/ionic/{p-6f3099b6.system.entry.js → p-3a58e3a4.system.entry.js} +1 -1
  509. package/dist/ionic/{p-9a6f6789.system.entry.js → p-3f3da911.system.entry.js} +1 -1
  510. package/dist/ionic/p-4215652f.system.entry.js +4 -0
  511. package/dist/ionic/p-446230d7.js +4 -0
  512. package/dist/ionic/p-4e50b8d1.entry.js +4 -0
  513. package/dist/ionic/{p-0793ebfd.entry.js → p-4e6e43c1.entry.js} +1 -1
  514. package/dist/ionic/p-4f97c112.entry.js +4 -0
  515. package/dist/ionic/p-54200074.entry.js +4 -0
  516. package/dist/ionic/{p-abfd1f2e.system.entry.js → p-54f6cd27.system.entry.js} +1 -1
  517. package/dist/ionic/p-572cce26.system.entry.js +4 -0
  518. package/dist/ionic/{p-b79eb3cd.entry.js → p-5b976d70.entry.js} +1 -1
  519. package/dist/ionic/p-5c3e72a8.system.js +4 -0
  520. package/dist/ionic/{p-6c7d61b9.system.entry.js → p-6129af0a.system.entry.js} +1 -1
  521. package/dist/ionic/{p-26fbffd4.system.js → p-629aa3fd.system.js} +1 -1
  522. package/dist/ionic/p-62e7d4fa.js +4 -0
  523. package/dist/ionic/p-673846f6.entry.js +4 -0
  524. package/dist/ionic/p-6ce0a709.system.entry.js +4 -0
  525. package/dist/ionic/{p-92d72ad8.entry.js → p-6ea2e653.entry.js} +1 -1
  526. package/dist/ionic/p-6f6646bf.system.entry.js +4 -0
  527. package/dist/ionic/{p-a9b13f18.system.entry.js → p-6f8a95a3.system.entry.js} +1 -1
  528. package/dist/ionic/{p-7a590a28.js → p-76378400.js} +1 -1
  529. package/dist/ionic/p-78030c1f.system.entry.js +4 -0
  530. package/dist/ionic/p-8083aadb.entry.js +4 -0
  531. package/dist/ionic/{p-3dce88bf.entry.js → p-818b2e75.entry.js} +1 -1
  532. package/dist/ionic/p-81ef7437.system.entry.js +4 -0
  533. package/dist/ionic/{p-b4daca17.system.entry.js → p-8a2801f1.system.entry.js} +1 -1
  534. package/dist/ionic/p-8c1805f4.system.entry.js +4 -0
  535. package/dist/ionic/p-8d6728a1.system.entry.js +4 -0
  536. package/dist/ionic/{p-00cf2d6c.js → p-8e24ebbc.js} +1 -1
  537. package/dist/ionic/{p-c8ec0d79.system.js → p-8f01a9a2.system.js} +1 -1
  538. package/dist/ionic/{p-9f9efb31.system.js → p-939e0fa1.system.js} +1 -1
  539. package/dist/ionic/{p-21085f64.system.entry.js → p-95817276.system.entry.js} +1 -1
  540. package/dist/ionic/{p-ca655a7c.entry.js → p-96ba8eac.entry.js} +1 -1
  541. package/dist/ionic/{p-95e44641.system.entry.js → p-9b9dcc3e.system.entry.js} +1 -1
  542. package/dist/ionic/p-9dc85536.system.entry.js +4 -0
  543. package/dist/ionic/{p-50d83224.entry.js → p-a04bfada.entry.js} +1 -1
  544. package/dist/ionic/p-a164e3ab.system.entry.js +4 -0
  545. package/dist/ionic/{p-018ad59f.entry.js → p-a200a7fc.entry.js} +1 -1
  546. package/dist/ionic/p-a34fc12e.system.entry.js +4 -0
  547. package/dist/ionic/p-a7f8dc42.entry.js +4 -0
  548. package/dist/ionic/p-a9c32660.entry.js +4 -0
  549. package/dist/ionic/p-aa377971.system.js +4 -0
  550. package/dist/ionic/p-ad48dd13.system.js +4 -0
  551. package/dist/ionic/{p-0e070fbe.entry.js → p-afb6658f.entry.js} +1 -1
  552. package/dist/ionic/{p-534a1cbc.system.js → p-b3c68723.system.js} +1 -1
  553. package/dist/ionic/{p-4e76e29a.system.entry.js → p-b61a2fa0.system.entry.js} +1 -1
  554. package/dist/ionic/{p-f6f4d4bb.system.entry.js → p-b753ec0d.system.entry.js} +1 -1
  555. package/dist/ionic/p-b8c3f071.system.js +4 -0
  556. package/dist/ionic/p-b9047b05.system.js +4 -0
  557. package/dist/ionic/{p-f37d6823.system.entry.js → p-beb864e4.system.entry.js} +1 -1
  558. package/dist/ionic/{p-58565369.system.entry.js → p-c05315f5.system.entry.js} +1 -1
  559. package/dist/ionic/p-c105bd36.entry.js +4 -0
  560. package/dist/ionic/p-c42c86c0.system.entry.js +4 -0
  561. package/dist/ionic/{p-5c24c115.system.js → p-c49672d8.system.js} +1 -1
  562. package/dist/ionic/{p-57743e20.entry.js → p-c4a5de01.entry.js} +1 -1
  563. package/dist/ionic/{p-c2d6b2fb.entry.js → p-c679fcb5.entry.js} +1 -1
  564. package/dist/ionic/p-c8c9d699.system.entry.js +4 -0
  565. package/dist/ionic/p-c92f0a6d.system.entry.js +4 -0
  566. package/dist/ionic/p-c956e82c.system.entry.js +4 -0
  567. package/dist/ionic/{p-a732cfec.system.js → p-c994fff0.system.js} +1 -1
  568. package/dist/ionic/p-cabd2c6d.entry.js +4 -0
  569. package/dist/ionic/p-cd2d17c3.system.entry.js +4 -0
  570. package/dist/ionic/{p-6db9035a.system.entry.js → p-ce7d67a7.system.entry.js} +1 -1
  571. package/dist/ionic/p-ced41304.system.js +4 -0
  572. package/dist/ionic/{p-84549737.system.entry.js → p-cf0c93e3.system.entry.js} +1 -1
  573. package/dist/ionic/{p-68a3da51.js → p-cf62e1c8.js} +1 -1
  574. package/dist/ionic/{p-7b15d413.entry.js → p-d35217be.entry.js} +1 -1
  575. package/dist/ionic/p-d6e53e66.entry.js +4 -0
  576. package/dist/ionic/{p-fa06c407.entry.js → p-db1a1e00.entry.js} +1 -1
  577. package/dist/ionic/{p-d90f0779.system.entry.js → p-e0f52215.system.entry.js} +1 -1
  578. package/dist/ionic/p-e1d5752d.system.entry.js +4 -0
  579. package/dist/ionic/p-e2bb634f.js +4 -0
  580. package/dist/ionic/p-e38a5f77.js +4 -0
  581. package/dist/ionic/{p-4b23f472.entry.js → p-e42aaa8b.entry.js} +1 -1
  582. package/dist/ionic/p-e65ebe96.entry.js +4 -0
  583. package/dist/ionic/p-e74faf2a.entry.js +4 -0
  584. package/dist/ionic/{p-9e91c83f.system.entry.js → p-eab10949.system.entry.js} +1 -1
  585. package/dist/ionic/{p-ac32f6ce.entry.js → p-eac263dd.entry.js} +1 -1
  586. package/dist/ionic/{p-e3272ed8.entry.js → p-f34f001c.entry.js} +1 -1
  587. package/dist/ionic/p-f4309ac7.entry.js +4 -0
  588. package/dist/ionic/p-f5bf698b.entry.js +4 -0
  589. package/dist/ionic/p-f7566bad.entry.js +4 -0
  590. package/dist/ionic/p-f919c026.entry.js +4 -0
  591. package/dist/ionic/{p-c381a9a9.system.entry.js → p-f9fa802c.system.entry.js} +1 -1
  592. package/dist/ionic/{p-3bf7c0dc.entry.js → p-fcf47f80.entry.js} +1 -1
  593. package/dist/node_modules/ionicons/dist/collection/components/icon/icon.css +49 -6
  594. package/dist/types/components/datetime/datetime-interface.d.ts +1 -0
  595. package/dist/types/components/datetime/datetime.d.ts +2 -2
  596. package/dist/types/components/datetime/utils/data.d.ts +3 -3
  597. package/dist/types/components/datetime/utils/format.d.ts +3 -3
  598. package/dist/types/components/datetime/utils/helpers.d.ts +15 -1
  599. package/dist/types/components/menu/menu-interface.d.ts +0 -1
  600. package/dist/types/components/menu/menu.d.ts +8 -1
  601. package/dist/types/components/toast/animations/ios.enter.d.ts +2 -1
  602. package/dist/types/components/toast/animations/ios.leave.d.ts +2 -2
  603. package/dist/types/components/toast/animations/md.enter.d.ts +2 -1
  604. package/dist/types/components/toast/animations/utils.d.ts +18 -0
  605. package/dist/types/components/toast/toast-interface.d.ts +11 -0
  606. package/dist/types/components/toast/toast.d.ts +21 -1
  607. package/dist/types/components.d.ts +16 -8
  608. package/dist/types/index.d.ts +1 -0
  609. package/dist/types/utils/menu-controller/index.d.ts +1 -2
  610. package/hydrate/index.js +607 -232
  611. package/package.json +7 -8
  612. package/dist/esm-es5/animation-a1d9e088.js +0 -4
  613. package/dist/esm-es5/app-globals-df292a32.js +0 -4
  614. package/dist/esm-es5/data-009dbf15.js +0 -4
  615. package/dist/esm-es5/index-3d6aefa2.js +0 -4
  616. package/dist/esm-es5/index-cb894020.js +0 -5
  617. package/dist/esm-es5/ios.transition-d8223b18.js +0 -4
  618. package/dist/ionic/p-007168b8.system.entry.js +0 -4
  619. package/dist/ionic/p-037e2738.system.entry.js +0 -4
  620. package/dist/ionic/p-043e8328.system.js +0 -4
  621. package/dist/ionic/p-15278928.entry.js +0 -4
  622. package/dist/ionic/p-1c59608c.system.entry.js +0 -4
  623. package/dist/ionic/p-1caf1ec6.entry.js +0 -4
  624. package/dist/ionic/p-1d2d1ab5.system.entry.js +0 -4
  625. package/dist/ionic/p-23e76249.entry.js +0 -4
  626. package/dist/ionic/p-28678af4.system.entry.js +0 -4
  627. package/dist/ionic/p-2992f2a8.entry.js +0 -4
  628. package/dist/ionic/p-30b04d8d.js +0 -4
  629. package/dist/ionic/p-37fc0d22.system.entry.js +0 -4
  630. package/dist/ionic/p-3e6b0330.system.entry.js +0 -4
  631. package/dist/ionic/p-44ef7224.system.js +0 -4
  632. package/dist/ionic/p-469d6a98.entry.js +0 -4
  633. package/dist/ionic/p-4af11953.entry.js +0 -4
  634. package/dist/ionic/p-4c20879c.entry.js +0 -4
  635. package/dist/ionic/p-57c5eca2.system.js +0 -4
  636. package/dist/ionic/p-5fd0a13e.system.entry.js +0 -4
  637. package/dist/ionic/p-6641d7fa.js +0 -4
  638. package/dist/ionic/p-67e21699.entry.js +0 -4
  639. package/dist/ionic/p-68b405cc.entry.js +0 -4
  640. package/dist/ionic/p-6b2641f6.system.js +0 -4
  641. package/dist/ionic/p-6ce891b2.entry.js +0 -4
  642. package/dist/ionic/p-73eba881.system.js +0 -4
  643. package/dist/ionic/p-7c901810.system.js +0 -4
  644. package/dist/ionic/p-7cfd253c.js +0 -4
  645. package/dist/ionic/p-7d6f2bbb.system.entry.js +0 -4
  646. package/dist/ionic/p-7fd0f045.system.entry.js +0 -4
  647. package/dist/ionic/p-8957b1de.system.entry.js +0 -4
  648. package/dist/ionic/p-89e3d112.system.entry.js +0 -4
  649. package/dist/ionic/p-8c17d825.js +0 -4
  650. package/dist/ionic/p-903c36fe.js +0 -5
  651. package/dist/ionic/p-90ebbca0.entry.js +0 -4
  652. package/dist/ionic/p-94a4ce40.js +0 -4
  653. package/dist/ionic/p-9649c54e.js +0 -4
  654. package/dist/ionic/p-96ad49f1.entry.js +0 -4
  655. package/dist/ionic/p-9d0916cb.system.js +0 -4
  656. package/dist/ionic/p-9e727d1d.entry.js +0 -4
  657. package/dist/ionic/p-a0e2f6d8.entry.js +0 -4
  658. package/dist/ionic/p-a51f5932.entry.js +0 -4
  659. package/dist/ionic/p-ab7edc16.system.entry.js +0 -4
  660. package/dist/ionic/p-b2397f35.entry.js +0 -4
  661. package/dist/ionic/p-b27772bf.entry.js +0 -4
  662. package/dist/ionic/p-b370d1b4.js +0 -4
  663. package/dist/ionic/p-b3bcef34.system.entry.js +0 -4
  664. package/dist/ionic/p-b4c0e9ee.entry.js +0 -4
  665. package/dist/ionic/p-b9e2aede.entry.js +0 -4
  666. package/dist/ionic/p-d2a278b1.entry.js +0 -4
  667. package/dist/ionic/p-d511de89.system.entry.js +0 -4
  668. package/dist/ionic/p-d580cbb7.system.entry.js +0 -4
  669. package/dist/ionic/p-da024961.entry.js +0 -4
  670. package/dist/ionic/p-e40b2cb4.system.entry.js +0 -4
  671. package/dist/ionic/p-e6d2cca2.system.entry.js +0 -4
  672. package/dist/ionic/p-e88ed929.system.entry.js +0 -4
  673. package/dist/ionic/p-ec29338e.entry.js +0 -4
  674. package/dist/ionic/p-ec451ef7.system.entry.js +0 -4
  675. package/dist/ionic/p-f1c2678b.system.entry.js +0 -4
  676. package/dist/ionic/p-f4267847.system.entry.js +0 -4
  677. package/dist/ionic/p-fb18f74b.system.entry.js +0 -4
  678. package/dist/ionic/p-fbc7995a.system.entry.js +0 -4
  679. /package/dist/esm-es5/{haptic-6447af60.js → haptic-1243b917.js} +0 -0
  680. /package/dist/esm-es5/{index-ecfc2c9f.js → index-c132c5f1.js} +0 -0
  681. /package/dist/esm-es5/{swipe-back-6e8158bc.js → swipe-back-cd4295f3.js} +0 -0
  682. /package/dist/ionic/{p-0e9a055c.js → p-32083c2d.js} +0 -0
  683. /package/dist/ionic/{p-8985b268.system.js → p-8050b9b9.system.js} +0 -0
  684. /package/dist/ionic/{p-14d7b7e2.system.js → p-b4b4bb29.system.js} +0 -0
  685. /package/dist/ionic/{p-eacb02b2.system.js → p-b912e055.system.js} +0 -0
  686. /package/dist/ionic/{p-bb6f38ed.js → p-b923f3d7.js} +0 -0
  687. /package/dist/ionic/{p-0a87858b.js → p-ea96fa73.js} +0 -0
@@ -1,3 +1,36 @@
1
+ /**
2
+ * Convert a font size to a dynamic font size.
3
+ * Fonts that participate in Dynamic Type should use
4
+ * dynamic font sizes.
5
+ * @param size - The initial font size including the unit (i.e. px or pt)
6
+ * @param unit (optional) - The unit to convert to. Use this if you want to
7
+ * convert to a unit other than $baselineUnit.
8
+ */
9
+ /**
10
+ * Convert a font size to a dynamic font size but impose
11
+ * a maximum font size.
12
+ * @param size - The initial font size including the unit (i.e. px or pt)
13
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
14
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
15
+ * convert to a unit other than $baselineUnit.
16
+ */
17
+ /**
18
+ * Convert a font size to a dynamic font size but impose
19
+ * a minimum font size.
20
+ * @param size - The initial font size including the unit (i.e. px or pt)
21
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
22
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
23
+ * convert to a unit other than $baselineUnit.
24
+ */
25
+ /**
26
+ * Convert a font size to a dynamic font size but impose
27
+ * maximum and minimum font sizes.
28
+ * @param size - The initial font size including the unit (i.e. px or pt)
29
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
30
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
31
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
32
+ * convert to a unit other than $baselineUnit.
33
+ */
1
34
  :host {
2
35
  /**
3
36
  * @prop --background: The primary background of the datetime component.
@@ -220,6 +253,18 @@ ion-picker-column-internal {
220
253
  justify-content: space-between;
221
254
  }
222
255
 
256
+ /**
257
+ * The confirm and clear buttons are grouped in a
258
+ * container so that they appear on the end opposite
259
+ * of the cancel button.
260
+ * We use display: flex so that the
261
+ * wrapper only takes up as much
262
+ * height as it needs.
263
+ */
264
+ .datetime-action-buttons .datetime-action-buttons-container {
265
+ display: flex;
266
+ }
267
+
223
268
  /**
224
269
  * Date/Year button should be on
225
270
  * the opposite side of the component
@@ -255,6 +300,20 @@ ion-picker-column-internal {
255
300
  text-align: center;
256
301
  }
257
302
 
303
+ .calendar-days-of-week .day-of-week {
304
+ /**
305
+ * Center the days of the week within each cell
306
+ * if the container size is changed as a result
307
+ * of Dynamic Type.
308
+ */
309
+ -webkit-margin-start: auto;
310
+ margin-inline-start: auto;
311
+ -webkit-margin-end: auto;
312
+ margin-inline-end: auto;
313
+ margin-top: 0;
314
+ margin-bottom: 0;
315
+ }
316
+
258
317
  :host .calendar-body {
259
318
  /**
260
319
  * Show all calendar months inline
@@ -329,7 +388,7 @@ ion-picker-column-internal {
329
388
  * Center the day text vertically
330
389
  * and horizontally within its grid cell.
331
390
  */
332
- :host .calendar-day {
391
+ .calendar-day {
333
392
  border-radius: 50%;
334
393
  -webkit-padding-start: 0px;
335
394
  padding-inline-start: 0px;
@@ -418,6 +477,39 @@ ion-picker-column-internal {
418
477
  --color: var(--ion-color-base);
419
478
  }
420
479
 
480
+ /**
481
+ * Convert a font size to a dynamic font size.
482
+ * Fonts that participate in Dynamic Type should use
483
+ * dynamic font sizes.
484
+ * @param size - The initial font size including the unit (i.e. px or pt)
485
+ * @param unit (optional) - The unit to convert to. Use this if you want to
486
+ * convert to a unit other than $baselineUnit.
487
+ */
488
+ /**
489
+ * Convert a font size to a dynamic font size but impose
490
+ * a maximum font size.
491
+ * @param size - The initial font size including the unit (i.e. px or pt)
492
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
493
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
494
+ * convert to a unit other than $baselineUnit.
495
+ */
496
+ /**
497
+ * Convert a font size to a dynamic font size but impose
498
+ * a minimum font size.
499
+ * @param size - The initial font size including the unit (i.e. px or pt)
500
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
501
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
502
+ * convert to a unit other than $baselineUnit.
503
+ */
504
+ /**
505
+ * Convert a font size to a dynamic font size but impose
506
+ * maximum and minimum font sizes.
507
+ * @param size - The initial font size including the unit (i.e. px or pt)
508
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
509
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
510
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
511
+ * convert to a unit other than $baselineUnit.
512
+ */
421
513
  :host {
422
514
  --background: var(--ion-color-light, #ffffff);
423
515
  --background-rgb: var(--ion-color-light-rgb);
@@ -438,7 +530,7 @@ ion-picker-column-internal {
438
530
  padding-top: 16px;
439
531
  padding-bottom: 16px;
440
532
  border-bottom: 0.55px solid var(--ion-color-step-200, #cccccc);
441
- font-size: 14px;
533
+ font-size: min(0.875rem, 22.4px);
442
534
  }
443
535
 
444
536
  :host .datetime-header .datetime-title {
@@ -453,7 +545,7 @@ ion-picker-column-internal {
453
545
  --padding-start: 16px;
454
546
  --background-hover: transparent;
455
547
  --background-activated: transparent;
456
- font-size: 16px;
548
+ font-size: min(1rem, 25.6px);
457
549
  font-weight: 600;
458
550
  }
459
551
 
@@ -484,12 +576,111 @@ ion-picker-column-internal {
484
576
  padding-top: 0;
485
577
  padding-bottom: 0;
486
578
  color: var(--ion-color-step-300, #b3b3b3);
487
- font-size: 12px;
579
+ font-size: min(0.75rem, 19.2px);
488
580
  font-weight: 600;
489
581
  line-height: 24px;
490
582
  text-transform: uppercase;
491
583
  }
492
584
 
585
+ @supports (border-radius: mod(1px, 1px)) {
586
+ .calendar-days-of-week .day-of-week {
587
+ /**
588
+ * When the computed font size is 24px
589
+ * we want the days of the week to only
590
+ * show the first letter of each day.
591
+ *
592
+ * We use the modulus operator to ensure
593
+ * that any font size less than 24px is
594
+ * unchanged (i.e. 16 % 24 = 16). If the
595
+ * font size is 24px then the remainder
596
+ * will be 0.
597
+ */
598
+ /**
599
+ * From here, we scale the remainder to get
600
+ * a width value larger than 20px.
601
+ * We then clamp the width to have a max width
602
+ * of 100% so that each element does not appear
603
+ * too wide if $width is a very large number.
604
+ *
605
+ * When the font size is >=24px then $remainder
606
+ * will be 0px. This results in $width being 0px
607
+ * since 0px * 10 is still 0px. We set a minimum
608
+ * width of 20px below so that the days of the
609
+ * week still show when the font size is >=24px
610
+ * and have a fixed width of 20px.
611
+ *
612
+ * The days of the week text on iOS have a maximum font size
613
+ * that is no larger than 20px, so setting a minimum width
614
+ * of 20px ensures that the text will always fit. (See font-size
615
+ * declaration in the .calendar-days-of-week block).
616
+ */
617
+ width: clamp(20px, calc(mod(min(1rem, 24px), 24px) * 10), 100%);
618
+ /**
619
+ * We show the first letter of the week
620
+ * by setting the width small such that all other
621
+ * letters wrap to the next line. While we do have
622
+ * overflow: hidden to visually hide the overflowing
623
+ * text, we need to explicitly set the height of the
624
+ * container too otherwise it will increase as the text wraps.
625
+ */
626
+ height: 24px;
627
+ /**
628
+ * The above width will cause
629
+ * all the other letters to overflow
630
+ * to other lines. The below code hides
631
+ * those additional letters so only
632
+ * the first letter is shown.
633
+ */
634
+ overflow: hidden;
635
+ }
636
+ .calendar-day {
637
+ /**
638
+ * We use the modulus operator to ensure
639
+ * that any font size less than 24px is
640
+ * unchanged (i.e. 16 % 24 = 16). If the
641
+ * font size is 24px then the remainder
642
+ * will be 0.
643
+ */
644
+ /**
645
+ * From here, we scale the remainder. The purpose of
646
+ * scaling the remainder is to get a border radius
647
+ * large enough such that the element's
648
+ * shape is a circle.
649
+ *
650
+ * Note that when the font size is 24px
651
+ * then the remainder will be 0, so $radius
652
+ * will still be zero.
653
+ */
654
+ /**
655
+ * In the event that $radius is 0
656
+ * we use max() to ensure a minimum
657
+ * border radius of 8px which will
658
+ * give the day button the rounded
659
+ * rectangle appearance.
660
+ * For font sizes smaller than 24px
661
+ * the border radius will give a circle appearance.
662
+ */
663
+ border-radius: max(8px, mod(min(1rem, 24px), 24px) * 10);
664
+ }
665
+ }
666
+ /**
667
+ * iOS <17 has a bug where the result of mod() is
668
+ * used incorrectly if used inside of another CSS function such
669
+ * as calc(). The first set of @support checks accounts for iOS <17.
670
+ * We check -webkit-named-image to ensure that non-WebKit browsers are ignored.
671
+ * The second set of @support checks account for all other browsers that
672
+ * do not support mod() yet.
673
+ */
674
+ @supports ((border-radius: mod(1px, 1px)) and (background: -webkit-named-image(apple-pay-logo-black)) and (not (contain-intrinsic-size: none))) or (not (border-radius: mod(1px, 1px))) {
675
+ .calendar-days-of-week .day-of-week {
676
+ width: auto;
677
+ height: auto;
678
+ overflow: initial;
679
+ }
680
+ .calendar-day {
681
+ border-radius: 32px;
682
+ }
683
+ }
493
684
  :host .calendar-body .calendar-month .calendar-month-grid {
494
685
  /**
495
686
  * We need to apply the padding to
@@ -516,14 +707,14 @@ ion-picker-column-internal {
516
707
  padding-top: 4px;
517
708
  padding-bottom: 4px;
518
709
  height: 0;
519
- min-height: 16px;
710
+ min-height: 1rem;
520
711
  }
521
712
 
522
713
  :host .calendar-day {
523
714
  width: 40px;
524
715
  min-width: 40px;
525
716
  height: 40px;
526
- font-size: 20px;
717
+ font-size: min(1.25rem, 32px);
527
718
  }
528
719
 
529
720
  .calendar-day.calendar-day-active {
@@ -563,7 +754,7 @@ ion-picker-column-internal {
563
754
  padding-inline-end: 16px;
564
755
  padding-top: 8px;
565
756
  padding-bottom: 16px;
566
- font-size: 16px;
757
+ font-size: min(1rem, 25.6px);
567
758
  }
568
759
 
569
760
  :host .datetime-time .time-header {
@@ -12,7 +12,7 @@ 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
14
  import { formatValue, getLocalizedTime, getMonthAndDay, getMonthAndYear } from "./utils/format";
15
- import { is24Hour, isLocaleDayPeriodRTL, isMonthFirstLocale, getNumDaysInMonth } from "./utils/helpers";
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";
@@ -933,7 +933,7 @@ export class Datetime {
933
933
  return (h("div", { class: "datetime-footer" }, h("div", { class: "datetime-buttons" }, h("div", { class: {
934
934
  ['datetime-action-buttons']: true,
935
935
  ['has-clear-button']: this.showClearButton,
936
- } }, h("slot", { name: "buttons" }, h("ion-buttons", null, showDefaultButtons && (h("ion-button", { id: "cancel-button", color: this.color, onClick: () => this.cancel(true) }, this.cancelText)), h("div", null, showClearButton && (h("ion-button", { id: "clear-button", color: this.color, onClick: () => clearButtonClick() }, this.clearText)), showDefaultButtons && (h("ion-button", { id: "confirm-button", color: this.color, onClick: () => this.confirm(true) }, this.doneText)))))))));
936
+ } }, h("slot", { name: "buttons" }, h("ion-buttons", null, showDefaultButtons && (h("ion-button", { id: "cancel-button", color: this.color, onClick: () => this.cancel(true) }, this.cancelText)), h("div", { class: "datetime-action-buttons-container" }, showClearButton && (h("ion-button", { id: "clear-button", color: this.color, onClick: () => clearButtonClick() }, this.clearText)), showDefaultButtons && (h("ion-button", { id: "confirm-button", color: this.color, onClick: () => this.confirm(true) }, this.doneText)))))))));
937
937
  }
938
938
  /**
939
939
  * Wheel picker render methods
@@ -1370,7 +1370,7 @@ export class Datetime {
1370
1370
  }
1371
1371
  renderTimeOverlay() {
1372
1372
  const { hourCycle, isTimePopoverOpen, locale } = this;
1373
- const use24Hour = is24Hour(locale, hourCycle);
1373
+ const computedHourCycle = getHourCycle(locale, hourCycle);
1374
1374
  const activePart = this.getActivePartsWithFallback();
1375
1375
  return [
1376
1376
  h("div", { class: "time-header" }, this.renderTimeLabel()),
@@ -1389,7 +1389,7 @@ export class Datetime {
1389
1389
  await popoverRef.onWillDismiss();
1390
1390
  this.isTimePopoverOpen = false;
1391
1391
  }
1392
- } }, getLocalizedTime(locale, activePart, use24Hour)),
1392
+ } }, getLocalizedTime(locale, activePart, computedHourCycle)),
1393
1393
  h("ion-popover", { alignment: "center", translucent: true, overlayIndex: 1, arrow: false, onWillPresent: (ev) => {
1394
1394
  /**
1395
1395
  * Intersection Observers do not consistently fire between Blink and Webkit
@@ -2029,9 +2029,15 @@ export class Datetime {
2029
2029
  "type": "string",
2030
2030
  "mutable": false,
2031
2031
  "complexType": {
2032
- "original": "'h23' | 'h12'",
2033
- "resolved": "\"h12\" | \"h23\" | undefined",
2034
- "references": {}
2032
+ "original": "DatetimeHourCycle",
2033
+ "resolved": "\"h11\" | \"h12\" | \"h23\" | \"h24\" | undefined",
2034
+ "references": {
2035
+ "DatetimeHourCycle": {
2036
+ "location": "import",
2037
+ "path": "./datetime-interface",
2038
+ "id": "src/components/datetime/datetime-interface.ts::DatetimeHourCycle"
2039
+ }
2040
+ }
2035
2041
  },
2036
2042
  "required": false,
2037
2043
  "optional": true,
@@ -1,3 +1,36 @@
1
+ /**
2
+ * Convert a font size to a dynamic font size.
3
+ * Fonts that participate in Dynamic Type should use
4
+ * dynamic font sizes.
5
+ * @param size - The initial font size including the unit (i.e. px or pt)
6
+ * @param unit (optional) - The unit to convert to. Use this if you want to
7
+ * convert to a unit other than $baselineUnit.
8
+ */
9
+ /**
10
+ * Convert a font size to a dynamic font size but impose
11
+ * a maximum font size.
12
+ * @param size - The initial font size including the unit (i.e. px or pt)
13
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
14
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
15
+ * convert to a unit other than $baselineUnit.
16
+ */
17
+ /**
18
+ * Convert a font size to a dynamic font size but impose
19
+ * a minimum font size.
20
+ * @param size - The initial font size including the unit (i.e. px or pt)
21
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
22
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
23
+ * convert to a unit other than $baselineUnit.
24
+ */
25
+ /**
26
+ * Convert a font size to a dynamic font size but impose
27
+ * maximum and minimum font sizes.
28
+ * @param size - The initial font size including the unit (i.e. px or pt)
29
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
30
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
31
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
32
+ * convert to a unit other than $baselineUnit.
33
+ */
1
34
  :host {
2
35
  /**
3
36
  * @prop --background: The primary background of the datetime component.
@@ -220,6 +253,18 @@ ion-picker-column-internal {
220
253
  justify-content: space-between;
221
254
  }
222
255
 
256
+ /**
257
+ * The confirm and clear buttons are grouped in a
258
+ * container so that they appear on the end opposite
259
+ * of the cancel button.
260
+ * We use display: flex so that the
261
+ * wrapper only takes up as much
262
+ * height as it needs.
263
+ */
264
+ .datetime-action-buttons .datetime-action-buttons-container {
265
+ display: flex;
266
+ }
267
+
223
268
  /**
224
269
  * Date/Year button should be on
225
270
  * the opposite side of the component
@@ -255,6 +300,20 @@ ion-picker-column-internal {
255
300
  text-align: center;
256
301
  }
257
302
 
303
+ .calendar-days-of-week .day-of-week {
304
+ /**
305
+ * Center the days of the week within each cell
306
+ * if the container size is changed as a result
307
+ * of Dynamic Type.
308
+ */
309
+ -webkit-margin-start: auto;
310
+ margin-inline-start: auto;
311
+ -webkit-margin-end: auto;
312
+ margin-inline-end: auto;
313
+ margin-top: 0;
314
+ margin-bottom: 0;
315
+ }
316
+
258
317
  :host .calendar-body {
259
318
  /**
260
319
  * Show all calendar months inline
@@ -329,7 +388,7 @@ ion-picker-column-internal {
329
388
  * Center the day text vertically
330
389
  * and horizontally within its grid cell.
331
390
  */
332
- :host .calendar-day {
391
+ .calendar-day {
333
392
  border-radius: 50%;
334
393
  -webkit-padding-start: 0px;
335
394
  padding-inline-start: 0px;
@@ -418,6 +477,39 @@ ion-picker-column-internal {
418
477
  --color: var(--ion-color-base);
419
478
  }
420
479
 
480
+ /**
481
+ * Convert a font size to a dynamic font size.
482
+ * Fonts that participate in Dynamic Type should use
483
+ * dynamic font sizes.
484
+ * @param size - The initial font size including the unit (i.e. px or pt)
485
+ * @param unit (optional) - The unit to convert to. Use this if you want to
486
+ * convert to a unit other than $baselineUnit.
487
+ */
488
+ /**
489
+ * Convert a font size to a dynamic font size but impose
490
+ * a maximum font size.
491
+ * @param size - The initial font size including the unit (i.e. px or pt)
492
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
493
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
494
+ * convert to a unit other than $baselineUnit.
495
+ */
496
+ /**
497
+ * Convert a font size to a dynamic font size but impose
498
+ * a minimum font size.
499
+ * @param size - The initial font size including the unit (i.e. px or pt)
500
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
501
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
502
+ * convert to a unit other than $baselineUnit.
503
+ */
504
+ /**
505
+ * Convert a font size to a dynamic font size but impose
506
+ * maximum and minimum font sizes.
507
+ * @param size - The initial font size including the unit (i.e. px or pt)
508
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
509
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
510
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
511
+ * convert to a unit other than $baselineUnit.
512
+ */
421
513
  :host {
422
514
  --background: var(--ion-color-step-100, #ffffff);
423
515
  --title-color: var(--ion-color-contrast);
@@ -435,13 +527,13 @@ ion-picker-column-internal {
435
527
  }
436
528
 
437
529
  :host .datetime-header .datetime-title {
438
- font-size: 12px;
530
+ font-size: 0.75rem;
439
531
  text-transform: uppercase;
440
532
  }
441
533
 
442
534
  :host .datetime-header .datetime-selected-date {
443
535
  margin-top: 30px;
444
- font-size: 34px;
536
+ font-size: 2.125rem;
445
537
  }
446
538
 
447
539
  :host .datetime-calendar .calendar-action-buttons ion-item {
@@ -461,7 +553,7 @@ ion-picker-column-internal {
461
553
  padding-top: 0px;
462
554
  padding-bottom: 0px;
463
555
  color: var(--ion-color-step-500, gray);
464
- font-size: 14px;
556
+ font-size: 0.875rem;
465
557
  line-height: 36px;
466
558
  }
467
559
 
@@ -486,7 +578,7 @@ ion-picker-column-internal {
486
578
  width: 42px;
487
579
  min-width: 42px;
488
580
  height: 42px;
489
- font-size: 14px;
581
+ font-size: 0.875rem;
490
582
  }
491
583
 
492
584
  /**
@@ -0,0 +1,28 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { expect } from "@playwright/test";
5
+ import { configs, test } from "../../../../utils/test/playwright/index";
6
+ /**
7
+ * This behavior does not vary across directions
8
+ */
9
+ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
10
+ test.describe(title('datetime: font scaling'), () => {
11
+ test('should scale text on larger font sizes', async ({ page }) => {
12
+ await page.setContent(`
13
+ <style>
14
+ html {
15
+ font-size: 36px;
16
+ }
17
+ </style>
18
+
19
+ <div id="container" style="width: 450px;">
20
+ <ion-datetime size="cover" show-default-title="true" show-default-buttons="true" presentation="date-time" value="2022-06-06T16:30"></ion-datetime>
21
+ </div>
22
+ `, config);
23
+ const container = page.locator('#container');
24
+ await page.waitForSelector('.datetime-ready');
25
+ await expect(container).toHaveScreenshot(screenshot(`datetime-scale`));
26
+ });
27
+ });
28
+ });
@@ -19,5 +19,19 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
19
19
  const timeButton = page.locator('ion-datetime .time-body');
20
20
  await expect(timeButton).toHaveText('4:30 PM');
21
21
  });
22
+ test('should set the h11 hour cycle correctly', async ({ page }) => {
23
+ await page.setContent(`
24
+ <ion-datetime hour-cycle="h11" value="2022-01-01T00:30:00"></ion-datetime>
25
+ `, config);
26
+ const timeButton = page.locator('ion-datetime .time-body');
27
+ await expect(timeButton).toHaveText('0:30 AM');
28
+ });
29
+ test('should set the h24 hour cycle correctly', async ({ page }) => {
30
+ await page.setContent(`
31
+ <ion-datetime hour-cycle="h24" value="2022-01-01T00:30:00"></ion-datetime>
32
+ `, config);
33
+ const timeButton = page.locator('ion-datetime .time-body');
34
+ await expect(timeButton).toHaveText('24:30');
35
+ });
22
36
  });
23
37
  });
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { isAfter, isBefore, isSameDay } from "./comparison";
5
5
  import { getLocalizedDayPeriod, removeDateTzOffset, getFormattedHour, addTimePadding, getTodayLabel, getYear, } from "./format";
6
- import { getNumDaysInMonth, is24Hour } from "./helpers";
6
+ import { getNumDaysInMonth, is24Hour, getHourCycle } from "./helpers";
7
7
  import { getNextMonth, getPreviousMonth, getInternalHourValue } from "./manipulation";
8
8
  /**
9
9
  * Returns the current date as
@@ -34,8 +34,14 @@ const minutes = [
34
34
  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
35
35
  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
36
36
  ];
37
+ // h11 hour system uses 0-11. Midnight starts at 0:00am.
38
+ const hour11 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
39
+ // h12 hour system uses 0-12. Midnight starts at 12:00am.
37
40
  const hour12 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
41
+ // h23 hour system uses 0-23. Midnight starts at 0:00.
38
42
  const hour23 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23];
43
+ // h24 hour system uses 1-24. Midnight starts at 24:00.
44
+ const hour24 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0];
39
45
  /**
40
46
  * Given a locale and a mode,
41
47
  * return an array with formatted days
@@ -104,14 +110,33 @@ export const getDaysOfMonth = (month, year, firstDayOfWeek) => {
104
110
  }
105
111
  return days;
106
112
  };
113
+ /**
114
+ * Returns an array of pre-defined hour
115
+ * values based on the provided hourCycle.
116
+ */
117
+ const getHourData = (hourCycle) => {
118
+ switch (hourCycle) {
119
+ case 'h11':
120
+ return hour11;
121
+ case 'h12':
122
+ return hour12;
123
+ case 'h23':
124
+ return hour23;
125
+ case 'h24':
126
+ return hour24;
127
+ default:
128
+ throw new Error(`Invalid hour cycle "${hourCycle}"`);
129
+ }
130
+ };
107
131
  /**
108
132
  * Given a local, reference datetime parts and option
109
133
  * max/min bound datetime parts, calculate the acceptable
110
134
  * hour and minute values according to the bounds and locale.
111
135
  */
112
- export const generateTime = (refParts, hourCycle = 'h12', minParts, maxParts, hourValues, minuteValues) => {
113
- const use24Hour = hourCycle === 'h23';
114
- let processedHours = use24Hour ? hour23 : hour12;
136
+ export const generateTime = (locale, refParts, hourCycle = 'h12', minParts, maxParts, hourValues, minuteValues) => {
137
+ const computedHourCycle = getHourCycle(locale, hourCycle);
138
+ const use24Hour = is24Hour(computedHourCycle);
139
+ let processedHours = getHourData(computedHourCycle);
115
140
  let processedMinutes = minutes;
116
141
  let isAMAllowed = true;
117
142
  let isPMAllowed = true;
@@ -443,11 +468,12 @@ export const getCombinedDateColumnData = (locale, todayParts, minParts, maxParts
443
468
  };
444
469
  };
445
470
  export const getTimeColumnsData = (locale, refParts, hourCycle, minParts, maxParts, allowedHourValues, allowedMinuteValues) => {
446
- const use24Hour = is24Hour(locale, hourCycle);
447
- const { hours, minutes, am, pm } = generateTime(refParts, use24Hour ? 'h23' : 'h12', minParts, maxParts, allowedHourValues, allowedMinuteValues);
471
+ const computedHourCycle = getHourCycle(locale, hourCycle);
472
+ const use24Hour = is24Hour(computedHourCycle);
473
+ const { hours, minutes, am, pm } = generateTime(locale, refParts, computedHourCycle, minParts, maxParts, allowedHourValues, allowedMinuteValues);
448
474
  const hoursItems = hours.map((hour) => {
449
475
  return {
450
- text: getFormattedHour(hour, use24Hour),
476
+ text: getFormattedHour(hour, computedHourCycle),
451
477
  value: getInternalHourValue(hour, use24Hour, refParts.ampm),
452
478
  };
453
479
  });
@@ -1,6 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
+ import { is24Hour } from "./helpers";
4
5
  import { convertDataToISO } from "./manipulation";
5
6
  const getFormattedDayPeriod = (dayPeriod) => {
6
7
  if (dayPeriod === undefined) {
@@ -8,7 +9,7 @@ const getFormattedDayPeriod = (dayPeriod) => {
8
9
  }
9
10
  return dayPeriod.toUpperCase();
10
11
  };
11
- export const getLocalizedTime = (locale, refParts, use24Hour) => {
12
+ export const getLocalizedTime = (locale, refParts, hourCycle) => {
12
13
  const timeParts = {
13
14
  hour: refParts.hour,
14
15
  minute: refParts.minute,
@@ -30,7 +31,7 @@ export const getLocalizedTime = (locale, refParts, use24Hour) => {
30
31
  * We use hourCycle here instead of hour12 due to:
31
32
  * https://bugs.chromium.org/p/chromium/issues/detail?id=1347316&q=hour12&can=2
32
33
  */
33
- hourCycle: use24Hour ? 'h23' : 'h12',
34
+ hourCycle,
34
35
  /**
35
36
  * Setting Z at the end indicates that this
36
37
  * date string is in the UTC time zone. This
@@ -69,17 +70,33 @@ export const addTimePadding = (value) => {
69
70
  * 12 hour times it ensures that
70
71
  * hour 0 is formatted as '12'.
71
72
  */
72
- export const getFormattedHour = (hour, use24Hour) => {
73
- if (use24Hour) {
74
- return addTimePadding(hour);
75
- }
73
+ export const getFormattedHour = (hour, hourCycle) => {
76
74
  /**
77
- * If using 12 hour
78
- * format, make sure hour
79
- * 0 is formatted as '12'.
75
+ * Midnight for h11 starts at 0:00am
76
+ * Midnight for h12 starts at 12:00am
77
+ * Midnight for h23 starts at 00:00
78
+ * Midnight for h24 starts at 24:00
80
79
  */
81
80
  if (hour === 0) {
82
- return '12';
81
+ switch (hourCycle) {
82
+ case 'h11':
83
+ return '0';
84
+ case 'h12':
85
+ return '12';
86
+ case 'h23':
87
+ return '00';
88
+ case 'h24':
89
+ return '24';
90
+ default:
91
+ throw new Error(`Invalid hour cycle "${hourCycle}"`);
92
+ }
93
+ }
94
+ const use24Hour = is24Hour(hourCycle);
95
+ /**
96
+ * h23 and h24 use 24 hour times.
97
+ */
98
+ if (use24Hour) {
99
+ return addTimePadding(hour);
83
100
  }
84
101
  return hour.toString();
85
102
  };