@ionic/core 7.7.2-dev.11707932366.16baf005 → 7.7.2-dev.11707941206.120570b8

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 (810) hide show
  1. package/components/action-sheet.js +4 -4
  2. package/components/alert.js +2 -2
  3. package/components/backdrop.js +13 -1
  4. package/components/button-active.js +1 -1
  5. package/components/button.js +2 -2
  6. package/components/checkbox.js +2 -2
  7. package/components/data.js +24 -39
  8. package/components/gesture-controller.js +1 -1
  9. package/components/ion-accordion-group.js +1 -1
  10. package/components/ion-back-button.js +1 -1
  11. package/components/ion-badge.js +2 -2
  12. package/components/ion-breadcrumb.js +2 -2
  13. package/components/ion-card-subtitle.js +2 -2
  14. package/components/ion-card-title.js +1 -1
  15. package/components/ion-card.js +2 -2
  16. package/components/ion-content.js +5 -4
  17. package/components/ion-datetime-button.js +15 -14
  18. package/components/ion-datetime.js +173 -47
  19. package/components/ion-fab-button.js +4 -4
  20. package/components/ion-fab-list.js +3 -3
  21. package/components/ion-fab.js +2 -2
  22. package/components/ion-footer.js +2 -2
  23. package/components/ion-grid.js +2 -2
  24. package/components/ion-header.js +2 -2
  25. package/components/ion-img.js +1 -1
  26. package/components/ion-infinite-scroll-content.js +4 -4
  27. package/components/ion-infinite-scroll.js +1 -1
  28. package/components/ion-input.js +93 -7
  29. package/components/ion-item-divider.js +4 -4
  30. package/components/ion-item-group.js +1 -1
  31. package/components/ion-item-option.js +4 -4
  32. package/components/ion-item-options.js +3 -3
  33. package/components/ion-item-sliding.js +1 -1
  34. package/components/ion-loading.js +4 -4
  35. package/components/ion-menu-button.js +3 -3
  36. package/components/ion-menu-toggle.js +2 -2
  37. package/components/ion-menu.js +17 -23
  38. package/components/ion-modal.js +25 -8
  39. package/components/ion-nav-link.js +1 -1
  40. package/components/ion-nav.js +4 -8
  41. package/components/ion-picker-column-internal.d.ts +11 -0
  42. package/components/ion-picker-column-internal.js +9 -0
  43. package/components/ion-picker-column.js +2 -2
  44. package/components/{ion-picker-legacy.d.ts → ion-picker-internal.d.ts} +4 -4
  45. package/components/ion-picker-internal.js +9 -0
  46. package/components/ion-picker.js +311 -1
  47. package/components/ion-progress-bar.js +3 -6
  48. package/components/ion-range.js +2 -2
  49. package/components/ion-refresher-content.js +1 -1
  50. package/components/ion-refresher.js +3 -3
  51. package/components/ion-reorder-group.js +1 -1
  52. package/components/ion-reorder.js +1 -1
  53. package/components/ion-router-link.js +3 -3
  54. package/components/ion-router-outlet.js +1 -1
  55. package/components/ion-row.js +1 -1
  56. package/components/ion-searchbar.js +6 -6
  57. package/components/ion-segment-button.js +5 -5
  58. package/components/ion-segment.js +2 -2
  59. package/components/ion-select-option.js +1 -1
  60. package/components/ion-select.js +159 -65
  61. package/components/ion-skeleton-text.js +2 -2
  62. package/components/ion-split-pane.js +17 -28
  63. package/components/ion-tab-bar.js +4 -4
  64. package/components/ion-tab-button.js +4 -4
  65. package/components/ion-tab.js +2 -2
  66. package/components/ion-tabs.js +1 -1
  67. package/components/ion-text.js +2 -2
  68. package/components/ion-textarea.js +70 -7
  69. package/components/ion-thumbnail.js +1 -1
  70. package/components/ion-title.js +3 -3
  71. package/components/ion-toast.js +6 -12
  72. package/components/ion-toggle.js +64 -7
  73. package/components/ion-toolbar.js +4 -4
  74. package/components/item.js +2 -2
  75. package/components/label.js +3 -3
  76. package/components/list-header.js +4 -4
  77. package/components/list.js +2 -2
  78. package/components/note.js +4 -4
  79. package/components/overlays.js +4 -11
  80. package/components/picker-column-internal.js +392 -0
  81. package/components/picker-column.js +324 -352
  82. package/components/{picker.js → picker-internal.js} +26 -33
  83. package/components/popover.js +3 -3
  84. package/components/radio-group.js +1 -1
  85. package/components/radio.js +81 -8
  86. package/components/ripple-effect.js +1 -1
  87. package/components/select-popover.js +2 -2
  88. package/components/spinner.js +1 -1
  89. package/css/core.css +27 -90
  90. package/css/core.css.map +1 -1
  91. package/css/display.css.map +1 -1
  92. package/css/float-elements.css.map +1 -1
  93. package/css/global.bundle.css +1 -1
  94. package/css/global.bundle.css.map +1 -1
  95. package/css/ionic-swiper.css.map +1 -1
  96. package/css/ionic.bundle.css +1 -1
  97. package/css/ionic.bundle.css.map +1 -1
  98. package/css/padding.css.map +1 -1
  99. package/css/structure.css.map +1 -1
  100. package/css/text-alignment.css.map +1 -1
  101. package/css/text-transformation.css.map +1 -1
  102. package/css/typography.css +1 -1
  103. package/css/typography.css.map +1 -1
  104. package/css/utils.bundle.css.map +1 -1
  105. package/dist/cjs/{button-active-600ed3e2.js → button-active-b8c3f603.js} +2 -2
  106. package/dist/cjs/{data-e2bf21de.js → data-6df19461.js} +23 -40
  107. package/dist/cjs/{gesture-controller-9436f482.js → gesture-controller-c40c045a.js} +0 -1
  108. package/dist/cjs/{index-ee07ed59.js → index-d1b59ffa.js} +1 -1
  109. package/dist/cjs/index.cjs.js +3 -3
  110. package/dist/cjs/ion-accordion_2.cjs.entry.js +1 -1
  111. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
  112. package/dist/cjs/ion-alert.cjs.entry.js +6 -6
  113. package/dist/cjs/ion-app_8.cjs.entry.js +18 -17
  114. package/dist/cjs/ion-avatar_3.cjs.entry.js +3 -3
  115. package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
  116. package/dist/cjs/ion-backdrop.cjs.entry.js +13 -1
  117. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
  118. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  119. package/dist/cjs/ion-card_5.cjs.entry.js +5 -5
  120. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
  121. package/dist/cjs/ion-col_3.cjs.entry.js +3 -3
  122. package/dist/cjs/ion-datetime-button.cjs.entry.js +15 -14
  123. package/dist/cjs/ion-datetime_3.cjs.entry.js +174 -55
  124. package/dist/cjs/ion-fab_3.cjs.entry.js +9 -9
  125. package/dist/cjs/ion-img.cjs.entry.js +1 -1
  126. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +5 -5
  127. package/dist/cjs/ion-input.cjs.entry.js +88 -8
  128. package/dist/cjs/ion-item-option_3.cjs.entry.js +9 -9
  129. package/dist/cjs/ion-item_8.cjs.entry.js +22 -22
  130. package/dist/cjs/ion-loading.cjs.entry.js +5 -6
  131. package/dist/cjs/ion-menu_3.cjs.entry.js +26 -31
  132. package/dist/cjs/ion-modal.cjs.entry.js +28 -11
  133. package/dist/cjs/ion-nav_2.cjs.entry.js +5 -8
  134. package/dist/cjs/{ion-picker-column.cjs.entry.js → ion-picker-column-internal.cjs.entry.js} +89 -105
  135. package/dist/cjs/{ion-picker.cjs.entry.js → ion-picker-internal.cjs.entry.js} +23 -30
  136. package/dist/cjs/ion-popover.cjs.entry.js +4 -5
  137. package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -6
  138. package/dist/cjs/ion-radio_2.cjs.entry.js +76 -7
  139. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  140. package/dist/cjs/ion-refresher_2.cjs.entry.js +7 -7
  141. package/dist/cjs/ion-reorder_2.cjs.entry.js +3 -3
  142. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  143. package/dist/cjs/ion-route_4.cjs.entry.js +3 -3
  144. package/dist/cjs/ion-searchbar.cjs.entry.js +6 -6
  145. package/dist/cjs/ion-segment_2.cjs.entry.js +8 -8
  146. package/dist/cjs/ion-select_3.cjs.entry.js +164 -73
  147. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  148. package/dist/cjs/ion-split-pane.cjs.entry.js +16 -26
  149. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +8 -8
  150. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  151. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  152. package/dist/cjs/ion-textarea.cjs.entry.js +67 -7
  153. package/dist/cjs/ion-toast.cjs.entry.js +8 -14
  154. package/dist/cjs/ion-toggle.cjs.entry.js +63 -7
  155. package/dist/cjs/ionic.cjs.js +1 -1
  156. package/dist/cjs/loader.cjs.js +1 -1
  157. package/dist/cjs/{overlays-8f32c4ca.js → overlays-330df245.js} +4 -11
  158. package/dist/cjs/{swipe-back-f93021d8.js → swipe-back-8411f044.js} +2 -2
  159. package/dist/collection/collection-manifest.json +6 -7
  160. package/dist/collection/components/accordion-group/accordion-group.md.css +26 -4
  161. package/dist/collection/components/action-sheet/action-sheet.ios.css +9 -16
  162. package/dist/collection/components/action-sheet/action-sheet.js +2 -2
  163. package/dist/collection/components/action-sheet/action-sheet.md.css +3 -10
  164. package/dist/collection/components/action-sheet/test/a11y/action-sheet.e2e.js +14 -23
  165. package/dist/collection/components/action-sheet/test/basic/action-sheet-rendering.e2e.js +0 -19
  166. package/dist/collection/components/action-sheet/test/basic/action-sheet.spec.js +0 -22
  167. package/dist/collection/components/alert/alert.ios.css +80 -33
  168. package/dist/collection/components/alert/alert.md.css +121 -25
  169. package/dist/collection/components/alert/test/a11y/alert.e2e.js +9 -22
  170. package/dist/collection/components/back-button/back-button.ios.css +1 -1
  171. package/dist/collection/components/back-button/test/a11y/back-button.e2e.js +0 -21
  172. package/dist/collection/components/backdrop/backdrop.js +13 -1
  173. package/dist/collection/components/badge/badge.ios.css +1 -1
  174. package/dist/collection/components/badge/badge.md.css +1 -1
  175. package/dist/collection/components/badge/test/a11y/badge.e2e.js +0 -18
  176. package/dist/collection/components/breadcrumb/breadcrumb.ios.css +9 -9
  177. package/dist/collection/components/breadcrumb/breadcrumb.md.css +9 -9
  178. package/dist/collection/components/button/button.ios.css +11 -11
  179. package/dist/collection/components/button/button.md.css +9 -9
  180. package/dist/collection/components/button/test/a11y/button.e2e.js +0 -48
  181. package/dist/collection/components/button/test/wrap/button.e2e.js +24 -12
  182. package/dist/collection/components/card/card.ios.css +1 -1
  183. package/dist/collection/components/card/card.md.css +1 -1
  184. package/dist/collection/components/card-subtitle/card-subtitle.ios.css +1 -1
  185. package/dist/collection/components/card-subtitle/card-subtitle.md.css +1 -1
  186. package/dist/collection/components/card-title/card-title.md.css +1 -1
  187. package/dist/collection/components/checkbox/checkbox.ios.css +26 -8
  188. package/dist/collection/components/checkbox/checkbox.md.css +24 -5
  189. package/dist/collection/components/checkbox/test/a11y/checkbox.e2e.js +2 -11
  190. package/dist/collection/components/checkbox/test/basic/checkbox.e2e.js +0 -10
  191. package/dist/collection/components/content/content.css +4 -0
  192. package/dist/collection/components/content/content.js +4 -3
  193. package/dist/collection/components/datetime/datetime.ios.css +117 -105
  194. package/dist/collection/components/datetime/datetime.js +126 -31
  195. package/dist/collection/components/datetime/datetime.md.css +114 -106
  196. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +1 -1
  197. package/dist/collection/components/datetime/test/a11y/datetime.spec.js +9 -6
  198. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +75 -8
  199. package/dist/collection/components/datetime/test/datetime.e2e.js +2 -2
  200. package/dist/collection/components/datetime/test/disabled/datetime.spec.js +4 -4
  201. package/dist/collection/components/datetime/test/format.spec.js +65 -15
  202. package/dist/collection/components/datetime/test/locale/datetime.e2e.js +2 -2
  203. package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +6 -6
  204. package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +1 -1
  205. package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +41 -43
  206. package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +1 -1
  207. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +4 -4
  208. package/dist/collection/components/datetime/test/values/datetime.e2e.js +12 -15
  209. package/dist/collection/components/datetime/utils/data.js +1 -1
  210. package/dist/collection/components/datetime/utils/format.js +23 -37
  211. package/dist/collection/components/datetime/utils/warn.js +45 -0
  212. package/dist/collection/components/datetime-button/{datetime-button.md.css → datetime-button.css} +7 -10
  213. package/dist/collection/components/datetime-button/datetime-button.js +15 -14
  214. package/dist/collection/components/datetime-button/test/basic/datetime-button.e2e.js +66 -12
  215. package/dist/collection/components/fab/fab.js +2 -2
  216. package/dist/collection/components/fab-button/fab-button.ios.css +7 -7
  217. package/dist/collection/components/fab-button/fab-button.js +2 -2
  218. package/dist/collection/components/fab-button/fab-button.md.css +1 -1
  219. package/dist/collection/components/fab-button/test/a11y/fab-button.e2e.js +0 -50
  220. package/dist/collection/components/fab-list/fab-list.css +42 -4
  221. package/dist/collection/components/fab-list/fab-list.js +2 -2
  222. package/dist/collection/components/footer/footer.js +2 -2
  223. package/dist/collection/components/grid/grid.js +2 -2
  224. package/dist/collection/components/header/header.js +2 -2
  225. package/dist/collection/components/img/img.js +1 -1
  226. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  227. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +3 -3
  228. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  229. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +3 -3
  230. package/dist/collection/components/input/input.ios.css +104 -11
  231. package/dist/collection/components/input/input.js +144 -6
  232. package/dist/collection/components/input/input.md.css +216 -35
  233. package/dist/collection/components/input/test/a11y/input.e2e.js +3 -41
  234. package/dist/collection/components/input/test/item/input.spec.js +24 -0
  235. package/dist/collection/components/input/test/legacy/a11y/input.e2e.js +28 -0
  236. package/dist/collection/components/input/test/legacy/basic/input.e2e.js +181 -0
  237. package/dist/collection/components/input/test/legacy/clear-on-edit/input.e2e.js +55 -0
  238. package/dist/collection/components/input/test/legacy/input-events.e2e.js +71 -0
  239. package/dist/collection/components/input/test/legacy/masking/input.e2e.js +26 -0
  240. package/dist/collection/components/input/test/legacy/spec/input.e2e.js +16 -0
  241. package/dist/collection/components/item/item.ios.css +30 -6
  242. package/dist/collection/components/item/item.md.css +97 -24
  243. package/dist/collection/components/item/test/a11y/item.e2e.js +40 -0
  244. package/dist/collection/components/item/test/counter/item.e2e.js +49 -0
  245. package/dist/collection/components/item/test/highlight/item.e2e.js +14 -0
  246. package/dist/collection/components/item/test/legacy/alignment/item.e2e.js +14 -0
  247. package/dist/collection/components/item/test/legacy/fill/item.e2e.js +14 -0
  248. package/dist/collection/components/item/test/legacy/form/item.e2e.js +14 -0
  249. package/dist/collection/components/item-divider/item-divider.ios.css +3 -3
  250. package/dist/collection/components/item-divider/item-divider.js +2 -2
  251. package/dist/collection/components/item-divider/item-divider.md.css +3 -3
  252. package/dist/collection/components/item-group/item-group.js +1 -1
  253. package/dist/collection/components/item-option/item-option.ios.css +2 -2
  254. package/dist/collection/components/item-option/item-option.js +2 -2
  255. package/dist/collection/components/item-option/item-option.md.css +1 -1
  256. package/dist/collection/components/item-options/item-options.ios.css +1 -1
  257. package/dist/collection/components/item-options/item-options.js +1 -1
  258. package/dist/collection/components/item-options/item-options.md.css +1 -1
  259. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  260. package/dist/collection/components/item-sliding/test/a11y/item-sliding.e2e.js +0 -28
  261. package/dist/collection/components/label/label.ios.css +1 -1
  262. package/dist/collection/components/label/label.js +1 -1
  263. package/dist/collection/components/label/label.md.css +2 -2
  264. package/dist/collection/components/label/test/a11y/label.e2e.js +0 -20
  265. package/dist/collection/components/list/list.js +1 -1
  266. package/dist/collection/components/list/list.md.css +26 -2
  267. package/dist/collection/components/list-header/list-header.ios.css +2 -2
  268. package/dist/collection/components/list-header/list-header.js +2 -2
  269. package/dist/collection/components/list-header/list-header.md.css +1 -1
  270. package/dist/collection/components/loading/loading.ios.css +2 -2
  271. package/dist/collection/components/loading/loading.js +2 -2
  272. package/dist/collection/components/loading/loading.md.css +3 -3
  273. package/dist/collection/components/loading/test/a11y/loading.e2e.js +5 -21
  274. package/dist/collection/components/menu/menu.ios.css +53 -72
  275. package/dist/collection/components/menu/menu.js +15 -21
  276. package/dist/collection/components/menu/menu.md.css +53 -72
  277. package/dist/collection/components/menu-button/menu-button.ios.css +1 -1
  278. package/dist/collection/components/menu-button/menu-button.js +2 -2
  279. package/dist/collection/components/menu-button/test/a11y/menu-button.e2e.js +0 -14
  280. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  281. package/dist/collection/components/modal/gestures/swipe-to-close.js +1 -1
  282. package/dist/collection/components/modal/modal.ios.css +38 -9
  283. package/dist/collection/components/modal/modal.js +3 -3
  284. package/dist/collection/components/modal/modal.md.css +1 -1
  285. package/dist/collection/components/modal/utils.js +8 -2
  286. package/dist/collection/components/nav/nav.js +3 -23
  287. package/dist/collection/components/nav/test/nav-controller.spec.js +36 -36
  288. package/dist/collection/components/nav-link/nav-link.js +1 -1
  289. package/dist/collection/components/note/note.ios.css +1 -1
  290. package/dist/collection/components/note/note.js +2 -2
  291. package/dist/collection/components/note/note.md.css +1 -1
  292. package/dist/collection/components/picker/picker.ios.css +234 -97
  293. package/dist/collection/components/picker/picker.js +738 -488
  294. package/dist/collection/components/picker/picker.md.css +226 -98
  295. package/dist/collection/components/picker/test/basic/picker.e2e.js +13 -99
  296. package/dist/collection/components/{picker-legacy → picker}/test/is-open/picker.e2e.js +4 -4
  297. package/dist/collection/components/{picker-legacy → picker}/test/picker-id.spec.js +5 -5
  298. package/dist/collection/components/{picker-legacy → picker}/test/trigger/picker.e2e.js +1 -1
  299. package/dist/collection/components/{picker-legacy-column → picker-column}/picker-column.ios.css +26 -2
  300. package/dist/collection/components/picker-column/picker-column.js +335 -499
  301. package/dist/collection/components/{picker-legacy-column → picker-column}/picker-column.md.css +27 -3
  302. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column-aria.spec.js +3 -3
  303. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column-dynamic.spec.js +2 -2
  304. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column.spec.js +2 -2
  305. package/dist/collection/components/{picker-legacy-column → picker-column}/test/standalone/picker-column.e2e.js +3 -3
  306. package/dist/collection/components/{picker-column-option/picker-column-option.md.css → picker-column-internal/picker-column-internal.ios.css} +53 -6
  307. package/dist/collection/components/picker-column-internal/picker-column-internal.js +566 -0
  308. package/dist/collection/components/{picker-column/picker-column.css → picker-column-internal/picker-column-internal.md.css} +83 -96
  309. package/dist/collection/components/{picker-column/test/basic/picker-column.e2e.js → picker-column-internal/test/basic/picker-column-internal.e2e.js} +8 -8
  310. package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +162 -0
  311. package/dist/collection/components/{picker-legacy/picker.ios.css → picker-internal/picker-internal.ios.css} +117 -155
  312. package/dist/collection/components/picker-internal/picker-internal.js +560 -0
  313. package/dist/collection/components/{picker-legacy/picker.md.css → picker-internal/picker-internal.md.css} +115 -144
  314. package/dist/collection/components/{picker/test/a11y/picker.e2e.js → picker-internal/test/a11y/picker-internal.e2e.js} +2 -2
  315. package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +118 -0
  316. package/dist/collection/components/{picker/test/keyboard-entry/picker.e2e.js → picker-internal/test/keyboard-entry/picker-internal.e2e.js} +42 -79
  317. package/dist/collection/components/popover/popover.ios.css +34 -3
  318. package/dist/collection/components/popover/popover.js +2 -2
  319. package/dist/collection/components/progress-bar/progress-bar.ios.css +11 -17
  320. package/dist/collection/components/progress-bar/progress-bar.js +1 -4
  321. package/dist/collection/components/progress-bar/progress-bar.md.css +10 -8
  322. package/dist/collection/components/radio/radio.ios.css +101 -10
  323. package/dist/collection/components/radio/radio.js +119 -5
  324. package/dist/collection/components/radio/radio.md.css +105 -8
  325. package/dist/collection/components/radio/test/a11y/radio.e2e.js +81 -114
  326. package/dist/collection/components/radio/test/legacy/a11y/radio.e2e.js +53 -0
  327. package/dist/collection/components/radio/test/legacy/basic/radio.e2e.js +127 -0
  328. package/dist/collection/components/radio-group/radio-group.js +1 -1
  329. package/dist/collection/components/radio-group/test/legacy/basic/radio-group.e2e.js +122 -0
  330. package/dist/collection/components/radio-group/test/legacy/form/radio-group.e2e.js +30 -0
  331. package/dist/collection/components/radio-group/test/legacy/search/radio-group.e2e.js +38 -0
  332. package/dist/collection/components/range/range.ios.css +81 -12
  333. package/dist/collection/components/range/range.md.css +135 -19
  334. package/dist/collection/components/range/test/a11y/range.e2e.js +8 -18
  335. package/dist/collection/components/refresher/refresher.ios.css +27 -4
  336. package/dist/collection/components/refresher/refresher.js +1 -1
  337. package/dist/collection/components/refresher/refresher.md.css +30 -7
  338. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  339. package/dist/collection/components/reorder/reorder.js +1 -1
  340. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  341. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  342. package/dist/collection/components/router-link/router-link.css +1 -1
  343. package/dist/collection/components/router-link/router-link.js +2 -2
  344. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  345. package/dist/collection/components/row/row.js +1 -1
  346. package/dist/collection/components/searchbar/searchbar.ios.css +59 -11
  347. package/dist/collection/components/searchbar/searchbar.js +4 -4
  348. package/dist/collection/components/searchbar/searchbar.md.css +82 -10
  349. package/dist/collection/components/segment/segment.js +2 -2
  350. package/dist/collection/components/segment/test/a11y/segment.e2e.js +0 -23
  351. package/dist/collection/components/segment-button/segment-button.ios.css +3 -3
  352. package/dist/collection/components/segment-button/segment-button.js +3 -3
  353. package/dist/collection/components/segment-button/segment-button.md.css +2 -2
  354. package/dist/collection/components/select/select.ios.css +81 -10
  355. package/dist/collection/components/select/select.js +173 -64
  356. package/dist/collection/components/select/select.md.css +169 -38
  357. package/dist/collection/components/select/test/a11y/select.e2e.js +4 -68
  358. package/dist/collection/components/select/test/legacy/async/select.e2e.js +19 -0
  359. package/dist/collection/components/select/test/legacy/basic/select.e2e.js +145 -0
  360. package/dist/collection/components/select/test/legacy/compare-with/select.e2e.js +67 -0
  361. package/dist/collection/components/select/test/legacy/custom/custom.e2e.js +13 -0
  362. package/dist/collection/components/select/test/legacy/single-value/select.e2e.js +16 -0
  363. package/dist/collection/components/select/test/legacy/spec/select.e2e.js +14 -0
  364. package/dist/collection/components/select/test/legacy/standalone/select.e2e.js +18 -0
  365. package/dist/collection/components/select/test/legacy/wrapping/select.e2e.js +39 -0
  366. package/dist/collection/components/select-option/select-option.js +1 -1
  367. package/dist/collection/components/select-popover/select-popover.js +1 -1
  368. package/dist/collection/components/select-popover/select-popover.md.css +4 -4
  369. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  370. package/dist/collection/components/spinner/spinner.js +1 -1
  371. package/dist/collection/components/split-pane/split-pane.ios.css +55 -3
  372. package/dist/collection/components/split-pane/split-pane.js +14 -48
  373. package/dist/collection/components/split-pane/split-pane.md.css +55 -3
  374. package/dist/collection/components/tab/tab.js +2 -2
  375. package/dist/collection/components/tab-bar/tab-bar.ios.css +4 -4
  376. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  377. package/dist/collection/components/tab-bar/tab-bar.md.css +3 -3
  378. package/dist/collection/components/tab-button/tab-button.ios.css +94 -16
  379. package/dist/collection/components/tab-button/tab-button.js +2 -2
  380. package/dist/collection/components/tab-button/tab-button.md.css +93 -10
  381. package/dist/collection/components/tabs/tabs.js +1 -1
  382. package/dist/collection/components/text/text.js +2 -2
  383. package/dist/collection/components/textarea/test/a11y/textarea.e2e.js +3 -41
  384. package/dist/collection/components/textarea/test/legacy/a11y/textarea.e2e.js +31 -0
  385. package/dist/collection/components/textarea/test/legacy/autogrow/textarea.e2e.js +58 -0
  386. package/dist/collection/components/textarea/test/legacy/basic/textarea.e2e.js +43 -0
  387. package/dist/collection/components/textarea/test/legacy/clear-on-edit/textarea.e2e.js +25 -0
  388. package/dist/collection/components/textarea/textarea.ios.css +103 -13
  389. package/dist/collection/components/textarea/textarea.js +84 -5
  390. package/dist/collection/components/textarea/textarea.md.css +226 -37
  391. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  392. package/dist/collection/components/title/title.ios.css +21 -2
  393. package/dist/collection/components/title/title.js +2 -2
  394. package/dist/collection/components/toast/test/a11y/toast.e2e.js +24 -89
  395. package/dist/collection/components/toast/toast.ios.css +55 -8
  396. package/dist/collection/components/toast/toast.js +3 -9
  397. package/dist/collection/components/toast/toast.md.css +57 -10
  398. package/dist/collection/components/toggle/test/a11y/toggle.e2e.js +2 -8
  399. package/dist/collection/components/toggle/test/legacy/basic/toggle.e2e.js +83 -0
  400. package/dist/collection/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.js +37 -0
  401. package/dist/collection/components/toggle/test/legacy/sizes/power-outline.svg +1 -0
  402. package/dist/collection/components/toggle/test/legacy/sizes/toggle.e2e.js +14 -0
  403. package/dist/collection/components/toggle/toggle.ios.css +90 -11
  404. package/dist/collection/components/toggle/toggle.js +101 -5
  405. package/dist/collection/components/toggle/toggle.md.css +91 -6
  406. package/dist/collection/components/toolbar/toolbar.ios.css +2 -2
  407. package/dist/collection/components/toolbar/toolbar.js +2 -2
  408. package/dist/collection/components/toolbar/toolbar.md.css +1 -1
  409. package/dist/collection/css/test/a11y/typography.e2e.js +0 -18
  410. package/dist/collection/utils/gesture/button-active.js +1 -1
  411. package/dist/collection/utils/gesture/gesture-controller.js +1 -1
  412. package/dist/collection/utils/native/status-bar.js +11 -0
  413. package/dist/collection/utils/overlays.js +4 -11
  414. package/dist/collection/utils/test/aria.spec.js +1 -2
  415. package/dist/collection/utils/test/playwright/generator.js +0 -1
  416. package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
  417. package/dist/docs.json +305 -548
  418. package/dist/esm/{button-active-35dc239f.js → button-active-4bee452c.js} +2 -2
  419. package/dist/esm/{data-691286f1.js → data-7f65d952.js} +24 -39
  420. package/dist/esm/{gesture-controller-314a54f6.js → gesture-controller-1bf57181.js} +1 -1
  421. package/dist/esm/{index-39782642.js → index-2cf77112.js} +2 -2
  422. package/dist/esm/index.js +3 -3
  423. package/dist/esm/ion-accordion_2.entry.js +1 -1
  424. package/dist/esm/ion-action-sheet.entry.js +8 -8
  425. package/dist/esm/ion-alert.entry.js +6 -6
  426. package/dist/esm/ion-app_8.entry.js +18 -17
  427. package/dist/esm/ion-avatar_3.entry.js +3 -3
  428. package/dist/esm/ion-back-button.entry.js +1 -1
  429. package/dist/esm/ion-backdrop.entry.js +13 -1
  430. package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
  431. package/dist/esm/ion-button_2.entry.js +2 -2
  432. package/dist/esm/ion-card_5.entry.js +5 -5
  433. package/dist/esm/ion-checkbox.entry.js +2 -2
  434. package/dist/esm/ion-col_3.entry.js +3 -3
  435. package/dist/esm/ion-datetime-button.entry.js +15 -14
  436. package/dist/esm/ion-datetime_3.entry.js +173 -54
  437. package/dist/esm/ion-fab_3.entry.js +9 -9
  438. package/dist/esm/ion-img.entry.js +1 -1
  439. package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
  440. package/dist/esm/ion-input.entry.js +88 -8
  441. package/dist/esm/ion-item-option_3.entry.js +9 -9
  442. package/dist/esm/ion-item_8.entry.js +22 -22
  443. package/dist/esm/ion-loading.entry.js +5 -6
  444. package/dist/esm/ion-menu_3.entry.js +26 -31
  445. package/dist/esm/ion-modal.entry.js +28 -11
  446. package/dist/esm/ion-nav_2.entry.js +5 -8
  447. package/dist/esm/{ion-picker-column.entry.js → ion-picker-column-internal.entry.js} +89 -105
  448. package/dist/esm/{ion-picker.entry.js → ion-picker-internal.entry.js} +23 -30
  449. package/dist/esm/ion-popover.entry.js +4 -5
  450. package/dist/esm/ion-progress-bar.entry.js +3 -6
  451. package/dist/esm/ion-radio_2.entry.js +77 -8
  452. package/dist/esm/ion-range.entry.js +3 -3
  453. package/dist/esm/ion-refresher_2.entry.js +7 -7
  454. package/dist/esm/ion-reorder_2.entry.js +3 -3
  455. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  456. package/dist/esm/ion-route_4.entry.js +3 -3
  457. package/dist/esm/ion-searchbar.entry.js +6 -6
  458. package/dist/esm/ion-segment_2.entry.js +8 -8
  459. package/dist/esm/ion-select_3.entry.js +162 -71
  460. package/dist/esm/ion-spinner.entry.js +1 -1
  461. package/dist/esm/ion-split-pane.entry.js +16 -26
  462. package/dist/esm/ion-tab-bar_2.entry.js +8 -8
  463. package/dist/esm/ion-tab_2.entry.js +3 -3
  464. package/dist/esm/ion-text.entry.js +2 -2
  465. package/dist/esm/ion-textarea.entry.js +68 -8
  466. package/dist/esm/ion-toast.entry.js +9 -15
  467. package/dist/esm/ion-toggle.entry.js +64 -8
  468. package/dist/esm/ionic.js +1 -1
  469. package/dist/esm/loader.js +1 -1
  470. package/dist/esm/{overlays-2d8629c6.js → overlays-33ae3ea0.js} +4 -11
  471. package/dist/esm/{swipe-back-7f7620ca.js → swipe-back-c06602f2.js} +2 -2
  472. package/dist/esm-es5/button-active-4bee452c.js +4 -0
  473. package/dist/esm-es5/data-7f65d952.js +4 -0
  474. package/dist/esm-es5/{gesture-controller-314a54f6.js → gesture-controller-1bf57181.js} +1 -1
  475. package/dist/esm-es5/{index-39782642.js → index-2cf77112.js} +1 -1
  476. package/dist/esm-es5/index.js +1 -1
  477. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  478. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  479. package/dist/esm-es5/ion-alert.entry.js +1 -1
  480. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  481. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  482. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  483. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  484. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  485. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  486. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  487. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  488. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  489. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  490. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  491. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  492. package/dist/esm-es5/ion-img.entry.js +1 -1
  493. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  494. package/dist/esm-es5/ion-input.entry.js +1 -1
  495. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  496. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  497. package/dist/esm-es5/ion-loading.entry.js +1 -1
  498. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  499. package/dist/esm-es5/ion-modal.entry.js +1 -1
  500. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  501. package/dist/esm-es5/ion-picker-column-internal.entry.js +4 -0
  502. package/dist/esm-es5/ion-picker-internal.entry.js +4 -0
  503. package/dist/esm-es5/ion-popover.entry.js +1 -1
  504. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  505. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  506. package/dist/esm-es5/ion-range.entry.js +1 -1
  507. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  508. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  509. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  510. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  511. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  512. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  513. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  514. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  515. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  516. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  517. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  518. package/dist/esm-es5/ion-text.entry.js +1 -1
  519. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  520. package/dist/esm-es5/ion-toast.entry.js +1 -1
  521. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  522. package/dist/esm-es5/ionic.js +1 -1
  523. package/dist/esm-es5/loader.js +1 -1
  524. package/dist/esm-es5/overlays-33ae3ea0.js +4 -0
  525. package/dist/esm-es5/{swipe-back-7f7620ca.js → swipe-back-c06602f2.js} +1 -1
  526. package/dist/html.html-data.json +29 -152
  527. package/dist/ionic/index.esm.js +1 -1
  528. package/dist/ionic/ionic.esm.js +1 -1
  529. package/dist/ionic/p-016976a7.system.entry.js +4 -0
  530. package/dist/ionic/p-078fd095.system.entry.js +4 -0
  531. package/dist/ionic/p-0ae25399.system.entry.js +4 -0
  532. package/dist/ionic/p-0b955124.system.js +1 -1
  533. package/dist/ionic/{p-364fd2ae.system.entry.js → p-0e29919c.system.entry.js} +1 -1
  534. package/dist/ionic/{p-dd79d499.system.entry.js → p-0eef8b34.system.entry.js} +1 -1
  535. package/dist/ionic/p-0fd295ef.system.entry.js +4 -0
  536. package/dist/ionic/p-108f730a.entry.js +4 -0
  537. package/dist/ionic/{p-590ecff0.entry.js → p-1c531ca2.entry.js} +1 -1
  538. package/dist/ionic/p-1f583f73.entry.js +4 -0
  539. package/dist/ionic/{p-b853d98f.system.entry.js → p-1f6cdf2c.system.entry.js} +1 -1
  540. package/dist/ionic/{p-c2938ad7.system.entry.js → p-20a6513f.system.entry.js} +2 -2
  541. package/dist/ionic/p-20f7a91e.system.entry.js +4 -0
  542. package/dist/ionic/p-28a92c20.system.entry.js +4 -0
  543. package/dist/ionic/p-2da0a76c.entry.js +4 -0
  544. package/dist/ionic/{p-b46bdb73.system.entry.js → p-2f66e177.system.entry.js} +1 -1
  545. package/dist/ionic/p-30c9e049.system.entry.js +4 -0
  546. package/dist/ionic/{p-3e1e14d9.system.js → p-31b2326e.system.js} +1 -1
  547. package/dist/ionic/p-333f06ed.entry.js +4 -0
  548. package/dist/ionic/p-389ff4d2.system.entry.js +4 -0
  549. package/dist/ionic/p-396c1a55.entry.js +4 -0
  550. package/dist/ionic/p-3a54c070.system.entry.js +4 -0
  551. package/dist/ionic/{p-02bf61be.entry.js → p-3a98f8db.entry.js} +1 -1
  552. package/dist/ionic/p-3cdbaa49.entry.js +4 -0
  553. package/dist/ionic/{p-6028d77a.entry.js → p-400574bf.entry.js} +1 -1
  554. package/dist/ionic/p-48af4316.system.entry.js +4 -0
  555. package/dist/ionic/p-4c256bc2.system.entry.js +4 -0
  556. package/dist/ionic/p-4dfc27eb.system.entry.js +4 -0
  557. package/dist/ionic/p-51f08a9f.entry.js +4 -0
  558. package/dist/ionic/p-56da74d7.system.entry.js +4 -0
  559. package/dist/ionic/p-5b6aa59a.entry.js +4 -0
  560. package/dist/ionic/p-5e60dbc8.entry.js +4 -0
  561. package/dist/ionic/p-5eea8b4c.system.js +4 -0
  562. package/dist/ionic/p-5f456b3c.system.entry.js +4 -0
  563. package/dist/ionic/p-61c0f8bf.system.entry.js +4 -0
  564. package/dist/ionic/p-680f96e8.system.entry.js +4 -0
  565. package/dist/ionic/p-6a34980d.entry.js +4 -0
  566. package/dist/ionic/p-6b02edd6.js +4 -0
  567. package/dist/ionic/{p-156299c1.system.entry.js → p-6f38d0c5.system.entry.js} +1 -1
  568. package/dist/ionic/p-70026e8f.system.entry.js +4 -0
  569. package/dist/ionic/p-776b144b.system.js +4 -0
  570. package/dist/ionic/p-78edc0cd.system.entry.js +4 -0
  571. package/dist/ionic/{p-ffee8d11.system.entry.js → p-7c32fb95.system.entry.js} +1 -1
  572. package/dist/ionic/p-7dc7514a.entry.js +4 -0
  573. package/dist/ionic/p-84513dfb.entry.js +4 -0
  574. package/dist/ionic/p-84879f61.system.entry.js +4 -0
  575. package/dist/ionic/p-8569d759.system.entry.js +4 -0
  576. package/dist/ionic/{p-68211d11.entry.js → p-8a671f16.entry.js} +1 -1
  577. package/dist/ionic/p-8ebd9951.entry.js +4 -0
  578. package/dist/ionic/{p-3db5b566.system.entry.js → p-92c2178e.system.entry.js} +1 -1
  579. package/dist/ionic/{p-9ff0b9d7.entry.js → p-97eca294.entry.js} +1 -1
  580. package/dist/ionic/{p-a69ca607.system.entry.js → p-9a6ab80a.system.entry.js} +1 -1
  581. package/dist/ionic/p-9beb5039.system.js +4 -0
  582. package/dist/ionic/p-9f5b40c0.system.entry.js +4 -0
  583. package/dist/ionic/p-9f6397ce.entry.js +4 -0
  584. package/dist/ionic/p-a02b2d75.entry.js +4 -0
  585. package/dist/ionic/{p-f83192d4.entry.js → p-a051c371.entry.js} +1 -1
  586. package/dist/ionic/p-a19f5ae1.entry.js +4 -0
  587. package/dist/ionic/p-a1bfaa5c.system.entry.js +4 -0
  588. package/dist/ionic/{p-77cf63b4.entry.js → p-a2ad515b.entry.js} +1 -1
  589. package/dist/ionic/{p-1d1ef635.entry.js → p-aa7ae6aa.entry.js} +1 -1
  590. package/dist/ionic/p-aaa4ffb3.system.entry.js +4 -0
  591. package/dist/ionic/{p-e1386ddc.system.entry.js → p-ac20160b.system.entry.js} +1 -1
  592. package/dist/ionic/p-ac979ebf.system.entry.js +4 -0
  593. package/dist/ionic/p-b37e4ee5.system.entry.js +4 -0
  594. package/dist/ionic/p-b498de69.entry.js +4 -0
  595. package/dist/ionic/p-b96699d3.system.entry.js +4 -0
  596. package/dist/ionic/{p-9b97df10.js → p-bb3615f7.js} +1 -1
  597. package/dist/ionic/{p-6f5c2ebd.system.entry.js → p-bc2c03d7.system.entry.js} +1 -1
  598. package/dist/ionic/p-c3790581.entry.js +4 -0
  599. package/dist/ionic/{p-20d469d0.system.js → p-c7c8429a.system.js} +1 -1
  600. package/dist/ionic/p-c851b204.system.entry.js +4 -0
  601. package/dist/ionic/p-ccd419ae.entry.js +4 -0
  602. package/dist/ionic/p-cd055d60.system.entry.js +4 -0
  603. package/dist/ionic/{p-0d25b742.js → p-cdc277a6.js} +1 -1
  604. package/dist/ionic/{p-e45248be.entry.js → p-ce2eabd5.entry.js} +1 -1
  605. package/dist/ionic/p-d7260b87.entry.js +4 -0
  606. package/dist/ionic/p-d74ca358.entry.js +4 -0
  607. package/dist/ionic/{p-aeb2bfc4.entry.js → p-d8607ede.entry.js} +1 -1
  608. package/dist/ionic/{p-78aade1a.entry.js → p-d95c8e90.entry.js} +1 -1
  609. package/dist/ionic/p-dbb4c012.entry.js +4 -0
  610. package/dist/ionic/p-dce9bc53.entry.js +4 -0
  611. package/dist/ionic/{p-416b7011.system.entry.js → p-df281664.system.entry.js} +2 -2
  612. package/dist/ionic/p-df468a8f.entry.js +4 -0
  613. package/dist/ionic/p-e1cc4ad7.entry.js +4 -0
  614. package/dist/ionic/p-e68980ff.system.entry.js +4 -0
  615. package/dist/ionic/p-e6aaff14.system.entry.js +4 -0
  616. package/dist/ionic/p-e81d133a.js +4 -0
  617. package/dist/ionic/p-ea8fbf09.entry.js +4 -0
  618. package/dist/ionic/p-ed582803.entry.js +4 -0
  619. package/dist/ionic/{p-48346946.system.entry.js → p-eda7a1db.system.entry.js} +1 -1
  620. package/dist/ionic/{p-d9310104.entry.js → p-efe9180b.entry.js} +1 -1
  621. package/dist/ionic/p-f1ad3b3d.entry.js +4 -0
  622. package/dist/ionic/p-f1cc690e.entry.js +4 -0
  623. package/dist/ionic/p-f20d9ef9.system.js +4 -0
  624. package/dist/ionic/p-f46775e4.entry.js +4 -0
  625. package/dist/ionic/{p-8ededb41.js → p-f5d2dc9b.js} +1 -1
  626. package/dist/ionic/p-f7b43141.system.entry.js +4 -0
  627. package/dist/ionic/p-f88dd429.entry.js +4 -0
  628. package/dist/ionic/p-f89ae259.js +4 -0
  629. package/dist/ionic/p-f97b9cdd.system.entry.js +4 -0
  630. package/dist/ionic/p-fd3f475f.entry.js +4 -0
  631. package/dist/ionic/{p-a0da38e6.system.js → p-fd9a9db3.system.js} +1 -1
  632. package/dist/ionic/{p-73fef0c6.entry.js → p-fe92da17.entry.js} +1 -1
  633. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +0 -8
  634. package/dist/types/components/backdrop/backdrop.d.ts +3 -0
  635. package/dist/types/components/datetime/datetime-interface.d.ts +10 -0
  636. package/dist/types/components/datetime/datetime.d.ts +10 -1
  637. package/dist/types/components/datetime/utils/data.d.ts +7 -11
  638. package/dist/types/components/datetime/utils/format.d.ts +7 -13
  639. package/dist/types/components/datetime/utils/warn.d.ts +8 -0
  640. package/dist/types/components/input/input.d.ts +26 -0
  641. package/dist/types/components/menu/menu.d.ts +2 -12
  642. package/dist/types/components/modal/utils.d.ts +4 -0
  643. package/dist/types/components/nav/nav.d.ts +1 -4
  644. package/dist/types/components/picker/picker.d.ts +129 -75
  645. package/dist/types/components/picker-column/picker-column.d.ts +39 -99
  646. package/dist/types/components/picker-column-internal/picker-column-internal-interfaces.d.ts +5 -0
  647. package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +102 -0
  648. package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +8 -0
  649. package/dist/types/components/picker-internal/picker-internal.d.ts +102 -0
  650. package/dist/types/components/radio/radio.d.ts +24 -1
  651. package/dist/types/components/select/select.d.ts +15 -0
  652. package/dist/types/components/split-pane/split-pane.d.ts +2 -14
  653. package/dist/types/components/textarea/textarea.d.ts +17 -0
  654. package/dist/types/components/toast/toast-interface.d.ts +4 -0
  655. package/dist/types/components/toggle/toggle.d.ts +21 -1
  656. package/dist/types/components.d.ts +186 -161
  657. package/dist/types/interface.d.ts +1 -1
  658. package/dist/types/utils/config.d.ts +2 -2
  659. package/dist/types/utils/gesture/gesture-controller.d.ts +0 -1
  660. package/dist/types/utils/native/status-bar.d.ts +1 -0
  661. package/dist/types/utils/overlays.d.ts +2 -5
  662. package/dist/types/utils/test/playwright/generator.d.ts +1 -3
  663. package/hydrate/index.js +2045 -1712
  664. package/package.json +1 -1
  665. package/components/ion-picker-column-option.d.ts +0 -11
  666. package/components/ion-picker-column-option.js +0 -9
  667. package/components/ion-picker-legacy-column.d.ts +0 -11
  668. package/components/ion-picker-legacy-column.js +0 -9
  669. package/components/ion-picker-legacy.js +0 -311
  670. package/components/picker-column-option.js +0 -124
  671. package/components/picker-column2.js +0 -381
  672. package/css/themes/dark.always.css +0 -160
  673. package/css/themes/dark.always.css.map +0 -1
  674. package/css/themes/dark.class.css +0 -160
  675. package/css/themes/dark.class.css.map +0 -1
  676. package/css/themes/dark.css +0 -3
  677. package/css/themes/dark.css.map +0 -1
  678. package/css/themes/dark.system.css +0 -162
  679. package/css/themes/dark.system.css.map +0 -1
  680. package/css/themes/high-contrast-dark.always.css +0 -180
  681. package/css/themes/high-contrast-dark.always.css.map +0 -1
  682. package/css/themes/high-contrast-dark.class.css +0 -180
  683. package/css/themes/high-contrast-dark.class.css.map +0 -1
  684. package/css/themes/high-contrast-dark.css +0 -3
  685. package/css/themes/high-contrast-dark.css.map +0 -1
  686. package/css/themes/high-contrast-dark.system.css +0 -182
  687. package/css/themes/high-contrast-dark.system.css.map +0 -1
  688. package/css/themes/high-contrast.always.css +0 -101
  689. package/css/themes/high-contrast.always.css.map +0 -1
  690. package/css/themes/high-contrast.class.css +0 -101
  691. package/css/themes/high-contrast.class.css.map +0 -1
  692. package/css/themes/high-contrast.css +0 -3
  693. package/css/themes/high-contrast.css.map +0 -1
  694. package/css/themes/high-contrast.system.css +0 -103
  695. package/css/themes/high-contrast.system.css.map +0 -1
  696. package/dist/cjs/ion-picker-column-option.cjs.entry.js +0 -106
  697. package/dist/collection/components/datetime-button/datetime-button.ios.css +0 -107
  698. package/dist/collection/components/picker/test/custom/picker.e2e.js +0 -85
  699. package/dist/collection/components/picker-column/test/disabled/picker-column.e2e.js +0 -91
  700. package/dist/collection/components/picker-column/test/slots/picker-column.e2e.js +0 -39
  701. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +0 -87
  702. package/dist/collection/components/picker-column-option/picker-column-option.js +0 -173
  703. package/dist/collection/components/picker-column-option/test/a11y/picker-column-option.e2e.js +0 -18
  704. package/dist/collection/components/picker-column-option/test/basic/picker-column-option.e2e.js +0 -37
  705. package/dist/collection/components/picker-column-option/test/picker-column-option.spec.js +0 -29
  706. package/dist/collection/components/picker-legacy/picker.js +0 -811
  707. package/dist/collection/components/picker-legacy/test/basic/picker.e2e.js +0 -25
  708. package/dist/collection/components/picker-legacy-column/picker-column.js +0 -419
  709. package/dist/collection/components/progress-bar/test/a11y/progress-bar.e2e.js +0 -24
  710. package/dist/collection/components/refresher/test/a11y/refresher.e2e.js +0 -26
  711. package/dist/collection/components/router-link/test/a11y/router-link.e2e.js +0 -23
  712. package/dist/collection/components/select-popover/test/a11y/select-popover.e2e.js +0 -32
  713. package/dist/collection/components/split-pane/test/wrapped-menu/split-pane.e2e.js +0 -41
  714. package/dist/collection/themes/test/colors/theme.e2e.js +0 -170
  715. package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +0 -65
  716. package/dist/esm/ion-picker-column-option.entry.js +0 -102
  717. package/dist/esm-es5/button-active-35dc239f.js +0 -4
  718. package/dist/esm-es5/data-691286f1.js +0 -4
  719. package/dist/esm-es5/ion-picker-column-option.entry.js +0 -4
  720. package/dist/esm-es5/ion-picker-column.entry.js +0 -4
  721. package/dist/esm-es5/ion-picker.entry.js +0 -4
  722. package/dist/esm-es5/overlays-2d8629c6.js +0 -4
  723. package/dist/ionic/p-0a90cc4d.system.entry.js +0 -4
  724. package/dist/ionic/p-0bc978ee.entry.js +0 -4
  725. package/dist/ionic/p-115d351a.entry.js +0 -4
  726. package/dist/ionic/p-158e5d3f.entry.js +0 -4
  727. package/dist/ionic/p-19385313.entry.js +0 -4
  728. package/dist/ionic/p-1b8684c2.system.entry.js +0 -4
  729. package/dist/ionic/p-1c6bc252.system.entry.js +0 -4
  730. package/dist/ionic/p-1dc24d13.system.entry.js +0 -4
  731. package/dist/ionic/p-2203ea50.system.entry.js +0 -4
  732. package/dist/ionic/p-229d211f.entry.js +0 -4
  733. package/dist/ionic/p-23771339.entry.js +0 -4
  734. package/dist/ionic/p-2581c0b4.system.entry.js +0 -4
  735. package/dist/ionic/p-2aa9dbb1.entry.js +0 -4
  736. package/dist/ionic/p-2b17eb06.entry.js +0 -4
  737. package/dist/ionic/p-2f6b3478.system.entry.js +0 -4
  738. package/dist/ionic/p-2fbf97f4.system.entry.js +0 -4
  739. package/dist/ionic/p-3348d9b6.entry.js +0 -4
  740. package/dist/ionic/p-336ef060.entry.js +0 -4
  741. package/dist/ionic/p-41cd4e22.system.entry.js +0 -4
  742. package/dist/ionic/p-44ba1907.system.entry.js +0 -4
  743. package/dist/ionic/p-46e78ed6.entry.js +0 -4
  744. package/dist/ionic/p-49cbf8ca.entry.js +0 -4
  745. package/dist/ionic/p-50b79c48.entry.js +0 -4
  746. package/dist/ionic/p-5289aade.js +0 -4
  747. package/dist/ionic/p-54908979.entry.js +0 -4
  748. package/dist/ionic/p-5642acf7.system.entry.js +0 -4
  749. package/dist/ionic/p-5f739516.system.js +0 -4
  750. package/dist/ionic/p-66e6860f.system.js +0 -4
  751. package/dist/ionic/p-6ac84217.entry.js +0 -4
  752. package/dist/ionic/p-6b1b24df.entry.js +0 -4
  753. package/dist/ionic/p-6c48dd91.system.js +0 -4
  754. package/dist/ionic/p-6e7f5166.entry.js +0 -4
  755. package/dist/ionic/p-6e8d0527.system.entry.js +0 -4
  756. package/dist/ionic/p-6ea89932.js +0 -4
  757. package/dist/ionic/p-743030ee.entry.js +0 -4
  758. package/dist/ionic/p-7d6c9121.entry.js +0 -4
  759. package/dist/ionic/p-7e230af6.entry.js +0 -4
  760. package/dist/ionic/p-7efa91b5.entry.js +0 -4
  761. package/dist/ionic/p-7f90cee1.entry.js +0 -4
  762. package/dist/ionic/p-814129a1.system.entry.js +0 -4
  763. package/dist/ionic/p-814aa0b4.system.entry.js +0 -4
  764. package/dist/ionic/p-892757c2.system.entry.js +0 -4
  765. package/dist/ionic/p-8aecc954.system.entry.js +0 -4
  766. package/dist/ionic/p-90149377.system.entry.js +0 -4
  767. package/dist/ionic/p-90fcbf72.js +0 -4
  768. package/dist/ionic/p-95861049.entry.js +0 -4
  769. package/dist/ionic/p-9954f160.entry.js +0 -4
  770. package/dist/ionic/p-9a71fceb.system.entry.js +0 -4
  771. package/dist/ionic/p-9c69a78d.system.entry.js +0 -4
  772. package/dist/ionic/p-9d10df75.system.entry.js +0 -4
  773. package/dist/ionic/p-a53d820e.system.entry.js +0 -4
  774. package/dist/ionic/p-a6a15217.system.entry.js +0 -4
  775. package/dist/ionic/p-ab722722.system.entry.js +0 -4
  776. package/dist/ionic/p-ab782835.system.entry.js +0 -4
  777. package/dist/ionic/p-aca86637.system.entry.js +0 -4
  778. package/dist/ionic/p-b0ba9ea5.entry.js +0 -4
  779. package/dist/ionic/p-b17f058b.system.js +0 -4
  780. package/dist/ionic/p-b8e465da.system.entry.js +0 -4
  781. package/dist/ionic/p-ba7347c4.entry.js +0 -4
  782. package/dist/ionic/p-c8f93816.system.entry.js +0 -4
  783. package/dist/ionic/p-c994c528.system.entry.js +0 -4
  784. package/dist/ionic/p-ce1cf1e0.system.entry.js +0 -4
  785. package/dist/ionic/p-d2670dd3.entry.js +0 -4
  786. package/dist/ionic/p-dd2392f1.entry.js +0 -4
  787. package/dist/ionic/p-e3c13a24.system.entry.js +0 -4
  788. package/dist/ionic/p-e4162cae.entry.js +0 -4
  789. package/dist/ionic/p-e88ae7f0.system.entry.js +0 -4
  790. package/dist/ionic/p-ec4e0057.entry.js +0 -4
  791. package/dist/ionic/p-ef065e0d.system.entry.js +0 -4
  792. package/dist/ionic/p-f3c1bbcb.entry.js +0 -4
  793. package/dist/ionic/p-f7d618b7.entry.js +0 -4
  794. package/dist/ionic/p-faea6b57.entry.js +0 -4
  795. package/dist/ionic/p-fe990e42.system.entry.js +0 -4
  796. package/dist/types/components/picker/picker-interfaces.d.ts +0 -8
  797. package/dist/types/components/picker-column/picker-column-interfaces.d.ts +0 -4
  798. package/dist/types/components/picker-column-option/picker-column-option.d.ts +0 -66
  799. package/dist/types/components/picker-legacy/picker.d.ts +0 -158
  800. package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
  801. /package/dist/collection/components/{picker-legacy → picker}/animations/ios.enter.js +0 -0
  802. /package/dist/collection/components/{picker-legacy → picker}/animations/ios.leave.js +0 -0
  803. /package/dist/collection/components/picker/{picker-interfaces.js → picker-interface.js} +0 -0
  804. /package/dist/collection/components/{picker-legacy-column → picker-column}/test/test.utils.js +0 -0
  805. /package/dist/collection/components/{picker-column/picker-column-interfaces.js → picker-column-internal/picker-column-internal-interfaces.js} +0 -0
  806. /package/dist/collection/components/{picker-legacy/picker-interface.js → picker-internal/picker-internal-interfaces.js} +0 -0
  807. /package/dist/types/components/{picker-legacy → picker}/animations/ios.enter.d.ts +0 -0
  808. /package/dist/types/components/{picker-legacy → picker}/animations/ios.leave.d.ts +0 -0
  809. /package/dist/types/components/{picker-legacy → picker}/picker-interface.d.ts +0 -0
  810. /package/dist/types/components/{picker-legacy-column → picker-column}/test/test.utils.d.ts +0 -0
