@ionic/core 7.3.4-dev.11694441708.198de185 → 7.3.4-dev.11694445679.1bc64f72

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 (490) hide show
  1. package/components/action-sheet.js +2 -2
  2. package/components/button-active.js +1 -1
  3. package/components/button.js +2 -2
  4. package/components/buttons.js +2 -2
  5. package/components/checkbox.js +6 -3
  6. package/components/data.js +31 -7
  7. package/components/index.js +2 -2
  8. package/components/index2.js +203 -429
  9. package/components/index3.js +429 -203
  10. package/components/ion-back-button.js +2 -2
  11. package/components/ion-badge.js +2 -2
  12. package/components/ion-breadcrumb.js +2 -2
  13. package/components/ion-card-content.js +2 -2
  14. package/components/ion-card-subtitle.js +2 -2
  15. package/components/ion-card-title.js +2 -2
  16. package/components/ion-card.js +2 -2
  17. package/components/ion-chip.js +3 -8
  18. package/components/ion-datetime-button.js +5 -2
  19. package/components/ion-datetime.js +132 -92
  20. package/components/ion-header.js +1 -1
  21. package/components/ion-item-divider.js +2 -2
  22. package/components/ion-item-option.js +2 -2
  23. package/components/ion-item-options.js +2 -2
  24. package/components/ion-item-sliding.js +1 -1
  25. package/components/ion-loading.js +2 -2
  26. package/components/ion-menu-button.js +2 -2
  27. package/components/ion-menu.js +3 -3
  28. package/components/ion-modal.js +2 -2
  29. package/components/ion-nav.js +1 -1
  30. package/components/ion-range.js +3 -3
  31. package/components/ion-refresher.js +3 -3
  32. package/components/ion-reorder-group.js +1 -1
  33. package/components/ion-reorder.js +2 -2
  34. package/components/ion-router-outlet.js +1 -1
  35. package/components/ion-searchbar.js +3 -9
  36. package/components/ion-segment.js +1 -1
  37. package/components/ion-textarea.js +2 -2
  38. package/components/ion-title.js +2 -2
  39. package/components/ion-toast.js +2 -2
  40. package/components/ion-toggle.js +7 -4
  41. package/components/ion-toolbar.js +2 -2
  42. package/components/ios.transition.js +5 -5
  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/md.transition.js +1 -1
  47. package/components/note.js +2 -2
  48. package/components/picker-column.js +1 -1
  49. package/components/popover.js +1 -1
  50. package/components/radio.js +6 -3
  51. package/components/swipe-back.js +1 -1
  52. package/css/core.css +0 -100
  53. package/css/core.css.map +1 -1
  54. package/css/display.css +0 -33
  55. package/css/display.css.map +1 -1
  56. package/css/float-elements.css +0 -33
  57. package/css/float-elements.css.map +1 -1
  58. package/css/global.bundle.css +6 -84
  59. package/css/global.bundle.css.map +1 -1
  60. package/css/ionic-swiper.css +0 -33
  61. package/css/ionic-swiper.css.map +1 -1
  62. package/css/ionic.bundle.css +1 -1
  63. package/css/ionic.bundle.css.map +1 -1
  64. package/css/padding.css +0 -33
  65. package/css/padding.css.map +1 -1
  66. package/css/structure.css +0 -33
  67. package/css/structure.css.map +1 -1
  68. package/css/text-alignment.css +0 -33
  69. package/css/text-alignment.css.map +1 -1
  70. package/css/text-transformation.css +0 -33
  71. package/css/text-transformation.css.map +1 -1
  72. package/css/typography.css +6 -51
  73. package/css/typography.css.map +1 -1
  74. package/css/utils.bundle.css +0 -165
  75. package/css/utils.bundle.css.map +1 -1
  76. package/dist/cjs/{data-967b9c15.js → data-db832785.js} +31 -7
  77. package/dist/cjs/{index-552c4df4.js → index-8568bedb.js} +2 -2
  78. package/dist/cjs/index.cjs.js +12 -11
  79. package/dist/cjs/ion-action-sheet.cjs.entry.js +2 -2
  80. package/dist/cjs/ion-app_8.cjs.entry.js +8 -8
  81. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  82. package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
  83. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
  84. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  85. package/dist/cjs/ion-card_5.cjs.entry.js +8 -8
  86. package/dist/cjs/ion-checkbox.cjs.entry.js +5 -3
  87. package/dist/cjs/ion-chip.cjs.entry.js +2 -7
  88. package/dist/cjs/ion-datetime-button.cjs.entry.js +6 -3
  89. package/dist/cjs/ion-datetime_3.cjs.entry.js +132 -93
  90. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  91. package/dist/cjs/ion-item_8.cjs.entry.js +10 -10
  92. package/dist/cjs/ion-loading.cjs.entry.js +2 -2
  93. package/dist/cjs/ion-menu_3.cjs.entry.js +4 -4
  94. package/dist/cjs/ion-modal.cjs.entry.js +1 -1
  95. package/dist/cjs/ion-nav_2.cjs.entry.js +1 -1
  96. package/dist/cjs/ion-popover.cjs.entry.js +1 -1
  97. package/dist/cjs/ion-radio_2.cjs.entry.js +5 -3
  98. package/dist/cjs/ion-range.cjs.entry.js +2 -2
  99. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  100. package/dist/cjs/ion-searchbar.cjs.entry.js +3 -9
  101. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  102. package/dist/cjs/ion-toast.cjs.entry.js +2 -2
  103. package/dist/cjs/ion-toggle.cjs.entry.js +5 -3
  104. package/dist/cjs/ionic.cjs.js +2 -2
  105. package/dist/cjs/{ios.transition-b53fc1d5.js → ios.transition-f7c78d7c.js} +5 -5
  106. package/dist/cjs/loader.cjs.js +1 -1
  107. package/dist/cjs/{md.transition-d96426d5.js → md.transition-65dc7dce.js} +1 -1
  108. package/dist/collection/collection-manifest.json +2 -2
  109. package/dist/collection/components/accordion/accordion.ios.css +0 -66
  110. package/dist/collection/components/accordion/accordion.md.css +0 -33
  111. package/dist/collection/components/accordion-group/accordion-group.ios.css +0 -66
  112. package/dist/collection/components/accordion-group/accordion-group.md.css +0 -99
  113. package/dist/collection/components/action-sheet/action-sheet.ios.css +12 -80
  114. package/dist/collection/components/action-sheet/action-sheet.md.css +8 -76
  115. package/dist/collection/components/action-sheet/test/a11y/action-sheet.e2e.js +0 -27
  116. package/dist/collection/components/alert/alert.ios.css +0 -99
  117. package/dist/collection/components/alert/alert.md.css +0 -99
  118. package/dist/collection/components/avatar/avatar.ios.css +0 -66
  119. package/dist/collection/components/avatar/avatar.md.css +0 -66
  120. package/dist/collection/components/back-button/back-button.ios.css +1 -83
  121. package/dist/collection/components/back-button/back-button.md.css +3 -75
  122. package/dist/collection/components/backdrop/backdrop.ios.css +0 -66
  123. package/dist/collection/components/backdrop/backdrop.md.css +0 -66
  124. package/dist/collection/components/badge/badge.ios.css +1 -75
  125. package/dist/collection/components/badge/badge.md.css +1 -67
  126. package/dist/collection/components/breadcrumb/breadcrumb.ios.css +3 -80
  127. package/dist/collection/components/breadcrumb/breadcrumb.md.css +3 -69
  128. package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +0 -33
  129. package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +0 -33
  130. package/dist/collection/components/breadcrumbs/test/a11y/breadcrumbs.e2e.js +0 -21
  131. package/dist/collection/components/button/button.ios.css +19 -118
  132. package/dist/collection/components/button/button.md.css +3 -69
  133. package/dist/collection/components/buttons/buttons.ios.css +3 -102
  134. package/dist/collection/components/buttons/buttons.md.css +2 -101
  135. package/dist/collection/components/card/card.ios.css +1 -67
  136. package/dist/collection/components/card/card.md.css +1 -67
  137. package/dist/collection/components/card-content/card-content.ios.css +5 -71
  138. package/dist/collection/components/card-content/card-content.md.css +5 -71
  139. package/dist/collection/components/card-header/card-header.ios.css +0 -66
  140. package/dist/collection/components/card-header/card-header.md.css +0 -66
  141. package/dist/collection/components/card-subtitle/card-subtitle.ios.css +1 -67
  142. package/dist/collection/components/card-subtitle/card-subtitle.md.css +1 -67
  143. package/dist/collection/components/card-title/card-title.ios.css +1 -67
  144. package/dist/collection/components/card-title/card-title.md.css +1 -67
  145. package/dist/collection/components/checkbox/checkbox.ios.css +35 -99
  146. package/dist/collection/components/checkbox/checkbox.js +24 -4
  147. package/dist/collection/components/checkbox/checkbox.md.css +35 -99
  148. package/dist/collection/components/checkbox/test/item/checkbox.e2e.js +13 -0
  149. package/dist/collection/components/checkbox/test/label/checkbox.e2e.js +16 -0
  150. package/dist/collection/components/chip/{chip.md.css → chip.css} +7 -43
  151. package/dist/collection/components/chip/chip.js +2 -4
  152. package/dist/collection/components/col/col.css +0 -66
  153. package/dist/collection/components/content/content.css +0 -33
  154. package/dist/collection/components/datetime/datetime.ios.css +32 -95
  155. package/dist/collection/components/datetime/datetime.js +137 -93
  156. package/dist/collection/components/datetime/datetime.md.css +20 -94
  157. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +25 -0
  158. package/dist/collection/components/datetime/test/color/datetime.e2e.js +1 -1
  159. package/dist/collection/components/datetime/test/custom/datetime.e2e.js +27 -1
  160. package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +15 -0
  161. package/dist/collection/components/datetime/test/set-value/datetime.e2e.js +9 -12
  162. package/dist/collection/components/datetime/utils/data.js +14 -6
  163. package/dist/collection/components/datetime/utils/parse.js +18 -1
  164. package/dist/collection/components/datetime-button/datetime-button.css +2 -36
  165. package/dist/collection/components/datetime-button/datetime-button.js +3 -0
  166. package/dist/collection/components/fab/fab.css +0 -66
  167. package/dist/collection/components/fab-button/fab-button.ios.css +0 -66
  168. package/dist/collection/components/fab-button/fab-button.md.css +0 -66
  169. package/dist/collection/components/fab-list/fab-list.css +0 -66
  170. package/dist/collection/components/footer/footer.ios.css +0 -66
  171. package/dist/collection/components/footer/footer.md.css +0 -66
  172. package/dist/collection/components/grid/grid.css +0 -66
  173. package/dist/collection/components/header/header.ios.css +2 -71
  174. package/dist/collection/components/header/header.md.css +0 -66
  175. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +0 -66
  176. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +0 -66
  177. package/dist/collection/components/input/input.ios.css +0 -99
  178. package/dist/collection/components/input/input.md.css +0 -198
  179. package/dist/collection/components/item/item.ios.css +4 -70
  180. package/dist/collection/components/item/item.md.css +6 -138
  181. package/dist/collection/components/item/test/a11y/item.e2e.js +1 -116
  182. package/dist/collection/components/item-divider/item-divider.ios.css +9 -101
  183. package/dist/collection/components/item-divider/item-divider.md.css +11 -103
  184. package/dist/collection/components/item-group/item-group.ios.css +1 -68
  185. package/dist/collection/components/item-group/item-group.md.css +1 -68
  186. package/dist/collection/components/item-option/item-option.ios.css +1 -67
  187. package/dist/collection/components/item-option/item-option.md.css +1 -67
  188. package/dist/collection/components/item-options/item-options.ios.css +1 -99
  189. package/dist/collection/components/item-options/item-options.md.css +1 -99
  190. package/dist/collection/components/item-sliding/item-sliding.css +0 -33
  191. package/dist/collection/components/label/label.ios.css +6 -105
  192. package/dist/collection/components/label/label.md.css +5 -104
  193. package/dist/collection/components/list/list.ios.css +0 -99
  194. package/dist/collection/components/list/list.md.css +0 -99
  195. package/dist/collection/components/list-header/list-header.ios.css +1 -100
  196. package/dist/collection/components/list-header/list-header.md.css +1 -100
  197. package/dist/collection/components/loading/loading.ios.css +1 -67
  198. package/dist/collection/components/loading/loading.md.css +1 -67
  199. package/dist/collection/components/loading/test/a11y/loading.e2e.js +0 -19
  200. package/dist/collection/components/menu/menu.ios.css +94 -66
  201. package/dist/collection/components/menu/menu.md.css +94 -66
  202. package/dist/collection/components/menu-button/menu-button.ios.css +2 -70
  203. package/dist/collection/components/menu-button/menu-button.md.css +3 -71
  204. package/dist/collection/components/menu-button/test/a11y/menu-button.e2e.js +1 -20
  205. package/dist/collection/components/modal/modal.ios.css +0 -66
  206. package/dist/collection/components/modal/modal.md.css +0 -66
  207. package/dist/collection/components/nav/nav.css +0 -33
  208. package/dist/collection/components/note/note.ios.css +0 -67
  209. package/dist/collection/components/note/note.md.css +1 -67
  210. package/dist/collection/components/picker/picker.ios.css +0 -66
  211. package/dist/collection/components/picker/picker.md.css +0 -66
  212. package/dist/collection/components/picker-column/picker-column.ios.css +0 -66
  213. package/dist/collection/components/picker-column/picker-column.md.css +0 -66
  214. package/dist/collection/components/picker-column-internal/picker-column-internal.ios.css +0 -33
  215. package/dist/collection/components/picker-column-internal/picker-column-internal.md.css +0 -66
  216. package/dist/collection/components/picker-internal/picker-internal.ios.css +0 -66
  217. package/dist/collection/components/picker-internal/picker-internal.md.css +0 -66
  218. package/dist/collection/components/popover/popover.ios.css +0 -66
  219. package/dist/collection/components/popover/popover.md.css +0 -66
  220. package/dist/collection/components/progress-bar/progress-bar.ios.css +0 -33
  221. package/dist/collection/components/progress-bar/progress-bar.md.css +0 -33
  222. package/dist/collection/components/radio/radio.ios.css +33 -97
  223. package/dist/collection/components/radio/radio.js +24 -4
  224. package/dist/collection/components/radio/radio.md.css +33 -97
  225. package/dist/collection/components/radio/test/item/radio.e2e.js +15 -0
  226. package/dist/collection/components/radio/test/label-placement/radio.e2e.js +20 -0
  227. package/dist/collection/components/range/range.ios.css +46 -80
  228. package/dist/collection/components/range/range.js +3 -3
  229. package/dist/collection/components/range/range.md.css +49 -97
  230. package/dist/collection/components/range/test/a11y/range.e2e.js +0 -22
  231. package/dist/collection/components/range/test/label/range.e2e.js +48 -0
  232. package/dist/collection/components/refresher/refresher.ios.css +0 -66
  233. package/dist/collection/components/refresher/refresher.md.css +0 -66
  234. package/dist/collection/components/reorder/reorder.ios.css +2 -75
  235. package/dist/collection/components/reorder/reorder.md.css +2 -75
  236. package/dist/collection/components/reorder-group/reorder-group.css +0 -33
  237. package/dist/collection/components/ripple-effect/ripple-effect.css +0 -33
  238. package/dist/collection/components/router-link/router-link.css +0 -33
  239. package/dist/collection/components/router-outlet/router-outlet.css +0 -33
  240. package/dist/collection/components/router-outlet/router-outlet.js +6 -1
  241. package/dist/collection/components/row/row.css +0 -66
  242. package/dist/collection/components/searchbar/searchbar.ios.css +16 -95
  243. package/dist/collection/components/searchbar/searchbar.js +1 -7
  244. package/dist/collection/components/searchbar/searchbar.md.css +10 -77
  245. package/dist/collection/components/searchbar/test/basic/searchbar.e2e.js +0 -18
  246. package/dist/collection/components/segment/segment.ios.css +0 -99
  247. package/dist/collection/components/segment/segment.md.css +0 -99
  248. package/dist/collection/components/segment-button/segment-button.ios.css +0 -66
  249. package/dist/collection/components/segment-button/segment-button.md.css +0 -66
  250. package/dist/collection/components/select/select.ios.css +0 -99
  251. package/dist/collection/components/select/select.md.css +0 -165
  252. package/dist/collection/components/select-popover/select-popover.ios.css +1 -101
  253. package/dist/collection/components/select-popover/select-popover.md.css +0 -99
  254. package/dist/collection/components/skeleton-text/skeleton-text.css +0 -33
  255. package/dist/collection/components/spinner/spinner.css +0 -33
  256. package/dist/collection/components/split-pane/split-pane.ios.css +0 -99
  257. package/dist/collection/components/split-pane/split-pane.md.css +0 -99
  258. package/dist/collection/components/tab-bar/tab-bar.ios.css +0 -99
  259. package/dist/collection/components/tab-bar/tab-bar.md.css +0 -99
  260. package/dist/collection/components/tab-button/tab-button.ios.css +0 -66
  261. package/dist/collection/components/tab-button/tab-button.md.css +0 -66
  262. package/dist/collection/components/tabs/tabs.css +0 -33
  263. package/dist/collection/components/text/text.css +0 -33
  264. package/dist/collection/components/textarea/test/a11y/textarea.e2e.js +1 -15
  265. package/dist/collection/components/textarea/textarea.ios.css +1 -133
  266. package/dist/collection/components/textarea/textarea.md.css +1 -199
  267. package/dist/collection/components/thumbnail/thumbnail.css +0 -33
  268. package/dist/collection/components/title/title.ios.css +10 -43
  269. package/dist/collection/components/title/title.md.css +2 -35
  270. package/dist/collection/components/toast/test/a11y/toast.e2e.js +1 -98
  271. package/dist/collection/components/toast/toast.ios.css +3 -74
  272. package/dist/collection/components/toast/toast.md.css +4 -74
  273. package/dist/collection/components/toggle/test/item/toggle.e2e.js +15 -0
  274. package/dist/collection/components/toggle/test/label/toggle.e2e.js +16 -0
  275. package/dist/collection/components/toggle/toggle.ios.css +35 -100
  276. package/dist/collection/components/toggle/toggle.js +24 -4
  277. package/dist/collection/components/toggle/toggle.md.css +35 -100
  278. package/dist/collection/components/toolbar/toolbar.ios.css +16 -70
  279. package/dist/collection/components/toolbar/toolbar.md.css +2 -70
  280. package/dist/collection/index.js +1 -0
  281. package/dist/collection/utils/transition/ios.transition.js +4 -4
  282. package/dist/docs.json +155 -21
  283. package/dist/esm/{data-4b448e3a.js → data-009dbf15.js} +31 -7
  284. package/dist/esm/{index-2970aafc.js → index-6391de89.js} +2 -2
  285. package/dist/esm/index.js +4 -4
  286. package/dist/esm/ion-action-sheet.entry.js +2 -2
  287. package/dist/esm/ion-app_8.entry.js +8 -8
  288. package/dist/esm/ion-avatar_3.entry.js +2 -2
  289. package/dist/esm/ion-back-button.entry.js +2 -2
  290. package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
  291. package/dist/esm/ion-button_2.entry.js +2 -2
  292. package/dist/esm/ion-card_5.entry.js +8 -8
  293. package/dist/esm/ion-checkbox.entry.js +5 -3
  294. package/dist/esm/ion-chip.entry.js +2 -7
  295. package/dist/esm/ion-datetime-button.entry.js +6 -3
  296. package/dist/esm/ion-datetime_3.entry.js +132 -93
  297. package/dist/esm/ion-item-option_3.entry.js +4 -4
  298. package/dist/esm/ion-item_8.entry.js +10 -10
  299. package/dist/esm/ion-loading.entry.js +2 -2
  300. package/dist/esm/ion-menu_3.entry.js +4 -4
  301. package/dist/esm/ion-modal.entry.js +1 -1
  302. package/dist/esm/ion-nav_2.entry.js +1 -1
  303. package/dist/esm/ion-popover.entry.js +1 -1
  304. package/dist/esm/ion-radio_2.entry.js +5 -3
  305. package/dist/esm/ion-range.entry.js +2 -2
  306. package/dist/esm/ion-reorder_2.entry.js +2 -2
  307. package/dist/esm/ion-searchbar.entry.js +3 -9
  308. package/dist/esm/ion-textarea.entry.js +2 -2
  309. package/dist/esm/ion-toast.entry.js +2 -2
  310. package/dist/esm/ion-toggle.entry.js +5 -3
  311. package/dist/esm/ionic.js +2 -2
  312. package/dist/esm/{ios.transition-4e8d7fb7.js → ios.transition-3137d23e.js} +5 -5
  313. package/dist/esm/loader.js +1 -1
  314. package/dist/esm/{md.transition-2b41d64c.js → md.transition-48b3b77c.js} +1 -1
  315. package/dist/esm-es5/data-009dbf15.js +4 -0
  316. package/dist/esm-es5/{index-2970aafc.js → index-6391de89.js} +1 -1
  317. package/dist/esm-es5/index.js +1 -1
  318. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  319. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  320. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  321. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  322. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  323. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  324. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  325. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  326. package/dist/esm-es5/ion-chip.entry.js +1 -1
  327. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  328. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  329. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  330. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  331. package/dist/esm-es5/ion-loading.entry.js +1 -1
  332. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  333. package/dist/esm-es5/ion-modal.entry.js +1 -1
  334. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  335. package/dist/esm-es5/ion-popover.entry.js +1 -1
  336. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  337. package/dist/esm-es5/ion-range.entry.js +1 -1
  338. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  339. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  340. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  341. package/dist/esm-es5/ion-toast.entry.js +1 -1
  342. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  343. package/dist/esm-es5/ionic.js +1 -1
  344. package/dist/esm-es5/ios.transition-3137d23e.js +4 -0
  345. package/dist/esm-es5/loader.js +1 -1
  346. package/dist/esm-es5/{md.transition-2b41d64c.js → md.transition-48b3b77c.js} +1 -1
  347. package/dist/html.html-data.json +52 -4
  348. package/dist/ionic/index.esm.js +1 -1
  349. package/dist/ionic/ionic.esm.js +1 -1
  350. package/dist/ionic/ionic.js +1 -1
  351. package/dist/ionic/p-06902103.system.js +4 -0
  352. package/dist/ionic/{p-a5481fd3.system.entry.js → p-0b68c41d.system.entry.js} +1 -1
  353. package/dist/ionic/p-0cc2bf5a.system.entry.js +4 -0
  354. package/dist/ionic/p-11248f01.js +4 -0
  355. package/dist/ionic/p-1f4adf06.system.entry.js +4 -0
  356. package/dist/ionic/p-2061c86f.system.entry.js +4 -0
  357. package/dist/ionic/{p-80eed21b.entry.js → p-208f640c.entry.js} +1 -1
  358. package/dist/ionic/p-218b6f33.entry.js +4 -0
  359. package/dist/ionic/p-2da6ba37.system.entry.js +4 -0
  360. package/dist/ionic/p-341d5877.entry.js +4 -0
  361. package/dist/ionic/p-38dd9aec.entry.js +4 -0
  362. package/dist/ionic/p-40138199.entry.js +4 -0
  363. package/dist/ionic/p-430e902d.entry.js +4 -0
  364. package/dist/ionic/p-44ef7224.system.js +4 -0
  365. package/dist/ionic/p-48144921.entry.js +4 -0
  366. package/dist/ionic/p-4ca1ce6b.system.entry.js +4 -0
  367. package/dist/ionic/p-51b165af.system.js +4 -0
  368. package/dist/ionic/p-57f0efcc.entry.js +4 -0
  369. package/dist/ionic/p-5ba27716.system.entry.js +4 -0
  370. package/dist/ionic/{p-2e45dce9.system.entry.js → p-62324608.system.entry.js} +1 -1
  371. package/dist/ionic/{p-5d418c78.entry.js → p-653f2fc6.entry.js} +1 -1
  372. package/dist/ionic/p-67b891af.entry.js +4 -0
  373. package/dist/ionic/p-69303bb5.system.js +4 -0
  374. package/dist/ionic/p-6b3afb0f.entry.js +4 -0
  375. package/dist/ionic/p-6bf632d0.system.entry.js +4 -0
  376. package/dist/ionic/{p-c569a270.entry.js → p-728ac2b3.entry.js} +1 -1
  377. package/dist/ionic/p-7cfd253c.js +4 -0
  378. package/dist/ionic/p-82f5c07e.system.entry.js +4 -0
  379. package/dist/ionic/p-82f8ee51.entry.js +4 -0
  380. package/dist/ionic/p-83bcaec9.system.entry.js +4 -0
  381. package/dist/ionic/p-86c5c320.entry.js +4 -0
  382. package/dist/ionic/{p-586e0a90.system.entry.js → p-87383d00.system.entry.js} +1 -1
  383. package/dist/ionic/p-90ec5785.system.entry.js +4 -0
  384. package/dist/ionic/{p-eaede417.entry.js → p-98ebc376.entry.js} +1 -1
  385. package/dist/ionic/p-9c32000a.entry.js +4 -0
  386. package/dist/ionic/{p-1decbac2.js → p-a2b25750.js} +1 -1
  387. package/dist/ionic/p-a34669bf.system.entry.js +4 -0
  388. package/dist/ionic/p-a3f9d271.entry.js +4 -0
  389. package/dist/ionic/p-a62c0ff4.js +4 -0
  390. package/dist/ionic/p-af0bc751.system.entry.js +4 -0
  391. package/dist/ionic/p-af986299.system.entry.js +4 -0
  392. package/dist/ionic/p-b0e9e0b8.system.entry.js +4 -0
  393. package/dist/ionic/p-b321c999.entry.js +4 -0
  394. package/dist/ionic/p-bbae0ac3.system.entry.js +4 -0
  395. package/dist/ionic/p-bf4b8d8a.system.entry.js +4 -0
  396. package/dist/ionic/p-d5e3bff3.entry.js +4 -0
  397. package/dist/ionic/p-d8a0267b.system.entry.js +4 -0
  398. package/dist/ionic/p-dbb48066.system.entry.js +4 -0
  399. package/dist/ionic/p-dc49c681.system.entry.js +4 -0
  400. package/dist/ionic/{p-f7dcca6a.system.js → p-df6743df.system.js} +1 -1
  401. package/dist/ionic/p-e112994b.system.entry.js +4 -0
  402. package/dist/ionic/{p-f29fe8c3.system.js → p-e3d5608d.system.js} +1 -1
  403. package/dist/ionic/p-e805ff9f.system.entry.js +4 -0
  404. package/dist/ionic/p-ed7b205b.entry.js +4 -0
  405. package/dist/ionic/p-f5c19164.entry.js +4 -0
  406. package/dist/ionic/p-f9567c67.entry.js +4 -0
  407. package/dist/ionic/p-fa3327e8.system.entry.js +4 -0
  408. package/dist/ionic/{p-fbb2649b.entry.js → p-fabb7294.entry.js} +1 -1
  409. package/dist/ionic/{p-8eed522b.entry.js → p-fac1660b.entry.js} +1 -1
  410. package/dist/ionic/p-fe83e3e2.entry.js +4 -0
  411. package/dist/types/components/checkbox/checkbox.d.ts +8 -1
  412. package/dist/types/components/datetime/datetime.d.ts +23 -10
  413. package/dist/types/components/datetime/utils/data.d.ts +1 -1
  414. package/dist/types/components/datetime/utils/parse.d.ts +3 -3
  415. package/dist/types/components/radio/radio.d.ts +8 -1
  416. package/dist/types/components/range/range.d.ts +2 -1
  417. package/dist/types/components/toast/toast-interface.d.ts +3 -0
  418. package/dist/types/components/toggle/toggle.d.ts +8 -1
  419. package/dist/types/components.d.ts +40 -16
  420. package/dist/types/index.d.ts +1 -0
  421. package/dist/types/interface.d.ts +1 -0
  422. package/hydrate/index.js +345 -264
  423. package/package.json +3 -3
  424. package/dist/collection/components/back-button/test/a11y/back-button.e2e.js +0 -26
  425. package/dist/collection/components/badge/test/a11y/badge.e2e.js +0 -22
  426. package/dist/collection/components/button/test/a11y/button.e2e.js +0 -61
  427. package/dist/collection/components/buttons/test/a11y/buttons.e2e.js +0 -74
  428. package/dist/collection/components/card/test/a11y/card.e2e.js +0 -31
  429. package/dist/collection/components/chip/chip.ios.css +0 -190
  430. package/dist/collection/components/chip/test/a11y/chip.e2e.js +0 -58
  431. package/dist/collection/components/datetime-button/test/a11y/datetime-button.e2e.js +0 -38
  432. package/dist/collection/components/item-divider/test/a11y/item-divider.e2e.js +0 -44
  433. package/dist/collection/components/item-sliding/test/a11y/item-sliding.e2e.js +0 -34
  434. package/dist/collection/components/label/test/a11y/label.e2e.js +0 -66
  435. package/dist/collection/components/list-header/test/a11y/list-header.e2e.js +0 -24
  436. package/dist/collection/components/note/test/a11y/note.e2e.js +0 -52
  437. package/dist/collection/components/reorder-group/test/a11y/reorder-group.e2e.js +0 -33
  438. package/dist/collection/components/searchbar/test/a11y/searchbar.e2e.js +0 -37
  439. package/dist/collection/components/title/test/a11y/title.e2e.js +0 -61
  440. package/dist/collection/css/test/a11y/typography.e2e.js +0 -32
  441. package/dist/esm-es5/data-4b448e3a.js +0 -4
  442. package/dist/esm-es5/ios.transition-4e8d7fb7.js +0 -4
  443. package/dist/ionic/p-0053fe81.system.entry.js +0 -4
  444. package/dist/ionic/p-060aa1aa.entry.js +0 -4
  445. package/dist/ionic/p-0e4377e6.system.entry.js +0 -4
  446. package/dist/ionic/p-1e5f9f20.entry.js +0 -4
  447. package/dist/ionic/p-2c012642.entry.js +0 -4
  448. package/dist/ionic/p-2cdcd6f2.entry.js +0 -4
  449. package/dist/ionic/p-2f4e5cd6.system.entry.js +0 -4
  450. package/dist/ionic/p-2f6fbeab.system.entry.js +0 -4
  451. package/dist/ionic/p-39bf6a89.js +0 -4
  452. package/dist/ionic/p-418fc6f2.system.entry.js +0 -4
  453. package/dist/ionic/p-468ac44a.system.entry.js +0 -4
  454. package/dist/ionic/p-5009cb46.entry.js +0 -4
  455. package/dist/ionic/p-5b88f780.entry.js +0 -4
  456. package/dist/ionic/p-5e8d7def.system.entry.js +0 -4
  457. package/dist/ionic/p-601fd53c.js +0 -4
  458. package/dist/ionic/p-65105512.entry.js +0 -4
  459. package/dist/ionic/p-66d2ef38.entry.js +0 -4
  460. package/dist/ionic/p-721933ff.system.js +0 -4
  461. package/dist/ionic/p-7ea1a467.system.js +0 -4
  462. package/dist/ionic/p-80b152fd.system.entry.js +0 -4
  463. package/dist/ionic/p-89d96720.entry.js +0 -4
  464. package/dist/ionic/p-91f9a6aa.system.entry.js +0 -4
  465. package/dist/ionic/p-94f99a8b.entry.js +0 -4
  466. package/dist/ionic/p-985d547d.system.entry.js +0 -4
  467. package/dist/ionic/p-98b618ce.system.entry.js +0 -4
  468. package/dist/ionic/p-9e306450.system.entry.js +0 -4
  469. package/dist/ionic/p-b03dae0c.system.entry.js +0 -4
  470. package/dist/ionic/p-b062bc29.entry.js +0 -4
  471. package/dist/ionic/p-b0b8c0c9.system.entry.js +0 -4
  472. package/dist/ionic/p-b3394798.system.entry.js +0 -4
  473. package/dist/ionic/p-bc8b9c38.system.entry.js +0 -4
  474. package/dist/ionic/p-c4aea998.entry.js +0 -4
  475. package/dist/ionic/p-c64711cc.entry.js +0 -4
  476. package/dist/ionic/p-c9fd7db5.system.entry.js +0 -4
  477. package/dist/ionic/p-caa4c0fa.entry.js +0 -4
  478. package/dist/ionic/p-cc8910e7.system.js +0 -4
  479. package/dist/ionic/p-cd4b6518.system.js +0 -4
  480. package/dist/ionic/p-d1e6b365.entry.js +0 -4
  481. package/dist/ionic/p-d4044209.system.entry.js +0 -4
  482. package/dist/ionic/p-d6de281e.entry.js +0 -4
  483. package/dist/ionic/p-e497d6a5.js +0 -4
  484. package/dist/ionic/p-e53b8af4.system.entry.js +0 -4
  485. package/dist/ionic/p-f1e5e368.system.entry.js +0 -4
  486. package/dist/ionic/p-f2b925a2.system.entry.js +0 -4
  487. package/dist/ionic/p-f78e60a5.entry.js +0 -4
  488. package/dist/ionic/p-f902ddc6.entry.js +0 -4
  489. package/dist/ionic/p-f9ec8c18.entry.js +0 -4
  490. package/dist/ionic/p-fade59a2.system.entry.js +0 -4
