@ionic/core 7.4.2-dev.11695927273.1323de22 → 7.4.2-dev.11695944163.13e7414e

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 (515) hide show
  1. package/components/action-sheet.js +2 -2
  2. package/components/button.js +2 -2
  3. package/components/buttons.js +2 -2
  4. package/components/checkbox.js +2 -2
  5. package/components/data.js +22 -96
  6. package/components/haptic.js +0 -1
  7. package/components/ion-back-button.js +2 -2
  8. package/components/ion-badge.js +2 -2
  9. package/components/ion-breadcrumb.js +2 -2
  10. package/components/ion-card-content.js +2 -2
  11. package/components/ion-card-subtitle.js +2 -2
  12. package/components/ion-card-title.js +2 -2
  13. package/components/ion-card.js +2 -2
  14. package/components/ion-chip.js +8 -3
  15. package/components/ion-datetime-button.js +6 -6
  16. package/components/ion-datetime.js +6 -6
  17. package/components/ion-header.js +1 -1
  18. package/components/ion-input.js +2 -2
  19. package/components/ion-item-divider.js +2 -2
  20. package/components/ion-item-option.js +2 -2
  21. package/components/ion-item-options.js +2 -2
  22. package/components/ion-loading.js +2 -2
  23. package/components/ion-menu-button.js +2 -2
  24. package/components/ion-nav.js +0 -1
  25. package/components/ion-range.js +2 -2
  26. package/components/ion-reorder.js +2 -2
  27. package/components/ion-router.js +0 -3
  28. package/components/ion-searchbar.js +9 -3
  29. package/components/ion-select.js +2 -2
  30. package/components/ion-textarea.js +2 -2
  31. package/components/ion-title.js +2 -2
  32. package/components/ion-toast.js +13 -119
  33. package/components/ion-toolbar.js +1 -1
  34. package/components/ios.transition.js +4 -5
  35. package/components/item.js +2 -2
  36. package/components/label.js +2 -2
  37. package/components/list-header.js +2 -2
  38. package/components/note.js +2 -2
  39. package/components/overlays.js +0 -1
  40. package/components/radio.js +2 -2
  41. package/css/core.css +100 -0
  42. package/css/core.css.map +1 -1
  43. package/css/display.css +33 -0
  44. package/css/display.css.map +1 -1
  45. package/css/float-elements.css +33 -0
  46. package/css/float-elements.css.map +1 -1
  47. package/css/global.bundle.css +84 -6
  48. package/css/global.bundle.css.map +1 -1
  49. package/css/ionic-swiper.css +33 -0
  50. package/css/ionic-swiper.css.map +1 -1
  51. package/css/ionic.bundle.css +1 -1
  52. package/css/ionic.bundle.css.map +1 -1
  53. package/css/padding.css +33 -0
  54. package/css/padding.css.map +1 -1
  55. package/css/structure.css +33 -0
  56. package/css/structure.css.map +1 -1
  57. package/css/text-alignment.css +33 -0
  58. package/css/text-alignment.css.map +1 -1
  59. package/css/text-transformation.css +33 -0
  60. package/css/text-transformation.css.map +1 -1
  61. package/css/typography.css +51 -6
  62. package/css/typography.css.map +1 -1
  63. package/css/utils.bundle.css +165 -0
  64. package/css/utils.bundle.css.map +1 -1
  65. package/dist/cjs/{button-active-19cc8cae.js → button-active-32f15660.js} +1 -1
  66. package/dist/cjs/{data-c8d21093.js → data-db832785.js} +22 -96
  67. package/dist/cjs/{haptic-678abc9f.js → haptic-c5f6b4d5.js} +0 -1
  68. package/dist/cjs/{index-77d4b2e7.js → index-4e502bd1.js} +2 -2
  69. package/dist/cjs/index.cjs.js +4 -4
  70. package/dist/cjs/ion-action-sheet.cjs.entry.js +5 -5
  71. package/dist/cjs/ion-alert.cjs.entry.js +3 -3
  72. package/dist/cjs/ion-app_8.cjs.entry.js +7 -7
  73. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  74. package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
  75. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
  76. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  77. package/dist/cjs/ion-card_5.cjs.entry.js +8 -8
  78. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
  79. package/dist/cjs/ion-chip.cjs.entry.js +7 -2
  80. package/dist/cjs/ion-datetime-button.cjs.entry.js +6 -6
  81. package/dist/cjs/ion-datetime_3.cjs.entry.js +8 -8
  82. package/dist/cjs/ion-input.cjs.entry.js +2 -2
  83. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  84. package/dist/cjs/ion-item_8.cjs.entry.js +10 -10
  85. package/dist/cjs/ion-loading.cjs.entry.js +3 -3
  86. package/dist/cjs/ion-menu_3.cjs.entry.js +3 -3
  87. package/dist/cjs/ion-modal.cjs.entry.js +2 -2
  88. package/dist/cjs/ion-nav_2.cjs.entry.js +1 -2
  89. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +1 -1
  90. package/dist/cjs/ion-popover.cjs.entry.js +2 -2
  91. package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
  92. package/dist/cjs/ion-range.cjs.entry.js +2 -2
  93. package/dist/cjs/ion-refresher_2.cjs.entry.js +1 -1
  94. package/dist/cjs/ion-reorder_2.cjs.entry.js +3 -3
  95. package/dist/cjs/ion-route_4.cjs.entry.js +0 -3
  96. package/dist/cjs/ion-searchbar.cjs.entry.js +9 -3
  97. package/dist/cjs/ion-select_3.cjs.entry.js +3 -3
  98. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  99. package/dist/cjs/ion-toast.cjs.entry.js +34 -138
  100. package/dist/cjs/ion-toggle.cjs.entry.js +1 -1
  101. package/dist/cjs/ionic.cjs.js +1 -1
  102. package/dist/cjs/{ios.transition-458ee399.js → ios.transition-7ff33297.js} +5 -6
  103. package/dist/cjs/loader.cjs.js +1 -1
  104. package/dist/cjs/{md.transition-3423dd44.js → md.transition-2224e480.js} +1 -1
  105. package/dist/cjs/{overlays-817dca17.js → overlays-d3a13e61.js} +0 -1
  106. package/dist/collection/components/accordion/accordion.ios.css +66 -0
  107. package/dist/collection/components/accordion/accordion.md.css +33 -0
  108. package/dist/collection/components/accordion-group/accordion-group.ios.css +66 -0
  109. package/dist/collection/components/accordion-group/accordion-group.md.css +99 -0
  110. package/dist/collection/components/action-sheet/action-sheet.ios.css +80 -12
  111. package/dist/collection/components/action-sheet/action-sheet.md.css +76 -8
  112. package/dist/collection/components/action-sheet/test/a11y/action-sheet.e2e.js +27 -0
  113. package/dist/collection/components/alert/alert.ios.css +99 -0
  114. package/dist/collection/components/alert/alert.md.css +99 -0
  115. package/dist/collection/components/avatar/avatar.ios.css +66 -0
  116. package/dist/collection/components/avatar/avatar.md.css +66 -0
  117. package/dist/collection/components/back-button/back-button.ios.css +83 -1
  118. package/dist/collection/components/back-button/back-button.md.css +75 -3
  119. package/dist/collection/components/back-button/test/a11y/back-button.e2e.js +26 -0
  120. package/dist/collection/components/backdrop/backdrop.ios.css +66 -0
  121. package/dist/collection/components/backdrop/backdrop.md.css +66 -0
  122. package/dist/collection/components/badge/badge.ios.css +75 -1
  123. package/dist/collection/components/badge/badge.md.css +67 -1
  124. package/dist/collection/components/badge/test/a11y/badge.e2e.js +22 -0
  125. package/dist/collection/components/breadcrumb/breadcrumb.ios.css +80 -3
  126. package/dist/collection/components/breadcrumb/breadcrumb.md.css +69 -3
  127. package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +33 -0
  128. package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +33 -0
  129. package/dist/collection/components/breadcrumbs/test/a11y/breadcrumbs.e2e.js +21 -0
  130. package/dist/collection/components/button/button.ios.css +118 -19
  131. package/dist/collection/components/button/button.md.css +69 -3
  132. package/dist/collection/components/button/test/a11y/button.e2e.js +61 -0
  133. package/dist/collection/components/buttons/buttons.ios.css +102 -3
  134. package/dist/collection/components/buttons/buttons.md.css +101 -2
  135. package/dist/collection/components/buttons/test/a11y/buttons.e2e.js +74 -0
  136. package/dist/collection/components/card/card.ios.css +67 -1
  137. package/dist/collection/components/card/card.md.css +67 -1
  138. package/dist/collection/components/card/test/a11y/card.e2e.js +31 -0
  139. package/dist/collection/components/card-content/card-content.ios.css +71 -5
  140. package/dist/collection/components/card-content/card-content.md.css +71 -5
  141. package/dist/collection/components/card-header/card-header.ios.css +66 -0
  142. package/dist/collection/components/card-header/card-header.md.css +66 -0
  143. package/dist/collection/components/card-subtitle/card-subtitle.ios.css +67 -1
  144. package/dist/collection/components/card-subtitle/card-subtitle.md.css +67 -1
  145. package/dist/collection/components/card-title/card-title.ios.css +67 -1
  146. package/dist/collection/components/card-title/card-title.md.css +67 -1
  147. package/dist/collection/components/checkbox/checkbox.ios.css +101 -2
  148. package/dist/collection/components/checkbox/checkbox.md.css +101 -2
  149. package/dist/collection/components/checkbox/test/a11y/checkbox.e2e.js +18 -0
  150. package/dist/collection/components/chip/chip.ios.css +190 -0
  151. package/dist/collection/components/chip/chip.js +4 -2
  152. package/dist/collection/components/chip/{chip.css → chip.md.css} +43 -7
  153. package/dist/collection/components/chip/test/a11y/chip.e2e.js +58 -0
  154. package/dist/collection/components/col/col.css +66 -0
  155. package/dist/collection/components/content/content.css +33 -0
  156. package/dist/collection/components/datetime/datetime.ios.css +198 -7
  157. package/dist/collection/components/datetime/datetime.js +7 -13
  158. package/dist/collection/components/datetime/datetime.md.css +97 -5
  159. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +28 -0
  160. package/dist/collection/components/datetime/test/hour-cycle/datetime.e2e.js +0 -14
  161. package/dist/collection/components/datetime/utils/data.js +7 -33
  162. package/dist/collection/components/datetime/utils/format.js +10 -27
  163. package/dist/collection/components/datetime/utils/helpers.js +5 -37
  164. package/dist/collection/components/datetime-button/datetime-button.css +36 -2
  165. package/dist/collection/components/datetime-button/datetime-button.js +4 -4
  166. package/dist/collection/components/datetime-button/test/a11y/datetime-button.e2e.js +38 -0
  167. package/dist/collection/components/fab/fab.css +66 -0
  168. package/dist/collection/components/fab-button/fab-button.ios.css +66 -0
  169. package/dist/collection/components/fab-button/fab-button.md.css +66 -0
  170. package/dist/collection/components/fab-list/fab-list.css +66 -0
  171. package/dist/collection/components/footer/footer.ios.css +66 -0
  172. package/dist/collection/components/footer/footer.md.css +66 -0
  173. package/dist/collection/components/grid/grid.css +66 -0
  174. package/dist/collection/components/header/header.ios.css +71 -2
  175. package/dist/collection/components/header/header.md.css +66 -0
  176. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +66 -0
  177. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +66 -0
  178. package/dist/collection/components/input/input.ios.css +100 -1
  179. package/dist/collection/components/input/input.md.css +199 -1
  180. package/dist/collection/components/input/test/a11y/input.e2e.js +15 -1
  181. package/dist/collection/components/item/item.ios.css +70 -4
  182. package/dist/collection/components/item/item.md.css +138 -6
  183. package/dist/collection/components/item/test/a11y/item.e2e.js +116 -1
  184. package/dist/collection/components/item-divider/item-divider.ios.css +101 -9
  185. package/dist/collection/components/item-divider/item-divider.md.css +103 -11
  186. package/dist/collection/components/item-divider/test/a11y/item-divider.e2e.js +44 -0
  187. package/dist/collection/components/item-group/item-group.ios.css +68 -1
  188. package/dist/collection/components/item-group/item-group.md.css +68 -1
  189. package/dist/collection/components/item-option/item-option.ios.css +67 -1
  190. package/dist/collection/components/item-option/item-option.md.css +67 -1
  191. package/dist/collection/components/item-options/item-options.ios.css +99 -1
  192. package/dist/collection/components/item-options/item-options.md.css +99 -1
  193. package/dist/collection/components/item-sliding/item-sliding.css +33 -0
  194. package/dist/collection/components/item-sliding/test/a11y/item-sliding.e2e.js +34 -0
  195. package/dist/collection/components/label/label.ios.css +105 -6
  196. package/dist/collection/components/label/label.md.css +104 -5
  197. package/dist/collection/components/label/test/a11y/label.e2e.js +66 -0
  198. package/dist/collection/components/list/list.ios.css +99 -0
  199. package/dist/collection/components/list/list.md.css +99 -0
  200. package/dist/collection/components/list-header/list-header.ios.css +100 -1
  201. package/dist/collection/components/list-header/list-header.md.css +100 -1
  202. package/dist/collection/components/list-header/test/a11y/list-header.e2e.js +24 -0
  203. package/dist/collection/components/loading/loading.ios.css +67 -1
  204. package/dist/collection/components/loading/loading.md.css +67 -1
  205. package/dist/collection/components/loading/test/a11y/loading.e2e.js +19 -0
  206. package/dist/collection/components/menu/menu.ios.css +66 -0
  207. package/dist/collection/components/menu/menu.md.css +66 -0
  208. package/dist/collection/components/menu-button/menu-button.ios.css +70 -2
  209. package/dist/collection/components/menu-button/menu-button.md.css +71 -3
  210. package/dist/collection/components/menu-button/test/a11y/menu-button.e2e.js +20 -1
  211. package/dist/collection/components/modal/modal.ios.css +66 -0
  212. package/dist/collection/components/modal/modal.md.css +66 -0
  213. package/dist/collection/components/nav/nav.css +33 -0
  214. package/dist/collection/components/nav/nav.js +0 -1
  215. package/dist/collection/components/note/note.ios.css +67 -0
  216. package/dist/collection/components/note/note.md.css +67 -1
  217. package/dist/collection/components/note/test/a11y/note.e2e.js +52 -0
  218. package/dist/collection/components/picker/picker.ios.css +66 -0
  219. package/dist/collection/components/picker/picker.md.css +66 -0
  220. package/dist/collection/components/picker-column/picker-column.ios.css +66 -0
  221. package/dist/collection/components/picker-column/picker-column.md.css +66 -0
  222. package/dist/collection/components/picker-column-internal/picker-column-internal.ios.css +33 -0
  223. package/dist/collection/components/picker-column-internal/picker-column-internal.md.css +66 -0
  224. package/dist/collection/components/picker-internal/picker-internal.ios.css +66 -0
  225. package/dist/collection/components/picker-internal/picker-internal.md.css +66 -0
  226. package/dist/collection/components/popover/popover.ios.css +66 -0
  227. package/dist/collection/components/popover/popover.md.css +66 -0
  228. package/dist/collection/components/progress-bar/progress-bar.ios.css +33 -0
  229. package/dist/collection/components/progress-bar/progress-bar.md.css +33 -0
  230. package/dist/collection/components/radio/radio.ios.css +104 -5
  231. package/dist/collection/components/radio/radio.md.css +104 -5
  232. package/dist/collection/components/radio/test/a11y/radio.e2e.js +21 -0
  233. package/dist/collection/components/range/range.ios.css +82 -8
  234. package/dist/collection/components/range/range.md.css +99 -11
  235. package/dist/collection/components/range/test/a11y/range.e2e.js +22 -0
  236. package/dist/collection/components/refresher/refresher.ios.css +66 -0
  237. package/dist/collection/components/refresher/refresher.md.css +66 -0
  238. package/dist/collection/components/reorder/reorder.ios.css +75 -2
  239. package/dist/collection/components/reorder/reorder.md.css +75 -2
  240. package/dist/collection/components/reorder-group/reorder-group.css +33 -0
  241. package/dist/collection/components/reorder-group/test/a11y/reorder-group.e2e.js +33 -0
  242. package/dist/collection/components/ripple-effect/ripple-effect.css +33 -0
  243. package/dist/collection/components/router/router.js +0 -2
  244. package/dist/collection/components/router/utils/path.js +0 -1
  245. package/dist/collection/components/router-link/router-link.css +33 -0
  246. package/dist/collection/components/router-outlet/router-outlet.css +33 -0
  247. package/dist/collection/components/row/row.css +66 -0
  248. package/dist/collection/components/searchbar/searchbar.ios.css +95 -16
  249. package/dist/collection/components/searchbar/searchbar.js +7 -1
  250. package/dist/collection/components/searchbar/searchbar.md.css +77 -10
  251. package/dist/collection/components/searchbar/test/a11y/searchbar.e2e.js +37 -0
  252. package/dist/collection/components/searchbar/test/basic/searchbar.e2e.js +18 -0
  253. package/dist/collection/components/segment/segment.ios.css +99 -0
  254. package/dist/collection/components/segment/segment.md.css +99 -0
  255. package/dist/collection/components/segment-button/segment-button.ios.css +66 -0
  256. package/dist/collection/components/segment-button/segment-button.md.css +66 -0
  257. package/dist/collection/components/select/select.ios.css +102 -3
  258. package/dist/collection/components/select/select.md.css +167 -2
  259. package/dist/collection/components/select/test/a11y/select.e2e.js +22 -0
  260. package/dist/collection/components/select-popover/select-popover.ios.css +101 -1
  261. package/dist/collection/components/select-popover/select-popover.md.css +99 -0
  262. package/dist/collection/components/skeleton-text/skeleton-text.css +33 -0
  263. package/dist/collection/components/spinner/spinner.css +33 -0
  264. package/dist/collection/components/split-pane/split-pane.ios.css +99 -0
  265. package/dist/collection/components/split-pane/split-pane.md.css +99 -0
  266. package/dist/collection/components/tab-bar/tab-bar.ios.css +99 -0
  267. package/dist/collection/components/tab-bar/tab-bar.md.css +99 -0
  268. package/dist/collection/components/tab-button/tab-button.ios.css +66 -0
  269. package/dist/collection/components/tab-button/tab-button.md.css +66 -0
  270. package/dist/collection/components/tabs/tabs.css +33 -0
  271. package/dist/collection/components/text/text.css +33 -0
  272. package/dist/collection/components/textarea/test/a11y/textarea.e2e.js +15 -1
  273. package/dist/collection/components/textarea/textarea.ios.css +133 -1
  274. package/dist/collection/components/textarea/textarea.md.css +199 -1
  275. package/dist/collection/components/thumbnail/thumbnail.css +33 -0
  276. package/dist/collection/components/title/test/a11y/title.e2e.js +61 -0
  277. package/dist/collection/components/title/title.ios.css +44 -10
  278. package/dist/collection/components/title/title.md.css +35 -2
  279. package/dist/collection/components/toast/animations/ios.enter.js +3 -40
  280. package/dist/collection/components/toast/animations/ios.leave.js +4 -8
  281. package/dist/collection/components/toast/animations/md.enter.js +3 -41
  282. package/dist/collection/components/toast/test/a11y/toast.e2e.js +98 -1
  283. package/dist/collection/components/toast/toast.ios.css +74 -3
  284. package/dist/collection/components/toast/toast.js +6 -61
  285. package/dist/collection/components/toast/toast.md.css +74 -4
  286. package/dist/collection/components/toggle/toggle.ios.css +99 -0
  287. package/dist/collection/components/toggle/toggle.md.css +99 -0
  288. package/dist/collection/components/toolbar/toolbar.ios.css +66 -14
  289. package/dist/collection/components/toolbar/toolbar.md.css +66 -0
  290. package/dist/collection/css/test/a11y/typography.e2e.js +32 -0
  291. package/dist/collection/utils/native/haptic.js +0 -1
  292. package/dist/collection/utils/overlays.js +0 -1
  293. package/dist/collection/utils/transition/ios.transition.js +4 -5
  294. package/dist/docs.json +10 -77
  295. package/dist/esm/{button-active-d2346892.js → button-active-513e9fff.js} +1 -1
  296. package/dist/esm/{data-44d9e816.js → data-009dbf15.js} +22 -96
  297. package/dist/esm/{haptic-1243b917.js → haptic-6447af60.js} +0 -1
  298. package/dist/esm/{index-dac72b4c.js → index-39bc1180.js} +2 -2
  299. package/dist/esm/index.js +4 -4
  300. package/dist/esm/ion-action-sheet.entry.js +5 -5
  301. package/dist/esm/ion-alert.entry.js +3 -3
  302. package/dist/esm/ion-app_8.entry.js +7 -7
  303. package/dist/esm/ion-avatar_3.entry.js +2 -2
  304. package/dist/esm/ion-back-button.entry.js +2 -2
  305. package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
  306. package/dist/esm/ion-button_2.entry.js +2 -2
  307. package/dist/esm/ion-card_5.entry.js +8 -8
  308. package/dist/esm/ion-checkbox.entry.js +2 -2
  309. package/dist/esm/ion-chip.entry.js +7 -2
  310. package/dist/esm/ion-datetime-button.entry.js +6 -6
  311. package/dist/esm/ion-datetime_3.entry.js +8 -8
  312. package/dist/esm/ion-input.entry.js +2 -2
  313. package/dist/esm/ion-item-option_3.entry.js +4 -4
  314. package/dist/esm/ion-item_8.entry.js +10 -10
  315. package/dist/esm/ion-loading.entry.js +3 -3
  316. package/dist/esm/ion-menu_3.entry.js +3 -3
  317. package/dist/esm/ion-modal.entry.js +2 -2
  318. package/dist/esm/ion-nav_2.entry.js +1 -2
  319. package/dist/esm/ion-picker-column-internal.entry.js +1 -1
  320. package/dist/esm/ion-popover.entry.js +2 -2
  321. package/dist/esm/ion-radio_2.entry.js +2 -2
  322. package/dist/esm/ion-range.entry.js +2 -2
  323. package/dist/esm/ion-refresher_2.entry.js +1 -1
  324. package/dist/esm/ion-reorder_2.entry.js +3 -3
  325. package/dist/esm/ion-route_4.entry.js +0 -3
  326. package/dist/esm/ion-searchbar.entry.js +9 -3
  327. package/dist/esm/ion-select_3.entry.js +3 -3
  328. package/dist/esm/ion-textarea.entry.js +2 -2
  329. package/dist/esm/ion-toast.entry.js +15 -119
  330. package/dist/esm/ion-toggle.entry.js +1 -1
  331. package/dist/esm/ionic.js +1 -1
  332. package/dist/esm/{ios.transition-991c1a56.js → ios.transition-72ffa6ed.js} +5 -6
  333. package/dist/esm/loader.js +1 -1
  334. package/dist/esm/{md.transition-fb443521.js → md.transition-e6a907d4.js} +1 -1
  335. package/dist/esm/{overlays-e064e499.js → overlays-8fc6656c.js} +0 -1
  336. package/dist/esm-es5/{button-active-d2346892.js → button-active-513e9fff.js} +1 -1
  337. package/dist/esm-es5/data-009dbf15.js +4 -0
  338. package/dist/esm-es5/{index-dac72b4c.js → index-39bc1180.js} +1 -1
  339. package/dist/esm-es5/index.js +1 -1
  340. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  341. package/dist/esm-es5/ion-alert.entry.js +1 -1
  342. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  343. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  344. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  345. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  346. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  347. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  348. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  349. package/dist/esm-es5/ion-chip.entry.js +1 -1
  350. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  351. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  352. package/dist/esm-es5/ion-input.entry.js +1 -1
  353. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  354. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  355. package/dist/esm-es5/ion-loading.entry.js +1 -1
  356. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  357. package/dist/esm-es5/ion-modal.entry.js +1 -1
  358. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  359. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  360. package/dist/esm-es5/ion-popover.entry.js +1 -1
  361. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  362. package/dist/esm-es5/ion-range.entry.js +1 -1
  363. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  364. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  365. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  366. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  367. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  368. package/dist/esm-es5/ion-toast.entry.js +1 -1
  369. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  370. package/dist/esm-es5/ionic.js +1 -1
  371. package/dist/esm-es5/ios.transition-72ffa6ed.js +4 -0
  372. package/dist/esm-es5/loader.js +1 -1
  373. package/dist/esm-es5/{md.transition-fb443521.js → md.transition-e6a907d4.js} +1 -1
  374. package/dist/html.html-data.json +1 -11
  375. package/dist/ionic/index.esm.js +1 -1
  376. package/dist/ionic/ionic.esm.js +1 -1
  377. package/dist/ionic/{p-315dd3f8.system.js → p-00aed720.system.js} +1 -1
  378. package/dist/ionic/p-0610d658.entry.js +4 -0
  379. package/dist/ionic/p-06c29a8b.entry.js +4 -0
  380. package/dist/ionic/{p-3b1a8994.system.entry.js → p-08c5b9f4.system.entry.js} +1 -1
  381. package/dist/ionic/{p-b7dad585.entry.js → p-09babc88.entry.js} +1 -1
  382. package/dist/ionic/p-0c535e5a.system.entry.js +4 -0
  383. package/dist/ionic/p-160d0dfd.system.entry.js +4 -0
  384. package/dist/ionic/p-1c1c18b3.system.entry.js +4 -0
  385. package/dist/ionic/p-234a7edb.js +4 -0
  386. package/dist/ionic/{p-14dec15f.entry.js → p-270aa06b.entry.js} +1 -1
  387. package/dist/ionic/{p-b61cf76c.entry.js → p-2a393411.entry.js} +1 -1
  388. package/dist/ionic/p-2b8cd28f.entry.js +4 -0
  389. package/dist/ionic/{p-2dac36bf.entry.js → p-2c35490e.entry.js} +1 -1
  390. package/dist/ionic/p-2e93e3db.entry.js +4 -0
  391. package/dist/ionic/{p-be337735.system.entry.js → p-2f1ba678.system.entry.js} +1 -1
  392. package/dist/ionic/{p-62f05fd2.entry.js → p-3730f493.entry.js} +1 -1
  393. package/dist/ionic/{p-2d74ee51.entry.js → p-380ef450.entry.js} +1 -1
  394. package/dist/ionic/{p-78f204ee.entry.js → p-3b104ae6.entry.js} +1 -1
  395. package/dist/ionic/p-3e1b4045.system.entry.js +4 -0
  396. package/dist/ionic/p-4342501d.entry.js +4 -0
  397. package/dist/ionic/{p-35d1c3bb.system.js → p-442f2497.system.js} +1 -1
  398. package/dist/ionic/p-44ef7224.system.js +4 -0
  399. package/dist/ionic/p-450fe187.system.entry.js +4 -0
  400. package/dist/ionic/p-47c15b22.system.entry.js +4 -0
  401. package/dist/ionic/{p-f767d6b4.system.entry.js → p-4a1ac160.system.entry.js} +1 -1
  402. package/dist/ionic/p-4d0eb845.system.entry.js +4 -0
  403. package/dist/ionic/p-4e4bedbd.entry.js +4 -0
  404. package/dist/ionic/p-50d2e748.js +4 -0
  405. package/dist/ionic/p-5a5ff46b.system.entry.js +4 -0
  406. package/dist/ionic/p-5c790762.system.js +4 -0
  407. package/dist/ionic/p-622d7b0e.system.entry.js +4 -0
  408. package/dist/ionic/{p-f7f6af24.system.entry.js → p-63a73b69.system.entry.js} +1 -1
  409. package/dist/ionic/p-6edbc09b.system.js +1 -1
  410. package/dist/ionic/p-6f940aec.system.entry.js +4 -0
  411. package/dist/ionic/p-7302a3e1.entry.js +4 -0
  412. package/dist/ionic/p-74824d64.entry.js +4 -0
  413. package/dist/ionic/{p-a27a6256.entry.js → p-784863dd.entry.js} +1 -1
  414. package/dist/ionic/p-7cfd253c.js +4 -0
  415. package/dist/ionic/{p-06116432.system.entry.js → p-7ea21b21.system.entry.js} +1 -1
  416. package/dist/ionic/p-857591f7.system.entry.js +4 -0
  417. package/dist/ionic/p-86859d57.system.entry.js +4 -0
  418. package/dist/ionic/p-8d5c7b4e.system.entry.js +4 -0
  419. package/dist/ionic/p-8e06ca5e.entry.js +4 -0
  420. package/dist/ionic/{p-990aaa2f.entry.js → p-90d892fd.entry.js} +1 -1
  421. package/dist/ionic/p-9493d5e8.system.entry.js +4 -0
  422. package/dist/ionic/p-969e9fce.system.entry.js +4 -0
  423. package/dist/ionic/{p-2b70878e.js → p-972763df.js} +1 -1
  424. package/dist/ionic/p-972817e1.js +4 -0
  425. package/dist/ionic/p-9ad5893a.entry.js +4 -0
  426. package/dist/ionic/{p-13ce151b.entry.js → p-a0a87b9c.entry.js} +1 -1
  427. package/dist/ionic/p-af14deab.system.entry.js +4 -0
  428. package/dist/ionic/p-b2215bd4.entry.js +4 -0
  429. package/dist/ionic/p-b8846173.entry.js +4 -0
  430. package/dist/ionic/p-bb8365af.system.entry.js +4 -0
  431. package/dist/ionic/p-be22efa8.entry.js +4 -0
  432. package/dist/ionic/p-c3d501f5.system.entry.js +4 -0
  433. package/dist/ionic/{p-2df840d9.system.entry.js → p-c5729044.system.entry.js} +1 -1
  434. package/dist/ionic/{p-cc3aa152.entry.js → p-c68b68b1.entry.js} +1 -1
  435. package/dist/ionic/{p-c8251e8c.entry.js → p-c7fca267.entry.js} +1 -1
  436. package/dist/ionic/p-c872a0a0.entry.js +4 -0
  437. package/dist/ionic/{p-4cf29e23.system.js → p-ca9b6832.system.js} +1 -1
  438. package/dist/ionic/p-daf85ebe.entry.js +4 -0
  439. package/dist/ionic/p-db3f69d6.entry.js +4 -0
  440. package/dist/ionic/p-df16bb3f.system.entry.js +4 -0
  441. package/dist/ionic/{p-ec3fa33b.system.entry.js → p-e64ce6ad.system.entry.js} +1 -1
  442. package/dist/ionic/p-e8fa3573.system.entry.js +4 -0
  443. package/dist/ionic/p-edbec144.entry.js +4 -0
  444. package/dist/ionic/{p-9eb5455c.system.js → p-f39999bb.system.js} +1 -1
  445. package/dist/ionic/{p-86e73df8.system.entry.js → p-f474437d.system.entry.js} +1 -1
  446. package/dist/ionic/p-f5ebccec.entry.js +4 -0
  447. package/dist/ionic/p-f8eaac8b.system.entry.js +4 -0
  448. package/dist/ionic/p-fa1a57ae.system.entry.js +4 -0
  449. package/dist/types/components/datetime/datetime-interface.d.ts +0 -1
  450. package/dist/types/components/datetime/datetime.d.ts +2 -2
  451. package/dist/types/components/datetime/utils/data.d.ts +3 -3
  452. package/dist/types/components/datetime/utils/format.d.ts +3 -3
  453. package/dist/types/components/datetime/utils/helpers.d.ts +1 -15
  454. package/dist/types/components/toast/animations/ios.enter.d.ts +1 -2
  455. package/dist/types/components/toast/animations/md.enter.d.ts +1 -2
  456. package/dist/types/components/toast/toast-interface.d.ts +0 -6
  457. package/dist/types/components/toast/toast.d.ts +1 -9
  458. package/dist/types/components.d.ts +8 -16
  459. package/hydrate/index.js +121 -296
  460. package/package.json +6 -5
  461. package/dist/collection/components/toast/test/position-anchor/toast.e2e.js +0 -45
  462. package/dist/esm-es5/data-44d9e816.js +0 -4
  463. package/dist/esm-es5/ios.transition-991c1a56.js +0 -4
  464. package/dist/ionic/p-09e15a2a.system.entry.js +0 -4
  465. package/dist/ionic/p-0bd3cc92.entry.js +0 -4
  466. package/dist/ionic/p-161a6465.system.entry.js +0 -4
  467. package/dist/ionic/p-17240d90.js +0 -4
  468. package/dist/ionic/p-17e6836b.system.entry.js +0 -4
  469. package/dist/ionic/p-1bce805b.entry.js +0 -4
  470. package/dist/ionic/p-1c406ee0.system.entry.js +0 -4
  471. package/dist/ionic/p-1f448082.system.entry.js +0 -4
  472. package/dist/ionic/p-20e5eb3e.entry.js +0 -4
  473. package/dist/ionic/p-2ffbf4bc.system.entry.js +0 -4
  474. package/dist/ionic/p-30bd5385.system.entry.js +0 -4
  475. package/dist/ionic/p-3cbcb899.entry.js +0 -4
  476. package/dist/ionic/p-419b8565.entry.js +0 -4
  477. package/dist/ionic/p-420da334.system.entry.js +0 -4
  478. package/dist/ionic/p-48393630.system.js +0 -4
  479. package/dist/ionic/p-50b11c2b.system.entry.js +0 -4
  480. package/dist/ionic/p-568fec78.entry.js +0 -4
  481. package/dist/ionic/p-5c8c9748.system.entry.js +0 -4
  482. package/dist/ionic/p-5d522814.system.entry.js +0 -4
  483. package/dist/ionic/p-674e6f0c.js +0 -4
  484. package/dist/ionic/p-6ba07931.system.entry.js +0 -4
  485. package/dist/ionic/p-6ca0e4b2.system.entry.js +0 -4
  486. package/dist/ionic/p-716fbba9.js +0 -4
  487. package/dist/ionic/p-7779d376.entry.js +0 -4
  488. package/dist/ionic/p-7dc0ee11.system.entry.js +0 -4
  489. package/dist/ionic/p-7e9e16bf.system.entry.js +0 -4
  490. package/dist/ionic/p-82f58c25.system.entry.js +0 -4
  491. package/dist/ionic/p-88ad9cb6.entry.js +0 -4
  492. package/dist/ionic/p-8a26eaba.entry.js +0 -4
  493. package/dist/ionic/p-8b79baf0.entry.js +0 -4
  494. package/dist/ionic/p-974cbc3a.entry.js +0 -4
  495. package/dist/ionic/p-b0dd4f33.entry.js +0 -4
  496. package/dist/ionic/p-b49fe110.entry.js +0 -4
  497. package/dist/ionic/p-b8c3f071.system.js +0 -4
  498. package/dist/ionic/p-be321bb6.system.entry.js +0 -4
  499. package/dist/ionic/p-c44645f2.entry.js +0 -4
  500. package/dist/ionic/p-c4d08d6d.system.entry.js +0 -4
  501. package/dist/ionic/p-cd675d89.system.entry.js +0 -4
  502. package/dist/ionic/p-ce24ddd7.system.entry.js +0 -4
  503. package/dist/ionic/p-d6dcbd7c.js +0 -4
  504. package/dist/ionic/p-de0f1af2.system.entry.js +0 -4
  505. package/dist/ionic/p-e89abe38.system.entry.js +0 -4
  506. package/dist/ionic/p-ea88031d.entry.js +0 -4
  507. package/dist/ionic/p-ebaeeee8.entry.js +0 -4
  508. package/dist/ionic/p-f0dcf99b.entry.js +0 -4
  509. package/dist/ionic/p-f180d2b6.entry.js +0 -4
  510. /package/dist/esm-es5/{haptic-1243b917.js → haptic-6447af60.js} +0 -0
  511. /package/dist/esm-es5/{overlays-e064e499.js → overlays-8fc6656c.js} +0 -0
  512. /package/dist/ionic/{p-b4b4bb29.system.js → p-14d7b7e2.system.js} +0 -0
  513. /package/dist/ionic/{p-40bd36f3.system.js → p-7a3caa4e.system.js} +0 -0
  514. /package/dist/ionic/{p-b923f3d7.js → p-bb6f38ed.js} +0 -0
  515. /package/dist/ionic/{p-3faf56ab.js → p-f9015336.js} +0 -0
