@ionic/core 7.5.8-dev.11702664817.19cab605 → 7.5.8-dev.11703088210.14a72b83

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 (493) hide show
  1. package/components/backdrop.js +12 -0
  2. package/components/button.js +2 -2
  3. package/components/data.js +1 -1
  4. package/components/gesture-controller.js +1 -1
  5. package/components/ion-content.js +1 -1
  6. package/components/ion-datetime.js +64 -40
  7. package/components/ion-input.js +0 -2
  8. package/components/ion-picker-column-internal.d.ts +11 -0
  9. package/components/ion-picker-column-internal.js +9 -0
  10. package/components/ion-picker-column.js +2 -2
  11. package/components/{ion-picker-legacy.d.ts → ion-picker-internal.d.ts} +4 -4
  12. package/components/ion-picker-internal.js +9 -0
  13. package/components/ion-picker.js +309 -1
  14. package/components/ion-refresher-content.js +10 -3
  15. package/components/ion-refresher.js +4 -183
  16. package/components/ion-searchbar.js +0 -2
  17. package/components/ion-textarea.js +0 -2
  18. package/components/ion-title.js +1 -22
  19. package/components/overlays.js +4 -11
  20. package/components/picker-column-internal.js +390 -0
  21. package/components/picker-column.js +322 -351
  22. package/components/{picker.js → picker-internal.js} +22 -29
  23. package/components/refresher.utils.js +196 -0
  24. package/dist/cjs/{app-globals-0af482c7.js → app-globals-28656db1.js} +1 -1
  25. package/dist/cjs/{button-active-9d7e0640.js → button-active-75b38d77.js} +2 -2
  26. package/dist/cjs/{data-e7526b58.js → data-36b9094e.js} +1 -1
  27. package/dist/cjs/{gesture-controller-9436f482.js → gesture-controller-c40c045a.js} +0 -1
  28. package/dist/cjs/{index-5cbb20f9.js → index-097270a3.js} +1 -1
  29. package/dist/cjs/{index-bbb4336c.js → index-b0102f48.js} +1 -39
  30. package/dist/cjs/{index-d4c2e02c.js → index-cb3e0ab7.js} +3 -3
  31. package/dist/cjs/{index-ee07ed59.js → index-d1b59ffa.js} +1 -1
  32. package/dist/cjs/index.cjs.js +9 -9
  33. package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
  34. package/dist/cjs/ion-action-sheet.cjs.entry.js +6 -6
  35. package/dist/cjs/ion-alert.cjs.entry.js +6 -6
  36. package/dist/cjs/ion-app_8.cjs.entry.js +8 -28
  37. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  38. package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
  39. package/dist/cjs/ion-backdrop.cjs.entry.js +14 -2
  40. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
  41. package/dist/cjs/ion-button_2.cjs.entry.js +4 -4
  42. package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
  43. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
  44. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  45. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  46. package/dist/cjs/ion-datetime-button.cjs.entry.js +3 -3
  47. package/dist/cjs/ion-datetime_3.cjs.entry.js +58 -38
  48. package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
  49. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  50. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
  51. package/dist/cjs/ion-input.cjs.entry.js +2 -4
  52. package/dist/cjs/ion-item-option_3.cjs.entry.js +3 -3
  53. package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
  54. package/dist/cjs/ion-loading.cjs.entry.js +3 -4
  55. package/dist/cjs/ion-menu_3.cjs.entry.js +6 -6
  56. package/dist/cjs/ion-modal.cjs.entry.js +6 -6
  57. package/dist/cjs/ion-nav_2.cjs.entry.js +4 -4
  58. package/dist/cjs/{ion-picker-column.cjs.entry.js → ion-picker-column-internal.cjs.entry.js} +89 -106
  59. package/dist/cjs/{ion-picker.cjs.entry.js → ion-picker-internal.cjs.entry.js} +20 -27
  60. package/dist/cjs/ion-popover.cjs.entry.js +4 -5
  61. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  62. package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
  63. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  64. package/dist/cjs/ion-refresher_2.cjs.entry.js +32 -17
  65. package/dist/cjs/ion-reorder_2.cjs.entry.js +3 -3
  66. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  67. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  68. package/dist/cjs/ion-searchbar.cjs.entry.js +2 -4
  69. package/dist/cjs/ion-segment_2.cjs.entry.js +3 -3
  70. package/dist/cjs/ion-select_3.cjs.entry.js +3 -4
  71. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  72. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  73. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
  74. package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
  75. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  76. package/dist/cjs/ion-textarea.cjs.entry.js +2 -4
  77. package/dist/cjs/ion-toast.cjs.entry.js +3 -4
  78. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  79. package/dist/cjs/{ionic-global-f4a2093b.js → ionic-global-62510d64.js} +1 -1
  80. package/dist/cjs/ionic.cjs.js +5 -5
  81. package/dist/cjs/{ios.transition-a4ffb5a2.js → ios.transition-d9c0e4fb.js} +2 -2
  82. package/dist/cjs/loader.cjs.js +4 -4
  83. package/dist/cjs/{md.transition-292abe1c.js → md.transition-4fac8a87.js} +2 -2
  84. package/dist/cjs/{overlays-e8e05b0e.js → overlays-b1471172.js} +5 -12
  85. package/dist/cjs/{status-tap-415acac6.js → status-tap-0aa8e1f2.js} +1 -1
  86. package/dist/cjs/{swipe-back-b8f2330b.js → swipe-back-2a858bbd.js} +2 -2
  87. package/dist/collection/collection-manifest.json +9 -10
  88. package/dist/collection/components/backdrop/backdrop.js +12 -0
  89. package/dist/collection/components/button/button.ios.css +1 -1
  90. package/dist/collection/components/button/button.md.css +1 -1
  91. package/dist/collection/components/button/test/wrap/button.e2e.js +24 -12
  92. package/dist/collection/components/content/content.css +4 -0
  93. package/dist/collection/components/datetime/datetime.ios.css +37 -91
  94. package/dist/collection/components/datetime/datetime.js +36 -24
  95. package/dist/collection/components/datetime/datetime.md.css +37 -96
  96. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +1 -1
  97. package/dist/collection/components/datetime/test/a11y/datetime.spec.js +9 -6
  98. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +0 -10
  99. package/dist/collection/components/datetime/test/datetime.e2e.js +2 -2
  100. package/dist/collection/components/datetime/test/disabled/datetime.spec.js +4 -4
  101. package/dist/collection/components/datetime/test/locale/datetime.e2e.js +2 -2
  102. package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +6 -6
  103. package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +1 -1
  104. package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +41 -43
  105. package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +1 -1
  106. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +4 -4
  107. package/dist/collection/components/datetime/test/values/datetime.e2e.js +12 -15
  108. package/dist/collection/components/datetime/utils/data.js +1 -1
  109. package/dist/collection/components/input/input.js +2 -4
  110. package/dist/collection/components/picker/picker.ios.css +211 -112
  111. package/dist/collection/components/picker/picker.js +744 -472
  112. package/dist/collection/components/picker/picker.md.css +198 -108
  113. package/dist/collection/components/picker/test/basic/picker.e2e.js +13 -99
  114. package/dist/collection/components/{picker-legacy → picker}/test/is-open/picker.e2e.js +4 -4
  115. package/dist/collection/components/{picker-legacy → picker}/test/picker-id.spec.js +5 -5
  116. package/dist/collection/components/{picker-legacy → picker}/test/trigger/picker.e2e.js +1 -1
  117. package/dist/collection/components/picker-column/picker-column.js +335 -497
  118. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column-aria.spec.js +3 -3
  119. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column-dynamic.spec.js +2 -2
  120. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column.spec.js +2 -2
  121. package/dist/collection/components/{picker-legacy-column → picker-column}/test/standalone/picker-column.e2e.js +3 -3
  122. package/dist/collection/components/{picker-column-option/picker-column-option.md.css → picker-column-internal/picker-column-internal.ios.css} +53 -6
  123. package/dist/collection/components/picker-column-internal/picker-column-internal.js +565 -0
  124. package/dist/collection/components/{picker-column/picker-column.css → picker-column-internal/picker-column-internal.md.css} +83 -96
  125. package/dist/collection/components/{picker-column/test/basic/picker-column.e2e.js → picker-column-internal/test/basic/picker-column-internal.e2e.js} +8 -8
  126. package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +162 -0
  127. package/dist/collection/components/{picker-legacy/picker.md.css → picker-internal/picker-internal.ios.css} +100 -192
  128. package/dist/collection/components/picker-internal/picker-internal.js +544 -0
  129. package/dist/collection/components/{picker-legacy/picker.ios.css → picker-internal/picker-internal.md.css} +98 -207
  130. package/dist/collection/components/{picker/test/a11y/picker.e2e.js → picker-internal/test/a11y/picker-internal.e2e.js} +2 -2
  131. package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +118 -0
  132. package/dist/collection/components/{picker/test/keyboard-entry/picker.e2e.js → picker-internal/test/keyboard-entry/picker-internal.e2e.js} +32 -63
  133. package/dist/collection/components/refresher/refresher.utils.js +19 -11
  134. package/dist/collection/components/refresher-content/refresher-content.js +9 -3
  135. package/dist/collection/components/searchbar/searchbar.js +1 -3
  136. package/dist/collection/components/textarea/textarea.js +2 -4
  137. package/dist/collection/components/title/test/a11y/title.e2e.js +0 -39
  138. package/dist/collection/components/title/title.js +1 -22
  139. package/dist/collection/utils/gesture/gesture-controller.js +1 -1
  140. package/dist/collection/utils/overlays.js +4 -11
  141. package/dist/docs.json +47 -484
  142. package/dist/esm/{app-globals-722340c4.js → app-globals-c23144fc.js} +1 -1
  143. package/dist/esm/{button-active-ed9d848c.js → button-active-7013b5a1.js} +2 -2
  144. package/dist/esm/{data-4b9508c9.js → data-f5c75b4e.js} +1 -1
  145. package/dist/esm/{gesture-controller-314a54f6.js → gesture-controller-1bf57181.js} +1 -1
  146. package/dist/esm/{index-39782642.js → index-2cf77112.js} +2 -2
  147. package/dist/esm/{index-08d686eb.js → index-39329c6f.js} +1 -39
  148. package/dist/esm/{index-80492ed3.js → index-7a818ed3.js} +1 -1
  149. package/dist/esm/{index-d8817fb0.js → index-bebaae5d.js} +3 -3
  150. package/dist/esm/index.js +9 -9
  151. package/dist/esm/ion-accordion_2.entry.js +2 -2
  152. package/dist/esm/ion-action-sheet.entry.js +6 -6
  153. package/dist/esm/ion-alert.entry.js +6 -6
  154. package/dist/esm/ion-app_8.entry.js +8 -28
  155. package/dist/esm/ion-avatar_3.entry.js +2 -2
  156. package/dist/esm/ion-back-button.entry.js +2 -2
  157. package/dist/esm/ion-backdrop.entry.js +14 -2
  158. package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
  159. package/dist/esm/ion-button_2.entry.js +4 -4
  160. package/dist/esm/ion-card_5.entry.js +2 -2
  161. package/dist/esm/ion-checkbox.entry.js +2 -2
  162. package/dist/esm/ion-chip.entry.js +2 -2
  163. package/dist/esm/ion-col_3.entry.js +2 -2
  164. package/dist/esm/ion-datetime-button.entry.js +3 -3
  165. package/dist/esm/ion-datetime_3.entry.js +57 -37
  166. package/dist/esm/ion-fab_3.entry.js +2 -2
  167. package/dist/esm/ion-img.entry.js +2 -2
  168. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
  169. package/dist/esm/ion-input.entry.js +2 -4
  170. package/dist/esm/ion-item-option_3.entry.js +3 -3
  171. package/dist/esm/ion-item_8.entry.js +2 -2
  172. package/dist/esm/ion-loading.entry.js +3 -4
  173. package/dist/esm/ion-menu_3.entry.js +6 -6
  174. package/dist/esm/ion-modal.entry.js +6 -6
  175. package/dist/esm/ion-nav_2.entry.js +4 -4
  176. package/dist/esm/{ion-picker-column.entry.js → ion-picker-column-internal.entry.js} +89 -106
  177. package/dist/esm/{ion-picker.entry.js → ion-picker-internal.entry.js} +20 -27
  178. package/dist/esm/ion-popover.entry.js +4 -5
  179. package/dist/esm/ion-progress-bar.entry.js +2 -2
  180. package/dist/esm/ion-radio_2.entry.js +2 -2
  181. package/dist/esm/ion-range.entry.js +3 -3
  182. package/dist/esm/ion-refresher_2.entry.js +32 -17
  183. package/dist/esm/ion-reorder_2.entry.js +3 -3
  184. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  185. package/dist/esm/ion-route_4.entry.js +2 -2
  186. package/dist/esm/ion-searchbar.entry.js +2 -4
  187. package/dist/esm/ion-segment_2.entry.js +3 -3
  188. package/dist/esm/ion-select_3.entry.js +3 -4
  189. package/dist/esm/ion-spinner.entry.js +2 -2
  190. package/dist/esm/ion-split-pane.entry.js +2 -2
  191. package/dist/esm/ion-tab-bar_2.entry.js +2 -2
  192. package/dist/esm/ion-tab_2.entry.js +1 -1
  193. package/dist/esm/ion-text.entry.js +2 -2
  194. package/dist/esm/ion-textarea.entry.js +2 -4
  195. package/dist/esm/ion-toast.entry.js +3 -4
  196. package/dist/esm/ion-toggle.entry.js +3 -3
  197. package/dist/esm/{ionic-global-c0cda98e.js → ionic-global-6c78e871.js} +1 -1
  198. package/dist/esm/ionic.js +6 -6
  199. package/dist/esm/{ios.transition-fd16bec1.js → ios.transition-daa373e9.js} +2 -2
  200. package/dist/esm/loader.js +5 -5
  201. package/dist/esm/{md.transition-94ac93e1.js → md.transition-91c3d3cc.js} +2 -2
  202. package/dist/esm/{overlays-fbc5cab5.js → overlays-64e67e2c.js} +5 -12
  203. package/dist/esm/{status-tap-2b93b1b5.js → status-tap-9dd45200.js} +1 -1
  204. package/dist/esm/{swipe-back-a8ca7f93.js → swipe-back-a6f386fc.js} +2 -2
  205. package/dist/esm-es5/app-globals-c23144fc.js +4 -0
  206. package/dist/esm-es5/{button-active-ed9d848c.js → button-active-7013b5a1.js} +1 -1
  207. package/dist/esm-es5/{gesture-controller-314a54f6.js → gesture-controller-1bf57181.js} +1 -1
  208. package/dist/esm-es5/{index-39782642.js → index-2cf77112.js} +1 -1
  209. package/dist/esm-es5/{index-08d686eb.js → index-39329c6f.js} +1 -1
  210. package/dist/esm-es5/{index-80492ed3.js → index-7a818ed3.js} +1 -1
  211. package/dist/esm-es5/{index-d8817fb0.js → index-bebaae5d.js} +1 -1
  212. package/dist/esm-es5/index.js +1 -1
  213. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  214. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  215. package/dist/esm-es5/ion-alert.entry.js +1 -1
  216. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  217. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  218. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  219. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  220. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  221. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  222. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  223. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  224. package/dist/esm-es5/ion-chip.entry.js +1 -1
  225. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  226. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  227. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  228. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  229. package/dist/esm-es5/ion-img.entry.js +1 -1
  230. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  231. package/dist/esm-es5/ion-input.entry.js +1 -1
  232. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  233. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  234. package/dist/esm-es5/ion-loading.entry.js +1 -1
  235. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  236. package/dist/esm-es5/ion-modal.entry.js +1 -1
  237. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  238. package/dist/esm-es5/ion-picker-column-internal.entry.js +4 -0
  239. package/dist/esm-es5/ion-picker-internal.entry.js +4 -0
  240. package/dist/esm-es5/ion-popover.entry.js +1 -1
  241. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  242. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  243. package/dist/esm-es5/ion-range.entry.js +1 -1
  244. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  245. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  246. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  247. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  248. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  249. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  250. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  251. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  252. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  253. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  254. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  255. package/dist/esm-es5/ion-text.entry.js +1 -1
  256. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  257. package/dist/esm-es5/ion-toast.entry.js +1 -1
  258. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  259. package/dist/esm-es5/{ionic-global-c0cda98e.js → ionic-global-6c78e871.js} +1 -1
  260. package/dist/esm-es5/ionic.js +1 -1
  261. package/dist/esm-es5/{ios.transition-fd16bec1.js → ios.transition-daa373e9.js} +1 -1
  262. package/dist/esm-es5/loader.js +1 -1
  263. package/dist/esm-es5/{md.transition-94ac93e1.js → md.transition-91c3d3cc.js} +1 -1
  264. package/dist/esm-es5/overlays-64e67e2c.js +4 -0
  265. package/dist/esm-es5/{status-tap-2b93b1b5.js → status-tap-9dd45200.js} +1 -1
  266. package/dist/esm-es5/swipe-back-a6f386fc.js +4 -0
  267. package/dist/html.html-data.json +3 -154
  268. package/dist/ionic/index.esm.js +1 -1
  269. package/dist/ionic/ionic.esm.js +1 -1
  270. package/dist/ionic/ionic.js +1 -1
  271. package/dist/ionic/{p-30029cc2.system.js → p-0263eb49.system.js} +1 -1
  272. package/dist/ionic/p-06600f70.js +4 -0
  273. package/dist/ionic/p-0827d00e.system.entry.js +4 -0
  274. package/dist/ionic/{p-9738fd82.js → p-12cdcb59.js} +1 -1
  275. package/dist/ionic/{p-1161a793.entry.js → p-161d0916.entry.js} +1 -1
  276. package/dist/ionic/{p-1d624e03.system.js → p-1631b52f.system.js} +1 -1
  277. package/dist/ionic/{p-34c39c48.entry.js → p-18032a93.entry.js} +1 -1
  278. package/dist/ionic/p-19545a49.system.entry.js +4 -0
  279. package/dist/ionic/{p-cfe57b1b.entry.js → p-1c6c6098.entry.js} +1 -1
  280. package/dist/ionic/{p-6e70dd1a.system.entry.js → p-1cbc21e2.system.entry.js} +1 -1
  281. package/dist/ionic/p-1e7daa1f.entry.js +4 -0
  282. package/dist/ionic/{p-2092f39f.entry.js → p-1ff22253.entry.js} +1 -1
  283. package/dist/ionic/{p-5ecae037.js → p-21f015cf.js} +1 -1
  284. package/dist/ionic/{p-3fd26bd6.system.entry.js → p-23a27e78.system.entry.js} +1 -1
  285. package/dist/ionic/p-2507b0c0.entry.js +4 -0
  286. package/dist/ionic/{p-22e5af95.entry.js → p-2657f213.entry.js} +1 -1
  287. package/dist/ionic/{p-6fd64e7c.system.entry.js → p-27a5f2c7.system.entry.js} +1 -1
  288. package/dist/ionic/{p-4a081ea9.entry.js → p-27e6473f.entry.js} +1 -1
  289. package/dist/ionic/{p-464975c5.system.entry.js → p-2a7e6572.system.entry.js} +1 -1
  290. package/dist/ionic/{p-77965464.system.entry.js → p-2ac9d078.system.entry.js} +1 -1
  291. package/dist/ionic/{p-4fb51e61.system.entry.js → p-2cd9cb80.system.entry.js} +1 -1
  292. package/dist/ionic/{p-17da5ed1.entry.js → p-312221db.entry.js} +1 -1
  293. package/dist/ionic/{p-a225bf0f.system.entry.js → p-315ad733.system.entry.js} +1 -1
  294. package/dist/ionic/{p-3e1e14d9.system.js → p-31b2326e.system.js} +1 -1
  295. package/dist/ionic/p-33f3cd49.entry.js +4 -0
  296. package/dist/ionic/{p-5b365ca7.system.js → p-34d6f520.system.js} +1 -1
  297. package/dist/ionic/{p-b133e9b4.entry.js → p-3535a36c.entry.js} +1 -1
  298. package/dist/ionic/p-35ce400e.system.js +4 -0
  299. package/dist/ionic/{p-93000a81.system.entry.js → p-3acad8ff.system.entry.js} +1 -1
  300. package/dist/ionic/{p-b5f9f14c.entry.js → p-3cb5466e.entry.js} +1 -1
  301. package/dist/ionic/{p-1fc72959.entry.js → p-3f5ae764.entry.js} +1 -1
  302. package/dist/ionic/{p-42ba3902.entry.js → p-405f1a72.entry.js} +1 -1
  303. package/dist/ionic/{p-96dbbac1.system.entry.js → p-41f7af3f.system.entry.js} +1 -1
  304. package/dist/ionic/{p-3fe96156.system.js → p-426bdba9.system.js} +1 -1
  305. package/dist/ionic/p-45db7949.system.entry.js +4 -0
  306. package/dist/ionic/{p-21c3515a.entry.js → p-46dbd723.entry.js} +1 -1
  307. package/dist/ionic/{p-ef126ae8.system.entry.js → p-4f71a9cf.system.entry.js} +1 -1
  308. package/dist/ionic/{p-a4afcc88.entry.js → p-53a3283e.entry.js} +1 -1
  309. package/dist/ionic/{p-4a36430f.system.entry.js → p-57c0d5bf.system.entry.js} +1 -1
  310. package/dist/ionic/p-58dd7c15.entry.js +4 -0
  311. package/dist/ionic/{p-b4a51c42.system.js → p-58ff9e5b.system.js} +1 -1
  312. package/dist/ionic/{p-cde52378.system.entry.js → p-5a7d5905.system.entry.js} +1 -1
  313. package/dist/ionic/p-5c7f13cd.system.entry.js +4 -0
  314. package/dist/ionic/{p-e8e86f69.system.entry.js → p-5f127075.system.entry.js} +1 -1
  315. package/dist/ionic/{p-4a31c99f.entry.js → p-5f46d93e.entry.js} +1 -1
  316. package/dist/ionic/{p-18ba8221.entry.js → p-5fb707e0.entry.js} +1 -1
  317. package/dist/ionic/{p-6fbecbda.entry.js → p-64af4468.entry.js} +1 -1
  318. package/dist/ionic/{p-232d1f22.entry.js → p-6744eca5.entry.js} +1 -1
  319. package/dist/ionic/{p-8f5d30f5.entry.js → p-67598744.entry.js} +1 -1
  320. package/dist/ionic/p-6a6477b2.js +4 -0
  321. package/dist/ionic/{p-7b725280.entry.js → p-6cf08720.entry.js} +1 -1
  322. package/dist/ionic/{p-6d72fb44.entry.js → p-70ecb18b.entry.js} +1 -1
  323. package/dist/ionic/{p-6b7c55cd.entry.js → p-71d986ae.entry.js} +1 -1
  324. package/dist/ionic/p-742e11cf.system.entry.js +4 -0
  325. package/dist/ionic/{p-f7a36cd0.system.js → p-7484b1d6.system.js} +1 -1
  326. package/dist/ionic/p-78ebf1b6.system.entry.js +4 -0
  327. package/dist/ionic/{p-b7010c69.system.entry.js → p-7ae5ca1f.system.entry.js} +1 -1
  328. package/dist/ionic/{p-c847fb35.system.entry.js → p-8261be6c.system.entry.js} +1 -1
  329. package/dist/ionic/p-83fada9e.system.entry.js +4 -0
  330. package/dist/ionic/{p-353b349d.entry.js → p-86c2bbc8.entry.js} +1 -1
  331. package/dist/ionic/{p-1208f939.entry.js → p-89026d53.entry.js} +1 -1
  332. package/dist/ionic/{p-9c229210.system.entry.js → p-89cfbc88.system.entry.js} +2 -2
  333. package/dist/ionic/p-8a10752d.entry.js +4 -0
  334. package/dist/ionic/{p-e7ea9815.system.entry.js → p-8a75f7bf.system.entry.js} +1 -1
  335. package/dist/ionic/{p-32303650.system.entry.js → p-8c202d6e.system.entry.js} +1 -1
  336. package/dist/ionic/{p-a9e3b5be.system.entry.js → p-90db28f8.system.entry.js} +1 -1
  337. package/dist/ionic/{p-d662d908.js → p-91f9e81b.js} +1 -1
  338. package/dist/ionic/{p-f910cc73.system.entry.js → p-93dac17a.system.entry.js} +1 -1
  339. package/dist/ionic/{p-b3b3efba.system.entry.js → p-98ac0e27.system.entry.js} +2 -2
  340. package/dist/ionic/{p-a98dc0c1.entry.js → p-99fe0543.entry.js} +1 -1
  341. package/dist/ionic/{p-c9a21dfd.system.entry.js → p-9f376964.system.entry.js} +1 -1
  342. package/dist/ionic/{p-0e53f8ea.system.entry.js → p-a0945c3a.system.entry.js} +1 -1
  343. package/dist/ionic/{p-9709ebd8.system.entry.js → p-a0db3de9.system.entry.js} +1 -1
  344. package/dist/ionic/{p-5d42b6b4.entry.js → p-a1b4dba7.entry.js} +1 -1
  345. package/dist/ionic/{p-3f6270b3.entry.js → p-a3a145d3.entry.js} +1 -1
  346. package/dist/ionic/{p-5a68960f.entry.js → p-a5c81b99.entry.js} +1 -1
  347. package/dist/ionic/{p-98f3d827.entry.js → p-a70b5d24.entry.js} +1 -1
  348. package/dist/ionic/{p-ab9456e9.system.entry.js → p-a843a90e.system.entry.js} +1 -1
  349. package/dist/ionic/{p-b752714f.system.entry.js → p-a99f14a7.system.entry.js} +1 -1
  350. package/dist/ionic/{p-564af202.system.entry.js → p-aac289d2.system.entry.js} +1 -1
  351. package/dist/ionic/{p-57477107.system.js → p-abab375b.system.js} +1 -1
  352. package/dist/ionic/{p-31158892.js → p-ac4a7fc0.js} +1 -1
  353. package/dist/ionic/{p-c3c3333a.js → p-acdd8148.js} +1 -1
  354. package/dist/ionic/{p-54dfc9b5.system.js → p-ad78c421.system.js} +1 -1
  355. package/dist/ionic/{p-caf21b46.system.entry.js → p-ad953217.system.entry.js} +1 -1
  356. package/dist/ionic/p-af959b5d.entry.js +4 -0
  357. package/dist/ionic/{p-b6f5e4f2.system.entry.js → p-b0fcf130.system.entry.js} +1 -1
  358. package/dist/ionic/p-b11ceee2.entry.js +4 -0
  359. package/dist/ionic/p-b5e33ebc.system.entry.js +4 -0
  360. package/dist/ionic/{p-2938823a.system.entry.js → p-b81a8111.system.entry.js} +1 -1
  361. package/dist/ionic/p-b8f2134e.js +4 -0
  362. package/dist/ionic/{p-9b97df10.js → p-bb3615f7.js} +1 -1
  363. package/dist/ionic/p-bbe3feee.entry.js +4 -0
  364. package/dist/ionic/{p-fbf3a689.system.entry.js → p-bc97b5cd.system.entry.js} +1 -1
  365. package/dist/ionic/{p-d37b441e.entry.js → p-c04accad.entry.js} +1 -1
  366. package/dist/ionic/{p-e3584231.system.js → p-c5ae50be.system.js} +1 -1
  367. package/dist/ionic/{p-20d469d0.system.js → p-c7c8429a.system.js} +1 -1
  368. package/dist/ionic/{p-c18de88a.system.entry.js → p-ca32685b.system.entry.js} +1 -1
  369. package/dist/ionic/p-cde72008.js +4 -0
  370. package/dist/ionic/p-d0251fc4.entry.js +4 -0
  371. package/dist/ionic/p-d1530ea9.entry.js +4 -0
  372. package/dist/ionic/{p-51a087d6.entry.js → p-d3e123c0.entry.js} +1 -1
  373. package/dist/ionic/p-ddccf1f4.js +4 -0
  374. package/dist/ionic/{p-2ab4e925.system.entry.js → p-df361680.system.entry.js} +1 -1
  375. package/dist/ionic/p-e145b9f9.entry.js +4 -0
  376. package/dist/ionic/{p-4155f352.system.js → p-e26030f8.system.js} +1 -1
  377. package/dist/ionic/{p-c91ccbfa.system.entry.js → p-e3c44332.system.entry.js} +1 -1
  378. package/dist/ionic/{p-f8a5bb89.entry.js → p-e4045e04.entry.js} +1 -1
  379. package/dist/ionic/{p-535d2a67.entry.js → p-e8e530fc.entry.js} +1 -1
  380. package/dist/ionic/p-eab6401e.js +4 -0
  381. package/dist/ionic/p-edc5c693.system.entry.js +4 -0
  382. package/dist/ionic/{p-4911a5d6.entry.js → p-ee4a54e3.entry.js} +1 -1
  383. package/dist/ionic/{p-5bebc7b3.system.entry.js → p-eef8d7e8.system.entry.js} +1 -1
  384. package/dist/ionic/p-f0384573.system.entry.js +4 -0
  385. package/dist/ionic/p-f10de9d5.system.js +4 -0
  386. package/dist/ionic/{p-4bee86bd.entry.js → p-f34d6a49.entry.js} +1 -1
  387. package/dist/ionic/p-f444fea5.entry.js +4 -0
  388. package/dist/ionic/{p-8ededb41.js → p-f5d2dc9b.js} +1 -1
  389. package/dist/ionic/{p-d3b030b8.system.js → p-f8c5a0dd.system.js} +1 -1
  390. package/dist/ionic/p-fcf49977.system.entry.js +4 -0
  391. package/dist/types/components/backdrop/backdrop.d.ts +3 -0
  392. package/dist/types/components/datetime/datetime.d.ts +1 -0
  393. package/dist/types/components/datetime/utils/data.d.ts +7 -11
  394. package/dist/types/components/input/input.d.ts +1 -5
  395. package/dist/types/components/menu/menu.d.ts +1 -1
  396. package/dist/types/components/picker/picker.d.ts +129 -75
  397. package/dist/types/components/picker-column/picker-column.d.ts +39 -99
  398. package/dist/types/components/picker-column-internal/picker-column-internal-interfaces.d.ts +5 -0
  399. package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +102 -0
  400. package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +8 -0
  401. package/dist/types/components/picker-internal/picker-internal.d.ts +102 -0
  402. package/dist/types/components/refresher/refresher.utils.d.ts +16 -0
  403. package/dist/types/components/searchbar/searchbar.d.ts +0 -2
  404. package/dist/types/components/textarea/textarea.d.ts +1 -5
  405. package/dist/types/components.d.ts +129 -161
  406. package/dist/types/interface.d.ts +1 -1
  407. package/dist/types/utils/config.d.ts +2 -2
  408. package/dist/types/utils/gesture/gesture-controller.d.ts +0 -1
  409. package/dist/types/utils/overlays.d.ts +2 -5
  410. package/hydrate/index.d.ts +1 -1
  411. package/hydrate/index.js +990 -1102
  412. package/package.json +2 -2
  413. package/components/ion-picker-column-option.d.ts +0 -11
  414. package/components/ion-picker-column-option.js +0 -9
  415. package/components/ion-picker-legacy-column.d.ts +0 -11
  416. package/components/ion-picker-legacy-column.js +0 -9
  417. package/components/ion-picker-legacy.js +0 -309
  418. package/components/picker-column-option.js +0 -122
  419. package/components/picker-column2.js +0 -379
  420. package/dist/cjs/ion-picker-column-option.cjs.entry.js +0 -104
  421. package/dist/collection/components/picker/test/custom/picker.e2e.js +0 -85
  422. package/dist/collection/components/picker-column/test/disabled/picker-column.e2e.js +0 -91
  423. package/dist/collection/components/picker-column/test/slots/picker-column.e2e.js +0 -39
  424. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +0 -87
  425. package/dist/collection/components/picker-column-option/picker-column-option.js +0 -173
  426. package/dist/collection/components/picker-column-option/test/a11y/picker-column-option.e2e.js +0 -18
  427. package/dist/collection/components/picker-column-option/test/basic/picker-column-option.e2e.js +0 -37
  428. package/dist/collection/components/picker-column-option/test/picker-column-option.spec.js +0 -29
  429. package/dist/collection/components/picker-legacy/picker.js +0 -817
  430. package/dist/collection/components/picker-legacy/test/basic/picker.e2e.js +0 -25
  431. package/dist/collection/components/picker-legacy-column/picker-column.js +0 -419
  432. package/dist/collection/components/title/test/title.spec.js +0 -132
  433. package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +0 -65
  434. package/dist/esm/ion-picker-column-option.entry.js +0 -100
  435. package/dist/esm-es5/app-globals-722340c4.js +0 -4
  436. package/dist/esm-es5/ion-picker-column-option.entry.js +0 -4
  437. package/dist/esm-es5/ion-picker-column.entry.js +0 -4
  438. package/dist/esm-es5/ion-picker.entry.js +0 -4
  439. package/dist/esm-es5/overlays-fbc5cab5.js +0 -4
  440. package/dist/esm-es5/swipe-back-a8ca7f93.js +0 -4
  441. package/dist/ionic/p-1786bc72.js +0 -4
  442. package/dist/ionic/p-26798a7b.system.entry.js +0 -4
  443. package/dist/ionic/p-27bcbbc7.system.entry.js +0 -4
  444. package/dist/ionic/p-350f7292.system.entry.js +0 -4
  445. package/dist/ionic/p-36d194c5.entry.js +0 -4
  446. package/dist/ionic/p-3993ae66.entry.js +0 -4
  447. package/dist/ionic/p-4890093d.js +0 -4
  448. package/dist/ionic/p-51abefb7.system.js +0 -4
  449. package/dist/ionic/p-563c41f0.system.entry.js +0 -4
  450. package/dist/ionic/p-588fdf40.entry.js +0 -4
  451. package/dist/ionic/p-5a1aac13.system.entry.js +0 -4
  452. package/dist/ionic/p-73190c5f.entry.js +0 -4
  453. package/dist/ionic/p-73aa7604.entry.js +0 -4
  454. package/dist/ionic/p-76d3765d.js +0 -4
  455. package/dist/ionic/p-8017aad2.system.entry.js +0 -4
  456. package/dist/ionic/p-846ee227.entry.js +0 -4
  457. package/dist/ionic/p-8c97cdc0.entry.js +0 -4
  458. package/dist/ionic/p-8e42850f.entry.js +0 -4
  459. package/dist/ionic/p-8fa6583d.system.js +0 -4
  460. package/dist/ionic/p-91af3c52.system.entry.js +0 -4
  461. package/dist/ionic/p-a60a1ce5.js +0 -4
  462. package/dist/ionic/p-a8baa23e.entry.js +0 -4
  463. package/dist/ionic/p-a9a80f5b.entry.js +0 -4
  464. package/dist/ionic/p-afcf4620.entry.js +0 -4
  465. package/dist/ionic/p-b3d0a3d6.system.entry.js +0 -4
  466. package/dist/ionic/p-b4d31b30.system.entry.js +0 -4
  467. package/dist/ionic/p-c41bff4e.system.entry.js +0 -4
  468. package/dist/ionic/p-ca8938f4.js +0 -4
  469. package/dist/ionic/p-da15f571.system.entry.js +0 -4
  470. package/dist/ionic/p-e4d90573.js +0 -4
  471. package/dist/ionic/p-ea69616e.entry.js +0 -4
  472. package/dist/ionic/p-ea74e0c6.entry.js +0 -4
  473. package/dist/ionic/p-ffd5dba4.system.entry.js +0 -4
  474. package/dist/types/components/picker/picker-interfaces.d.ts +0 -8
  475. package/dist/types/components/picker-column/picker-column-interfaces.d.ts +0 -4
  476. package/dist/types/components/picker-column-option/picker-column-option.d.ts +0 -66
  477. package/dist/types/components/picker-legacy/picker.d.ts +0 -158
  478. package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
  479. /package/dist/collection/components/{picker-legacy → picker}/animations/ios.enter.js +0 -0
  480. /package/dist/collection/components/{picker-legacy → picker}/animations/ios.leave.js +0 -0
  481. /package/dist/collection/components/picker/{picker-interfaces.js → picker-interface.js} +0 -0
  482. /package/dist/collection/components/{picker-legacy-column → picker-column}/picker-column.ios.css +0 -0
  483. /package/dist/collection/components/{picker-legacy-column → picker-column}/picker-column.md.css +0 -0
  484. /package/dist/collection/components/{picker-legacy-column → picker-column}/test/test.utils.js +0 -0
  485. /package/dist/collection/components/{picker-column/picker-column-interfaces.js → picker-column-internal/picker-column-internal-interfaces.js} +0 -0
  486. /package/dist/collection/components/{picker-legacy/picker-interface.js → picker-internal/picker-internal-interfaces.js} +0 -0
  487. /package/dist/esm-es5/{data-4b9508c9.js → data-f5c75b4e.js} +0 -0
  488. /package/dist/ionic/{p-368f5215.js → p-2aea8b1e.js} +0 -0
  489. /package/dist/ionic/{p-f58981c2.system.js → p-82e3d633.system.js} +0 -0
  490. /package/dist/types/components/{picker-legacy → picker}/animations/ios.enter.d.ts +0 -0
  491. /package/dist/types/components/{picker-legacy → picker}/animations/ios.leave.d.ts +0 -0
  492. /package/dist/types/components/{picker-legacy → picker}/picker-interface.d.ts +0 -0
  493. /package/dist/types/components/{picker-legacy-column → picker-column}/test/test.utils.d.ts +0 -0