@@ -61,8 +61,6 @@
61
61
  *
62
62
  * @prop --wheel-highlight-background: The background of the highlight under the selected
63
63
  * item when using a wheel style layout, or in the month/year picker for grid style layouts.
64
- * @prop --wheel-highlight-border-radius: The border radius of the highlight under the selected
65
- * item when using a wheel style layout, or in the month/year picker for grid style layouts.
66
64
  * @prop --wheel-fade-background-rgb: The color of the gradient covering non-selected items
67
65
  * when using a wheel style layout, or in the month/year picker for grid style layouts. Must
68
66
  * be in RGB format, e.g. `255, 255, 255`.
@@ -73,6 +71,19 @@
73
71
  overflow: hidden;
74
72
  }
75
73
 
74
+ /**
75
+ * When using the wheel picker to switch
76
+ * between months, sometimes the allowed
77
+ * dates may be filtered. As a result, it
78
+ * is possible to get a layout shift as
79
+ * the picker column will shrink to fit the
80
+ * widest item in the column. Setting a minimum
81
+ * width avoids this layout shifting.
82
+ */
83
+ ion-picker-column-internal {
84
+ min-width: 26px;
85
+ }
86
+
76
87
  :host(.datetime-size-fixed) {
77
88
  width: auto;
78
89
  height: auto;
@@ -83,7 +94,7 @@
83
94
  }