@@ -1,36 +1,3 @@
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
1
  :host {
35
2
  /**
36
3
  * @prop --background: The primary background of the datetime component.
@@ -314,6 +281,8 @@ ion-picker-column-internal {
314
281
  }
315
282
 
316
283
  :host .calendar-body .calendar-month {
284
+ display: flex;
285
+ flex-flow: column;
317
286
  /**
318
287
  * Swiping should snap to at
319
288
  * most one month at a time.
@@ -347,11 +316,21 @@ ion-picker-column-internal {
347
316
  grid-template-columns: repeat(7, 1fr);
348
317
  }
349
318
 
319
+ :host .calendar-day-wrapper {
320
+ display: flex;
321
+ align-items: center;
322
+ justify-content: center;
323
+ min-width: 0;
324
+ min-height: 0;
325
+ overflow: visible;
326
+ }
327
+
350
328
  /**
351
329
  * Center the day text vertically
352
330
  * and horizontally within its grid cell.
353
331
  */
354
332
  :host .calendar-day {
333
+ border-radius: 50%;
355
334
  -webkit-padding-start: 0px;
356
335
  padding-inline-start: 0px;
357
336
  -webkit-padding-end: 0px;
@@ -383,18 +362,9 @@ ion-picker-column-internal {
383
362
  opacity: 0.4;
384
363
  }
385
364
 
386
- .calendar-day-highlight {
387
- border-radius: 32px;
388
- -webkit-padding-start: 4px;
389
- padding-inline-start: 4px;
390
- -webkit-padding-end: 4px;
391
- padding-inline-end: 4px;
392
- padding-top: 4px;
393
- padding-bottom: 4px;
394
- position: absolute;
395
- width: 32px;
396
- height: 32px;
397
- z-index: -1;
365
+ .calendar-day:focus {
366
+ background: rgba(var(--ion-color-base-rgb), 0.2);
367
+ box-shadow: 0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);
398
368
  }
399
369
 
400
370
  :host .datetime-time {
@@ -448,39 +418,6 @@ ion-picker-column-internal {
448
418
  --color: var(--ion-color-base);
449
419
  }
450
420
 
451
- /**
452
- * Convert a font size to a dynamic font size.
453
- * Fonts that participate in Dynamic Type should use
454
- * dynamic font sizes.
455
- * @param size - The initial font size including the unit (i.e. px or pt)
456
- * @param unit (optional) - The unit to convert to. Use this if you want to
457
- * convert to a unit other than $baselineUnit.
458
- */
459
- /**
460
- * Convert a font size to a dynamic font size but impose
461
- * a maximum font size.
462
- * @param size - The initial font size including the unit (i.e. px or pt)
463
- * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
464
- * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
465
- * convert to a unit other than $baselineUnit.
466
- */
467
- /**
468
- * Convert a font size to a dynamic font size but impose
469
- * a minimum font size.
470
- * @param size - The initial font size including the unit (i.e. px or pt)
471
- * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
472
- * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
473
- * convert to a unit other than $baselineUnit.
474
- */
475
- /**
476
- * Convert a font size to a dynamic font size but impose
477
- * maximum and minimum font sizes.
478
- * @param size - The initial font size including the unit (i.e. px or pt)
479
- * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
480
- * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
481
- * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
482
- * convert to a unit other than $baselineUnit.
483
- */
484
421
  :host {
485
422
  --background: var(--ion-color-step-100, #ffffff);
486
423
  --title-color: var(--ion-color-contrast);
@@ -546,30 +483,19 @@ ion-picker-column-internal {
546
483
  }
547
484
 
548
485
  :host .calendar-day {
549
- -webkit-padding-start: 0px;
550
- padding-inline-start: 0px;
551
- -webkit-padding-end: 0;
552
- padding-inline-end: 0;
553
- padding-top: 13px;
554
- padding-bottom: 13px;
486
+ width: 42px;
487
+ min-width: 42px;
488
+ height: 42px;
555
489
  font-size: 14px;
556
490
  }
557
491
 
558
- .calendar-day:focus .calendar-day-highlight {
559
- background: rgba(var(--ion-color-base-rgb), 0.2);
560
- box-shadow: 0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);
561
- }
562
-
563
492
  /**
564
493
  * Day that today but not selected
565
494
  * should have ion-color for text color.
566
495
  */
567
496
  :host .calendar-day.calendar-day-today {
568
- color: var(--ion-color-base);
569
- }
570
-
571
- .calendar-day.calendar-day-today .calendar-day-highlight {
572
497
  border: 1px solid var(--ion-color-base);
498
+ color: var(--ion-color-base);
573
499
  }
574
500
 
575
501
  /**
@@ -581,7 +507,7 @@ ion-picker-column-internal {
581
507
  color: var(--ion-color-contrast);
582
508
  }
583
509
 
584
- .calendar-day.calendar-day-active .calendar-day-highlight {
510
+ .calendar-day.calendar-day-active {
585
511
  border: 1px solid var(--ion-color-base);
586
512
  background: var(--ion-color-base);
587
513
  }
@@ -348,3 +348,28 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, screenshot, co
348
348
  });
349
349
  });
350
350
  });
351
+ /**
352
+ * This behavior does not differ across
353
+ * directions.
354
+ */
355
+ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
356
+ test.describe(title('datetime: focus'), () => {
357
+ test('should focus the selected day and then the day after', async ({ page }) => {
358
+ await page.setContent(`
359
+ <ion-datetime value="2023-08-01"></ion-datetime>
360
+ `, config);
361
+ await page.waitForSelector('.datetime-ready');
362
+ const datetime = page.locator('ion-datetime');
363
+ const day = datetime.locator(`.calendar-day[data-day='1'][data-month='8']`);
364
+ await day.focus();
365
+ await page.waitForChanges();
366
+ await expect(day).toBeFocused();
367
+ await expect(datetime).toHaveScreenshot(screenshot(`datetime-focus-selected-calendar-day`));
368
+ await page.keyboard.press('ArrowRight');
369
+ await page.waitForChanges();
370
+ const nextDay = datetime.locator(`.calendar-day[data-day='2'][data-month='8']`);
371
+ await expect(nextDay).toBeFocused();
372
+ await expect(datetime).toHaveScreenshot(screenshot(`datetime-focus-calendar-day`));
373
+ });
374
+ });
375
+ });
@@ -10,7 +10,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
10
10
  test.describe(title('datetime: color'), () => {
11
11
  test('should not have visual regressions', async ({ page }) => {
12
12
  await page.goto('/src/components/datetime/test/color', config);
13
- const datetime = page.locator('ion-datetime');
13
+ const datetime = page.locator('#color-datetime');
14
14
  await expect(datetime).toHaveScreenshot(screenshot(`datetime-color`));
15
15
  await page.evaluate(() => document.body.classList.toggle('dark'));
16
16
  await page.waitForChanges();
@@ -13,7 +13,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
13
13
  await expect(datetime).toHaveScreenshot(screenshot(`datetime-custom-wheel`));
14
14
  });
15
15
  test('should allow styling time picker in grid style datetimes', async ({ page }) => {
16
- const timeButton = page.locator('ion-datetime .time-body');
16
+ const timeButton = page.locator('#custom-grid .time-body');
17
17
  const popover = page.locator('.popover-viewport');
18
18
  const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent');
19
19
  await expect(timeButton).toHaveScreenshot(screenshot(`datetime-custom-time-button`));
@@ -22,5 +22,31 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
22
22
  await expect(popover).toHaveScreenshot(screenshot(`datetime-custom-time-picker`));
23
23
  await expect(timeButton).toHaveScreenshot(screenshot(`datetime-custom-time-button-active`));
24
24
  });
25
+ test('should allow styling calendar days in grid style datetimes', async ({ page }) => {
26
+ const datetime = page.locator('#custom-calendar-days');
27
+ await expect(datetime).toHaveScreenshot(screenshot(`datetime-custom-calendar-days`));
28
+ });
29
+ });
30
+ });
31
+ /**
32
+ * This behavior does not differ across
33
+ * directions.
34
+ */
35
+ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
36
+ test.describe(title('datetime: custom focus'), () => {
37
+ test('should focus the selected day and then the day after', async ({ page }) => {
38
+ await page.goto(`/src/components/datetime/test/custom`, config);
39
+ const datetime = page.locator('#custom-calendar-days');
40
+ const day = datetime.locator(`.calendar-day[data-day='15'][data-month='6']`);
41
+ await day.focus();
42
+ await page.waitForChanges();
43
+ await expect(day).toBeFocused();
44
+ await expect(datetime).toHaveScreenshot(screenshot(`datetime-custom-focus-selected-calendar-day`));
45
+ await page.keyboard.press('ArrowRight');
46
+ await page.waitForChanges();
47
+ const nextDay = datetime.locator(`.calendar-day[data-day='16'][data-month='6']`);
48
+ await expect(nextDay).toBeFocused();
49
+ await expect(datetime).toHaveScreenshot(screenshot(`datetime-custom-focus-calendar-day`));
50
+ });
25
51
  });