@@ -4,7 +4,6 @@
4
4
  import { d as doc } from './index5.js';
5
5
  import { b as getIonMode, c as config } from './ionic-global.js';
6
6
  import { C as CoreDelegate } from './framework-delegate.js';
7
- import { B as BACKDROP_NO_SCROLL } from './gesture-controller.js';
8
7
  import { OVERLAY_BACK_BUTTON_PRIORITY } from './hardware-back-button.js';
9
8
  import { c as componentOnReady, f as focusElement, a as addEventListener, b as removeEventListener, g as getElementRoot } from './helpers.js';
10
9
  import { p as printIonWarning } from './index6.js';
@@ -29,10 +28,7 @@ const alertController = /*@__PURE__*/ createController('ion-alert');
29
28
  const actionSheetController = /*@__PURE__*/ createController('ion-action-sheet');
30
29
  const loadingController = /*@__PURE__*/ createController('ion-loading');
31
30
  const modalController = /*@__PURE__*/ createController('ion-modal');
32
- /**
33
- * @deprecated Use the inline ion-picker component instead.
34
- */
35
- const pickerController = /*@__PURE__*/ createController('ion-picker-legacy');
31
+ const pickerController = /*@__PURE__*/ createController('ion-picker');
36
32
  const popoverController = /*@__PURE__*/ createController('ion-popover');
