@ionic/core 7.7.1 → 7.7.2-dev.11707425083.192d8103

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 (694) hide show
  1. package/components/action-sheet.js +4 -4
  2. package/components/alert.js +2 -2
  3. package/components/backdrop.js +1 -13
  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 +1 -1
  8. package/components/gesture-controller.js +1 -1
  9. package/components/ion-back-button.js +1 -1
  10. package/components/ion-badge.js +2 -2
  11. package/components/ion-content.js +4 -5
  12. package/components/ion-datetime-button.js +5 -5
  13. package/components/ion-datetime.js +41 -65
  14. package/components/ion-fab-button.js +4 -4
  15. package/components/ion-fab-list.js +3 -3
  16. package/components/ion-fab.js +2 -2
  17. package/components/ion-footer.js +2 -2
  18. package/components/ion-grid.js +2 -2
  19. package/components/ion-header.js +2 -2
  20. package/components/ion-img.js +1 -1
  21. package/components/ion-infinite-scroll-content.js +2 -2
  22. package/components/ion-infinite-scroll.js +1 -1
  23. package/components/ion-input.js +4 -8
  24. package/components/ion-item-divider.js +2 -2
  25. package/components/ion-item-group.js +1 -1
  26. package/components/ion-item-option.js +4 -4
  27. package/components/ion-item-options.js +1 -1
  28. package/components/ion-item-sliding.js +1 -1
  29. package/components/ion-loading.js +3 -3
  30. package/components/ion-menu-button.js +3 -3
  31. package/components/ion-menu-toggle.js +2 -2
  32. package/components/ion-menu.js +23 -17
  33. package/components/ion-modal.js +4 -4
  34. package/components/ion-nav-link.js +1 -1
  35. package/components/ion-nav.js +8 -4
  36. package/components/ion-picker-column-option.d.ts +11 -0
  37. package/components/ion-picker-column-option.js +9 -0
  38. package/components/ion-picker-column.js +2 -2
  39. package/components/ion-picker-legacy-column.d.ts +11 -0
  40. package/components/ion-picker-legacy-column.js +9 -0
  41. package/components/{ion-picker-internal.d.ts → ion-picker-legacy.d.ts} +4 -4
  42. package/components/ion-picker-legacy.js +311 -0
  43. package/components/ion-picker.js +1 -311
  44. package/components/ion-progress-bar.js +6 -3
  45. package/components/ion-range.js +2 -2
  46. package/components/ion-refresher-content.js +1 -1
  47. package/components/ion-refresher.js +3 -3
  48. package/components/ion-reorder-group.js +1 -1
  49. package/components/ion-reorder.js +1 -1
  50. package/components/ion-router-link.js +3 -3
  51. package/components/ion-router-outlet.js +1 -1
  52. package/components/ion-row.js +1 -1
  53. package/components/ion-searchbar.js +6 -6
  54. package/components/ion-segment-button.js +4 -4
  55. package/components/ion-segment.js +2 -2
  56. package/components/ion-select-option.js +1 -1
  57. package/components/ion-select.js +2 -2
  58. package/components/ion-skeleton-text.js +2 -2
  59. package/components/ion-split-pane.js +28 -17
  60. package/components/ion-tab-bar.js +4 -4
  61. package/components/ion-tab-button.js +4 -4
  62. package/components/ion-tab.js +2 -2
  63. package/components/ion-tabs.js +1 -1
  64. package/components/ion-text.js +2 -2
  65. package/components/ion-textarea.js +7 -70
  66. package/components/ion-thumbnail.js +1 -1
  67. package/components/ion-title.js +3 -3
  68. package/components/ion-toast.js +12 -6
  69. package/components/ion-toggle.js +2 -2
  70. package/components/ion-toolbar.js +2 -2
  71. package/components/item.js +2 -2
  72. package/components/label.js +2 -2
  73. package/components/list-header.js +2 -2
  74. package/components/list.js +2 -2
  75. package/components/note.js +2 -2
  76. package/components/overlays.js +11 -4
  77. package/components/picker-column-option.js +124 -0
  78. package/components/picker-column.js +352 -324
  79. package/components/picker-column2.js +381 -0
  80. package/components/{picker-internal.js → picker.js} +33 -26
  81. package/components/popover.js +3 -3
  82. package/components/radio-group.js +1 -1
  83. package/components/radio.js +2 -2
  84. package/components/ripple-effect.js +1 -1
  85. package/components/select-popover.js +2 -2
  86. package/components/spinner.js +1 -1
  87. package/css/core.css +98 -35
  88. package/css/core.css.map +1 -1
  89. package/css/display.css.map +1 -1
  90. package/css/float-elements.css.map +1 -1
  91. package/css/global.bundle.css +1 -1
  92. package/css/global.bundle.css.map +1 -1
  93. package/css/ionic-swiper.css.map +1 -1
  94. package/css/ionic.bundle.css +1 -1
  95. package/css/ionic.bundle.css.map +1 -1
  96. package/css/padding.css.map +1 -1
  97. package/css/structure.css.map +1 -1
  98. package/css/text-alignment.css.map +1 -1
  99. package/css/text-transformation.css.map +1 -1
  100. package/css/themes/dark.always.css +122 -0
  101. package/css/themes/dark.always.css.map +1 -0
  102. package/css/themes/dark.class.css +122 -0
  103. package/css/themes/dark.class.css.map +1 -0
  104. package/css/themes/dark.css +3 -0
  105. package/css/themes/dark.css.map +1 -0
  106. package/css/themes/dark.system.css +124 -0
  107. package/css/themes/dark.system.css.map +1 -0
  108. package/css/typography.css +1 -1
  109. package/css/typography.css.map +1 -1
  110. package/css/utils.bundle.css.map +1 -1
  111. package/dist/cjs/{button-active-b8c3f603.js → button-active-600ed3e2.js} +2 -2
  112. package/dist/cjs/{data-a5109f09.js → data-e2bf21de.js} +1 -1
  113. package/dist/cjs/{gesture-controller-c40c045a.js → gesture-controller-9436f482.js} +1 -0
  114. package/dist/cjs/{index-d1b59ffa.js → index-ee07ed59.js} +1 -1
  115. package/dist/cjs/index.cjs.js +3 -3
  116. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
  117. package/dist/cjs/ion-alert.cjs.entry.js +6 -6
  118. package/dist/cjs/ion-app_8.cjs.entry.js +15 -16
  119. package/dist/cjs/ion-avatar_3.cjs.entry.js +3 -3
  120. package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
  121. package/dist/cjs/ion-backdrop.cjs.entry.js +1 -13
  122. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  123. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
  124. package/dist/cjs/ion-col_3.cjs.entry.js +3 -3
  125. package/dist/cjs/ion-datetime-button.cjs.entry.js +6 -6
  126. package/dist/cjs/ion-datetime_3.cjs.entry.js +50 -70
  127. package/dist/cjs/ion-fab_3.cjs.entry.js +9 -9
  128. package/dist/cjs/ion-img.cjs.entry.js +1 -1
  129. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -3
  130. package/dist/cjs/ion-input.cjs.entry.js +4 -6
  131. package/dist/cjs/ion-item-option_3.cjs.entry.js +7 -7
  132. package/dist/cjs/ion-item_8.cjs.entry.js +15 -15
  133. package/dist/cjs/ion-loading.cjs.entry.js +5 -4
  134. package/dist/cjs/ion-menu_3.cjs.entry.js +31 -26
  135. package/dist/cjs/ion-modal.cjs.entry.js +7 -7
  136. package/dist/cjs/ion-nav_2.cjs.entry.js +8 -5
  137. package/dist/cjs/ion-picker-column-option.cjs.entry.js +106 -0
  138. package/dist/cjs/{ion-picker-column-internal.cjs.entry.js → ion-picker-column.cjs.entry.js} +105 -89
  139. package/dist/cjs/{ion-picker-internal.cjs.entry.js → ion-picker.cjs.entry.js} +30 -23
  140. package/dist/cjs/ion-popover.cjs.entry.js +5 -4
  141. package/dist/cjs/ion-progress-bar.cjs.entry.js +6 -3
  142. package/dist/cjs/ion-radio_2.cjs.entry.js +3 -3
  143. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  144. package/dist/cjs/ion-refresher_2.cjs.entry.js +7 -7
  145. package/dist/cjs/ion-reorder_2.cjs.entry.js +3 -3
  146. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  147. package/dist/cjs/ion-route_4.cjs.entry.js +3 -3
  148. package/dist/cjs/ion-searchbar.cjs.entry.js +6 -6
  149. package/dist/cjs/ion-segment_2.cjs.entry.js +7 -7
  150. package/dist/cjs/ion-select_3.cjs.entry.js +7 -6
  151. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  152. package/dist/cjs/ion-split-pane.cjs.entry.js +26 -16
  153. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +8 -8
  154. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  155. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  156. package/dist/cjs/ion-textarea.cjs.entry.js +7 -67
  157. package/dist/cjs/ion-toast.cjs.entry.js +14 -8
  158. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  159. package/dist/cjs/ionic.cjs.js +1 -1
  160. package/dist/cjs/loader.cjs.js +1 -1
  161. package/dist/cjs/{overlays-330df245.js → overlays-8f32c4ca.js} +11 -4
  162. package/dist/cjs/{swipe-back-8411f044.js → swipe-back-f93021d8.js} +2 -2
  163. package/dist/collection/collection-manifest.json +7 -6
  164. package/dist/collection/components/action-sheet/action-sheet.ios.css +12 -5
  165. package/dist/collection/components/action-sheet/action-sheet.js +2 -2
  166. package/dist/collection/components/action-sheet/action-sheet.md.css +9 -2
  167. package/dist/collection/components/action-sheet/test/a11y/action-sheet.e2e.js +23 -14
  168. package/dist/collection/components/action-sheet/test/basic/action-sheet-rendering.e2e.js +19 -0
  169. package/dist/collection/components/action-sheet/test/basic/action-sheet.spec.js +22 -0
  170. package/dist/collection/components/alert/alert.ios.css +27 -74
  171. package/dist/collection/components/alert/alert.md.css +14 -110
  172. package/dist/collection/components/alert/test/a11y/alert.e2e.js +22 -9
  173. package/dist/collection/components/back-button/back-button.ios.css +1 -1
  174. package/dist/collection/components/back-button/test/a11y/back-button.e2e.js +21 -0
  175. package/dist/collection/components/backdrop/backdrop.js +1 -13
  176. package/dist/collection/components/badge/badge.ios.css +1 -1
  177. package/dist/collection/components/badge/badge.md.css +1 -1
  178. package/dist/collection/components/badge/test/a11y/badge.e2e.js +18 -0
  179. package/dist/collection/components/button/button.ios.css +11 -11
  180. package/dist/collection/components/button/button.md.css +9 -9
  181. package/dist/collection/components/button/test/a11y/button.e2e.js +48 -0
  182. package/dist/collection/components/button/test/wrap/button.e2e.js +12 -24
  183. package/dist/collection/components/checkbox/checkbox.ios.css +8 -26
  184. package/dist/collection/components/checkbox/checkbox.md.css +5 -24
  185. package/dist/collection/components/checkbox/test/a11y/checkbox.e2e.js +11 -2
  186. package/dist/collection/components/checkbox/test/basic/checkbox.e2e.js +10 -0
  187. package/dist/collection/components/content/content.css +0 -4
  188. package/dist/collection/components/content/content.js +3 -4
  189. package/dist/collection/components/datetime/datetime.ios.css +99 -67
  190. package/dist/collection/components/datetime/datetime.js +25 -37
  191. package/dist/collection/components/datetime/datetime.md.css +101 -65
  192. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +1 -1
  193. package/dist/collection/components/datetime/test/a11y/datetime.spec.js +6 -9
  194. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +10 -0
  195. package/dist/collection/components/datetime/test/datetime.e2e.js +2 -2
  196. package/dist/collection/components/datetime/test/disabled/datetime.spec.js +4 -4
  197. package/dist/collection/components/datetime/test/locale/datetime.e2e.js +2 -2
  198. package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +6 -6
  199. package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +1 -1
  200. package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +43 -41
  201. package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +1 -1
  202. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +4 -4
  203. package/dist/collection/components/datetime/test/values/datetime.e2e.js +15 -12
  204. package/dist/collection/components/datetime/utils/data.js +1 -1
  205. package/dist/collection/components/datetime-button/datetime-button.ios.css +107 -0
  206. package/dist/collection/components/datetime-button/datetime-button.js +5 -5
  207. package/dist/collection/components/datetime-button/{datetime-button.css → datetime-button.md.css} +9 -6
  208. package/dist/collection/components/datetime-button/test/basic/datetime-button.e2e.js +12 -0
  209. package/dist/collection/components/fab/fab.js +2 -2
  210. package/dist/collection/components/fab-button/fab-button.ios.css +13 -13
  211. package/dist/collection/components/fab-button/fab-button.js +2 -2
  212. package/dist/collection/components/fab-button/fab-button.md.css +4 -4
  213. package/dist/collection/components/fab-button/test/a11y/fab-button.e2e.js +50 -0
  214. package/dist/collection/components/fab-list/fab-list.css +4 -42
  215. package/dist/collection/components/fab-list/fab-list.js +2 -2
  216. package/dist/collection/components/footer/footer.js +2 -2
  217. package/dist/collection/components/grid/grid.js +2 -2
  218. package/dist/collection/components/header/header.js +2 -2
  219. package/dist/collection/components/img/img.js +1 -1
  220. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  221. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  222. package/dist/collection/components/input/input.ios.css +5 -29
  223. package/dist/collection/components/input/input.js +2 -41
  224. package/dist/collection/components/input/input.md.css +9 -76
  225. package/dist/collection/components/input/test/a11y/input.e2e.js +41 -3
  226. package/dist/collection/components/item/item.ios.css +3 -3
  227. package/dist/collection/components/item/item.md.css +6 -25
  228. package/dist/collection/components/item-divider/item-divider.js +2 -2
  229. package/dist/collection/components/item-group/item-group.js +1 -1
  230. package/dist/collection/components/item-option/item-option.ios.css +2 -2
  231. package/dist/collection/components/item-option/item-option.js +2 -2
  232. package/dist/collection/components/item-option/item-option.md.css +1 -1
  233. package/dist/collection/components/item-options/item-options.js +1 -1
  234. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  235. package/dist/collection/components/item-sliding/test/a11y/item-sliding.e2e.js +28 -0
  236. package/dist/collection/components/label/label.js +1 -1
  237. package/dist/collection/components/label/label.md.css +1 -1
  238. package/dist/collection/components/label/test/a11y/label.e2e.js +20 -0
  239. package/dist/collection/components/list/list.js +1 -1
  240. package/dist/collection/components/list/list.md.css +2 -26
  241. package/dist/collection/components/list-header/list-header.js +2 -2
  242. package/dist/collection/components/loading/loading.js +2 -2
  243. package/dist/collection/components/loading/loading.md.css +1 -1
  244. package/dist/collection/components/loading/test/a11y/loading.e2e.js +21 -5
  245. package/dist/collection/components/menu/menu.ios.css +72 -53
  246. package/dist/collection/components/menu/menu.js +21 -15
  247. package/dist/collection/components/menu/menu.md.css +72 -53
  248. package/dist/collection/components/menu-button/menu-button.ios.css +1 -1
  249. package/dist/collection/components/menu-button/menu-button.js +2 -2
  250. package/dist/collection/components/menu-button/test/a11y/menu-button.e2e.js +14 -0
  251. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  252. package/dist/collection/components/modal/gestures/swipe-to-close.js +1 -1
  253. package/dist/collection/components/modal/modal.js +3 -3
  254. package/dist/collection/components/nav/nav.js +23 -3
  255. package/dist/collection/components/nav/test/nav-controller.spec.js +36 -36
  256. package/dist/collection/components/nav-link/nav-link.js +1 -1
  257. package/dist/collection/components/note/note.js +2 -2
  258. package/dist/collection/components/picker/picker.ios.css +97 -234
  259. package/dist/collection/components/picker/picker.js +488 -738
  260. package/dist/collection/components/picker/picker.md.css +98 -226
  261. package/dist/collection/components/{picker-internal/test/a11y/picker-internal.e2e.js → picker/test/a11y/picker.e2e.js} +2 -2
  262. package/dist/collection/components/picker/test/basic/picker.e2e.js +99 -13
  263. package/dist/collection/components/picker/test/custom/picker.e2e.js +85 -0
  264. package/dist/collection/components/{picker-internal/test/keyboard-entry/picker-internal.e2e.js → picker/test/keyboard-entry/picker.e2e.js} +79 -42
  265. package/dist/collection/components/{picker-column-internal/picker-column-internal.md.css → picker-column/picker-column.css} +96 -83
  266. package/dist/collection/components/picker-column/picker-column.js +499 -335
  267. package/dist/collection/components/{picker-column-internal/test/basic/picker-column-internal.e2e.js → picker-column/test/basic/picker-column.e2e.js} +8 -8
  268. package/dist/collection/components/picker-column/test/disabled/picker-column.e2e.js +91 -0
  269. package/dist/collection/components/picker-column/test/slots/picker-column.e2e.js +39 -0
  270. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +87 -0
  271. package/dist/collection/components/picker-column-option/picker-column-option.js +173 -0
  272. package/dist/collection/components/{picker-column-internal/picker-column-internal.ios.css → picker-column-option/picker-column-option.md.css} +6 -53
  273. package/dist/collection/components/picker-column-option/test/a11y/picker-column-option.e2e.js +18 -0
  274. package/dist/collection/components/picker-column-option/test/basic/picker-column-option.e2e.js +37 -0
  275. package/dist/collection/components/picker-column-option/test/picker-column-option.spec.js +29 -0
  276. package/dist/collection/components/{picker-internal/picker-internal.md.css → picker-legacy/picker.ios.css} +157 -115
  277. package/dist/collection/components/picker-legacy/picker.js +811 -0
  278. package/dist/collection/components/{picker-internal/picker-internal.ios.css → picker-legacy/picker.md.css} +142 -117
  279. package/dist/collection/components/picker-legacy/test/basic/picker.e2e.js +25 -0
  280. package/dist/collection/components/{picker → picker-legacy}/test/is-open/picker.e2e.js +4 -4
  281. package/dist/collection/components/{picker → picker-legacy}/test/picker-id.spec.js +5 -5
  282. package/dist/collection/components/{picker → picker-legacy}/test/trigger/picker.e2e.js +1 -1
  283. package/dist/collection/components/{picker-column → picker-legacy-column}/picker-column.ios.css +2 -26
  284. package/dist/collection/components/picker-legacy-column/picker-column.js +419 -0
  285. package/dist/collection/components/{picker-column → picker-legacy-column}/picker-column.md.css +3 -27
  286. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-aria.spec.js +3 -3
  287. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-dynamic.spec.js +2 -2
  288. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column.spec.js +2 -2
  289. package/dist/collection/components/{picker-column → picker-legacy-column}/test/standalone/picker-column.e2e.js +3 -3
  290. package/dist/collection/components/popover/popover.ios.css +2 -26
  291. package/dist/collection/components/popover/popover.js +2 -2
  292. package/dist/collection/components/progress-bar/progress-bar.ios.css +17 -11
  293. package/dist/collection/components/progress-bar/progress-bar.js +4 -1
  294. package/dist/collection/components/progress-bar/progress-bar.md.css +8 -10
  295. package/dist/collection/components/progress-bar/test/a11y/progress-bar.e2e.js +24 -0
  296. package/dist/collection/components/radio/radio.ios.css +7 -44
  297. package/dist/collection/components/radio/radio.md.css +7 -44
  298. package/dist/collection/components/radio/test/a11y/radio.e2e.js +114 -81
  299. package/dist/collection/components/radio-group/radio-group.js +1 -1
  300. package/dist/collection/components/range/range.ios.css +10 -79
  301. package/dist/collection/components/range/range.md.css +17 -133
  302. package/dist/collection/components/range/test/a11y/range.e2e.js +18 -8
  303. package/dist/collection/components/refresher/refresher.ios.css +3 -26
  304. package/dist/collection/components/refresher/refresher.js +1 -1
  305. package/dist/collection/components/refresher/refresher.md.css +5 -28
  306. package/dist/collection/components/refresher/test/a11y/refresher.e2e.js +26 -0
  307. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  308. package/dist/collection/components/reorder/reorder.js +1 -1
  309. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  310. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  311. package/dist/collection/components/router-link/router-link.css +1 -1
  312. package/dist/collection/components/router-link/router-link.js +2 -2
  313. package/dist/collection/components/router-link/test/a11y/router-link.e2e.js +23 -0
  314. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  315. package/dist/collection/components/row/row.js +1 -1
  316. package/dist/collection/components/searchbar/searchbar.ios.css +8 -56
  317. package/dist/collection/components/searchbar/searchbar.js +4 -4
  318. package/dist/collection/components/searchbar/searchbar.md.css +6 -78
  319. package/dist/collection/components/segment/segment.js +2 -2
  320. package/dist/collection/components/segment/test/a11y/segment.e2e.js +23 -0
  321. package/dist/collection/components/segment-button/segment-button.js +3 -3
  322. package/dist/collection/components/segment-button/segment-button.md.css +2 -2
  323. package/dist/collection/components/select/select.ios.css +6 -24
  324. package/dist/collection/components/select/select.md.css +10 -71
  325. package/dist/collection/components/select/test/a11y/select.e2e.js +68 -4
  326. package/dist/collection/components/select-option/select-option.js +1 -1
  327. package/dist/collection/components/select-popover/select-popover.js +1 -1
  328. package/dist/collection/components/select-popover/select-popover.md.css +4 -4
  329. package/dist/collection/components/select-popover/test/a11y/select-popover.e2e.js +32 -0
  330. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  331. package/dist/collection/components/spinner/spinner.js +1 -1
  332. package/dist/collection/components/split-pane/split-pane.ios.css +2 -54
  333. package/dist/collection/components/split-pane/split-pane.js +48 -14
  334. package/dist/collection/components/split-pane/split-pane.md.css +2 -54
  335. package/dist/collection/components/split-pane/test/wrapped-menu/split-pane.e2e.js +41 -0
  336. package/dist/collection/components/tab/tab.js +2 -2
  337. package/dist/collection/components/tab-bar/tab-bar.ios.css +1 -1
  338. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  339. package/dist/collection/components/tab-bar/tab-bar.md.css +1 -1
  340. package/dist/collection/components/tab-button/tab-button.ios.css +16 -94
  341. package/dist/collection/components/tab-button/tab-button.js +2 -2
  342. package/dist/collection/components/tab-button/tab-button.md.css +10 -93
  343. package/dist/collection/components/tabs/tabs.js +1 -1
  344. package/dist/collection/components/text/text.js +2 -2
  345. package/dist/collection/components/textarea/test/a11y/textarea.e2e.js +41 -3
  346. package/dist/collection/components/textarea/textarea.ios.css +9 -98
  347. package/dist/collection/components/textarea/textarea.js +5 -84
  348. package/dist/collection/components/textarea/textarea.md.css +13 -156
  349. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  350. package/dist/collection/components/title/title.ios.css +2 -21
  351. package/dist/collection/components/title/title.js +2 -2
  352. package/dist/collection/components/toast/test/a11y/toast.e2e.js +56 -24
  353. package/dist/collection/components/toast/toast.ios.css +6 -53
  354. package/dist/collection/components/toast/toast.js +9 -3
  355. package/dist/collection/components/toast/toast.md.css +7 -54
  356. package/dist/collection/components/toggle/test/a11y/toggle.e2e.js +8 -2
  357. package/dist/collection/components/toggle/toggle.ios.css +11 -29
  358. package/dist/collection/components/toggle/toggle.md.css +5 -23
  359. package/dist/collection/components/toolbar/toolbar.js +2 -2
  360. package/dist/collection/css/test/a11y/typography.e2e.js +18 -0
  361. package/dist/collection/themes/test/colors/theme.e2e.js +114 -0
  362. package/dist/collection/utils/gesture/button-active.js +1 -1
  363. package/dist/collection/utils/gesture/gesture-controller.js +1 -1
  364. package/dist/collection/utils/overlays.js +11 -4
  365. package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +65 -0
  366. package/dist/collection/utils/test/playwright/generator.js +1 -0
  367. package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
  368. package/dist/docs.json +547 -165
  369. package/dist/esm/{button-active-4bee452c.js → button-active-35dc239f.js} +2 -2
  370. package/dist/esm/{data-0f3ab200.js → data-691286f1.js} +1 -1
  371. package/dist/esm/{gesture-controller-1bf57181.js → gesture-controller-314a54f6.js} +1 -1
  372. package/dist/esm/{index-2cf77112.js → index-39782642.js} +2 -2
  373. package/dist/esm/index.js +3 -3
  374. package/dist/esm/ion-action-sheet.entry.js +8 -8
  375. package/dist/esm/ion-alert.entry.js +6 -6
  376. package/dist/esm/ion-app_8.entry.js +15 -16
  377. package/dist/esm/ion-avatar_3.entry.js +3 -3
  378. package/dist/esm/ion-back-button.entry.js +1 -1
  379. package/dist/esm/ion-backdrop.entry.js +1 -13
  380. package/dist/esm/ion-button_2.entry.js +2 -2
  381. package/dist/esm/ion-checkbox.entry.js +2 -2
  382. package/dist/esm/ion-col_3.entry.js +3 -3
  383. package/dist/esm/ion-datetime-button.entry.js +6 -6
  384. package/dist/esm/ion-datetime_3.entry.js +49 -69
  385. package/dist/esm/ion-fab_3.entry.js +9 -9
  386. package/dist/esm/ion-img.entry.js +1 -1
  387. package/dist/esm/ion-infinite-scroll_2.entry.js +3 -3
  388. package/dist/esm/ion-input.entry.js +4 -6
  389. package/dist/esm/ion-item-option_3.entry.js +7 -7
  390. package/dist/esm/ion-item_8.entry.js +15 -15
  391. package/dist/esm/ion-loading.entry.js +5 -4
  392. package/dist/esm/ion-menu_3.entry.js +31 -26
  393. package/dist/esm/ion-modal.entry.js +7 -7
  394. package/dist/esm/ion-nav_2.entry.js +8 -5
  395. package/dist/esm/ion-picker-column-option.entry.js +102 -0
  396. package/dist/esm/{ion-picker-column-internal.entry.js → ion-picker-column.entry.js} +105 -89
  397. package/dist/esm/{ion-picker-internal.entry.js → ion-picker.entry.js} +30 -23
  398. package/dist/esm/ion-popover.entry.js +5 -4
  399. package/dist/esm/ion-progress-bar.entry.js +6 -3
  400. package/dist/esm/ion-radio_2.entry.js +3 -3
  401. package/dist/esm/ion-range.entry.js +3 -3
  402. package/dist/esm/ion-refresher_2.entry.js +7 -7
  403. package/dist/esm/ion-reorder_2.entry.js +3 -3
  404. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  405. package/dist/esm/ion-route_4.entry.js +3 -3
  406. package/dist/esm/ion-searchbar.entry.js +6 -6
  407. package/dist/esm/ion-segment_2.entry.js +7 -7
  408. package/dist/esm/ion-select_3.entry.js +7 -6
  409. package/dist/esm/ion-spinner.entry.js +1 -1
  410. package/dist/esm/ion-split-pane.entry.js +26 -16
  411. package/dist/esm/ion-tab-bar_2.entry.js +8 -8
  412. package/dist/esm/ion-tab_2.entry.js +3 -3
  413. package/dist/esm/ion-text.entry.js +2 -2
  414. package/dist/esm/ion-textarea.entry.js +8 -68
  415. package/dist/esm/ion-toast.entry.js +15 -9
  416. package/dist/esm/ion-toggle.entry.js +3 -3
  417. package/dist/esm/ionic.js +1 -1
  418. package/dist/esm/loader.js +1 -1
  419. package/dist/esm/{overlays-33ae3ea0.js → overlays-2d8629c6.js} +11 -4
  420. package/dist/esm/{swipe-back-c06602f2.js → swipe-back-7f7620ca.js} +2 -2
  421. package/dist/esm-es5/button-active-35dc239f.js +4 -0
  422. package/dist/esm-es5/{gesture-controller-1bf57181.js → gesture-controller-314a54f6.js} +1 -1
  423. package/dist/esm-es5/{index-2cf77112.js → index-39782642.js} +1 -1
  424. package/dist/esm-es5/index.js +1 -1
  425. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  426. package/dist/esm-es5/ion-alert.entry.js +1 -1
  427. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  428. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  429. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  430. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  431. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  432. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  433. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  434. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  435. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  436. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  437. package/dist/esm-es5/ion-img.entry.js +1 -1
  438. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  439. package/dist/esm-es5/ion-input.entry.js +1 -1
  440. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  441. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  442. package/dist/esm-es5/ion-loading.entry.js +1 -1
  443. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  444. package/dist/esm-es5/ion-modal.entry.js +1 -1
  445. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  446. package/dist/esm-es5/ion-picker-column-option.entry.js +4 -0
  447. package/dist/esm-es5/ion-picker-column.entry.js +4 -0
  448. package/dist/esm-es5/ion-picker.entry.js +4 -0
  449. package/dist/esm-es5/ion-popover.entry.js +1 -1
  450. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  451. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  452. package/dist/esm-es5/ion-range.entry.js +1 -1
  453. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  454. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  455. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  456. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  457. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  458. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  459. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  460. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  461. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  462. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  463. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  464. package/dist/esm-es5/ion-text.entry.js +1 -1
  465. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  466. package/dist/esm-es5/ion-toast.entry.js +1 -1
  467. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  468. package/dist/esm-es5/ionic.js +1 -1
  469. package/dist/esm-es5/loader.js +1 -1
  470. package/dist/esm-es5/overlays-2d8629c6.js +4 -0
  471. package/dist/esm-es5/{swipe-back-c06602f2.js → swipe-back-7f7620ca.js} +1 -1
  472. package/dist/html.html-data.json +152 -13
  473. package/dist/ionic/index.esm.js +1 -1
  474. package/dist/ionic/ionic.esm.js +1 -1
  475. package/dist/ionic/p-04cca62a.system.entry.js +4 -0
  476. package/dist/ionic/p-0543054b.entry.js +4 -0
  477. package/dist/ionic/p-0729b5cd.entry.js +4 -0
  478. package/dist/ionic/p-08bb849b.entry.js +4 -0
  479. package/dist/ionic/p-09fffdb0.system.entry.js +4 -0
  480. package/dist/ionic/p-0b955124.system.js +1 -1
  481. package/dist/ionic/p-0c840add.entry.js +4 -0
  482. package/dist/ionic/p-0caf81c6.system.entry.js +4 -0
  483. package/dist/ionic/{p-cdc277a6.js → p-0d25b742.js} +1 -1
  484. package/dist/ionic/p-1029611c.entry.js +4 -0
  485. package/dist/ionic/p-11b295f4.entry.js +4 -0
  486. package/dist/ionic/{p-bc2c03d7.system.entry.js → p-12b75934.system.entry.js} +1 -1
  487. package/dist/ionic/p-13264eba.system.entry.js +4 -0
  488. package/dist/ionic/{p-6f38d0c5.system.entry.js → p-156299c1.system.entry.js} +1 -1
  489. package/dist/ionic/p-15639026.entry.js +4 -0
  490. package/dist/ionic/p-156e6059.system.entry.js +4 -0
  491. package/dist/ionic/p-178690c0.system.entry.js +4 -0
  492. package/dist/ionic/p-1831387a.system.entry.js +4 -0
  493. package/dist/ionic/p-19385313.entry.js +4 -0
  494. package/dist/ionic/{p-c7c8429a.system.js → p-20d469d0.system.js} +1 -1
  495. package/dist/ionic/p-24058a38.system.entry.js +4 -0
  496. package/dist/ionic/p-24ff2729.system.entry.js +4 -0
  497. package/dist/ionic/{p-7c32fb95.system.entry.js → p-2569497d.system.entry.js} +1 -1
  498. package/dist/ionic/p-276804d2.entry.js +4 -0
  499. package/dist/ionic/p-2a515f11.system.entry.js +4 -0
  500. package/dist/ionic/p-2c8e5c80.entry.js +4 -0
  501. package/dist/ionic/p-315f773b.system.entry.js +4 -0
  502. package/dist/ionic/p-31d9a349.entry.js +4 -0
  503. package/dist/ionic/{p-0e29919c.system.entry.js → p-364fd2ae.system.entry.js} +1 -1
  504. package/dist/ionic/p-3c2c3769.system.entry.js +4 -0
  505. package/dist/ionic/{p-31b2326e.system.js → p-3e1e14d9.system.js} +1 -1
  506. package/dist/ionic/p-3f155d29.entry.js +4 -0
  507. package/dist/ionic/p-3fa8e0f9.entry.js +4 -0
  508. package/dist/ionic/p-40314c02.entry.js +4 -0
  509. package/dist/ionic/{p-78edc0cd.system.entry.js → p-43c2aeae.system.entry.js} +2 -2
  510. package/dist/ionic/{p-ac20160b.system.entry.js → p-445754d1.system.entry.js} +1 -1
  511. package/dist/ionic/{p-ce2eabd5.entry.js → p-4853de94.entry.js} +1 -1
  512. package/dist/ionic/p-49457fe6.entry.js +4 -0
  513. package/dist/ionic/p-499f2482.entry.js +4 -0
  514. package/dist/ionic/p-4fb92810.system.entry.js +4 -0
  515. package/dist/ionic/{p-aa7ae6aa.entry.js → p-55a4d7cf.entry.js} +1 -1
  516. package/dist/ionic/{p-1f6cdf2c.system.entry.js → p-5898aad5.system.entry.js} +1 -1
  517. package/dist/ionic/{p-1c531ca2.entry.js → p-590ecff0.entry.js} +1 -1
  518. package/dist/ionic/p-595c7065.entry.js +4 -0
  519. package/dist/ionic/p-595f9dfe.system.entry.js +4 -0
  520. package/dist/ionic/p-5e175db3.system.entry.js +4 -0
  521. package/dist/ionic/{p-fe92da17.entry.js → p-5ee49d72.entry.js} +1 -1
  522. package/dist/ionic/p-5ef79cfe.system.entry.js +4 -0
  523. package/dist/ionic/p-5f739516.system.js +4 -0
  524. package/dist/ionic/{p-400574bf.entry.js → p-6028d77a.entry.js} +1 -1
  525. package/dist/ionic/p-61c078b4.system.entry.js +4 -0
  526. package/dist/ionic/p-6c48dd91.system.js +4 -0
  527. package/dist/ionic/p-6ea89932.js +4 -0
  528. package/dist/ionic/{p-d95c8e90.entry.js → p-78aade1a.entry.js} +1 -1
  529. package/dist/ionic/{p-92c2178e.system.entry.js → p-78dfbc32.system.entry.js} +2 -2
  530. package/dist/ionic/p-7a89f3f3.system.entry.js +4 -0
  531. package/dist/ionic/p-7dfcdac4.system.entry.js +4 -0
  532. package/dist/ionic/p-7dfdf838.system.entry.js +4 -0
  533. package/dist/ionic/p-7efa91b5.entry.js +4 -0
  534. package/dist/ionic/{p-97eca294.entry.js → p-7f19f4cd.entry.js} +1 -1
  535. package/dist/ionic/p-854484fa.entry.js +4 -0
  536. package/dist/ionic/p-892757c2.system.entry.js +4 -0
  537. package/dist/ionic/p-8a0113a9.entry.js +4 -0
  538. package/dist/ionic/{p-df281664.system.entry.js → p-8af445b5.system.entry.js} +2 -2
  539. package/dist/ionic/p-8bd7a47e.entry.js +4 -0
  540. package/dist/ionic/p-8e58d0a5.system.entry.js +4 -0
  541. package/dist/ionic/{p-f5d2dc9b.js → p-8ededb41.js} +1 -1
  542. package/dist/ionic/p-90fcbf72.js +4 -0
  543. package/dist/ionic/p-912ee727.entry.js +4 -0
  544. package/dist/ionic/p-938ccce5.entry.js +4 -0
  545. package/dist/ionic/p-951d75bb.entry.js +4 -0
  546. package/dist/ionic/{p-bb3615f7.js → p-9b97df10.js} +1 -1
  547. package/dist/ionic/{p-20a6513f.system.entry.js → p-a074634d.system.entry.js} +2 -2
  548. package/dist/ionic/{p-fd9a9db3.system.js → p-a0da38e6.system.js} +1 -1
  549. package/dist/ionic/p-ab08eda4.system.entry.js +4 -0
  550. package/dist/ionic/{p-eda7a1db.system.entry.js → p-ac955b58.system.entry.js} +1 -1
  551. package/dist/ionic/p-b17f058b.system.js +4 -0
  552. package/dist/ionic/{p-dbb4c012.entry.js → p-b1e1d6dd.entry.js} +1 -1
  553. package/dist/ionic/p-b27577e5.system.entry.js +4 -0
  554. package/dist/ionic/p-bfcaea5f.entry.js +4 -0
  555. package/dist/ionic/p-c4045831.entry.js +4 -0
  556. package/dist/ionic/p-c4e9201d.entry.js +4 -0
  557. package/dist/ionic/{p-a051c371.entry.js → p-c9de921c.entry.js} +1 -1
  558. package/dist/ionic/p-c9f6626c.system.entry.js +4 -0
  559. package/dist/ionic/p-cd5cb2da.system.entry.js +4 -0
  560. package/dist/ionic/p-d8834a0d.entry.js +4 -0
  561. package/dist/ionic/p-db504106.entry.js +4 -0
  562. package/dist/ionic/{p-0eef8b34.system.entry.js → p-dd79d499.system.entry.js} +1 -1
  563. package/dist/ionic/p-e1054dac.system.entry.js +4 -0
  564. package/dist/ionic/{p-d8607ede.entry.js → p-e2f91d98.entry.js} +1 -1
  565. package/dist/ionic/p-e82bc15e.entry.js +4 -0
  566. package/dist/ionic/p-e9c2c532.entry.js +4 -0
  567. package/dist/ionic/p-ef065e0d.system.entry.js +4 -0
  568. package/dist/ionic/p-f7d618b7.entry.js +4 -0
  569. package/dist/ionic/p-fa203b3a.system.entry.js +4 -0
  570. package/dist/ionic/{p-9a6ab80a.system.entry.js → p-fa667cfb.system.entry.js} +1 -1
  571. package/dist/ionic/{p-5a0c301f.entry.js → p-fd14f2b4.entry.js} +1 -1
  572. package/dist/ionic/p-fe990e42.system.entry.js +4 -0
  573. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +8 -0
  574. package/dist/types/components/backdrop/backdrop.d.ts +0 -3
  575. package/dist/types/components/datetime/datetime.d.ts +0 -1
  576. package/dist/types/components/datetime/utils/data.d.ts +11 -7
  577. package/dist/types/components/input/input.d.ts +0 -6
  578. package/dist/types/components/menu/menu.d.ts +12 -2
  579. package/dist/types/components/nav/nav.d.ts +4 -1
  580. package/dist/types/components/picker/picker-interfaces.d.ts +8 -0
  581. package/dist/types/components/picker/picker.d.ts +75 -129
  582. package/dist/types/components/picker-column/picker-column-interfaces.d.ts +4 -0
  583. package/dist/types/components/picker-column/picker-column.d.ts +99 -39
  584. package/dist/types/components/picker-column-option/picker-column-option.d.ts +66 -0
  585. package/dist/types/components/picker-legacy/picker.d.ts +158 -0
  586. package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
  587. package/dist/types/components/split-pane/split-pane.d.ts +14 -2
  588. package/dist/types/components/textarea/textarea.d.ts +0 -17
  589. package/dist/types/components/toast/toast-interface.d.ts +0 -4
  590. package/dist/types/components.d.ts +159 -142
  591. package/dist/types/interface.d.ts +1 -1
  592. package/dist/types/utils/config.d.ts +2 -2
  593. package/dist/types/utils/gesture/gesture-controller.d.ts +1 -0
  594. package/dist/types/utils/overlays.d.ts +5 -2
  595. package/hydrate/index.js +1746 -1683
  596. package/package.json +1 -1
  597. package/components/ion-picker-column-internal.d.ts +0 -11
  598. package/components/ion-picker-column-internal.js +0 -9
  599. package/components/ion-picker-internal.js +0 -9
  600. package/components/picker-column-internal.js +0 -392
  601. package/dist/collection/components/picker-column-internal/picker-column-internal.js +0 -566
  602. package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +0 -162
  603. package/dist/collection/components/picker-internal/picker-internal.js +0 -560
  604. package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +0 -118
  605. package/dist/collection/components/textarea/test/legacy/a11y/textarea.e2e.js +0 -31
  606. package/dist/collection/components/textarea/test/legacy/autogrow/textarea.e2e.js +0 -58
  607. package/dist/collection/components/textarea/test/legacy/basic/textarea.e2e.js +0 -43
  608. package/dist/collection/components/textarea/test/legacy/clear-on-edit/textarea.e2e.js +0 -25
  609. package/dist/esm-es5/button-active-4bee452c.js +0 -4
  610. package/dist/esm-es5/ion-picker-column-internal.entry.js +0 -4
  611. package/dist/esm-es5/ion-picker-internal.entry.js +0 -4
  612. package/dist/esm-es5/overlays-33ae3ea0.js +0 -4
  613. package/dist/ionic/p-016976a7.system.entry.js +0 -4
  614. package/dist/ionic/p-078fd095.system.entry.js +0 -4
  615. package/dist/ionic/p-0ae25399.system.entry.js +0 -4
  616. package/dist/ionic/p-108f730a.entry.js +0 -4
  617. package/dist/ionic/p-1f583f73.entry.js +0 -4
  618. package/dist/ionic/p-20f7a91e.system.entry.js +0 -4
  619. package/dist/ionic/p-2da0a76c.entry.js +0 -4
  620. package/dist/ionic/p-30c9e049.system.entry.js +0 -4
  621. package/dist/ionic/p-333f06ed.entry.js +0 -4
  622. package/dist/ionic/p-389ff4d2.system.entry.js +0 -4
  623. package/dist/ionic/p-396c1a55.entry.js +0 -4
  624. package/dist/ionic/p-3a54c070.system.entry.js +0 -4
  625. package/dist/ionic/p-3a98f8db.entry.js +0 -4
  626. package/dist/ionic/p-3cb2ab30.entry.js +0 -4
  627. package/dist/ionic/p-3cdbaa49.entry.js +0 -4
  628. package/dist/ionic/p-48af4316.system.entry.js +0 -4
  629. package/dist/ionic/p-4c256bc2.system.entry.js +0 -4
  630. package/dist/ionic/p-4dfc27eb.system.entry.js +0 -4
  631. package/dist/ionic/p-51f08a9f.entry.js +0 -4
  632. package/dist/ionic/p-5b6aa59a.entry.js +0 -4
  633. package/dist/ionic/p-5e60dbc8.entry.js +0 -4
  634. package/dist/ionic/p-5eea8b4c.system.js +0 -4
  635. package/dist/ionic/p-61c0f8bf.system.entry.js +0 -4
  636. package/dist/ionic/p-680f96e8.system.entry.js +0 -4
  637. package/dist/ionic/p-6a34980d.entry.js +0 -4
  638. package/dist/ionic/p-6b02edd6.js +0 -4
  639. package/dist/ionic/p-70026e8f.system.entry.js +0 -4
  640. package/dist/ionic/p-776b144b.system.js +0 -4
  641. package/dist/ionic/p-7dc7514a.entry.js +0 -4
  642. package/dist/ionic/p-84513dfb.entry.js +0 -4
  643. package/dist/ionic/p-84879f61.system.entry.js +0 -4
  644. package/dist/ionic/p-8569d759.system.entry.js +0 -4
  645. package/dist/ionic/p-8ebd9951.entry.js +0 -4
  646. package/dist/ionic/p-9beb5039.system.js +0 -4
  647. package/dist/ionic/p-9f5b40c0.system.entry.js +0 -4
  648. package/dist/ionic/p-9f6397ce.entry.js +0 -4
  649. package/dist/ionic/p-a19f5ae1.entry.js +0 -4
  650. package/dist/ionic/p-a1bfaa5c.system.entry.js +0 -4
  651. package/dist/ionic/p-aaa4ffb3.system.entry.js +0 -4
  652. package/dist/ionic/p-ac979ebf.system.entry.js +0 -4
  653. package/dist/ionic/p-b37e4ee5.system.entry.js +0 -4
  654. package/dist/ionic/p-b498de69.entry.js +0 -4
  655. package/dist/ionic/p-bd259c65.system.entry.js +0 -4
  656. package/dist/ionic/p-c3790581.entry.js +0 -4
  657. package/dist/ionic/p-c851b204.system.entry.js +0 -4
  658. package/dist/ionic/p-cd055d60.system.entry.js +0 -4
  659. package/dist/ionic/p-d7260b87.entry.js +0 -4
  660. package/dist/ionic/p-d74ca358.entry.js +0 -4
  661. package/dist/ionic/p-dce9bc53.entry.js +0 -4
  662. package/dist/ionic/p-dd60faa5.system.entry.js +0 -4
  663. package/dist/ionic/p-df468a8f.entry.js +0 -4
  664. package/dist/ionic/p-e0569db4.entry.js +0 -4
  665. package/dist/ionic/p-e68980ff.system.entry.js +0 -4
  666. package/dist/ionic/p-e6aaff14.system.entry.js +0 -4
  667. package/dist/ionic/p-ea8fbf09.entry.js +0 -4
  668. package/dist/ionic/p-efe9180b.entry.js +0 -4
  669. package/dist/ionic/p-f1ad3b3d.entry.js +0 -4
  670. package/dist/ionic/p-f1cc690e.entry.js +0 -4
  671. package/dist/ionic/p-f46775e4.entry.js +0 -4
  672. package/dist/ionic/p-f7b43141.system.entry.js +0 -4
  673. package/dist/ionic/p-f88dd429.entry.js +0 -4
  674. package/dist/ionic/p-f89ae259.js +0 -4
  675. package/dist/ionic/p-f97b9cdd.system.entry.js +0 -4
  676. package/dist/ionic/p-f9d0e6f4.system.entry.js +0 -4
  677. package/dist/ionic/p-fd3f475f.entry.js +0 -4
  678. package/dist/types/components/picker-column-internal/picker-column-internal-interfaces.d.ts +0 -5
  679. package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +0 -102
  680. package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +0 -8
  681. package/dist/types/components/picker-internal/picker-internal.d.ts +0 -102
  682. /package/dist/collection/components/{picker-internal/picker-internal-interfaces.js → picker/picker-interfaces.js} +0 -0
  683. /package/dist/collection/components/{picker-column-internal/picker-column-internal-interfaces.js → picker-column/picker-column-interfaces.js} +0 -0
  684. /package/dist/collection/components/{picker → picker-legacy}/animations/ios.enter.js +0 -0
  685. /package/dist/collection/components/{picker → picker-legacy}/animations/ios.leave.js +0 -0
  686. /package/dist/collection/components/{picker → picker-legacy}/picker-interface.js +0 -0
  687. /package/dist/collection/components/{picker-column → picker-legacy-column}/test/test.utils.js +0 -0
  688. /package/dist/esm-es5/{data-0f3ab200.js → data-691286f1.js} +0 -0
  689. /package/dist/ionic/{p-f7dce541.js → p-5289aade.js} +0 -0
  690. /package/dist/ionic/{p-7330c044.system.js → p-66e6860f.system.js} +0 -0
  691. /package/dist/types/components/{picker → picker-legacy}/animations/ios.enter.d.ts +0 -0
  692. /package/dist/types/components/{picker → picker-legacy}/animations/ios.leave.d.ts +0 -0
  693. /package/dist/types/components/{picker → picker-legacy}/picker-interface.d.ts +0 -0
  694. /package/dist/types/components/{picker-column → picker-legacy-column}/test/test.utils.d.ts +0 -0