84
95
 
85
96
  /**
86
- * This ensures that the picker is appropriately
97
+ * This ensures that the picker is apppropriately
87
98
  * sized and never truncates the text.
88
99
  */
89
100
  :host(.datetime-size-fixed.datetime-prefer-wheel) {
@@ -158,13 +169,79 @@
158
169
  display: flex;
159
170
  }
160
171
 
161
- :host(.show-month-and-year) .calendar-next-prev,
162
- :host(.show-month-and-year) .calendar-days-of-week,
163
- :host(.show-month-and-year) .calendar-body,
164
- :host(.show-month-and-year) .datetime-time {
165
- display: none;
172
+ /**
173
+ * Safari 14 has an issue where a scroll event
174
+ * is incorrectly fired when unhiding the calendar content.
175
+ * To workaround this, we set the opacity
176
+ * of the content to 0 and hide it offscreen.
177
+ *
178
+ * -webkit-named-image is something only WebKit supports
179
+ * so we use this to detect general WebKit support.
180
+ * aspect-ratio is only supported in Safari 15+
181
+ * so by checking lack of aspect-ratio support, we know
182
+ * that we are in a pre-Safari 15 browser.
183
+ *
184
+ * TODO(FW-554): Remove when iOS 14 support is dropped.
185
+ */
186
+ @supports (background: -webkit-named-image(apple-pay-logo-black)) and (not (aspect-ratio: 1/1)) {
187
+ :host(.show-month-and-year) .calendar-next-prev,
188
+ :host(.show-month-and-year) .calendar-days-of-week,
189
+ :host(.show-month-and-year) .calendar-body,
190
+ :host(.show-month-and-year) .datetime-time {
191
+ position: absolute;
192
+ /**
193
+ * Use visibility instead of
194
+ * opacity to ensure element
195
+ * cannot receive focus
196
+ */
197
+ visibility: hidden;
198
+ pointer-events: none;
199
+ }
200
+ @supports (inset-inline-start: 0) {
201
+ :host(.show-month-and-year) .calendar-next-prev,
202
+ :host(.show-month-and-year) .calendar-days-of-week,
203
+ :host(.show-month-and-year) .calendar-body,
204
+ :host(.show-month-and-year) .datetime-time {
205
+ inset-inline-start: -99999px;
206
+ }
207
+ }
208
+ @supports not (inset-inline-start: 0) {
209
+ :host(.show-month-and-year) .calendar-next-prev,
210
+ :host(.show-month-and-year) .calendar-days-of-week,
211
+ :host(.show-month-and-year) .calendar-body,
212
+ :host(.show-month-and-year) .datetime-time {
213
+ left: -99999px;
214
+ }
215
+ :host-context([dir=rtl]):host(.show-month-and-year) .calendar-next-prev, :host-context([dir=rtl]).show-month-and-year .calendar-next-prev, :host-context([dir=rtl]):host(.show-month-and-year) .calendar-days-of-week, :host-context([dir=rtl]).show-month-and-year .calendar-days-of-week, :host-context([dir=rtl]):host(.show-month-and-year) .calendar-body, :host-context([dir=rtl]).show-month-and-year .calendar-body, :host-context([dir=rtl]):host(.show-month-and-year) .datetime-time, :host-context([dir=rtl]).show-month-and-year .datetime-time {
216
+ left: unset;
217
+ right: unset;
218
+ right: -99999px;
219
+ }
220
+ @supports selector(:dir(rtl)) {
221
+ :host(.show-month-and-year:dir(rtl)) .calendar-next-prev, :host(.show-month-and-year:dir(rtl)) .calendar-days-of-week, :host(.show-month-and-year:dir(rtl)) .calendar-body, :host(.show-month-and-year:dir(rtl)) .datetime-time {
222
+ left: unset;
223
+ right: unset;
224
+ right: -99999px;
225
+ }
226
+ }
227
+ }
228
+ }
229
+ /**
230
+ * This support check two cases:
231
+ * 1. A WebKit browser that supports aspect-ratio (Safari 15+)
232
+ * 2. Any non-WebKit browser.
233
+ * Note that just overriding this display: none is not
234
+ * sufficient to resolve the issue mentioned above, which
235
+ * is why we do another set of @supports checks.
236
+ */
237
+ @supports (not (background: -webkit-named-image(apple-pay-logo-black))) or ((background: -webkit-named-image(apple-pay-logo-black)) and (aspect-ratio: 1/1)) {
238
+ :host(.show-month-and-year) .calendar-next-prev,
239
+ :host(.show-month-and-year) .calendar-days-of-week,
240
+ :host(.show-month-and-year) .calendar-body,
241
+ :host(.show-month-and-year) .datetime-time {
242
+ display: none;
243
+ }
166
244
  }
167
-
168
245
  :host(.month-year-picker-open) .datetime-footer {
169
246
  display: none;
170
247
  }
@@ -240,8 +317,24 @@
240
317
  justify-content: space-between;
241
318
  }