@@ -19,19 +19,5 @@ 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
- });
36
22
  });
37
23
  });
@@ -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, getHourCycle } from "./helpers";
6
+ import { getNumDaysInMonth, is24Hour } from "./helpers";
7
7
  import { getNextMonth, getPreviousMonth, getInternalHourValue } from "./manipulation";
8
8
  /**
9
9
  * Returns the current date as
@@ -34,14 +34,8 @@ 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.
40
37
  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.
42
38
  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];
45
39
  /**
46
40
  * Given a locale and a mode,
47
41
  * return an array with formatted days
@@ -110,33 +104,14 @@ export const getDaysOfMonth = (month, year, firstDayOfWeek) => {
110
104
  }
111
105
  return days;
112
106
  };
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
- };
131
107
  /**
132
108
  * Given a local, reference datetime parts and option
133
109
  * max/min bound datetime parts, calculate the acceptable
134
110
  * hour and minute values according to the bounds and locale.
135
111
  */
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);
112
+ export const generateTime = (refParts, hourCycle = 'h12', minParts, maxParts, hourValues, minuteValues) => {
113
+ const use24Hour = hourCycle === 'h23';
114
+ let processedHours = use24Hour ? hour23 : hour12;
140
115
  let processedMinutes = minutes;
141
116
  let isAMAllowed = true;
142
117
  let isPMAllowed = true;
@@ -468,12 +443,11 @@ export const getCombinedDateColumnData = (locale, todayParts, minParts, maxParts
468
443
  };
469
444
  };