@@ -8,18 +8,18 @@ import { g as getElementRoot, l as clamp, r as raf, k as inheritAttributes, m as
8
8
  import { c as createLockController } from './lock-controller-316928be.js';
9
9
  import { p as printIonWarning } from './index-9b0d46f4.js';
10
10
  import { g as getCapacitor } from './capacitor-59395cbd.js';
11
- import { G as GESTURE, O as OVERLAY_GESTURE_PRIORITY, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod } from './overlays-33ae3ea0.js';
11
+ import { G as GESTURE, O as OVERLAY_GESTURE_PRIORITY, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod } from './overlays-2d8629c6.js';
12
12
  import { g as getClassMap } from './theme-01f3f29c.js';
13
13
  import { e as deepReady, w as waitForMount } from './index-4b98143d.js';
14
14
  import { b as getIonMode, c as config } from './ionic-global-778b7863.js';
15
15
  import { KEYBOARD_DID_OPEN } from './keyboard-52278bd7.js';
16
16
  import { c as createAnimation } from './animation-60dbdd13.js';
17
17
  import { g as getTimeGivenProgression } from './cubic-bezier-fe2083dc.js';
18
- import { createGesture } from './index-2cf77112.js';
18
+ import { createGesture } from './index-39782642.js';
19
19
  import { w as win } from './index-a5d50daf.js';
20
20
  import './hardware-back-button-f42b9c80.js';
21
+ import './gesture-controller-314a54f6.js';
21
22
  import './keyboard-73175e24.js';
22
- import './gesture-controller-1bf57181.js';
23
23
 
24
24
  var Style;
25
25
  (function (Style) {
@@ -263,7 +263,7 @@ const calculateSpringStep = (t) => {
263
263
 
264
264
  // Defaults for the card swipe animation
265
265
  const SwipeToCloseDefaults = {
266
- MIN_PRESENTING_SCALE: 0.93,
266
+ MIN_PRESENTING_SCALE: 0.915,
267
267
  };
268
268
  const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss) => {
269
269
  /**
@@ -1609,9 +1609,9 @@ const Modal = class {
1609
1609
  const mode = getIonMode(this);
1610
1610
  const isCardModal = presentingElement !== undefined && mode === 'ios';
1611
1611
  const isHandleCycle = handleBehavior === 'cycle';
1612
- return (h(Host, Object.assign({ key: '9a305d82f123283b6200c42d67393b378bb309a8', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
1612
+ return (h(Host, Object.assign({ key: '03f76f75a2988961b4708e31a1726b7517e8b1f0', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
1613
1613
  zIndex: `${20000 + this.overlayIndex}`,
1614
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), h("ion-backdrop", { key: '85e8dc6f19b30fd95db518445929fb0c1d5cdef0', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { class: "modal-shadow" }), h("div", Object.assign({ key: '893a0202d91828e60099311442c2677bee5464e2',
1614
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), h("ion-backdrop", { key: '5c6135e1efe1d433ff0b34dd70c6a5d1cfb99477', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { class: "modal-shadow" }), h("div", Object.assign({ key: '55ef4eed1ec906658e2a0b4ab523e07e243dfb22',
1615
1615
  /*
1616
1616
  role and aria-modal must be used on the
1617
1617
  same element. They must also be set inside the
@@ -1620,7 +1620,7 @@ const Modal = class {
1620
1620
  */
1621
1621
  role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { class: "modal-handle",
1622
1622
  // Prevents the handle from receiving keyboard focus when it does not cycle
1623
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: '25187bf4c69d9022930227b8b8748a294176be5f' }))));
1623
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: 'd94bad829b06c67a7a552878bbd86b5e1d9db3f1' }))));
1624
1624
  }