242
319
 
320
+ :host .calendar-action-buttons ion-item,
243
321
  :host .calendar-action-buttons ion-button {
244
- --background: transparent;
322
+ --background: translucent;
323
+ }
324
+
325
+ :host .calendar-action-buttons ion-item ion-label {
326
+ display: flex;
327
+ align-items: center;
328
+ width: auto;
329
+ }
330
+
331
+ :host .calendar-action-buttons ion-item ion-icon {
332
+ -webkit-padding-start: 4px;
333
+ padding-inline-start: 4px;
334
+ -webkit-padding-end: 0;
335
+ padding-inline-end: 0;
336
+ padding-top: 0;
337
+ padding-bottom: 0;
245
338
  }
246
339
 
247
340
  :host .calendar-days-of-week {
@@ -407,7 +500,7 @@
407
500
  padding-bottom: 6px;
408
501
  display: flex;
409
502
  border: none;
410
- background: var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));
503
+ background: var(--ion-color-step-300, #edeef0);
411
504
  color: var(--ion-text-color, #000);
412
505
  font-family: inherit;
413
506
  font-size: inherit;
@@ -423,72 +516,8 @@
423
516
  position: static;
424
517
  }
425
518
 
426
- :host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle {
427
- color: var(--ion-color-base);
428
- }
429
-
430
- .calendar-month-year {
431
- min-width: 0;
432
- }
433
-
434
- .calendar-month-year-toggle {
435
- font-family: inherit;
436
- font-size: inherit;
437
- font-style: inherit;
438
- font-weight: inherit;
439
- letter-spacing: inherit;
440
- text-decoration: inherit;
441
- text-indent: inherit;
442
- text-overflow: inherit;
443
- text-transform: inherit;
444
- text-align: inherit;
445
- white-space: inherit;
446
- color: inherit;
447
- position: relative;
448
- border: 0;
449
- outline: none;
450
- background: transparent;
451
- cursor: pointer;
452
- z-index: 1;
453
- }
454
- .calendar-month-year-toggle::after {
455
- left: 0;
456
- right: 0;
457
- top: 0;
458
- bottom: 0;
459
- position: absolute;
460
- content: "";
461
- opacity: 0;
462
- transition: opacity 15ms linear, background-color 15ms linear;
463
- z-index: -1;
464
- }
465
- .calendar-month-year-toggle.ion-focused::after {
466
- background: currentColor;
467
- }
468
- .calendar-month-year-toggle:disabled {
469
- opacity: 0.3;
470
- pointer-events: none;
471
- }
472
-
473
- .calendar-month-year-toggle ion-icon {
474
- -webkit-padding-start: 4px;
475
- padding-inline-start: 4px;
476
- -webkit-padding-end: 0;
477
- padding-inline-end: 0;
478
- padding-top: 0;
479
- padding-bottom: 0;
480
- flex-shrink: 0;
481
- }
482
-
483
- .calendar-month-year-toggle #toggle-wrapper {
484
- display: inline-flex;
485
- align-items: center;
486
- }
487
-
488
- ion-picker {
489
- --highlight-background: var(--wheel-highlight-background);
490
- --highlight-border-radius: var(--wheel-highlight-border-radius);
491
- --fade-background-rgb: var(--wheel-fade-background-rgb);
519
+ :host(.show-month-and-year) .calendar-action-buttons ion-item {
520
+ --color: var(--ion-color-base);
492
521
  }
493
522
 
494
523
  /**
@@ -547,9 +576,9 @@ ion-picker {
547
576
  * }
548
577
  */
549
578
  :host {
550
- --background: var(--ion-color-light, #f4f5f8);
551
- --background-rgb: var(--ion-color-light-rgb, 244, 245, 248);
552
- --title-color: var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));
579
+ --background: var(--ion-color-light, #ffffff);
580
+ --background-rgb: var(--ion-color-light-rgb);
581
+ --title-color: var(--ion-color-step-600, #666666);
553
582
  }
554
583
 
555
584
  :host(.datetime-presentation-date-time:not(.datetime-prefer-wheel)),
@@ -565,7 +594,7 @@ ion-picker {
565
594
  padding-inline-end: 16px;
566
595
  padding-top: 16px;
567
596
  padding-bottom: 16px;
568
- border-bottom: 0.55px solid var(--ion-color-step-200, var(--ion-background-color-step-200, #cccccc));
597
+ border-bottom: 0.55px solid var(--ion-color-step-200, #cccccc);
569
598
  font-size: min(0.875rem, 22.4px);
570
599
  }
571
600
 
@@ -577,31 +606,15 @@ ion-picker {
577
606
  margin-top: 10px;
578
607
  }
579
608
 
580
- .calendar-month-year-toggle {
581
- -webkit-padding-start: 16px;
582
- padding-inline-start: 16px;
583
- -webkit-padding-end: 16px;
584
- padding-inline-end: 16px;
585
- padding-top: 0px;
586
- padding-bottom: 0px;
587
- min-height: 44px;
609
+ :host .calendar-action-buttons ion-item {
610
+ --padding-start: 16px;
611
+ --background-hover: transparent;
612
+ --background-activated: transparent;
588
613
  font-size: min(1rem, 25.6px);
589
614
  font-weight: 600;
590
615
  }
591
- .calendar-month-year-toggle.ion-focused::after {
592
- opacity: 0.15;
593
- }
594
-
595
- .calendar-month-year-toggle #toggle-wrapper {
596
- -webkit-margin-start: 0;
597
- margin-inline-start: 0;
598
- -webkit-margin-end: 8px;
599
- margin-inline-end: 8px;
600
- margin-top: 10px;
601
- margin-bottom: 10px;
602
- }
603
616
 
604
- :host .calendar-action-buttons .calendar-month-year-toggle ion-icon,
617
+ :host .calendar-action-buttons ion-item ion-icon,
605
618
  :host .calendar-action-buttons ion-buttons ion-button {
606
619
  color: var(--ion-color-base);
607
620
  }
@@ -627,7 +640,7 @@ ion-picker {
627
640
  padding-inline-end: 8px;
628
641
  padding-top: 0;
629
642
  padding-bottom: 0;
630
- color: var(--ion-color-step-300, var(--ion-text-color-step-700, #b3b3b3));
643
+ color: var(--ion-color-step-300, #b3b3b3);
631
644
  font-size: min(0.75rem, 19.2px);
632
645
  font-weight: 600;
633
646
  line-height: 24px;
@@ -771,7 +784,6 @@ ion-picker {
771
784
 
772
785
  .calendar-day.calendar-day-active {
773
786
  background: rgba(var(--ion-color-base-rgb), 0.2);
774
- font-size: min(1.375rem, 35.2px);
775
787
  }
776
788
 
777
789
  /**
@@ -823,7 +835,7 @@ ion-picker {
823
835
  padding-inline-end: 8px;
824
836
  padding-top: 8px;
825
837
  padding-bottom: 8px;
826
- border-top: 0.55px solid var(--ion-color-step-200, var(--ion-background-color-step-200, #cccccc));
838
+ border-top: 0.55px solid var(--ion-color-step-200, #cccccc);
827
839
  }
828
840
 
829
841
  :host .datetime-buttons ::slotted(ion-buttons),
@@ -11,11 +11,12 @@ import { caretDownSharp, caretUpSharp, chevronBack, chevronDown, chevronForward
11
11
  import { getIonMode } from "../../global/ionic-global";
12
12
  import { isSameDay, warnIfValueOutOfBounds, isBefore, isAfter } from "./utils/comparison";
13
13
  import { generateMonths, getDaysOfMonth, getDaysOfWeek, getToday, getMonthColumnData, getDayColumnData, getYearColumnData, getTimeColumnsData, getCombinedDateColumnData, } from "./utils/data";
14
- import { formatValue, getLocalizedTime, getMonthAndDay, getMonthAndYear } from "./utils/format";
14
+ import { formatValue, getLocalizedDateTime, getLocalizedTime, getMonthAndYear } from "./utils/format";
15
15
  import { isLocaleDayPeriodRTL, isMonthFirstLocale, getNumDaysInMonth, getHourCycle } from "./utils/helpers";
16
16
  import { calculateHourFromAMPM, convertDataToISO, getClosestValidDate, getEndOfWeek, getNextDay, getNextMonth, getNextWeek, getNextYear, getPreviousDay, getPreviousMonth, getPreviousWeek, getPreviousYear, getStartOfWeek, validateParts, } from "./utils/manipulation";
17
17
  import { clampDate, convertToArrayOfNumbers, getPartsFromCalendarDay, parseAmPm, parseDate, parseMaxParts, parseMinParts, } from "./utils/parse";
18
18
  import { getCalendarDayState, getHighlightStyles, isDayDisabled, isMonthDisabled, isNextMonthDisabled, isPrevMonthDisabled, } from "./utils/state";
19
+ import { checkForPresentationFormatMismatch, warnIfTimeZoneProvided } from "./utils/warn";
19
20
  /**
20
21
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
21
22
  *
@@ -650,6 +651,7 @@ export class Datetime {
650
651
  this.color = 'primary';
651
652
  this.name = this.inputId;
652
653
  this.disabled = false;
654
+ this.formatOptions = undefined;
653
655
  this.readonly = false;
654
656
  this.isDateEnabled = undefined;
655
657
  this.min = undefined;
@@ -677,6 +679,11 @@ export class Datetime {
677
679
  this.size = 'fixed';
678
680
  this.preferWheel = false;
679
681
  }
682
+ formatOptionsChanged() {
683
+ const { formatOptions, presentation } = this;
684
+ checkForPresentationFormatMismatch(presentation, formatOptions);
685
+ warnIfTimeZoneProvided(formatOptions);
686
+ }
680
687
  disabledChanged() {
681
688
  this.emitStyle();
682
689
  }
@@ -686,6 +693,10 @@ export class Datetime {
686
693
  maxChanged() {
687
694
  this.processMaxParts();
688
695
  }
696
+ presentationChanged() {
697
+ const { formatOptions, presentation } = this;
698
+ checkForPresentationFormatMismatch(presentation, formatOptions);
699
+ }
689
700
  get isGridStyle() {
690
701
  const { presentation, preferWheel } = this;
691
702
  const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
@@ -921,7 +932,7 @@ export class Datetime {
921
932
  });
922
933
  }
923
934
  componentWillLoad() {
924
- const { el, highlightedDates, multiple, presentation, preferWheel } = this;
935
+ const { el, formatOptions, highlightedDates, multiple, presentation, preferWheel } = this;
925
936
  if (multiple) {
926
937
  if (presentation !== 'date') {
927
938
  printIonWarning('Multiple date selection is only supported for presentation="date".', el);
@@ -938,6 +949,10 @@ export class Datetime {
938
949
  printIonWarning('The highlightedDates property is not supported with preferWheel="true".', el);
939
950
  }
940
951
  }
952
+ if (formatOptions) {
953
+ checkForPresentationFormatMismatch(presentation, formatOptions);
954
+ warnIfTimeZoneProvided(formatOptions);
955
+ }
941
956
  const hourValues = (this.parsedHourValues = convertToArrayOfNumbers(this.hourValues));
942
957
  const minuteValues = (this.parsedMinuteValues = convertToArrayOfNumbers(this.minuteValues));
943
958
  const monthValues = (this.parsedMonthValues = convertToArrayOfNumbers(this.monthValues));
@@ -1015,7 +1030,7 @@ export class Datetime {
1015
1030
  const renderArray = forcePresentation === 'time-date'
1016
1031
  ? [this.renderTimePickerColumns(forcePresentation), this.renderDatePickerColumns(forcePresentation)]
1017
1032
  : [this.renderDatePickerColumns(forcePresentation), this.renderTimePickerColumns(forcePresentation)];
1018
- return h("ion-picker", null, renderArray);
1033
+ return h("ion-picker-internal", null, renderArray);
1019
1034
  }
1020
1035
  renderDatePickerColumns(forcePresentation) {
1021
1036
  return forcePresentation === 'date-time' || forcePresentation === 'time-date'
@@ -1074,13 +1089,23 @@ export class Datetime {
1074
1089
  const todayString = workingParts.day !== null
1075
1090
  ? `${workingParts.year}-${workingParts.month}-${workingParts.day}`
1076
1091
  : `${defaultParts.year}-${defaultParts.month}-${defaultParts.day}`;
1077
- return (h("ion-picker-column", { class: "date-column", color: this.color, disabled: disabled, value: todayString, onIonChange: (ev) => {
1092
+ return (h("ion-picker-column-internal", { class: "date-column", color: this.color, disabled: disabled, items: items, value: todayString, onIonChange: (ev) => {
1093
+ // TODO(FW-1823) Remove this when iOS 14 support is dropped.
1094
+ // Due to a Safari 14 issue we need to destroy
1095
+ // the scroll listener before we update state
1096
+ // and trigger a re-render.
1097
+ if (this.destroyCalendarListener) {
1098
+ this.destroyCalendarListener();
1099
+ }
1078
1100
  const { value } = ev.detail;
1079
1101
  const findPart = parts.find(({ month, day, year }) => value === `${year}-${month}-${day}`);
1080
1102
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), findPart));
1081
1103
  this.setActiveParts(Object.assign(Object.assign({}, activePart), findPart));
1104
+ // We can re-attach the scroll listener after
1105
+ // the working parts have been updated.
1106
+ this.initializeCalendarListener();
1082
1107
  ev.stopPropagation();
1083
- } }, items.map((item) => (h("ion-picker-column-option", { part: item.value === todayString ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: item.value, disabled: item.disabled, value: item.value }, item.text)))));
1108
+ } }));
1084
1109
  }
1085
1110
  renderIndividualDatePickerColumns(forcePresentation) {
1086
1111
  const { workingParts, isDateEnabled } = this;
@@ -1148,12 +1173,21 @@ export class Datetime {
1148
1173
  }
1149
1174
  const { disabled, workingParts } = this;
1150
1175
  const activePart = this.getActivePartsWithFallback();
1151
- const pickerColumnValue = (_a = (workingParts.day !== null ? workingParts.day : this.defaultParts.day)) !== null && _a !== void 0 ? _a : undefined;
1152
- return (h("ion-picker-column", { class: "day-column", color: this.color, disabled: disabled, value: pickerColumnValue, onIonChange: (ev) => {
1176
+ return (h("ion-picker-column-internal", { class: "day-column", color: this.color, disabled: disabled, items: days, value: (_a = (workingParts.day !== null ? workingParts.day : this.defaultParts.day)) !== null && _a !== void 0 ? _a : undefined, onIonChange: (ev) => {
1177
+ // TODO(FW-1823) Remove this when iOS 14 support is dropped.
1178
+ // Due to a Safari 14 issue we need to destroy
1179
+ // the scroll listener before we update state
1180
+ // and trigger a re-render.
1181
+ if (this.destroyCalendarListener) {
1182
+ this.destroyCalendarListener();
1183
+ }
1153
1184
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { day: ev.detail.value }));
1154
1185
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { day: ev.detail.value }));
1186
+ // We can re-attach the scroll listener after
1187
+ // the working parts have been updated.
1188
+ this.initializeCalendarListener();
1155
1189
  ev.stopPropagation();
1156
- } }, days.map((day) => (h("ion-picker-column-option", { part: day.value === pickerColumnValue ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: day.value, disabled: day.disabled, value: day.value }, day.text)))));
1190
+ } }));
1157
1191
  }
1158
1192
  renderMonthPickerColumn(months) {
1159
1193
  if (months.length === 0) {
@@ -1161,11 +1195,21 @@ export class Datetime {
1161
1195
  }
1162
1196
  const { disabled, workingParts } = this;
1163
1197
  const activePart = this.getActivePartsWithFallback();
1164
- return (h("ion-picker-column", { class: "month-column", color: this.color, disabled: disabled, value: workingParts.month, onIonChange: (ev) => {
1198
+ return (h("ion-picker-column-internal", { class: "month-column", color: this.color, disabled: disabled, items: months, value: workingParts.month, onIonChange: (ev) => {
1199
+ // TODO(FW-1823) Remove this when iOS 14 support is dropped.
1200
+ // Due to a Safari 14 issue we need to destroy
1201
+ // the scroll listener before we update state
1202
+ // and trigger a re-render.
1203
+ if (this.destroyCalendarListener) {
1204
+ this.destroyCalendarListener();
1205
+ }
1165
1206
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { month: ev.detail.value }));
1166
1207
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { month: ev.detail.value }));
1208
+ // We can re-attach the scroll listener after
1209
+ // the working parts have been updated.
1210
+ this.initializeCalendarListener();
1167
1211
  ev.stopPropagation();
1168
- } }, months.map((month) => (h("ion-picker-column-option", { part: month.value === workingParts.month ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: month.value, disabled: month.disabled, value: month.value }, month.text)))));
1212
+ } }));
1169
1213
  }
1170
1214
  renderYearPickerColumn(years) {
1171
1215
  if (years.length === 0) {
@@ -1173,11 +1217,21 @@ export class Datetime {
1173
1217
  }
1174
1218
  const { disabled, workingParts } = this;
1175
1219
  const activePart = this.getActivePartsWithFallback();
1176
- return (h("ion-picker-column", { class: "year-column", color: this.color, disabled: disabled, value: workingParts.year, onIonChange: (ev) => {
1220
+ return (h("ion-picker-column-internal", { class: "year-column", color: this.color, disabled: disabled, items: years, value: workingParts.year, onIonChange: (ev) => {
1221
+ // TODO(FW-1823) Remove this when iOS 14 support is dropped.
1222
+ // Due to a Safari 14 issue we need to destroy
1223
+ // the scroll listener before we update state
1224
+ // and trigger a re-render.
1225
+ if (this.destroyCalendarListener) {
1226
+ this.destroyCalendarListener();
1227
+ }
1177
1228
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { year: ev.detail.value }));
1178
1229
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { year: ev.detail.value }));
1230
+ // We can re-attach the scroll listener after
1231
+ // the working parts have been updated.
1232
+ this.initializeCalendarListener();
1179
1233
  ev.stopPropagation();
1180
- } }, years.map((year) => (h("ion-picker-column-option", { part: year.value === workingParts.year ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: year.value, disabled: year.disabled, value: year.value }, year.text)))));
1234
+ } }));
1181
1235
  }
1182
1236
  renderTimePickerColumns(forcePresentation) {
1183
1237
  if (['date', 'month', 'month-year', 'year'].includes(forcePresentation)) {
@@ -1206,22 +1260,22 @@ export class Datetime {
1206
1260
  if (hoursData.length === 0)
1207
1261
  return [];
1208
1262
  const activePart = this.getActivePartsWithFallback();
1209
- return (h("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.hour, numericInput: true, onIonChange: (ev) => {
1263
+ return (h("ion-picker-column-internal", { color: this.color, disabled: disabled, value: activePart.hour, items: hoursData, numericInput: true, onIonChange: (ev) => {
1210
1264
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { hour: ev.detail.value }));
1211
1265
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { hour: ev.detail.value }));
1212
1266
  ev.stopPropagation();
1213
- } }, hoursData.map((hour) => (h("ion-picker-column-option", { part: hour.value === activePart.hour ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: hour.value, disabled: hour.disabled, value: hour.value }, hour.text)))));
1267
+ } }));
1214
1268
  }
1215
1269
  renderMinutePickerColumn(minutesData) {
1216
1270
  const { disabled, workingParts } = this;
1217
1271
  if (minutesData.length === 0)
1218
1272
  return [];
1219
1273
  const activePart = this.getActivePartsWithFallback();
1220
- return (h("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.minute, numericInput: true, onIonChange: (ev) => {
1274
+ return (h("ion-picker-column-internal", { color: this.color, disabled: disabled, value: activePart.minute, items: minutesData, numericInput: true, onIonChange: (ev) => {
1221
1275
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { minute: ev.detail.value }));
1222
1276
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { minute: ev.detail.value }));
1223
1277
  ev.stopPropagation();
1224
- } }, minutesData.map((minute) => (h("ion-picker-column-option", { part: minute.value === activePart.minute ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: minute.value, disabled: minute.disabled, value: minute.value }, minute.text)))));
1278
+ } }));
1225
1279
  }
1226
1280
  renderDayPeriodPickerColumn(dayPeriodData) {
1227
1281
  const { disabled, workingParts } = this;
@@ -1230,12 +1284,12 @@ export class Datetime {
1230
1284
  }
1231
1285
  const activePart = this.getActivePartsWithFallback();
1232
1286
  const isDayPeriodRTL = isLocaleDayPeriodRTL(this.locale);
1233
- return (h("ion-picker-column", { style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, onIonChange: (ev) => {
1287
+ return (h("ion-picker-column-internal", { style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, items: dayPeriodData, onIonChange: (ev) => {
1234
1288
  const hour = calculateHourFromAMPM(workingParts, ev.detail.value);
1235
1289
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { ampm: ev.detail.value, hour }));
1236
1290
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { ampm: ev.detail.value, hour }));
1237
1291
  ev.stopPropagation();
1238
- } }, dayPeriodData.map((dayPeriod) => (h("ion-picker-column-option", { part: dayPeriod.value === activePart.ampm ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: dayPeriod.value, disabled: dayPeriod.disabled, value: dayPeriod.value }, dayPeriod.text)))));
1292
+ } }));
1239
1293
  }
1240
1294
  renderWheelView(forcePresentation) {
1241
1295
  const { locale } = this;
@@ -1256,11 +1310,26 @@ export class Datetime {
1256
1310
  const nextMonthDisabled = disabled || isNextMonthDisabled(this.workingParts, this.maxParts);
1257
1311
  // don't use the inheritAttributes util because it removes dir from the host, and we still need that
1258
1312
  const hostDir = this.el.getAttribute('dir') || undefined;
1259
- return (h("div", { class: "calendar-header" }, h("div", { class: "calendar-action-buttons" }, h("div", { class: "calendar-month-year" }, h("button", { class: {
1260
- 'calendar-month-year-toggle': true,
1261
- 'ion-activatable': true,
1262
- 'ion-focusable': true,
1263
- }, part: "month-year-button", disabled: disabled, "aria-label": this.showMonthAndYear ? 'Hide year picker' : 'Show year picker', onClick: () => this.toggleMonthAndYearView() }, h("span", { id: "toggle-wrapper" }, getMonthAndYear(this.locale, this.workingParts), h("ion-icon", { "aria-hidden": "true", icon: this.showMonthAndYear ? expandedIcon : collapsedIcon, lazy: false, flipRtl: true })), mode === 'md' && h("ion-ripple-effect", null))), h("div", { class: "calendar-next-prev" }, h("ion-buttons", null, h("ion-button", { "aria-label": "Previous month", disabled: prevMonthDisabled, onClick: () => this.prevMonth() }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronBack, lazy: false, flipRtl: true })), h("ion-button", { "aria-label": "Next month", disabled: nextMonthDisabled, onClick: () => this.nextMonth() }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronForward, lazy: false, flipRtl: true }))))), h("div", { class: "calendar-days-of-week", "aria-hidden": "true" }, getDaysOfWeek(this.locale, mode, this.firstDayOfWeek % 7).map((d) => {
1313
+ return (h("div", { class: "calendar-header" }, h("div", { class: "calendar-action-buttons" }, h("div", { class: "calendar-month-year" }, h("ion-item", { part: "month-year-button", ref: (el) => (this.monthYearToggleItemRef = el), button: true, "aria-label": "Show year picker", detail: false, lines: "none", disabled: disabled, onClick: () => {
1314
+ var _a;
1315
+ this.toggleMonthAndYearView();
1316
+ /**
1317
+ * TODO: FW-3547
1318
+ *
1319
+ * Currently there is not a way to set the aria-label on the inner button
1320
+ * on the `ion-item` and have it be reactive to changes. This is a workaround
1321
+ * until we either refactor `ion-item` to a button or Stencil adds a way to
1322
+ * have reactive props for built-in properties, such as `aria-label`.
1323
+ */
1324
+ const { monthYearToggleItemRef } = this;
1325
+ if (monthYearToggleItemRef) {
1326
+ const btn = (_a = monthYearToggleItemRef.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-native');
1327
+ if (btn) {
1328
+ const monthYearAriaLabel = this.showMonthAndYear ? 'Hide year picker' : 'Show year picker';
1329
+ btn.setAttribute('aria-label', monthYearAriaLabel);
1330
+ }
1331
+ }
1332
+ } }, h("ion-label", null, getMonthAndYear(this.locale, this.workingParts), h("ion-icon", { "aria-hidden": "true", icon: this.showMonthAndYear ? expandedIcon : collapsedIcon, lazy: false, flipRtl: true })))), h("div", { class: "calendar-next-prev" }, h("ion-buttons", null, h("ion-button", { "aria-label": "Previous month", disabled: prevMonthDisabled, onClick: () => this.prevMonth() }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronBack, lazy: false, flipRtl: true })), h("ion-button", { "aria-label": "Next month", disabled: nextMonthDisabled, onClick: () => this.nextMonth() }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronForward, lazy: false, flipRtl: true }))))), h("div", { class: "calendar-days-of-week", "aria-hidden": "true" }, getDaysOfWeek(this.locale, mode, this.firstDayOfWeek % 7).map((d) => {
1264
1333
  return h("div", { class: "day-of-week" }, d);
1265
1334
  }))));