26
52
  });
@@ -184,6 +184,21 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
184
184
  await yearValues.nth(10).click();
185
185
  await ionChange.next();
186
186
  });
187
+ test('should jump to selected date when programmatically updating value', async ({ page }) => {
188
+ await page.setContent(`
189
+ <ion-datetime presentation="date" prefer-wheel="true" min="2019-05-05" max="2023-10-01" value="2019-05-30"></ion-datetime>
190
+ `, config);
191
+ await page.waitForSelector('.datetime-ready');
192
+ const datetime = page.locator('ion-datetime');
193
+ await datetime.evaluate((el) => (el.value = '2021-05-25T12:40:00.000Z'));
194
+ await page.waitForChanges();
195
+ const selectedMonth = datetime.locator('.month-column .picker-item-active');
196
+ const selectedDay = datetime.locator('.day-column .picker-item-active');
197
+ const selectedYear = datetime.locator('.year-column .picker-item-active');
198
+ await expect(selectedMonth).toHaveText(/May/);
199
+ await expect(selectedDay).toHaveText(/25/);
200
+ await expect(selectedYear).toHaveText(/2021/);
201
+ });
187
202
  test.describe('datetime: date wheel localization', () => {
188
203
  test('should correctly localize the date data', async ({ page }) => {
189
204
  await page.setContent(`
@@ -30,24 +30,21 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
30
30
  await page.waitForSelector('.datetime-ready');
31
31
  const datetime = page.locator('ion-datetime');
32
32
  const activeDayButton = page.locator('.calendar-day-active');
33
- const monthYearButton = page.locator('.calendar-month-year');
34
- const monthColumn = page.locator('.month-column');
35
- const ionChange = await page.spyOnEvent('ionChange');
36
33
  await datetime.evaluate((el) => (el.value = '2021-10-05'));
37
- // Open month/year picker
38
- await monthYearButton.click();
39
- await page.waitForChanges();
40
- // Select October 2021
41
- // The year will automatically switch to 2021 when selecting 10
42
- await monthColumn.locator('.picker-item[data-value="10"]').click();
43
- await ionChange.next();
44
- // Close month/year picker
45
- await monthYearButton.click();
46
34
  await page.waitForChanges();
47
35
  // Check that correct day is highlighted
48
36
  await expect(activeDayButton).toHaveAttribute('data-day', '5');
49
37
  await expect(activeDayButton).toHaveAttribute('data-month', '10');
50
38
  await expect(activeDayButton).toHaveAttribute('data-year', '2021');
51
39
  });
40
+ test('should scroll to new month when value is initially set and then updated', async ({ page }) => {
41
+ await page.goto('/src/components/datetime/test/set-value', config);
42
+ await page.waitForSelector('.datetime-ready');
43
+ const datetime = page.locator('ion-datetime');
44
+ await datetime.evaluate((el) => (el.value = '2021-05-25T12:40:00.000Z'));
45
+ await page.waitForChanges();
46
+ const calendarHeader = datetime.locator('.calendar-month-year');
47
+ await expect(calendarHeader).toHaveText(/May 2021/);
48
+ });
52
49
  });
53
50
  });
@@ -220,12 +220,20 @@ export const generateTime = (refParts, hourCycle = 'h12', minParts, maxParts, ho
220
220
  * Given DatetimeParts, generate the previous,
221
221
  * current, and and next months.
222
222
  */
223
- export const generateMonths = (refParts) => {
224
- return [
225
- getPreviousMonth(refParts),
226
- { month: refParts.month, year: refParts.year, day: refParts.day },
227
- getNextMonth(refParts),
228
- ];
223
+ export const generateMonths = (refParts, forcedDate) => {
224
+ const current = { month: refParts.month, year: refParts.year, day: refParts.day };
225
+ /**
226
+ * If we're forcing a month to appear, and it's different from the current month,
227
+ * ensure it appears by replacing the next or previous month as appropriate.
228
+ */
229
+ if (forcedDate !== undefined && (refParts.month !== forcedDate.month || refParts.year !== forcedDate.year)) {
230
+ const forced = { month: forcedDate.month, year: forcedDate.year, day: forcedDate.day };
231
+ const forcedMonthIsBefore = isBefore(forced, current);
232
+ return forcedMonthIsBefore
233
+ ? [forced, current, getNextMonth(refParts)]
234
+ : [getPreviousMonth(refParts), current, forced];
235
+ }
236
+ return [getPreviousMonth(refParts), current, getNextMonth(refParts)];
229
237
  };
230
238
  export const getMonthColumnData = (locale, refParts, minParts, maxParts, monthValues, formatOptions = {
231
239
  month: 'long',
@@ -1,6 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
+ import { printIonWarning } from "../../../utils/logging/index";
4
5
  import { isAfter, isBefore } from "./comparison";
5
6
  import { getNumDaysInMonth } from "./helpers";
6
7
  const ISO_8601_REGEXP =
@@ -47,7 +48,22 @@ export const getPartsFromCalendarDay = (el) => {
47
48
  };
48
49
  export function parseDate(val) {
49
50
  if (Array.isArray(val)) {
50
- return val.map((valStr) => parseDate(valStr));
51
+ const parsedArray = [];
52
+ for (const valStr of val) {
53
+ const parsedVal = parseDate(valStr);
54
+ /**
55
+ * If any of the values weren't parsed correctly, consider
56
+ * the entire batch incorrect. This simplifies the type
57
+ * signatures by having "undefined" be a general error case
58
+ * instead of returning (Datetime | undefined)[], which is
59
+ * harder for TS to perform type narrowing on.
60
+ */
61
+ if (!parsedVal) {
62
+ return undefined;
63
+ }
64
+ parsedArray.push(parsedVal);
65
+ }
66
+ return parsedArray;
51
67
  }
52
68
  // manually parse IS0 cuz Date.parse cannot be trusted
53
69
  // ISO 8601 format: 1994-12-15T13:47:20Z
@@ -67,6 +83,7 @@ export function parseDate(val) {
67
83
  }
68
84
  if (parse === null) {
69
85
  // wasn't able to parse the ISO datetime
86
+ printIonWarning(`Unable to parse date string: ${val}. Please provide a valid ISO 8601 datetime string.`);
70
87
  return undefined;
71
88
  }
72
89
  // ensure all the parse values exist with at least 0
@@ -1,39 +1,5 @@
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
1
  :host {
35
2
  display: flex;
36
- flex-wrap: wrap;
37
3
  align-items: center;
38
4
  justify-content: center;
39
5
  }
@@ -58,10 +24,10 @@
58
24
  background: var(--ion-color-step-300, #edeef0);
59
25
  color: var(--ion-text-color, #000);
60
26
  font-family: inherit;
61
- font-size: 1rem;
27
+ font-size: inherit;
62
28
  cursor: pointer;
63
- overflow: hidden;
64
29
  appearance: none;
30
+ overflow: hidden;
65
31
  }
66
32
 
67
33
  :host(.time-active) #time-button,
@@ -54,6 +54,9 @@ export class DatetimeButton {
54
54
  * to today's date and time if no value is set.
55
55
  */
56
56
  const parsedDatetimes = parseDate(parsedValues.length > 0 ? parsedValues : [getToday()]);
57
+ if (!parsedDatetimes) {
58
+ return;
59
+ }
57
60
  /**
58
61
  * If developers incorrectly use multiple="true"
59
62
  * with non "date" datetimes, then just select
@@ -1,69 +1,3 @@
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
- */
67
1
  :host {
68
2
  position: absolute;
69
3
  z-index: 999;
@@ -1,36 +1,3 @@
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
1
  :host {
35
2
  /**
36
3
  * @prop --background: Background of the button
@@ -256,39 +223,6 @@ ion-ripple-effect {
256
223
  color: var(--ion-color-contrast);
257
224
  }
258
225
 
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
- */
292
226
  :host {
293
227
  --background: var(--ion-color-primary, #3880ff);
294
228
  --background-activated: var(--ion-color-primary-shade, #3171e0);
@@ -1,36 +1,3 @@
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
1
  :host {
35
2
  /**
36
3
  * @prop --background: Background of the button
@@ -256,39 +223,6 @@ ion-ripple-effect {
256
223
  color: var(--ion-color-contrast);
257
224
  }
258
225
 
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
- */
292
226
  :host {
293
227
  --background: var(--ion-color-primary, #3880ff);
294
228
  --background-activated: transparent;