37
33
  const toastController = /*@__PURE__*/ createController('ion-toast');
38
34
  /**
@@ -142,7 +138,7 @@ const focusLastDescendant = (ref, overlay) => {
142
138
  * Should NOT include: Toast
143
139
  */
144
140
  const trapKeyboardFocus = (ev, doc) => {
145
- const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover');
141
+ const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker,ion-popover');
146
142
  const target = ev.target;
147
143
  /**
148
144
  * If no active overlay, ignore this event.
@@ -327,7 +323,7 @@ const dismissOverlay = (doc, data, role, overlayTag, id) => {
327
323
  */
328
324
  const getOverlays = (doc, selector) => {
329
325
  if (selector === undefined) {
330
- selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover,ion-toast';
326
+ selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker,ion-popover,ion-toast';
331
327
  }
332
328
  return Array.from(doc.querySelectorAll(selector)).filter((c) => c.overlayIndex > 0);
333
329
  };
@@ -393,7 +389,6 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
393
389
  return;
394
390
  }
395
391
  setRootAriaHidden(true);
396
- document.body.classList.add(BACKDROP_NO_SCROLL);
397
392
  overlay.presented = true;
398
393
  overlay.willPresent.emit();
399
394
  (_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
@@ -456,14 +451,12 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
456
451
  if (!overlay.presented) {
457
452
  return false;
458
453
  }
459
- const lastOverlay = doc !== undefined && getPresentedOverlays(doc).length === 1;
460
454
  /**
461
455
  * If this is the last visible overlay then
462
456
  * we want to re-add the root to the accessibility tree.
463
457
  */
464
- if (lastOverlay) {
458
+ if (doc !== undefined && getPresentedOverlays(doc).length === 1) {
465
459
  setRootAriaHidden(false);
466
- document.body.classList.remove(BACKDROP_NO_SCROLL);
467
460
  }
468
461
  overlay.presented = false;
469
462
  try {
@@ -0,0 +1,390 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
5
+ import { r as raf, g as getElementRoot } from './helpers.js';
6
+ import { a as hapticSelectionStart, b as hapticSelectionChanged, h as hapticSelectionEnd } from './haptic.js';
7
+ import { a as isPlatform, b as getIonMode } from './ionic-global.js';
8
+ import { c as createColorClasses } from './theme.js';
9
+
10
+ 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)}}";
11
+
12
+ 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)}";
13
+
14
+ const PickerColumnInternal = /*@__PURE__*/ proxyCustomElement(class PickerColumnInternal extends HTMLElement {
15
+ constructor() {
16
+ super();
17
+ this.__registerHost();
18
+ this.__attachShadow();
19
+ this.ionChange = createEvent(this, "ionChange", 7);
20
+ this.isScrolling = false;
21
+ this.isColumnVisible = false;
22
+ this.canExitInputMode = true;
23
+ this.centerPickerItemInView = (target, smooth = true, canExitInputMode = true) => {
24
+ const { el, isColumnVisible } = this;
25
+ if (isColumnVisible) {
26
+ // (Vertical offset from parent) - (three empty picker rows) + (half the height of the target to ensure the scroll triggers)
27
+ const top = target.offsetTop - 3 * target.clientHeight + target.clientHeight / 2;
28
+ if (el.scrollTop !== top) {
29
+ /**
30
+ * Setting this flag prevents input
31
+ * mode from exiting in the picker column's
32
+ * scroll callback. This is useful when the user manually
33
+ * taps an item or types on the keyboard as both
34
+ * of these can cause a scroll to occur.
35
+ */
36
+ this.canExitInputMode = canExitInputMode;
37
+ el.scroll({
38
+ top,
39
+ left: 0,
40
+ behavior: smooth ? 'smooth' : undefined,
41
+ });
42
+ }
43
+ }
44
+ };
45
+ this.setPickerItemActiveState = (item, isActive) => {
46
+ if (isActive) {
47
+ item.classList.add(PICKER_ITEM_ACTIVE_CLASS);
48
+ item.part.add(PICKER_ITEM_ACTIVE_PART);
49
+ }
50
+ else {
51
+ item.classList.remove(PICKER_ITEM_ACTIVE_CLASS);
52
+ item.part.remove(PICKER_ITEM_ACTIVE_PART);
53
+ }
54
+ };
55
+ /**
56
+ * When ionInputModeChange is emitted, each column
57
+ * needs to check if it is the one being made available
58
+ * for text entry.
59
+ */
60
+ this.inputModeChange = (ev) => {
61
+ if (!this.numericInput) {
62
+ return;
63
+ }
64
+ const { useInputMode, inputModeColumn } = ev.detail;
65
+ /**
66
+ * If inputModeColumn is undefined then this means
67
+ * all numericInput columns are being selected.
68
+ */
69
+ const isColumnActive = inputModeColumn === undefined || inputModeColumn === this.el;
70
+ if (!useInputMode || !isColumnActive) {
71
+ this.setInputModeActive(false);
72
+ return;
73
+ }
74
+ this.setInputModeActive(true);
75
+ };
76
+ /**
77
+ * Setting isActive will cause a re-render.
78
+ * As a result, we do not want to cause the
79
+ * re-render mid scroll as this will cause
80
+ * the picker column to jump back to
81
+ * whatever value was selected at the
82
+ * start of the scroll interaction.
83
+ */
84
+ this.setInputModeActive = (state) => {
85
+ if (this.isScrolling) {
86
+ this.scrollEndCallback = () => {
87
+ this.isActive = state;
88
+ };
89
+ return;
90
+ }
91
+ this.isActive = state;
92
+ };
93
+ /**
94
+ * When the column scrolls, the component
95
+ * needs to determine which item is centered
96
+ * in the view and will emit an ionChange with
97
+ * the item object.
98
+ */
99
+ this.initializeScrollListener = () => {
100
+ /**
101
+ * The haptics for the wheel picker are
102
+ * an iOS-only feature. As a result, they should
103
+ * be disabled on Android.
104
+ */
105
+ const enableHaptics = isPlatform('ios');
106
+ const { el } = this;
107
+ let timeout;
108
+ let activeEl = this.activeItem;
109
+ const scrollCallback = () => {
110
+ raf(() => {
111
+ if (timeout) {
112
+ clearTimeout(timeout);
113
+ timeout = undefined;
114
+ }
115
+ if (!this.isScrolling) {
116
+ enableHaptics && hapticSelectionStart();
117
+ this.isScrolling = true;
118
+ }
119
+ /**
120
+ * Select item in the center of the column
121
+ * which is the month/year that we want to select
122
+ */
123
+ const bbox = el.getBoundingClientRect();
124
+ const centerX = bbox.x + bbox.width / 2;
125
+ const centerY = bbox.y + bbox.height / 2;
126
+ const activeElement = el.shadowRoot.elementFromPoint(centerX, centerY);
127
+ if (activeEl !== null) {
128
+ this.setPickerItemActiveState(activeEl, false);
129
+ }
130
+ if (activeElement === null || activeElement.disabled) {
131
+ return;
132
+ }
133
+ /**
134
+ * If we are selecting a new value,
135
+ * we need to run haptics again.
136
+ */
137
+ if (activeElement !== activeEl) {
138
+ enableHaptics && hapticSelectionChanged();
139
+ if (this.canExitInputMode) {
140
+ /**
141
+ * The native iOS wheel picker
142
+ * only dismisses the keyboard
143
+ * once the selected item has changed
144
+ * as a result of a swipe
145
+ * from the user. If `canExitInputMode` is
146
+ * `false` then this means that the
147
+ * scroll is happening as a result of
148
+ * the `value` property programmatically changing
149
+ * either by an application or by the user via the keyboard.
150
+ */
151
+ this.exitInputMode();
152
+ }
153
+ }
154
+ activeEl = activeElement;
155
+ this.setPickerItemActiveState(activeElement, true);
156
+ timeout = setTimeout(() => {
157
+ this.isScrolling = false;
158
+ enableHaptics && hapticSelectionEnd();
159
+ /**
160
+ * Certain tasks (such as those that
161
+ * cause re-renders) should only be done
162
+ * once scrolling has finished, otherwise
163
+ * flickering may occur.
164
+ */
165
+ const { scrollEndCallback } = this;
166
+ if (scrollEndCallback) {
167
+ scrollEndCallback();
168
+ this.scrollEndCallback = undefined;
169
+ }
170
+ /**
171
+ * Reset this flag as the
172
+ * next scroll interaction could
173
+ * be a scroll from the user. In this
174
+ * case, we should exit input mode.
175
+ */
176
+ this.canExitInputMode = true;
177
+ const dataIndex = activeElement.getAttribute('data-index');
178
+ /**
179
+ * If no value it is
180
+ * possible we hit one of the
181
+ * empty padding columns.
182
+ */
183
+ if (dataIndex === null) {
184
+ return;
185
+ }
186
+ const index = parseInt(dataIndex, 10);
187
+ const selectedItem = this.items[index];
188
+ if (selectedItem.value !== this.value) {
189
+ this.setValue(selectedItem.value);
190
+ }
191
+ }, 250);
192
+ });
193
+ };
194
+ /**
195
+ * Wrap this in an raf so that the scroll callback
196
+ * does not fire when component is initially shown.
197
+ */
198
+ raf(() => {
199
+ el.addEventListener('scroll', scrollCallback);
200
+ this.destroyScrollListener = () => {
201
+ el.removeEventListener('scroll', scrollCallback);
202
+ };
203
+ });
204
+ };
205
+ /**
206
+ * Tells the parent picker to
207
+ * exit text entry mode. This is only called
208
+ * when the selected item changes during scroll, so
209
+ * we know that the user likely wants to scroll
210
+ * instead of type.
211
+ */
212
+ this.exitInputMode = () => {
213
+ const { parentEl } = this;
214
+ if (parentEl == null)
215
+ return;
216
+ parentEl.exitInputMode();
217
+ /**
218
+ * setInputModeActive only takes
219
+ * effect once scrolling stops to avoid
220
+ * a component re-render while scrolling.
221
+ * However, we want the visual active
222
+ * indicator to go away immediately, so
223
+ * we call classList.remove here.
224
+ */
225
+ this.el.classList.remove('picker-column-active');
226
+ };
227
+ this.isActive = false;
228
+ this.disabled = false;
229
+ this.items = [];
230
+ this.value = undefined;
231
+ this.color = 'primary';
232
+ this.numericInput = false;
233
+ }
234
+ valueChange() {
235
+ if (this.isColumnVisible) {
236
+ /**
237
+ * Only scroll the active item into view when the picker column
238
+ * is actively visible to the user.
239
+ */
240
+ this.scrollActiveItemIntoView();
241
+ }
242
+ }
243
+ /**
244
+ * Only setup scroll listeners
245
+ * when the picker is visible, otherwise
246
+ * the container will have a scroll
247
+ * height of 0px.
248
+ */
249
+ componentWillLoad() {
250
+ const visibleCallback = (entries) => {
251
+ const ev = entries[0];
252
+ if (ev.isIntersecting) {
253
+ const { activeItem, el } = this;
254
+ this.isColumnVisible = true;
255
+ /**
256
+ * Because this initial call to scrollActiveItemIntoView has to fire before
257
+ * the scroll listener is set up, we need to manage the active class manually.
258
+ */
259
+ const oldActive = getElementRoot(el).querySelector(`.${PICKER_ITEM_ACTIVE_CLASS}`);
260
+ if (oldActive) {
261
+ this.setPickerItemActiveState(oldActive, false);
262
+ }
263
+ this.scrollActiveItemIntoView();
264
+ if (activeItem) {
265
+ this.setPickerItemActiveState(activeItem, true);
266
+ }
267
+ this.initializeScrollListener();
268
+ }
269
+ else {
270
+ this.isColumnVisible = false;
271
+ if (this.destroyScrollListener) {
272
+ this.destroyScrollListener();
273
+ this.destroyScrollListener = undefined;
274
+ }
275
+ }
276
+ };
277
+ new IntersectionObserver(visibleCallback, { threshold: 0.001 }).observe(this.el);
278
+ const parentEl = (this.parentEl = this.el.closest('ion-picker-internal'));
279
+ if (parentEl !== null) {
280
+ // TODO(FW-2832): type
281
+ parentEl.addEventListener('ionInputModeChange', (ev) => this.inputModeChange(ev));
282
+ }
283
+ }
284
+ componentDidRender() {
285
+ var _a;
286
+ const { activeItem, items, isColumnVisible, value } = this;
287
+ if (isColumnVisible) {
288
+ if (activeItem) {
289
+ this.scrollActiveItemIntoView();
290
+ }
291
+ else if (((_a = items[0]) === null || _a === void 0 ? void 0 : _a.value) !== value) {
292
+ /**
293
+ * If the picker column does not have an active item and the current value
294
+ * does not match the first item in the picker column, that means
295
+ * the value is out of bounds. In this case, we assign the value to the
296
+ * first item to match the scroll position of the column.
297
+ *
298
+ */
299
+ this.setValue(items[0].value);
300
+ }
301
+ }
302
+ }
303
+ /** @internal */
304
+ async scrollActiveItemIntoView() {
305
+ const activeEl = this.activeItem;
306
+ if (activeEl) {
307
+ this.centerPickerItemInView(activeEl, false, false);
308
+ }
309
+ }
310
+ /**
311
+ * Sets the value prop and fires the ionChange event.
312
+ * This is used when we need to fire ionChange from
313
+ * user-generated events that cannot be caught with normal
314
+ * input/change event listeners.
315
+ * @internal
316
+ */
317
+ async setValue(value) {
318
+ const { items } = this;
319
+ this.value = value;
320
+ const findItem = items.find((item) => item.value === value && item.disabled !== true);
321
+ if (findItem) {
322
+ this.ionChange.emit(findItem);
323
+ }
324
+ }
325
+ get activeItem() {
326
+ // If the whole picker column is disabled, the current value should appear active
327
+ // If the current value item is specifically disabled, it should not appear active
328
+ const selector = `.picker-item[data-value="${this.value}"]${this.disabled ? '' : ':not([disabled])'}`;
329
+ return getElementRoot(this.el).querySelector(selector);
330
+ }
331
+ render() {
332
+ const { items, color, disabled: pickerDisabled, isActive, numericInput } = this;
333
+ const mode = getIonMode(this);
334
+ /**
335
+ * exportparts is needed so ion-datetime can expose the parts
336
+ * from two layers of shadow nesting. If this causes problems,
337
+ * the attribute can be moved to datetime.tsx and set on every
338
+ * instance of ion-picker-column-internal there instead.
339
+ */
340
+ return (h(Host, { exportparts: `${PICKER_ITEM_PART}, ${PICKER_ITEM_ACTIVE_PART}`, disabled: pickerDisabled, tabindex: pickerDisabled ? null : 0, class: createColorClasses(color, {
341
+ [mode]: true,
342
+ ['picker-column-active']: isActive,
343
+ ['picker-column-numeric-input']: numericInput,
344
+ }) }, h("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), items.map((item, index) => {
345
+ const isItemDisabled = pickerDisabled || item.disabled || false;
346
+ return (h("button", { tabindex: "-1", class: {
347
+ 'picker-item': true,
348
+ }, "data-value": item.value, "data-index": index, onClick: (ev) => {
349
+ this.centerPickerItemInView(ev.target, true);
350
+ }, disabled: isItemDisabled, part: PICKER_ITEM_PART }, item.text));
351
+ }), h("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0")));
352
+ }
353
+ get el() { return this; }
354
+ static get watchers() { return {
355
+ "value": ["valueChange"]
356
+ }; }
357
+ static get style() { return {
358
+ ios: pickerColumnInternalIosCss,
359
+ md: pickerColumnInternalMdCss
360
+ }; }
361
+ }, [33, "ion-picker-column-internal", {
362
+ "disabled": [4],
363
+ "items": [16],
364
+ "value": [1032],
365
+ "color": [513],
366
+ "numericInput": [4, "numeric-input"],
367
+ "isActive": [32],
368
+ "scrollActiveItemIntoView": [64],
369
+ "setValue": [64]
370
+ }, undefined, {
371
+ "value": ["valueChange"]
372
+ }]);
373
+ const PICKER_ITEM_ACTIVE_CLASS = 'picker-item-active';
374
+ const PICKER_ITEM_PART = 'wheel-item';
375
+ const PICKER_ITEM_ACTIVE_PART = 'active';
376
+ function defineCustomElement() {
377
+ if (typeof customElements === "undefined") {
378
+ return;
379
+ }
380
+ const components = ["ion-picker-column-internal"];
381
+ components.forEach(tagName => { switch (tagName) {
382
+ case "ion-picker-column-internal":
383
+ if (!customElements.get(tagName)) {
384
+ customElements.define(tagName, PickerColumnInternal);
385
+ }
386
+ break;
387
+ } });
388
+ }
389
+
390
+ export { PickerColumnInternal as P, defineCustomElement as d };