1266
1335
  }
@@ -1391,7 +1460,7 @@ export class Datetime {
1391
1460
  return h("slot", { name: "time-label" }, "Time");
1392
1461
  }
1393
1462
  renderTimeOverlay() {
1394
- const { disabled, hourCycle, isTimePopoverOpen, locale } = this;
1463
+ const { disabled, hourCycle, isTimePopoverOpen, locale, formatOptions } = this;
1395
1464
  const computedHourCycle = getHourCycle(locale, hourCycle);
1396
1465
  const activePart = this.getActivePartsWithFallback();
1397
1466
  return [
@@ -1411,7 +1480,7 @@ export class Datetime {
1411
1480
  await popoverRef.onWillDismiss();
1412
1481
  this.isTimePopoverOpen = false;
1413
1482
  }
1414
- } }, getLocalizedTime(locale, activePart, computedHourCycle)),
1483
+ } }, getLocalizedTime(locale, activePart, computedHourCycle, formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time)),
1415
1484
  h("ion-popover", { alignment: "center", translucent: true, overlayIndex: 1, arrow: false, onWillPresent: (ev) => {
1416
1485
  /**
1417
1486
  * Intersection Observers do not consistently fire between Blink and Webkit
@@ -1421,7 +1490,7 @@ export class Datetime {
1421
1490
  * This will correctly scroll the element position to the correct time value,
1422
1491
  * before the popover is fully presented.
1423
1492
  */
1424
- const cols = ev.target.querySelectorAll('ion-picker-column');
1493
+ const cols = ev.target.querySelectorAll('ion-picker-column-internal');
1425
1494
  // TODO (FW-615): Potentially remove this when intersection observers are fixed in picker column
1426
1495
  cols.forEach((col) => col.scrollActiveItemIntoView());
1427
1496
  }, style: {
@@ -1434,7 +1503,8 @@ export class Datetime {
1434
1503
  ];
1435
1504
  }
1436
1505
  getHeaderSelectedDateText() {
1437
- const { activeParts, multiple, titleSelectedDatesFormatter } = this;
1506
+ var _a;
1507
+ const { activeParts, formatOptions, multiple, titleSelectedDatesFormatter } = this;
1438
1508
  const isArray = Array.isArray(activeParts);
1439
1509
  let headerText;
1440
1510
  if (multiple && isArray && activeParts.length !== 1) {
@@ -1450,7 +1520,7 @@ export class Datetime {
1450
1520
  }
1451
1521
  else {
1452
1522
  // for exactly 1 day selected (multiple set or not), show a formatted version of that
1453
- headerText = getMonthAndDay(this.locale, this.getActivePartsWithFallback());
1523
+ headerText = getLocalizedDateTime(this.locale, this.getActivePartsWithFallback(), (_a = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.date) !== null && _a !== void 0 ? _a : { weekday: 'short', month: 'short', day: 'numeric' });
1454
1524
  }
1455
1525
  return headerText;
1456
1526
  }
@@ -1539,7 +1609,7 @@ export class Datetime {
1539
1609
  const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
1540
1610
  const hasWheelVariant = hasDatePresentation && preferWheel;
1541
1611
  renderHiddenInput(true, el, name, formatValue(value), disabled);
1542
- return (h(Host, { key: '62013b69f916fecf05906bb016d48912526a3d54', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses(color, {
1612
+ return (h(Host, { key: 'fc77bddc17d626819139e1c4177aa0b23d70874f', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses(color, {
1543
1613
  [mode]: true,
1544
1614
  ['datetime-readonly']: readonly,
1545
1615
  ['datetime-disabled']: disabled,
@@ -1627,6 +1697,27 @@ export class Datetime {
1627
1697
  "reflect": false,
1628
1698
  "defaultValue": "false"
1629
1699
  },
1700
+ "formatOptions": {
1701
+ "type": "unknown",
1702
+ "mutable": false,
1703
+ "complexType": {
1704
+ "original": "FormatOptions",
1705
+ "resolved": "undefined | { date: DateTimeFormatOptions; time?: DateTimeFormatOptions | undefined; } | { date?: DateTimeFormatOptions | undefined; time: DateTimeFormatOptions; }",
1706
+ "references": {
1707
+ "FormatOptions": {
1708
+ "location": "import",
1709
+ "path": "./datetime-interface",
1710
+ "id": "src/components/datetime/datetime-interface.ts::FormatOptions"
1711
+ }
1712
+ }
1713
+ },
1714
+ "required": false,
1715
+ "optional": true,
1716
+ "docs": {
1717
+ "tags": [],
1718
+ "text": "Formatting options for dates and times.\nShould include a 'date' and/or 'time' object, each of which is of type [Intl.DateTimeFormatOptions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat#options)."
1719
+ }
1720
+ },
1630
1721
  "readonly": {
1631
1722
  "type": "boolean",
1632
1723
  "mutable": false,
@@ -2322,6 +2413,9 @@ export class Datetime {
2322
2413
  static get elementRef() { return "el"; }
2323
2414
  static get watchers() {
2324
2415
  return [{
2416
+ "propName": "formatOptions",
2417
+ "methodName": "formatOptionsChanged"
2418
+ }, {
2325
2419
  "propName": "disabled",
2326
2420
  "methodName": "disabledChanged"
2327
2421
  }, {
@@ -2330,6 +2424,9 @@ export class Datetime {
2330
2424
  }, {
2331
2425
  "propName": "max",
2332
2426
  "methodName": "maxChanged"
2427
+ }, {
2428
+ "propName": "presentation",
2429
+ "methodName": "presentationChanged"
2333
2430
  }, {
2334
2431
  "propName": "yearValues",
2335
2432
  "methodName": "yearValuesChanged"
@@ -2352,5 +2449,3 @@ export class Datetime {
2352
2449
  }
2353
2450
  }
2354
2451
  let datetimeIds = 0;
2355
- const WHEEL_ITEM_PART = 'wheel-item';
2356
- const WHEEL_ITEM_ACTIVE_PART = `active`;