1625
1625
  get el() { return getElement(this); }
1626
1626
  static get watchers() { return {
@@ -132,7 +132,7 @@ const Nav = class {
132
132
  // We want to set this flag before any watch callbacks are manually called
133
133
  this.didLoad = true;
134
134
  this.rootChanged();
135
- this.gesture = (await import('./swipe-back-c06602f2.js')).createSwipeBackGesture(this.el, this.canStart.bind(this), this.onStart.bind(this), this.onMove.bind(this), this.onEnd.bind(this));
135
+ this.gesture = (await import('./swipe-back-7f7620ca.js')).createSwipeBackGesture(this.el, this.canStart.bind(this), this.onStart.bind(this), this.onMove.bind(this), this.onEnd.bind(this));
136
136
  this.swipeGestureChanged();
137
137
  }
138
138
  connectedCallback() {
@@ -388,8 +388,11 @@ const Nav = class {
388
388
  async getPrevious(view) {
389
389
  return this.getPreviousSync(view);
390
390
  }
391
- getLength() {
392
- return this.views.length;
391
+ /**
392
+ * Returns the number of views in the stack.
393
+ */
394
+ async getLength() {
395
+ return Promise.resolve(this.views.length);
393
396
  }
394
397
  getActiveSync() {
395
398
  return this.views[this.views.length - 1];
@@ -895,7 +898,7 @@ const Nav = class {
895
898
  }
896
899
  }
897
900
  render() {
898
- return h("slot", { key: '654286a8a7ef03d4a22497eb51e781a9a8979774' });
901
+ return h("slot", { key: '17a866eb0e229893dcd4d48a396d6bac82dac699' });
899
902
  }
900
903
  get el() { return getElement(this); }
901
904
  static get watchers() { return {
@@ -937,7 +940,7 @@ const NavLink = class {
937
940
  this.routerAnimation = undefined;
938
941
  }
939
942
  render() {
940
- return h(Host, { key: 'a781794425ad0866705bc6691256184b93477a74', onClick: this.onClick });
943
+ return h(Host, { key: '8237896b169c344ca157131e9b110621d9d042b0', onClick: this.onClick });
941
944
  }
942
945
  get el() { return getElement(this); }
943
946
  };
@@ -0,0 +1,102 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { r as registerInstance, h, H as Host, f as getElement } from './index-73881b51.js';
5
+ import { k as inheritAttributes } from './helpers-c0b9ca37.js';
6
+ import { c as createColorClasses } from './theme-01f3f29c.js';
7
+ import { b as getIonMode } from './ionic-global-778b7863.js';
8
+
9
+ const pickerColumnOptionIosCss = "button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) button{cursor:default}";
10
+ const IonPickerColumnOptionIosStyle0 = pickerColumnOptionIosCss;
11
+
12
+ const pickerColumnOptionMdCss = "button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) button{cursor:default}:host(.option-active){color:var(--ion-color-base)}";
13
+ const IonPickerColumnOptionMdStyle0 = pickerColumnOptionMdCss;
14
+
15
+ const PickerColumnOption = class {
16
+ constructor(hostRef) {
17
+ registerInstance(this, hostRef);
18
+ /**
19
+ * We keep track of the parent picker column
20
+ * so we can update the value of it when
21
+ * clicking an enable option.
22
+ */
23
+ this.pickerColumn = null;
24
+ this.ariaLabel = null;
25
+ this.disabled = false;
26
+ this.value = undefined;
27
+ this.color = 'primary';
28
+ }
29
+ /**
30
+ * The aria-label of the option has changed after the
31
+ * first render and needs to be updated within the component.
32
+ *
33
+ * @param ariaLbl The new aria-label value.
34
+ */
35
+ onAriaLabelChange(ariaLbl) {
36
+ this.ariaLabel = ariaLbl;
37
+ }
38
+ componentWillLoad() {
39
+ const inheritedAttributes = inheritAttributes(this.el, ['aria-label']);
40
+ /**
41
+ * The initial value of `aria-label` needs to be set for
42
+ * the first render.
43
+
44
+ */
45
+ this.ariaLabel = inheritedAttributes['aria-label'] || null;
46
+ }
47
+ connectedCallback() {
48
+ this.pickerColumn = this.el.closest('ion-picker-column');
49
+ }
50
+ disconnectedCallback() {
51
+ this.pickerColumn = null;
52
+ }
53
+ /**
54
+ * The column options can load at any time
55
+ * so the options needs to tell the
56
+ * parent picker column when it is loaded
57
+ * so the picker column can ensure it is
58
+ * centered in the view.
59
+ *
60
+ * We intentionally run this for every
61
+ * option. If we only ran this from
62
+ * the selected option then if the newly
63
+ * loaded options were not selected then
64
+ * scrollActiveItemIntoView would not be called.
65
+ */
66
+ componentDidLoad() {
67
+ const { pickerColumn } = this;
68
+ if (pickerColumn !== null) {
69
+ pickerColumn.scrollActiveItemIntoView();
70
+ }
71
+ }
72
+ /**
73
+ * When an option is clicked, update the
74
+ * parent picker column value. This
75
+ * component will handle centering the option
76
+ * in the column view.
77
+ */
78
+ onClick() {
79
+ const { pickerColumn } = this;
80
+ if (pickerColumn !== null) {
81
+ pickerColumn.setValue(this.value);
82
+ }
83
+ }
84
+ render() {
85
+ const { color, disabled, ariaLabel } = this;
86
+ const mode = getIonMode(this);
87
+ return (h(Host, { key: '1f9a74ae1fbd75240b1fb82009a6d4f96b0833d1', class: createColorClasses(color, {
88
+ [mode]: true,
89
+ ['option-disabled']: disabled,
90
+ }) }, h("button", { key: 'cfd71398a876fb3339e388a22f812ea70aa52025', tabindex: "-1", "aria-label": ariaLabel, disabled: disabled, onClick: () => this.onClick() }, h("slot", { key: '5ae19033ea8c186c57f50de0e24746f39006dc85' }))));
91
+ }
92
+ get el() { return getElement(this); }
93
+ static get watchers() { return {
94
+ "aria-label": ["onAriaLabelChange"]
95
+ }; }
96
+ };
97
+ PickerColumnOption.style = {
98
+ ios: IonPickerColumnOptionIosStyle0,
99
+ md: IonPickerColumnOptionMdStyle0
100
+ };
101
+
102
+ export { PickerColumnOption as ion_picker_column_option };
@@ -2,20 +2,17 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { r as registerInstance, d as createEvent, h, H as Host, f as getElement } from './index-73881b51.js';
5
+ import { d as doc } from './index-a5d50daf.js';
5
6
  import { r as raf, g as getElementRoot } from './helpers-c0b9ca37.js';
6
7
  import { a as hapticSelectionStart, b as hapticSelectionChanged, h as hapticSelectionEnd } from './haptic-554688a5.js';
7
8
  import { a as isPlatform, b as getIonMode } from './ionic-global-778b7863.js';
8
9
  import { c as createColorClasses } from './theme-01f3f29c.js';
9
10
  import './capacitor-59395cbd.js';
10
- import './index-a5d50daf.js';
11
11
 
12
- const pickerColumnInternalIosCss = ":host{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;height:200px;outline:none;font-size:22px;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;overflow-x:hidden;overflow-y:scroll;scrollbar-width:none;text-align:center}:host::-webkit-scrollbar{display:none}:host .picker-item{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden;scroll-snap-align:center}:host .picker-item-empty,:host .picker-item[disabled]{cursor:default}:host .picker-item-empty,:host(:not([disabled])) .picker-item[disabled]{scroll-snap-align:none}:host([disabled]){overflow-y:hidden}:host .picker-item[disabled]{opacity:0.4}:host(.picker-column-active) .picker-item.picker-item-active{color:var(--ion-color-base)}@media (any-hover: hover){:host(:focus){outline:none;background:rgba(var(--ion-color-base-rgb), 0.2)}}";
13
- const IonPickerColumnInternalIosStyle0 = pickerColumnInternalIosCss;
12
+ const pickerColumnCss = ":host{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;max-width:100%;height:200px;font-size:22px;text-align:center}.picker-opts{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;min-width:26px;max-height:200px;outline:none;text-align:inherit;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;overflow-x:hidden;overflow-y:scroll;scrollbar-width:none}.picker-item-empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.picker-opts::-webkit-scrollbar{display:none}::slotted(ion-picker-column-option){display:block;scroll-snap-align:center}.picker-item-empty,:host(:not([disabled])) ::slotted(ion-picker-column-option.option-disabled){scroll-snap-align:none}::slotted([slot=prefix]),::slotted([slot=suffix]){max-width:200px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::slotted([slot=prefix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:end;justify-content:end}::slotted([slot=suffix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:start;justify-content:start}:host(.picker-column-disabled) .picker-opts{overflow-y:hidden}:host(.picker-column-disabled) ::slotted(ion-picker-column-option){cursor:default;opacity:0.4;pointer-events:none}@media (any-hover: hover){:host(:focus) .picker-opts{outline:none;background:rgba(var(--ion-color-base-rgb), 0.2)}}";
13
+ const IonPickerColumnStyle0 = pickerColumnCss;
14
14
 
15
- const pickerColumnInternalMdCss = ":host{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;height:200px;outline:none;font-size:22px;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;overflow-x:hidden;overflow-y:scroll;scrollbar-width:none;text-align:center}:host::-webkit-scrollbar{display:none}:host .picker-item{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden;scroll-snap-align:center}:host .picker-item-empty,:host .picker-item[disabled]{cursor:default}:host .picker-item-empty,:host(:not([disabled])) .picker-item[disabled]{scroll-snap-align:none}:host([disabled]){overflow-y:hidden}:host .picker-item[disabled]{opacity:0.4}:host(.picker-column-active) .picker-item.picker-item-active{color:var(--ion-color-base)}@media (any-hover: hover){:host(:focus){outline:none;background:rgba(var(--ion-color-base-rgb), 0.2)}}:host .picker-item-active{color:var(--ion-color-base)}";
16
- const IonPickerColumnInternalMdStyle0 = pickerColumnInternalMdCss;
17
-
18
- const PickerColumnInternal = class {
15
+ const PickerColumn = class {
19
16
  constructor(hostRef) {
20
17
  registerInstance(this, hostRef);
21
18
  this.ionChange = createEvent(this, "ionChange", 7);
@@ -23,11 +20,11 @@ const PickerColumnInternal = class {
23
20
  this.isColumnVisible = false;
24
21
  this.canExitInputMode = true;
25
22
  this.centerPickerItemInView = (target, smooth = true, canExitInputMode = true) => {
26
- const { el, isColumnVisible } = this;
27
- if (isColumnVisible) {
23
+ const { isColumnVisible, scrollEl } = this;
24
+ if (isColumnVisible && scrollEl) {
28
25
  // (Vertical offset from parent) - (three empty picker rows) + (half the height of the target to ensure the scroll triggers)
29
26
  const top = target.offsetTop - 3 * target.clientHeight + target.clientHeight / 2;
30
- if (el.scrollTop !== top) {
27
+ if (scrollEl.scrollTop !== top) {
31
28
  /**
32
29
  * Setting this flag prevents input
33
30
  * mode from exiting in the picker column's
@@ -36,7 +33,7 @@ const PickerColumnInternal = class {
36
33
  * of these can cause a scroll to occur.
37
34
  */
38
35
  this.canExitInputMode = canExitInputMode;
39
- el.scroll({
36
+ scrollEl.scroll({
40
37
  top,
41
38
  left: 0,
42
39
  behavior: smooth ? 'smooth' : undefined,
@@ -47,11 +44,9 @@ const PickerColumnInternal = class {
47
44
  this.setPickerItemActiveState = (item, isActive) => {
48
45
  if (isActive) {
49
46
  item.classList.add(PICKER_ITEM_ACTIVE_CLASS);
50
- item.part.add(PICKER_ITEM_ACTIVE_PART);
51
47
  }
52
48
  else {
53
49
  item.classList.remove(PICKER_ITEM_ACTIVE_CLASS);
54
- item.part.remove(PICKER_ITEM_ACTIVE_PART);
55
50
  }
56
51
  };
57
52
  /**
@@ -105,11 +100,13 @@ const PickerColumnInternal = class {
105
100
  * be disabled on Android.
106
101
  */
107
102
  const enableHaptics = isPlatform('ios');
108
- const { el } = this;
103
+ const { el, scrollEl } = this;
109
104
  let timeout;
110
105
  let activeEl = this.activeItem;
111
106
  const scrollCallback = () => {
112
107
  raf(() => {
108
+ if (!scrollEl)
109
+ return;
113
110
  if (timeout) {
114
111
  clearTimeout(timeout);
115
112
  timeout = undefined;
@@ -122,21 +119,54 @@ const PickerColumnInternal = class {
122
119
  * Select item in the center of the column
123
120
  * which is the month/year that we want to select
124
121
  */
125
- const bbox = el.getBoundingClientRect();
122
+ const bbox = scrollEl.getBoundingClientRect();
126
123
  const centerX = bbox.x + bbox.width / 2;
127
124
  const centerY = bbox.y + bbox.height / 2;
128
- const activeElement = el.shadowRoot.elementFromPoint(centerX, centerY);
129
- if (activeEl !== null) {
125
+ /**
126
+ * elementFromPoint returns the top-most element.
127
+ * This means that if an ion-backdrop is overlaying the
128
+ * picker then the appropriate picker column option will
129
+ * not be selected. To account for this, we use elementsFromPoint
130
+ * and use an Array.find to find the appropriate column option
131
+ * at that point.
132
+ *
133
+ * Additionally, the picker column could be used in the
134
+ * Shadow DOM (i.e. in ion-datetime) so we need to make
135
+ * sure we are choosing the correct host otherwise
136
+ * the elements returns by elementsFromPoint will be
137
+ * retargeted. To account for this, we check to see
138
+ * if the picker column has a parent shadow root. If
139
+ * so, we use that shadow root when doing elementsFromPoint.
140
+ * Otherwise, we just use the document.
141
+ */
142
+ const rootNode = el.getRootNode();
143
+ const hasParentShadow = rootNode instanceof ShadowRoot;
144
+ const referenceNode = hasParentShadow ? rootNode : doc;
145
+ /**
146
+ * If the reference node is undefined
147
+ * then it's likely that doc is undefined
148
+ * due to being in an SSR environment.
149
+ */
150
+ if (referenceNode === undefined) {
151
+ return;
152
+ }
153
+ const elementsAtPoint = referenceNode.elementsFromPoint(centerX, centerY);
154
+ /**
155
+ * elementsFromPoint can returns multiple elements
156
+ * so find the relevant picker column option if one exists.
157
+ */
158
+ const newActiveElement = elementsAtPoint.find((el) => el.tagName === 'ION-PICKER-COLUMN-OPTION');
159
+ if (activeEl !== undefined) {
130
160
  this.setPickerItemActiveState(activeEl, false);
131
161
  }
132
- if (activeElement === null || activeElement.disabled) {
162
+ if (newActiveElement === undefined || newActiveElement.disabled) {
133
163
  return;
134
164
  }
135
165
  /**
136
166
  * If we are selecting a new value,
137
167
  * we need to run haptics again.
138
168
  */
139
- if (activeElement !== activeEl) {
169
+ if (newActiveElement !== activeEl) {
140
170
  enableHaptics && hapticSelectionChanged();
141
171
  if (this.canExitInputMode) {
142
172
  /**
@@ -153,8 +183,8 @@ const PickerColumnInternal = class {
153
183
  this.exitInputMode();
154
184
  }
155
185
  }
156
- activeEl = activeElement;
157
- this.setPickerItemActiveState(activeElement, true);
186
+ activeEl = newActiveElement;
187
+ this.setPickerItemActiveState(newActiveElement, true);
158
188
  timeout = setTimeout(() => {
159
189
  this.isScrolling = false;
160
190
  enableHaptics && hapticSelectionEnd();
@@ -176,20 +206,7 @@ const PickerColumnInternal = class {
176
206
  * case, we should exit input mode.
177
207
  */
178
208
  this.canExitInputMode = true;
179
- const dataIndex = activeElement.getAttribute('data-index');
180
- /**
181
- * If no value it is
182
- * possible we hit one of the
183
- * empty padding columns.
184
- */
185
- if (dataIndex === null) {
186
- return;
187
- }
188
- const index = parseInt(dataIndex, 10);
189
- const selectedItem = this.items[index];
190
- if (selectedItem.value !== this.value) {
191
- this.setValue(selectedItem.value);
192
- }
209
+ this.setValue(newActiveElement.value);
193
210
  }, 250);
194
211
  });
195
212
  };
@@ -198,9 +215,11 @@ const PickerColumnInternal = class {
198
215
  * does not fire when component is initially shown.
199
216
  */
200
217
  raf(() => {
201
- el.addEventListener('scroll', scrollCallback);
218
+ if (!scrollEl)
219
+ return;
220
+ scrollEl.addEventListener('scroll', scrollCallback);
202
221
  this.destroyScrollListener = () => {
203
- el.removeEventListener('scroll', scrollCallback);
222
+ scrollEl.removeEventListener('scroll', scrollCallback);
204
223
  };
205
224
  });
206
225
  };
@@ -228,7 +247,6 @@ const PickerColumnInternal = class {
228
247
  };
229
248
  this.isActive = false;
230
249
  this.disabled = false;
231
- this.items = [];
232
250
  this.value = undefined;
233
251
  this.color = 'primary';
234
252
  this.numericInput = false;
@@ -239,7 +257,7 @@ const PickerColumnInternal = class {
239
257
  * Only scroll the active item into view when the picker column
240
258
  * is actively visible to the user.
241
259
  */
242
- this.scrollActiveItemIntoView();
260
+ this.scrollActiveItemIntoView(true);
243
261
  }
244
262
  }
245
263
  /**
@@ -277,36 +295,33 @@ const PickerColumnInternal = class {
277
295
  }
278
296
  };
279
297
  new IntersectionObserver(visibleCallback, { threshold: 0.001 }).observe(this.el);
280
- const parentEl = (this.parentEl = this.el.closest('ion-picker-internal'));
298
+ const parentEl = (this.parentEl = this.el.closest('ion-picker'));
281
299
  if (parentEl !== null) {
282
300
  // TODO(FW-2832): type
283
301
  parentEl.addEventListener('ionInputModeChange', (ev) => this.inputModeChange(ev));
284
302
  }
285
303
  }
286
304
  componentDidRender() {
287
- var _a;
288
- const { activeItem, items, isColumnVisible, value } = this;
289
- if (isColumnVisible) {
290
- if (activeItem) {
291
- this.scrollActiveItemIntoView();
292
- }
293
- else if (((_a = items[0]) === null || _a === void 0 ? void 0 : _a.value) !== value) {
294
- /**
295
- * If the picker column does not have an active item and the current value
296
- * does not match the first item in the picker column, that means
297
- * the value is out of bounds. In this case, we assign the value to the
298
- * first item to match the scroll position of the column.
299
- *
300
- */
301
- this.setValue(items[0].value);
305
+ const { el, activeItem, isColumnVisible, value } = this;
306
+ if (isColumnVisible && !activeItem) {
307
+ const firstOption = el.querySelector('ion-picker-column-option');
308
+ /**
309
+ * If the picker column does not have an active item and the current value
310
+ * does not match the first item in the picker column, that means
311
+ * the value is out of bounds. In this case, we assign the value to the
312
+ * first item to match the scroll position of the column.
313
+ *
314
+ */
315
+ if (firstOption !== null && firstOption.value !== value) {
316
+ this.setValue(firstOption.value);
302
317
  }
303
318
  }
304
319
  }
305
320
  /** @internal */
306
- async scrollActiveItemIntoView() {
321
+ async scrollActiveItemIntoView(smooth = false) {
307
322
  const activeEl = this.activeItem;
308
323
  if (activeEl) {
309
- this.centerPickerItemInView(activeEl, false, false);
324
+ this.centerPickerItemInView(activeEl, smooth, false);
310
325
  }
311
326
  }
312
327
  /**
@@ -317,52 +332,53 @@ const PickerColumnInternal = class {
317
332
  * @internal
318
333
  */
319
334
  async setValue(value) {
320
- const { items } = this;
335
+ if (this.disabled === true || this.value === value) {
336
+ return;
337
+ }
321
338
  this.value = value;
322
- const findItem = items.find((item) => item.value === value && item.disabled !== true);
323
- if (findItem) {
324
- this.ionChange.emit(findItem);
339
+ this.ionChange.emit({ value });
340
+ }
341
+ /**
342
+ * Sets focus on the scrollable container within the picker column.
343
+ * Use this method instead of the global `pickerColumn.focus()`.
344
+ */
345
+ async setFocus() {
346
+ if (this.scrollEl) {
347
+ this.scrollEl.focus();
325
348
  }
326
349
  }
327
350
  get activeItem() {
328
- // If the whole picker column is disabled, the current value should appear active
329
- // If the current value item is specifically disabled, it should not appear active
330
- const selector = `.picker-item[data-value="${this.value}"]${this.disabled ? '' : ':not([disabled])'}`;
331
- return getElementRoot(this.el).querySelector(selector);
351
+ const { value } = this;
352
+ const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
353
+ return options.find((option) => {
354
+ /**
355
+ * If the whole picker column is disabled, the current value should appear active
356
+ * If the current value item is specifically disabled, it should not appear active
357
+ */
358
+ if (!this.disabled && option.disabled) {
359
+ return false;
360
+ }
361
+ return option.value === value;
362
+ });
332
363
  }
333
364
  render() {
334
- const { items, color, disabled: pickerDisabled, isActive, numericInput } = this;
365
+ const { color, disabled, isActive, numericInput } = this;
335
366
  const mode = getIonMode(this);
336
- /**
337
- * exportparts is needed so ion-datetime can expose the parts
338
- * from two layers of shadow nesting. If this causes problems,
339
- * the attribute can be moved to datetime.tsx and set on every
340
- * instance of ion-picker-column-internal there instead.
341
- */
342
- return (h(Host, { key: 'd0e3818aa4ab06aefd988d1b42ae754244727b8f', exportparts: `${PICKER_ITEM_PART}, ${PICKER_ITEM_ACTIVE_PART}`, disabled: pickerDisabled, tabindex: pickerDisabled ? null : 0, class: createColorClasses(color, {
367
+ return (h(Host, { key: '4803f7215ee2272e74d76b562553098dc4e2f0bc', class: createColorClasses(color, {
343
368
  [mode]: true,
344
369
  ['picker-column-active']: isActive,
345
370
  ['picker-column-numeric-input']: numericInput,
346
- }) }, h("div", { key: 'ec3b16415db5f64e3fab37fda023560ebcdc9423', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '40c78c9a1277807572d73e23048c2730cab88f5a', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'c51fa817f6999356cf3568a46098e954936b45d5', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), items.map((item, index) => {
347
- const isItemDisabled = pickerDisabled || item.disabled || false;
348
- return (h("button", { tabindex: "-1", class: {
349
- 'picker-item': true,
350
- }, "data-value": item.value, "data-index": index, onClick: (ev) => {
351
- this.centerPickerItemInView(ev.target, true);
352
- }, disabled: isItemDisabled, part: PICKER_ITEM_PART }, item.text));
353
- }), h("div", { key: '80a7461dfe571f46466219b05007b021711aed32', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'fed82263295f58c51e2b753d0c06c7d71872b8a7', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'e805dff4122cc4e5fb4d7dcb96054fee8ad3bd07', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0")));
371
+ ['picker-column-disabled']: disabled,
372
+ }) }, h("slot", { key: 'f486e4903f7818021c8d02e3251300ef0bd64e7f', name: "prefix" }), h("div", { key: '3f0f2c4e77b1bd55b425235fa428c95c793d65ba', class: "picker-opts", tabindex: disabled ? undefined : 0, ref: (el) => {
373
+ this.scrollEl = el;
374
+ } }, h("div", { key: '84a373222f1e2084312de67781bdf72f6b40a9e9', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '948311d8ea52ff1ead1e52c27a2d959164cb9b67', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '7cf18267fda32b762bf20f7213810bc800136a4f', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("slot", { key: 'c068963fd65ea1eb70e2fc3dc8125c6b4deff68d' }), h("div", { key: '63442e50269c3266c907d525e66782c8e753af60', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '4f18258bd9f1822725420208491315b970d19aff', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '5d1d3e37d88872284a756ab63078943f732d2293', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), h("slot", { key: '7c68b8237cc1a3954d174df34aa3ab2797466a38', name: "suffix" })));
354
375
  }
355
376
  get el() { return getElement(this); }
356
377
  static get watchers() { return {
357
378
  "value": ["valueChange"]
358
379
  }; }
359
380
  };
360
- const PICKER_ITEM_ACTIVE_CLASS = 'picker-item-active';
361
- const PICKER_ITEM_PART = 'wheel-item';
362
- const PICKER_ITEM_ACTIVE_PART = 'active';
363
- PickerColumnInternal.style = {
364
- ios: IonPickerColumnInternalIosStyle0,
365
- md: IonPickerColumnInternalMdStyle0
366
- };
381
+ const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
382
+ PickerColumn.style = IonPickerColumnStyle0;
367
383
 
368
- export { PickerColumnInternal as ion_picker_column_internal };
384
+ export { PickerColumn as ion_picker_column };