470
445
  export const getTimeColumnsData = (locale, refParts, hourCycle, 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);
446
+ const use24Hour = is24Hour(locale, hourCycle);
447
+ const { hours, minutes, am, pm } = generateTime(refParts, use24Hour ? 'h23' : 'h12', minParts, maxParts, allowedHourValues, allowedMinuteValues);
474
448
  const hoursItems = hours.map((hour) => {
475
449
  return {
476
- text: getFormattedHour(hour, computedHourCycle),
450
+ text: getFormattedHour(hour, use24Hour),
477
451
  value: getInternalHourValue(hour, use24Hour, refParts.ampm),
478
452
  };
479
453
  });
@@ -1,7 +1,6 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { is24Hour } from "./helpers";
5
4
  import { convertDataToISO } from "./manipulation";
6
5
  const getFormattedDayPeriod = (dayPeriod) => {
7
6
  if (dayPeriod === undefined) {
@@ -9,7 +8,7 @@ const getFormattedDayPeriod = (dayPeriod) => {
9
8
  }
10
9
  return dayPeriod.toUpperCase();
11
10
  };
12
- export const getLocalizedTime = (locale, refParts, hourCycle) => {
11
+ export const getLocalizedTime = (locale, refParts, use24Hour) => {
13
12
  const timeParts = {
14
13
  hour: refParts.hour,
15
14
  minute: refParts.minute,
@@ -31,7 +30,7 @@ export const getLocalizedTime = (locale, refParts, hourCycle) => {
31
30
  * We use hourCycle here instead of hour12 due to:
32
31
  * https://bugs.chromium.org/p/chromium/issues/detail?id=1347316&q=hour12&can=2
33
32
  */
34
- hourCycle,
33
+ hourCycle: use24Hour ? 'h23' : 'h12',
35
34
  /**
36
35
  * Setting Z at the end indicates that this
37
36
  * date string is in the UTC time zone. This
@@ -70,33 +69,17 @@ export const addTimePadding = (value) => {
70
69
  * 12 hour times it ensures that
71
70
  * hour 0 is formatted as '12'.
72
71
  */
73
- export const getFormattedHour = (hour, hourCycle) => {
74
- /**
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
79
- */
80
- if (hour === 0) {
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
- }
72
+ export const getFormattedHour = (hour, use24Hour) => {
73
+ if (use24Hour) {
74
+ return addTimePadding(hour);
93
75
  }
94
- const use24Hour = is24Hour(hourCycle);
95
76
  /**
96
- * h23 and h24 use 24 hour times.
77
+ * If using 12 hour
78
+ * format, make sure hour
79
+ * 0 is formatted as '12'.
97
80
  */
98
- if (use24Hour) {
99
- return addTimePadding(hour);
81
+ if (hour === 0) {
82
+ return '12';
100
83
  }
101
84
  return hour.toString();
102
85
  };
@@ -10,19 +10,13 @@
10
10
  export const isLeapYear = (year) => {
11
11
  return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
12
12
  };
13
- /**
14
- * Determines the hour cycle for a user.
15
- * If the hour cycle is explicitly defined, just use that.
16
- * Otherwise, we try to derive it from either the specified
17
- * locale extension tags or from Intl.DateTimeFormat directly.
18
- */
19
- export const getHourCycle = (locale, hourCycle) => {
13
+ export const is24Hour = (locale, hourCycle) => {
20
14
  /**
21
- * If developer has explicitly enabled 24-hour time
15
+ * If developer has explicitly enabled h23 time
22
16
  * then return early and do not look at the system default.
23
17
  */
24
18
  if (hourCycle !== undefined) {
25
- return hourCycle;
19
+ return hourCycle === 'h23';
26
20
  }
27
21
  /**
28
22
  * If hourCycle was not specified, check the locale
@@ -33,7 +27,7 @@ export const getHourCycle = (locale, hourCycle) => {
33
27
  const formatted = new Intl.DateTimeFormat(locale, { hour: 'numeric' });
34
28
  const options = formatted.resolvedOptions();
35
29
  if (options.hourCycle !== undefined) {
36
- return options.hourCycle;
30
+ return options.hourCycle === 'h23';
37
31
  }
38
32
  /**
39
33
  * If hourCycle is not specified (either through lack
@@ -46,33 +40,7 @@ export const getHourCycle = (locale, hourCycle) => {
46
40
  if (!hour) {
47
41
  throw new Error('Hour value not found from DateTimeFormat');
48
42
  }
49
- /**
50
- * Midnight for h11 starts at 0:00am
51
- * Midnight for h12 starts at 12:00am
52
- * Midnight for h23 starts at 00:00
53
- * Midnight for h24 starts at 24:00
54
- */
55
- switch (hour.value) {
56
- case '0':
57
- return 'h11';
58
- case '12':
59
- return 'h12';
60
- case '00':
61
- return 'h23';
62
- case '24':
63
- return 'h24';
64
- default:
65
- throw new Error(`Invalid hour cycle "${hourCycle}"`);
66
- }
67
- };
68
- /**
69
- * Determine if the hour cycle uses a 24-hour format.
70
- * Returns true for h23 and h24. Returns false otherwise.
71
- * If you don't know the hourCycle, use getHourCycle above
72
- * and pass the result into this function.
73
- */
74
- export const is24Hour = (hourCycle) => {
75
- return hourCycle === 'h23' || hourCycle === 'h24';
43
+ return hour.value === '00';
76
44
  };
77
45
  /**
78
46
  * Given a date object, returns the number
@@ -1,5 +1,39 @@
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
  display: flex;
36
+ flex-wrap: wrap;
3
37
  align-items: center;
4
38
  justify-content: center;
5
39
  }
@@ -24,10 +58,10 @@
24
58
  background: var(--ion-color-step-300, #edeef0);
25
59
  color: var(--ion-text-color, #000);
26
60
  font-family: inherit;
27
- font-size: inherit;
61
+ font-size: 1rem;
28
62
  cursor: pointer;
29
- appearance: none;
30
63
  overflow: hidden;
64
+ appearance: none;
31
65
  }
32
66
 
33
67
  :host(.time-active) #time-button,
@@ -8,7 +8,7 @@ import { createColorClasses } from "../../utils/theme";
8
8
  import { getIonMode } from "../../global/ionic-global";
9
9
  import { getToday } from "../datetime/utils/data";
10
10
  import { getMonthAndYear, getMonthDayAndYear, getLocalizedDateTime, getLocalizedTime } from "../datetime/utils/format";
11
- import { getHourCycle } from "../datetime/utils/helpers";
11
+ import { is24Hour } from "../datetime/utils/helpers";
12
12
  import { parseDate } from "../datetime/utils/parse";
13
13
  /**
14
14
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
@@ -65,13 +65,13 @@ export class DatetimeButton {
65
65
  * warning in the console.
66
66
  */
67
67
  const firstParsedDatetime = parsedDatetimes[0];
68
- const computedHourCycle = getHourCycle(locale, hourCycle);
68
+ const use24Hour = is24Hour(locale, hourCycle);
69
69
  this.dateText = this.timeText = undefined;
70
70
  switch (datetimePresentation) {
71
71
  case 'date-time':
72
72
  case 'time-date':
73
73
  const dateText = getMonthDayAndYear(locale, firstParsedDatetime);
74
- const timeText = getLocalizedTime(locale, firstParsedDatetime, computedHourCycle);
74
+ const timeText = getLocalizedTime(locale, firstParsedDatetime, use24Hour);
75
75
  if (preferWheel) {
76
76
  this.dateText = `${dateText} ${timeText}`;
77
77
  }
@@ -98,7 +98,7 @@ export class DatetimeButton {
98
98
  }
99
99
  break;
100
100
  case 'time':
101
- this.timeText = getLocalizedTime(locale, firstParsedDatetime, computedHourCycle);
101
+ this.timeText = getLocalizedTime(locale, firstParsedDatetime, use24Hour);
102
102
  break;
103
103
  case 'month-year':
104
104
  this.dateText = getMonthAndYear(locale, firstParsedDatetime);
@@ -0,0 +1,38 @@
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
+ * The tested behavior does not vary across directions/modes
8
+ */
9
+ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, screenshot, config }) => {
10
+ test.describe(title('datetime-button: font scaling'), () => {
11
+ test('should scale text on larger font sizes', async ({ page }) => {
12
+ await page.setContent(`
13
+ <style>
14
+ html {
15
+ font-size: 28px;
16
+ }
17
+ </style>
18
+ <ion-datetime-button locale="en-US" datetime="datetime"></ion-datetime-button>
19
+ <ion-datetime id="datetime" value="2022-01-01T06:30:00" presentation="date-time"></ion-datetime>
20
+ `, config);
21
+ const datetimeButton = page.locator('ion-datetime-button');
22
+ await expect(datetimeButton).toHaveScreenshot(screenshot(`datetime-button-scale`));
23
+ });
24
+ test('should wrap text on larger font sizes', async ({ page }) => {
25
+ await page.setContent(`
26
+ <style>
27
+ html {
28
+ font-size: 48px;
29
+ }
30
+ </style>
31
+ <ion-datetime-button locale="en-US" datetime="datetime"></ion-datetime-button>
32
+ <ion-datetime id="datetime" value="2022-01-01T06:30:00" presentation="date-time"></ion-datetime>
33
+ `, config);
34
+ const datetimeButton = page.locator('ion-datetime-button');
35
+ await expect(datetimeButton).toHaveScreenshot(screenshot(`datetime-button-scale-wrap`));
36
+ });
37
+ });
38
+ });
@@ -1,3 +1,69 @@
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
+ */
34
+ /**
35
+ * Convert a font size to a dynamic font size.
36
+ * Fonts that participate in Dynamic Type should use
37
+ * dynamic font sizes.
38
+ * @param size - The initial font size including the unit (i.e. px or pt)
39
+ * @param unit (optional) - The unit to convert to. Use this if you want to
40
+ * convert to a unit other than $baselineUnit.
41
+ */
42
+ /**
43
+ * Convert a font size to a dynamic font size but impose
44
+ * a maximum font size.
45
+ * @param size - The initial font size including the unit (i.e. px or pt)
46
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
47
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
48
+ * convert to a unit other than $baselineUnit.
49
+ */
50
+ /**
51
+ * Convert a font size to a dynamic font size but impose
52
+ * a minimum font size.
53
+ * @param size - The initial font size including the unit (i.e. px or pt)
54
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
55
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
56
+ * convert to a unit other than $baselineUnit.
57
+ */
58
+ /**
59
+ * Convert a font size to a dynamic font size but impose
60
+ * maximum and minimum font sizes.
61
+ * @param size - The initial font size including the unit (i.e. px or pt)
62
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
63
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
64
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
65
+ * convert to a unit other than $baselineUnit.
66
+ */
1
67
  :host {
2
68
  position: absolute;
3
69
  z-index: 999;
@@ -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: Background of the button
@@ -223,6 +256,39 @@ ion-ripple-effect {
223
256
  color: var(--ion-color-contrast);
224
257
  }
225
258
 
259
+ /**
260
+ * Convert a font size to a dynamic font size.
261
+ * Fonts that participate in Dynamic Type should use
262
+ * dynamic font sizes.
263
+ * @param size - The initial font size including the unit (i.e. px or pt)
264
+ * @param unit (optional) - The unit to convert to. Use this if you want to
265
+ * convert to a unit other than $baselineUnit.
266
+ */
267
+ /**
268
+ * Convert a font size to a dynamic font size but impose
269
+ * a maximum font size.
270
+ * @param size - The initial font size including the unit (i.e. px or pt)
271
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
272
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
273
+ * convert to a unit other than $baselineUnit.
274
+ */
275
+ /**
276
+ * Convert a font size to a dynamic font size but impose
277
+ * a minimum font size.
278
+ * @param size - The initial font size including the unit (i.e. px or pt)
279
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
280
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
281
+ * convert to a unit other than $baselineUnit.
282
+ */
283
+ /**
284
+ * Convert a font size to a dynamic font size but impose
285
+ * maximum and minimum font sizes.
286
+ * @param size - The initial font size including the unit (i.e. px or pt)
287
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
288
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
289
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
290
+ * convert to a unit other than $baselineUnit.
291
+ */
226
292
  :host {
227
293
  --background: var(--ion-color-primary, #3880ff);
228
294
  --background-activated: var(--ion-color-primary-shade, #3171e0);
@@ -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: Background of the button
@@ -223,6 +256,39 @@ ion-ripple-effect {
223
256
  color: var(--ion-color-contrast);
224
257
  }
225
258
 
259
+ /**
260
+ * Convert a font size to a dynamic font size.
261
+ * Fonts that participate in Dynamic Type should use
262
+ * dynamic font sizes.
263
+ * @param size - The initial font size including the unit (i.e. px or pt)
264
+ * @param unit (optional) - The unit to convert to. Use this if you want to
265
+ * convert to a unit other than $baselineUnit.
266
+ */
267
+ /**
268
+ * Convert a font size to a dynamic font size but impose
269
+ * a maximum font size.
270
+ * @param size - The initial font size including the unit (i.e. px or pt)
271
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
272
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
273
+ * convert to a unit other than $baselineUnit.
274
+ */
275
+ /**
276
+ * Convert a font size to a dynamic font size but impose
277
+ * a minimum font size.
278
+ * @param size - The initial font size including the unit (i.e. px or pt)
279
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
280
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
281
+ * convert to a unit other than $baselineUnit.
282
+ */
283
+ /**
284
+ * Convert a font size to a dynamic font size but impose
285
+ * maximum and minimum font sizes.
286
+ * @param size - The initial font size including the unit (i.e. px or pt)
287
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
288
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
289
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
290
+ * convert to a unit other than $baselineUnit.
291
+ */
226
292
  :host {
227
293
  --background: var(--ion-color-primary, #3880ff);
228
294
  --background-activated: transparent;
@@ -1,3 +1,69 @@
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
+ */
34
+ /**
35
+ * Convert a font size to a dynamic font size.
36
+ * Fonts that participate in Dynamic Type should use
37
+ * dynamic font sizes.
38
+ * @param size - The initial font size including the unit (i.e. px or pt)
39
+ * @param unit (optional) - The unit to convert to. Use this if you want to
40
+ * convert to a unit other than $baselineUnit.
41
+ */
42
+ /**
43
+ * Convert a font size to a dynamic font size but impose
44
+ * a maximum font size.
45
+ * @param size - The initial font size including the unit (i.e. px or pt)
46
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
47
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
48
+ * convert to a unit other than $baselineUnit.
49
+ */
50
+ /**
51
+ * Convert a font size to a dynamic font size but impose
52
+ * a minimum font size.
53
+ * @param size - The initial font size including the unit (i.e. px or pt)
54
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
55
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
56
+ * convert to a unit other than $baselineUnit.
57
+ */
58
+ /**
59
+ * Convert a font size to a dynamic font size but impose
60
+ * maximum and minimum font sizes.
61
+ * @param size - The initial font size including the unit (i.e. px or pt)
62
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
63
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
64
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
65
+ * convert to a unit other than $baselineUnit.
66
+ */
1
67
  :host {
2
68
  margin-left: 0;
3
69
  margin-right: 0;