@ionic/core 7.5.8-dev.11701806358.1ca1b519 → 7.5.8-dev.11701876182.1e71e7a0

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 (551) hide show
  1. package/components/animation.js +12 -11
  2. package/components/backdrop.js +12 -0
  3. package/components/checkbox.js +5 -3
  4. package/components/data.js +1 -1
  5. package/components/gesture-controller.js +1 -1
  6. package/components/index4.js +10 -12
  7. package/components/index5.js +0 -22
  8. package/components/input-shims.js +12 -7
  9. package/components/input.utils.js +3 -2
  10. package/components/ion-content.js +1 -1
  11. package/components/ion-datetime.js +64 -40
  12. package/components/ion-infinite-scroll.js +11 -3
  13. package/components/ion-input.js +31 -8
  14. package/components/ion-modal.js +2 -2
  15. package/components/ion-picker-column-internal.d.ts +11 -0
  16. package/components/ion-picker-column-internal.js +9 -0
  17. package/components/ion-picker-column.js +2 -2
  18. package/components/{ion-picker-legacy.d.ts → ion-picker-internal.d.ts} +4 -4
  19. package/components/ion-picker-internal.js +9 -0
  20. package/components/ion-picker.js +309 -1
  21. package/components/ion-range.js +5 -3
  22. package/components/ion-select.js +44 -29
  23. package/components/ion-skeleton-text.js +14 -1
  24. package/components/ion-textarea.js +30 -7
  25. package/components/ion-toast.js +419 -74
  26. package/components/ion-toggle.js +5 -3
  27. package/components/item.js +2 -2
  28. package/components/label.js +2 -2
  29. package/components/overlays.js +6 -12
  30. package/components/picker-column-internal.js +390 -0
  31. package/components/picker-column.js +317 -363
  32. package/components/{picker.js → picker-internal.js} +16 -16
  33. package/components/radio-group.js +2 -0
  34. package/components/radio.js +45 -5
  35. package/dist/cjs/{animation-cc40e39c.js → animation-9b401d39.js} +13 -12
  36. package/dist/cjs/{button-active-9d7e0640.js → button-active-a5185907.js} +2 -2
  37. package/dist/cjs/{capacitor-46980811.js → capacitor-c04564bf.js} +1 -1
  38. package/dist/cjs/compare-with-utils-df1001d7.js +44 -0
  39. package/dist/cjs/{data-e7526b58.js → data-36b9094e.js} +1 -1
  40. package/dist/cjs/{gesture-controller-9436f482.js → gesture-controller-c40c045a.js} +0 -1
  41. package/dist/cjs/{haptic-216df36c.js → haptic-b882e0bb.js} +1 -1
  42. package/dist/cjs/{index-8c1e77d6.js → index-b4f986cd.js} +1 -1
  43. package/dist/cjs/index-c8d52405.js +10 -0
  44. package/dist/cjs/{index-5cbb20f9.js → index-ce101dc9.js} +11 -13
  45. package/dist/cjs/{index-ee07ed59.js → index-d1b59ffa.js} +1 -1
  46. package/dist/cjs/{index-d4c2e02c.js → index-f8f13389.js} +2 -2
  47. package/dist/cjs/index.cjs.js +10 -10
  48. package/dist/cjs/{input-shims-87102b6a.js → input-shims-a23bb0f4.js} +15 -10
  49. package/dist/cjs/{input.utils-2a11c1fe.js → input.utils-3d0166a2.js} +4 -3
  50. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
  51. package/dist/cjs/ion-alert.cjs.entry.js +8 -8
  52. package/dist/cjs/ion-app_8.cjs.entry.js +10 -10
  53. package/dist/cjs/ion-backdrop.cjs.entry.js +12 -0
  54. package/dist/cjs/ion-checkbox.cjs.entry.js +5 -3
  55. package/dist/cjs/ion-datetime-button.cjs.entry.js +1 -1
  56. package/dist/cjs/ion-datetime_3.cjs.entry.js +60 -40
  57. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +11 -3
  58. package/dist/cjs/ion-input.cjs.entry.js +34 -11
  59. package/dist/cjs/ion-item-option_3.cjs.entry.js +1 -1
  60. package/dist/cjs/ion-item_8.cjs.entry.js +17 -4
  61. package/dist/cjs/ion-loading.cjs.entry.js +3 -4
  62. package/dist/cjs/ion-menu_3.cjs.entry.js +7 -7
  63. package/dist/cjs/ion-modal.cjs.entry.js +10 -10
  64. package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
  65. package/dist/cjs/{ion-picker-column.cjs.entry.js → ion-picker-column-internal.cjs.entry.js} +74 -107
  66. package/dist/cjs/{ion-picker.cjs.entry.js → ion-picker-internal.cjs.entry.js} +13 -13
  67. package/dist/cjs/ion-popover.cjs.entry.js +4 -5
  68. package/dist/cjs/ion-radio_2.cjs.entry.js +9 -4
  69. package/dist/cjs/ion-range.cjs.entry.js +6 -4
  70. package/dist/cjs/ion-refresher_2.cjs.entry.js +7 -7
  71. package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
  72. package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
  73. package/dist/cjs/ion-select_3.cjs.entry.js +51 -36
  74. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  75. package/dist/cjs/ion-textarea.cjs.entry.js +33 -10
  76. package/dist/cjs/ion-toast.cjs.entry.js +434 -93
  77. package/dist/cjs/ion-toggle.cjs.entry.js +9 -7
  78. package/dist/cjs/ionic.cjs.js +1 -1
  79. package/dist/cjs/{ios.transition-a4ffb5a2.js → ios.transition-6787b799.js} +3 -3
  80. package/dist/cjs/{keyboard-9390928c.js → keyboard-0272231f.js} +1 -1
  81. package/dist/cjs/{keyboard-7d621ee9.js → keyboard-af1bb365.js} +3 -3
  82. package/dist/cjs/{keyboard-controller-2158b478.js → keyboard-controller-c05e747a.js} +2 -2
  83. package/dist/cjs/loader.cjs.js +1 -1
  84. package/dist/cjs/{md.transition-292abe1c.js → md.transition-e033d20a.js} +3 -3
  85. package/dist/cjs/{notch-controller-1dce508a.js → notch-controller-9735e7ac.js} +1 -1
  86. package/dist/cjs/{overlays-e8e05b0e.js → overlays-27a6fb16.js} +7 -12
  87. package/dist/cjs/{swipe-back-b8f2330b.js → swipe-back-2a858bbd.js} +2 -2
  88. package/dist/collection/collection-manifest.json +6 -7
  89. package/dist/collection/components/backdrop/backdrop.js +12 -0
  90. package/dist/collection/components/checkbox/checkbox.ios.css +0 -6
  91. package/dist/collection/components/checkbox/checkbox.js +4 -1
  92. package/dist/collection/components/checkbox/checkbox.md.css +0 -6
  93. package/dist/collection/components/checkbox/test/checkbox.spec.js +14 -0
  94. package/dist/collection/components/content/content.css +4 -0
  95. package/dist/collection/components/datetime/datetime.ios.css +38 -83
  96. package/dist/collection/components/datetime/datetime.js +36 -24
  97. package/dist/collection/components/datetime/datetime.md.css +38 -88
  98. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +1 -1
  99. package/dist/collection/components/datetime/test/a11y/datetime.spec.js +9 -6
  100. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +0 -10
  101. package/dist/collection/components/datetime/test/datetime.e2e.js +2 -2
  102. package/dist/collection/components/datetime/test/disabled/datetime.spec.js +4 -4
  103. package/dist/collection/components/datetime/test/locale/datetime.e2e.js +2 -2
  104. package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +6 -6
  105. package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +1 -1
  106. package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +41 -43
  107. package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +1 -1
  108. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +4 -4
  109. package/dist/collection/components/datetime/test/values/datetime.e2e.js +12 -15
  110. package/dist/collection/components/datetime/utils/data.js +1 -1
  111. package/dist/collection/components/infinite-scroll/infinite-scroll.js +11 -3
  112. package/dist/collection/components/infinite-scroll/test/small-dom-update/infinite-scroll.e2e.js +31 -0
  113. package/dist/collection/components/input/input.ios.css +10 -3
  114. package/dist/collection/components/input/input.js +31 -6
  115. package/dist/collection/components/input/input.md.css +13 -12
  116. package/dist/collection/components/input/test/slot/input.e2e.js +51 -0
  117. package/dist/collection/components/item/item.ios.css +41 -3
  118. package/dist/collection/components/item/item.md.css +41 -3
  119. package/dist/collection/components/item/test/basic/item.e2e.js +1 -1
  120. package/dist/collection/components/item/test/disabled/item.e2e.js +0 -1
  121. package/dist/collection/components/label/label.ios.css +14 -3
  122. package/dist/collection/components/label/label.md.css +14 -3
  123. package/dist/collection/components/modal/gestures/swipe-to-close.js +2 -1
  124. package/dist/collection/components/note/test/a11y/note.e2e.js +43 -0
  125. package/dist/collection/components/picker/picker.ios.css +205 -100
  126. package/dist/collection/components/picker/picker.js +743 -461
  127. package/dist/collection/components/picker/picker.md.css +194 -98
  128. package/dist/collection/components/picker/test/basic/picker.e2e.js +13 -99
  129. package/dist/collection/components/{picker-legacy → picker}/test/is-open/picker.e2e.js +4 -4
  130. package/dist/collection/components/{picker-legacy → picker}/test/picker-id.spec.js +5 -5
  131. package/dist/collection/components/{picker-legacy → picker}/test/trigger/picker.e2e.js +1 -1
  132. package/dist/collection/components/picker-column/picker-column.ios.css +160 -120
  133. package/dist/collection/components/picker-column/picker-column.js +329 -514
  134. package/dist/collection/components/picker-column/picker-column.md.css +107 -134
  135. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column-aria.spec.js +3 -3
  136. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column-dynamic.spec.js +2 -2
  137. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column.spec.js +2 -2
  138. package/dist/collection/components/{picker-legacy-column → picker-column}/test/standalone/picker-column.e2e.js +3 -3
  139. package/dist/collection/components/{picker-column-option/picker-column-option.md.css → picker-column-internal/picker-column-internal.ios.css} +53 -6
  140. package/dist/collection/components/picker-column-internal/picker-column-internal.js +565 -0
  141. package/dist/collection/components/{picker-legacy-column/picker-column.md.css → picker-column-internal/picker-column-internal.md.css} +63 -113
  142. package/dist/collection/components/{picker-column/test/basic/picker-column.e2e.js → picker-column-internal/test/basic/picker-column-internal.e2e.js} +8 -8
  143. package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +162 -0
  144. package/dist/collection/components/{picker-legacy/picker.md.css → picker-internal/picker-internal.ios.css} +100 -192
  145. package/dist/collection/components/picker-internal/picker-internal.js +544 -0
  146. package/dist/collection/components/{picker-legacy-column/picker-column.ios.css → picker-internal/picker-internal.md.css} +101 -98
  147. package/dist/collection/components/{picker/test/a11y/picker.e2e.js → picker-internal/test/a11y/picker-internal.e2e.js} +2 -2
  148. package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +118 -0
  149. package/dist/collection/components/{picker/test/keyboard-entry/picker.e2e.js → picker-internal/test/keyboard-entry/picker-internal.e2e.js} +22 -23
  150. package/dist/collection/components/radio/radio.ios.css +0 -6
  151. package/dist/collection/components/radio/radio.js +7 -3
  152. package/dist/collection/components/radio/radio.md.css +0 -6
  153. package/dist/collection/components/radio/test/radio.spec.js +14 -0
  154. package/dist/collection/components/radio-group/radio-group.js +24 -0
  155. package/dist/collection/components/radio-group/test/radio-group.spec.js +69 -0
  156. package/dist/collection/components/range/range.ios.css +0 -6
  157. package/dist/collection/components/range/range.js +4 -1
  158. package/dist/collection/components/range/range.md.css +0 -6
  159. package/dist/collection/components/range/test/range.spec.js +16 -0
  160. package/dist/collection/components/select/select.ios.css +60 -7
  161. package/dist/collection/components/select/select.js +45 -28
  162. package/dist/collection/components/select/select.md.css +63 -19
  163. package/dist/collection/components/select/test/item/select.e2e.js +15 -0
  164. package/dist/collection/components/select/test/label/select.e2e.js +1 -1
  165. package/dist/collection/components/select/test/legacy/wrapping/select.e2e.js +1 -1
  166. package/dist/collection/components/select/test/slot/select.e2e.js +67 -0
  167. package/dist/collection/components/skeleton-text/skeleton-text.js +39 -0
  168. package/dist/collection/components/textarea/test/slot/textarea.e2e.js +51 -0
  169. package/dist/collection/components/textarea/textarea.ios.css +37 -5
  170. package/dist/collection/components/textarea/textarea.js +30 -5
  171. package/dist/collection/components/textarea/textarea.md.css +47 -14
  172. package/dist/collection/components/toast/animations/ios.enter.js +2 -1
  173. package/dist/collection/components/toast/animations/md.enter.js +4 -3
  174. package/dist/collection/components/toast/animations/utils.js +20 -14
  175. package/dist/collection/components/toast/gestures/swipe-to-dismiss.js +267 -0
  176. package/dist/collection/components/toast/test/swipe-gesture/toast.e2e.js +84 -0
  177. package/dist/collection/components/toast/test/toast-config.spec.js +25 -0
  178. package/dist/collection/components/toast/test/toast.spec.js +80 -0
  179. package/dist/collection/components/toast/toast.ios.css +10 -10
  180. package/dist/collection/components/toast/toast.js +104 -1
  181. package/dist/collection/components/toast/toast.md.css +10 -0
  182. package/dist/collection/components/toggle/test/toggle.spec.js +12 -0
  183. package/dist/collection/components/toggle/toggle.ios.css +0 -6
  184. package/dist/collection/components/toggle/toggle.js +4 -1
  185. package/dist/collection/components/toggle/toggle.md.css +0 -6
  186. package/dist/collection/utils/animation/animation.js +12 -11
  187. package/dist/collection/utils/animation/test/animation.spec.js +16 -0
  188. package/dist/collection/utils/browser/index.js +0 -22
  189. package/dist/collection/utils/forms/compare-with-utils.js +39 -0
  190. package/dist/collection/utils/forms/index.js +1 -0
  191. package/dist/collection/utils/gesture/gesture-controller.js +1 -1
  192. package/dist/collection/utils/input-shims/input-shims.js +12 -6
  193. package/dist/collection/utils/menu-controller/index.js +10 -12
  194. package/dist/collection/utils/overlays.js +5 -11
  195. package/dist/collection/utils/slot-mutation-controller.js +3 -2
  196. package/dist/docs.json +265 -561
  197. package/dist/esm/{animation-fb0e0f6f.js → animation-dde8cc0d.js} +13 -12
  198. package/dist/esm/{button-active-ed9d848c.js → button-active-c6ee4f50.js} +2 -2
  199. package/dist/esm/{capacitor-b0e5fe83.js → capacitor-59395cbd.js} +1 -1
  200. package/dist/esm/compare-with-utils-a96ff2ea.js +41 -0
  201. package/dist/esm/{data-4b9508c9.js → data-f5c75b4e.js} +1 -1
  202. package/dist/esm/{gesture-controller-314a54f6.js → gesture-controller-1bf57181.js} +1 -1
  203. package/dist/esm/{haptic-152c4172.js → haptic-554688a5.js} +1 -1
  204. package/dist/esm/{index-80492ed3.js → index-0c12c22b.js} +11 -13
  205. package/dist/esm/{index-d8817fb0.js → index-1932b201.js} +2 -2
  206. package/dist/esm/{index-39782642.js → index-2cf77112.js} +2 -2
  207. package/dist/esm/{index-ba9976bb.js → index-82eeb47f.js} +1 -1
  208. package/dist/esm/index-a5d50daf.js +7 -0
  209. package/dist/esm/index.js +10 -10
  210. package/dist/esm/{input-shims-0a2e541d.js → input-shims-6539ce13.js} +14 -9
  211. package/dist/esm/{input.utils-2846d430.js → input.utils-a5a2d164.js} +4 -3
  212. package/dist/esm/ion-action-sheet.entry.js +8 -8
  213. package/dist/esm/ion-alert.entry.js +8 -8
  214. package/dist/esm/ion-app_8.entry.js +10 -10
  215. package/dist/esm/ion-backdrop.entry.js +12 -0
  216. package/dist/esm/ion-checkbox.entry.js +5 -3
  217. package/dist/esm/ion-datetime-button.entry.js +1 -1
  218. package/dist/esm/ion-datetime_3.entry.js +59 -39
  219. package/dist/esm/ion-infinite-scroll_2.entry.js +11 -3
  220. package/dist/esm/ion-input.entry.js +34 -11
  221. package/dist/esm/ion-item-option_3.entry.js +1 -1
  222. package/dist/esm/ion-item_8.entry.js +17 -4
  223. package/dist/esm/ion-loading.entry.js +3 -4
  224. package/dist/esm/ion-menu_3.entry.js +7 -7
  225. package/dist/esm/ion-modal.entry.js +10 -10
  226. package/dist/esm/ion-nav_2.entry.js +2 -2
  227. package/dist/esm/{ion-picker-column.entry.js → ion-picker-column-internal.entry.js} +74 -107
  228. package/dist/esm/{ion-picker.entry.js → ion-picker-internal.entry.js} +13 -13
  229. package/dist/esm/ion-popover.entry.js +4 -5
  230. package/dist/esm/ion-radio_2.entry.js +9 -4
  231. package/dist/esm/ion-range.entry.js +6 -4
  232. package/dist/esm/ion-refresher_2.entry.js +7 -7
  233. package/dist/esm/ion-reorder_2.entry.js +4 -4
  234. package/dist/esm/ion-segment_2.entry.js +1 -1
  235. package/dist/esm/ion-select_3.entry.js +47 -32
  236. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  237. package/dist/esm/ion-textarea.entry.js +33 -10
  238. package/dist/esm/ion-toast.entry.js +417 -76
  239. package/dist/esm/ion-toggle.entry.js +9 -7
  240. package/dist/esm/ionic.js +1 -1
  241. package/dist/esm/{ios.transition-fd16bec1.js → ios.transition-802a84a6.js} +3 -3
  242. package/dist/esm/{keyboard-c402e885.js → keyboard-52278bd7.js} +3 -3
  243. package/dist/esm/{keyboard-dbb05fb9.js → keyboard-73175e24.js} +1 -1
  244. package/dist/esm/{keyboard-controller-5d90929a.js → keyboard-controller-ec5c2bfa.js} +2 -2
  245. package/dist/esm/loader.js +1 -1
  246. package/dist/esm/{md.transition-94ac93e1.js → md.transition-43c2874d.js} +3 -3
  247. package/dist/esm/{notch-controller-d09b6aca.js → notch-controller-fea7f9c5.js} +1 -1
  248. package/dist/esm/{overlays-fbc5cab5.js → overlays-32ef481d.js} +7 -13
  249. package/dist/esm/{swipe-back-a8ca7f93.js → swipe-back-a6f386fc.js} +2 -2
  250. package/dist/esm-es5/{animation-fb0e0f6f.js → animation-dde8cc0d.js} +1 -1
  251. package/dist/esm-es5/{button-active-ed9d848c.js → button-active-c6ee4f50.js} +1 -1
  252. package/dist/esm-es5/{capacitor-b0e5fe83.js → capacitor-59395cbd.js} +1 -1
  253. package/dist/esm-es5/compare-with-utils-a96ff2ea.js +4 -0
  254. package/dist/esm-es5/{gesture-controller-314a54f6.js → gesture-controller-1bf57181.js} +1 -1
  255. package/dist/esm-es5/{haptic-152c4172.js → haptic-554688a5.js} +1 -1
  256. package/dist/esm-es5/index-0c12c22b.js +4 -0
  257. package/dist/esm-es5/{index-d8817fb0.js → index-1932b201.js} +1 -1
  258. package/dist/esm-es5/{index-39782642.js → index-2cf77112.js} +1 -1
  259. package/dist/esm-es5/{index-ba9976bb.js → index-82eeb47f.js} +1 -1
  260. package/dist/esm-es5/index.js +1 -1
  261. package/dist/esm-es5/input-shims-6539ce13.js +4 -0
  262. package/dist/esm-es5/input.utils-a5a2d164.js +4 -0
  263. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  264. package/dist/esm-es5/ion-alert.entry.js +1 -1
  265. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  266. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  267. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  268. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  269. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  270. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  271. package/dist/esm-es5/ion-input.entry.js +1 -1
  272. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  273. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  274. package/dist/esm-es5/ion-loading.entry.js +1 -1
  275. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  276. package/dist/esm-es5/ion-modal.entry.js +1 -1
  277. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  278. package/dist/esm-es5/ion-picker-column-internal.entry.js +4 -0
  279. package/dist/esm-es5/ion-picker-internal.entry.js +4 -0
  280. package/dist/esm-es5/ion-popover.entry.js +1 -1
  281. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  282. package/dist/esm-es5/ion-range.entry.js +1 -1
  283. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  284. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  285. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  286. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  287. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  288. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  289. package/dist/esm-es5/ion-toast.entry.js +1 -1
  290. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  291. package/dist/esm-es5/ionic.js +1 -1
  292. package/dist/esm-es5/{ios.transition-fd16bec1.js → ios.transition-802a84a6.js} +1 -1
  293. package/dist/esm-es5/{keyboard-c402e885.js → keyboard-52278bd7.js} +1 -1
  294. package/dist/esm-es5/{keyboard-dbb05fb9.js → keyboard-73175e24.js} +1 -1
  295. package/dist/esm-es5/{keyboard-controller-5d90929a.js → keyboard-controller-ec5c2bfa.js} +1 -1
  296. package/dist/esm-es5/loader.js +1 -1
  297. package/dist/esm-es5/md.transition-43c2874d.js +4 -0
  298. package/dist/esm-es5/{notch-controller-d09b6aca.js → notch-controller-fea7f9c5.js} +1 -1
  299. package/dist/esm-es5/overlays-32ef481d.js +4 -0
  300. package/dist/esm-es5/swipe-back-a6f386fc.js +4 -0
  301. package/dist/html.html-data.json +15 -153
  302. package/dist/ionic/index.esm.js +1 -1
  303. package/dist/ionic/ionic.esm.js +1 -1
  304. package/dist/ionic/p-01d14eba.system.entry.js +4 -0
  305. package/dist/ionic/p-042e6f4b.entry.js +4 -0
  306. package/dist/ionic/p-05d83227.system.entry.js +4 -0
  307. package/dist/ionic/{p-32e19bee.system.js → p-0bd51c34.system.js} +1 -1
  308. package/dist/ionic/p-16756e94.system.entry.js +4 -0
  309. package/dist/ionic/p-1b19c04b.entry.js +4 -0
  310. package/dist/ionic/{p-95c26010.system.js → p-1cca10d6.system.js} +1 -1
  311. package/dist/ionic/p-1e4371bd.js +4 -0
  312. package/dist/ionic/{p-21c3515a.entry.js → p-251666e2.entry.js} +1 -1
  313. package/dist/ionic/{p-4e8e09e1.js → p-27281edd.js} +1 -1
  314. package/dist/ionic/p-28249b10.system.entry.js +4 -0
  315. package/dist/ionic/p-28a2c2a2.entry.js +4 -0
  316. package/dist/ionic/p-29d03b3a.js +4 -0
  317. package/dist/ionic/p-2b7827c7.js +4 -0
  318. package/dist/ionic/p-2d3b9fa3.system.entry.js +4 -0
  319. package/dist/ionic/p-2d539df1.entry.js +4 -0
  320. package/dist/ionic/{p-9c229210.system.entry.js → p-3137c025.system.entry.js} +2 -2
  321. package/dist/ionic/{p-3e1e14d9.system.js → p-31b2326e.system.js} +1 -1
  322. package/dist/ionic/{p-30029cc2.system.js → p-31fcb233.system.js} +1 -1
  323. package/dist/ionic/{p-1d624e03.system.js → p-33a37fad.system.js} +1 -1
  324. package/dist/ionic/p-35ce400e.system.js +4 -0
  325. package/dist/ionic/p-36d187af.js +4 -0
  326. package/dist/ionic/p-376a6063.js +4 -0
  327. package/dist/ionic/p-38f2c6bb.system.js +4 -0
  328. package/dist/ionic/p-39c31982.system.entry.js +4 -0
  329. package/dist/ionic/{p-75445583.js → p-3a75d7fd.js} +1 -1
  330. package/dist/ionic/{p-1fc72959.entry.js → p-3dd98a73.entry.js} +1 -1
  331. package/dist/ionic/p-3e6b47e8.system.entry.js +4 -0
  332. package/dist/ionic/p-3f5179b5.entry.js +4 -0
  333. package/dist/ionic/p-40f68333.system.js +4 -0
  334. package/dist/ionic/{p-643a8fae.js → p-42f189f4.js} +1 -1
  335. package/dist/ionic/p-438e1b8a.entry.js +4 -0
  336. package/dist/ionic/{p-b752714f.system.entry.js → p-46d400b4.system.entry.js} +1 -1
  337. package/dist/ionic/p-47b6ba5b.js +4 -0
  338. package/dist/ionic/{p-5d42b6b4.entry.js → p-4d67d27a.entry.js} +1 -1
  339. package/dist/ionic/{p-535d2a67.entry.js → p-4f3ae45a.entry.js} +1 -1
  340. package/dist/ionic/p-517a9885.system.entry.js +4 -0
  341. package/dist/ionic/p-53ec4f1c.system.js +4 -0
  342. package/dist/ionic/p-5e4eec2e.entry.js +4 -0
  343. package/dist/ionic/{p-57477107.system.js → p-5e745192.system.js} +1 -1
  344. package/dist/ionic/{p-a9a80f5b.entry.js → p-5eda1d7d.entry.js} +1 -1
  345. package/dist/ionic/{p-e8e86f69.system.entry.js → p-6577aea9.system.entry.js} +1 -1
  346. package/dist/ionic/p-6a6477b2.js +4 -0
  347. package/dist/ionic/{p-4890093d.js → p-6de472cb.js} +1 -1
  348. package/dist/ionic/{p-b4d31b30.system.entry.js → p-6de62649.system.entry.js} +1 -1
  349. package/dist/ionic/p-72f6ff89.js +4 -0
  350. package/dist/ionic/p-765f4dde.entry.js +4 -0
  351. package/dist/ionic/{p-3f6270b3.entry.js → p-78aadecb.entry.js} +1 -1
  352. package/dist/ionic/p-7d92bf15.system.entry.js +4 -0
  353. package/dist/ionic/p-7ee0f3f2.entry.js +4 -0
  354. package/dist/ionic/p-80fa068e.entry.js +4 -0
  355. package/dist/ionic/p-8314281e.system.js +4 -0
  356. package/dist/ionic/p-88d5fbd3.js +4 -0
  357. package/dist/ionic/{p-4911a5d6.entry.js → p-88fde0e0.entry.js} +1 -1
  358. package/dist/ionic/{p-0e4f2e17.system.js → p-8985cdb6.system.js} +1 -1
  359. package/dist/ionic/{p-96dbbac1.system.entry.js → p-8acae6b0.system.entry.js} +1 -1
  360. package/dist/ionic/p-8d69a624.entry.js +4 -0
  361. package/dist/ionic/p-8de17614.system.entry.js +4 -0
  362. package/dist/ionic/p-908475e7.system.entry.js +4 -0
  363. package/dist/ionic/p-91d33c4a.js +4 -0
  364. package/dist/ionic/p-979d4f5c.system.js +4 -0
  365. package/dist/ionic/p-9b7f0b0f.entry.js +4 -0
  366. package/dist/ionic/p-9e447eb1.system.js +4 -0
  367. package/dist/ionic/{p-f910cc73.system.entry.js → p-9eec42cc.system.entry.js} +1 -1
  368. package/dist/ionic/p-9f6ee2c0.system.entry.js +4 -0
  369. package/dist/ionic/{p-77965464.system.entry.js → p-a0bb7b92.system.entry.js} +1 -1
  370. package/dist/ionic/p-a0d7bb5e.system.js +4 -0
  371. package/dist/ionic/{p-6d72fb44.entry.js → p-a1987850.entry.js} +1 -1
  372. package/dist/ionic/p-a3277a67.entry.js +4 -0
  373. package/dist/ionic/{p-6b7c55cd.entry.js → p-a9978d08.entry.js} +1 -1
  374. package/dist/ionic/{p-fbf3a689.system.entry.js → p-ada96dd0.system.entry.js} +1 -1
  375. package/dist/ionic/p-afd6ca9d.entry.js +4 -0
  376. package/dist/ionic/p-b56d0866.system.entry.js +4 -0
  377. package/dist/ionic/p-b6f9d32a.entry.js +4 -0
  378. package/dist/ionic/{p-9b97df10.js → p-bb3615f7.js} +1 -1
  379. package/dist/ionic/p-c61cc894.js +4 -0
  380. package/dist/ionic/{p-20d469d0.system.js → p-c7c8429a.system.js} +1 -1
  381. package/dist/ionic/{p-304383f9.system.js → p-cabad15b.system.js} +1 -1
  382. package/dist/ionic/p-cce9f61a.system.entry.js +4 -0
  383. package/dist/ionic/{p-31158892.js → p-cdbeaadc.js} +1 -1
  384. package/dist/ionic/p-d032f825.system.entry.js +4 -0
  385. package/dist/ionic/p-d51674c5.system.js +4 -0
  386. package/dist/ionic/{p-b133e9b4.entry.js → p-ddb30596.entry.js} +1 -1
  387. package/dist/ionic/{p-98d82c73.system.js → p-ddbb2d5b.system.js} +1 -1
  388. package/dist/ionic/p-de6f8b28.system.js +4 -0
  389. package/dist/ionic/p-de756e5c.js +4 -0
  390. package/dist/ionic/p-dee7c1d0.system.entry.js +4 -0
  391. package/dist/ionic/p-dfd9432a.entry.js +4 -0
  392. package/dist/ionic/{p-54dfc9b5.system.js → p-e24ce1e5.system.js} +1 -1
  393. package/dist/ionic/p-e3584231.system.js +1 -1
  394. package/dist/ionic/{p-6fd64e7c.system.entry.js → p-e6d68e02.system.entry.js} +1 -1
  395. package/dist/ionic/p-e94c392d.entry.js +4 -0
  396. package/dist/ionic/p-f0445d82.system.entry.js +4 -0
  397. package/dist/ionic/{p-8ededb41.js → p-f5d2dc9b.js} +1 -1
  398. package/dist/ionic/p-f656e032.system.entry.js +4 -0
  399. package/dist/ionic/{p-76d3765d.js → p-f70970cf.js} +1 -1
  400. package/dist/ionic/{p-c18de88a.system.entry.js → p-fba0a6e7.system.entry.js} +1 -1
  401. package/dist/ionic/p-feae5133.entry.js +4 -0
  402. package/dist/types/components/backdrop/backdrop.d.ts +3 -0
  403. package/dist/types/components/checkbox/checkbox.d.ts +1 -0
  404. package/dist/types/components/datetime/datetime.d.ts +1 -0
  405. package/dist/types/components/datetime/utils/data.d.ts +2 -2
  406. package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +7 -0
  407. package/dist/types/components/input/input.d.ts +2 -0
  408. package/dist/types/components/menu/menu.d.ts +1 -1
  409. package/dist/types/components/picker/picker.d.ts +131 -74
  410. package/dist/types/components/picker-column/picker-column.d.ts +39 -105
  411. package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +102 -0
  412. package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +8 -0
  413. package/dist/types/components/picker-internal/picker-internal.d.ts +102 -0
  414. package/dist/types/components/radio/radio.d.ts +1 -0
  415. package/dist/types/components/radio-group/radio-group-interface.d.ts +1 -0
  416. package/dist/types/components/radio-group/radio-group.d.ts +8 -1
  417. package/dist/types/components/range/range.d.ts +1 -0
  418. package/dist/types/components/router/router.d.ts +2 -1
  419. package/dist/types/components/select/select.d.ts +6 -1
  420. package/dist/types/components/skeleton-text/skeleton-text.d.ts +9 -1
  421. package/dist/types/components/textarea/textarea.d.ts +2 -0
  422. package/dist/types/components/toast/animations/utils.d.ts +15 -4
  423. package/dist/types/components/toast/gestures/swipe-to-dismiss.d.ts +9 -0
  424. package/dist/types/components/toast/toast-interface.d.ts +2 -0
  425. package/dist/types/components/toast/toast.d.ts +28 -1
  426. package/dist/types/components/toggle/toggle.d.ts +1 -0
  427. package/dist/types/components.d.ts +159 -169
  428. package/dist/types/interface.d.ts +2 -6
  429. package/dist/types/jest.d.ts +5 -0
  430. package/dist/types/utils/animation/animation-interface.d.ts +4 -4
  431. package/dist/types/utils/browser/index.d.ts +11 -2
  432. package/dist/types/utils/config.d.ts +2 -2
  433. package/dist/types/utils/forms/compare-with-utils.d.ts +18 -0
  434. package/dist/types/utils/forms/index.d.ts +1 -0
  435. package/dist/types/utils/gesture/gesture-controller.d.ts +0 -1
  436. package/dist/types/utils/hardware-back-button.d.ts +4 -0
  437. package/dist/types/utils/overlays.d.ts +3 -5
  438. package/dist/types/utils/slot-mutation-controller.d.ts +2 -2
  439. package/hydrate/index.js +1855 -1509
  440. package/package.json +1 -1
  441. package/components/ion-picker-column-option.d.ts +0 -11
  442. package/components/ion-picker-column-option.js +0 -9
  443. package/components/ion-picker-legacy-column.d.ts +0 -11
  444. package/components/ion-picker-legacy-column.js +0 -9
  445. package/components/ion-picker-legacy.js +0 -309
  446. package/components/picker-column-option.js +0 -122
  447. package/components/picker-column2.js +0 -379
  448. package/dist/cjs/index-306a7476.js +0 -32
  449. package/dist/cjs/ion-picker-column-option.cjs.entry.js +0 -104
  450. package/dist/collection/components/item/test/text/item.e2e.js +0 -14
  451. package/dist/collection/components/picker-column/test/disabled/picker-column.e2e.js +0 -113
  452. package/dist/collection/components/picker-column/test/slots/picker-column.e2e.js +0 -39
  453. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +0 -87
  454. package/dist/collection/components/picker-column-option/picker-column-option.js +0 -173
  455. package/dist/collection/components/picker-column-option/test/a11y/picker-column-option.e2e.js +0 -18
  456. package/dist/collection/components/picker-column-option/test/basic/picker-column-option.e2e.js +0 -37
  457. package/dist/collection/components/picker-legacy/picker.ios.css +0 -367
  458. package/dist/collection/components/picker-legacy/picker.js +0 -817
  459. package/dist/collection/components/picker-legacy/test/basic/picker.e2e.js +0 -25
  460. package/dist/collection/components/picker-legacy-column/picker-column.js +0 -419
  461. package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +0 -65
  462. package/dist/esm/index-7a14ecec.js +0 -29
  463. package/dist/esm/ion-picker-column-option.entry.js +0 -100
  464. package/dist/esm-es5/index-80492ed3.js +0 -4
  465. package/dist/esm-es5/input-shims-0a2e541d.js +0 -4
  466. package/dist/esm-es5/input.utils-2846d430.js +0 -4
  467. package/dist/esm-es5/ion-picker-column-option.entry.js +0 -4
  468. package/dist/esm-es5/ion-picker-column.entry.js +0 -4
  469. package/dist/esm-es5/ion-picker.entry.js +0 -4
  470. package/dist/esm-es5/md.transition-94ac93e1.js +0 -4
  471. package/dist/esm-es5/overlays-fbc5cab5.js +0 -4
  472. package/dist/esm-es5/swipe-back-a8ca7f93.js +0 -4
  473. package/dist/ionic/p-22e5af95.entry.js +0 -4
  474. package/dist/ionic/p-232d1f22.entry.js +0 -4
  475. package/dist/ionic/p-23672c82.system.entry.js +0 -4
  476. package/dist/ionic/p-26798a7b.system.entry.js +0 -4
  477. package/dist/ionic/p-27bcbbc7.system.entry.js +0 -4
  478. package/dist/ionic/p-2ab4e925.system.entry.js +0 -4
  479. package/dist/ionic/p-2d5aeccc.js +0 -4
  480. package/dist/ionic/p-2d600c25.system.js +0 -4
  481. package/dist/ionic/p-308e1341.js +0 -4
  482. package/dist/ionic/p-32303650.system.entry.js +0 -4
  483. package/dist/ionic/p-34c39c48.entry.js +0 -4
  484. package/dist/ionic/p-3ba01a9c.system.entry.js +0 -4
  485. package/dist/ionic/p-3c58a71b.js +0 -4
  486. package/dist/ionic/p-3fd26bd6.system.entry.js +0 -4
  487. package/dist/ionic/p-3fe96156.system.js +0 -4
  488. package/dist/ionic/p-42ba3902.entry.js +0 -4
  489. package/dist/ionic/p-4a081ea9.entry.js +0 -4
  490. package/dist/ionic/p-4a31c99f.entry.js +0 -4
  491. package/dist/ionic/p-4a36430f.system.entry.js +0 -4
  492. package/dist/ionic/p-51abefb7.system.js +0 -4
  493. package/dist/ionic/p-563c41f0.system.entry.js +0 -4
  494. package/dist/ionic/p-5a68960f.entry.js +0 -4
  495. package/dist/ionic/p-6c37f051.js +0 -4
  496. package/dist/ionic/p-73190c5f.entry.js +0 -4
  497. package/dist/ionic/p-73aa7604.entry.js +0 -4
  498. package/dist/ionic/p-7b725280.entry.js +0 -4
  499. package/dist/ionic/p-8017aad2.system.entry.js +0 -4
  500. package/dist/ionic/p-83af3685.system.js +0 -4
  501. package/dist/ionic/p-846ee227.entry.js +0 -4
  502. package/dist/ionic/p-856c430d.js +0 -4
  503. package/dist/ionic/p-8c97cdc0.entry.js +0 -4
  504. package/dist/ionic/p-8fa6583d.system.js +0 -4
  505. package/dist/ionic/p-9282b16f.entry.js +0 -4
  506. package/dist/ionic/p-93000a81.system.entry.js +0 -4
  507. package/dist/ionic/p-990ffd0e.js +0 -4
  508. package/dist/ionic/p-9ba90516.system.entry.js +0 -4
  509. package/dist/ionic/p-a225bf0f.system.entry.js +0 -4
  510. package/dist/ionic/p-a60a1ce5.js +0 -4
  511. package/dist/ionic/p-a8baa23e.entry.js +0 -4
  512. package/dist/ionic/p-a98dc0c1.entry.js +0 -4
  513. package/dist/ionic/p-a9e3b5be.system.entry.js +0 -4
  514. package/dist/ionic/p-ab9456e9.system.entry.js +0 -4
  515. package/dist/ionic/p-afcf4620.entry.js +0 -4
  516. package/dist/ionic/p-c2910c78.entry.js +0 -4
  517. package/dist/ionic/p-c8f0a036.entry.js +0 -4
  518. package/dist/ionic/p-ca8938f4.js +0 -4
  519. package/dist/ionic/p-ca9d1792.system.entry.js +0 -4
  520. package/dist/ionic/p-cde52378.system.entry.js +0 -4
  521. package/dist/ionic/p-d43f1f3d.system.js +0 -4
  522. package/dist/ionic/p-d662d908.js +0 -4
  523. package/dist/ionic/p-d9695ad9.system.js +0 -4
  524. package/dist/ionic/p-da15f571.system.entry.js +0 -4
  525. package/dist/ionic/p-e4d90573.js +0 -4
  526. package/dist/ionic/p-f54c72b0.system.js +0 -4
  527. package/dist/ionic/p-f7a36cd0.system.js +0 -4
  528. package/dist/ionic/p-f967631d.js +0 -4
  529. package/dist/ionic/p-fe4dde76.entry.js +0 -4
  530. package/dist/ionic/p-ffd5dba4.system.entry.js +0 -4
  531. package/dist/types/components/picker/picker-interfaces.d.ts +0 -8
  532. package/dist/types/components/picker-column-option/picker-column-option.d.ts +0 -66
  533. package/dist/types/components/picker-legacy/picker.d.ts +0 -158
  534. package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
  535. /package/dist/collection/components/{picker-legacy → picker}/animations/ios.enter.js +0 -0
  536. /package/dist/collection/components/{picker-legacy → picker}/animations/ios.leave.js +0 -0
  537. /package/dist/collection/components/picker/{picker-interfaces.js → picker-interface.js} +0 -0
  538. /package/dist/collection/components/{picker-legacy-column → picker-column}/test/test.utils.js +0 -0
  539. /package/dist/collection/components/{picker-column/picker-column-interfaces.js → picker-column-internal/picker-column-internal-interfaces.js} +0 -0
  540. /package/dist/collection/components/{picker-legacy/picker-interface.js → picker-internal/picker-internal-interfaces.js} +0 -0
  541. /package/dist/esm-es5/{data-4b9508c9.js → data-f5c75b4e.js} +0 -0
  542. /package/dist/esm-es5/{index-7a14ecec.js → index-a5d50daf.js} +0 -0
  543. /package/dist/ionic/{p-368f5215.js → p-2aea8b1e.js} +0 -0
  544. /package/dist/ionic/{p-0e94957a.system.js → p-792919fd.system.js} +0 -0
  545. /package/dist/ionic/{p-b347cfd1.js → p-7b30edcc.js} +0 -0
  546. /package/dist/ionic/{p-f58981c2.system.js → p-82e3d633.system.js} +0 -0
  547. /package/dist/types/components/{picker-legacy → picker}/animations/ios.enter.d.ts +0 -0
  548. /package/dist/types/components/{picker-legacy → picker}/animations/ios.leave.d.ts +0 -0
  549. /package/dist/types/components/{picker-legacy → picker}/picker-interface.d.ts +0 -0
  550. /package/dist/types/components/{picker-legacy-column → picker-column}/test/test.utils.d.ts +0 -0
  551. /package/dist/types/components/{picker-column/picker-column-interfaces.d.ts → picker-column-internal/picker-column-internal-interfaces.d.ts} +0 -0
@@ -7,6 +7,7 @@ import type { CheckboxChangeEventDetail } from './checkbox-interface';
7
7
  * @slot - The label text to associate with the checkbox. Use the "labelPlacement" property to control where the label is placed relative to the checkbox.
8
8
  *
9
9
  * @part container - The container for the checkbox mark.
10
+ * @part label - The label text describing the checkbox.
10
11
  * @part mark - The checkmark used to indicate the checked state.
11
12
  */
12
13
  export declare class Checkbox implements ComponentInterface {
@@ -28,6 +28,7 @@ import type { DatetimePresentation, DatetimeChangeEventDetail, DatetimeParts, Ti
28
28
  export declare class Datetime implements ComponentInterface {
29
29
  private inputId;
30
30
  private calendarBodyRef?;
31
+ private monthYearToggleItemRef?;
31
32
  private popoverRef?;
32
33
  private clearFocusVisible?;
33
34
  private parsedMinuteValues?;
@@ -1,5 +1,5 @@
1
1
  import type { Mode } from '../../../interface';
2
- import type { PickerColumnItem } from '../../picker-column/picker-column-interfaces';
2
+ import type { PickerColumnItem } from '../../picker-column-internal/picker-column-internal-interfaces';
3
3
  import type { DatetimeParts, DatetimeHourCycle } from '../datetime-interface';
4
4
  /**
5
5
  * Returns the current date as
@@ -56,7 +56,7 @@ export declare const getMonthColumnData: (locale: string, refParts: DatetimePart
56
56
  * @param minParts The minimum bound on the date that can be returned
57
57
  * @param maxParts The maximum bound on the date that can be returned
58
58
  * @param dayValues The allowed date values
59
- * @returns Date data to be used in ion-picker-column
59
+ * @returns Date data to be used in ion-picker-column-internal
60
60
  */
61
61
  export declare const getDayColumnData: (locale: string, refParts: DatetimeParts, minParts?: DatetimeParts, maxParts?: DatetimeParts, dayValues?: number[], formatOptions?: Intl.DateTimeFormatOptions) => PickerColumnItem[];
62
62
  export declare const getYearColumnData: (locale: string, refParts: DatetimeParts, minParts?: DatetimeParts, maxParts?: DatetimeParts, yearValues?: number[]) => PickerColumnItem[];
@@ -3,6 +3,13 @@ export declare class InfiniteScroll implements ComponentInterface {
3
3
  private thrPx;
4
4
  private thrPc;
5
5
  private scrollEl?;
6
+ /**
7
+ * didFire exists so that ionInfinite
8
+ * does not fire multiple times if
9
+ * users continue to scroll after
10
+ * scrolling into the infinite
11
+ * scroll threshold.
12
+ */
6
13
  private didFire;
7
14
  private isBusy;
8
15
  el: HTMLElement;
@@ -5,6 +5,8 @@ import type { InputChangeEventDetail, InputInputEventDetail } from './input-inte
5
5
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
6
6
  *
7
7
  * @slot label - The label text to associate with the input. Use the `labelPlacement` property to control where the label is placed relative to the input. Use this if you need to render a label with custom HTML. (EXPERIMENTAL)
8
+ * @slot start - Content to display at the leading edge of the input. (EXPERIMENTAL)
9
+ * @slot end - Content to display at the trailing edge of the input. (EXPERIMENTAL)
8
10
  */
9
11
  export declare class Input implements ComponentInterface {
10
12
  private nativeInput?;
@@ -21,7 +21,7 @@ export declare class Menu implements ComponentInterface, MenuI {
21
21
  isAnimating: boolean;
22
22
  width: number;
23
23
  _isOpen: boolean;
24
- backdropEl?: HTMLIonBackdropElement;
24
+ backdropEl?: HTMLElement;
25
25
  menuInnerEl?: HTMLElement;
26
26
  contentEl?: HTMLElement;
27
27
  lastFocus?: HTMLElement;
@@ -1,101 +1,158 @@
1
1
  import type { ComponentInterface, EventEmitter } from '../../stencil-public-runtime';
2
- import type { PickerChangeEventDetail } from './picker-interfaces';
2
+ import type { AnimationBuilder, OverlayInterface, FrameworkDelegate } from '../../interface';
3
+ import type { OverlayEventDetail } from '../../utils/overlays-interface';
4
+ import type { PickerButton, PickerColumn } from './picker-interface';
3
5
  /**
4
6
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
5
7
  */
6
- export declare class Picker implements ComponentInterface {
7
- private inputEl?;
8
- private useInputMode;
9
- private inputModeColumn?;
10
- private highlightEl?;
11
- private actionOnClick?;
12
- private destroyKeypressListener?;
13
- private singleColumnSearchTimeout?;
8
+ export declare class Picker implements ComponentInterface, OverlayInterface {
9
+ private readonly delegateController;
10
+ private readonly lockController;
11
+ private readonly triggerController;
12
+ private durationTimeout?;
13
+ lastFocus?: HTMLElement;
14
14
  el: HTMLIonPickerElement;
15
- ionInputModeChange: EventEmitter<PickerChangeEventDetail>;
15
+ presented: boolean;
16
+ /** @internal */
17
+ overlayIndex: number;
18
+ /** @internal */
19
+ delegate?: FrameworkDelegate;
20
+ /** @internal */
21
+ hasController: boolean;
16
22
  /**
17
- * When the picker is interacted with
18
- * we need to prevent touchstart so other
19
- * gestures do not fire. For example,
20
- * scrolling on the wheel picker
21
- * in ion-datetime should not cause
22
- * a card modal to swipe to close.
23
+ * If `true`, the keyboard will be automatically dismissed when the overlay is presented.
23
24
  */
24
- preventTouchStartPropagation(ev: TouchEvent): void;
25
- componentWillLoad(): void;
26
- private isInHighlightBounds;
25
+ keyboardClose: boolean;
26
+ /**
27
+ * Animation to use when the picker is presented.
28
+ */
29
+ enterAnimation?: AnimationBuilder;
30
+ /**
31
+ * Animation to use when the picker is dismissed.
32
+ */
33
+ leaveAnimation?: AnimationBuilder;
34
+ /**
35
+ * Array of buttons to be displayed at the top of the picker.
36
+ */
37
+ buttons: PickerButton[];
38
+ /**
39
+ * Array of columns to be displayed in the picker.
40
+ */
41
+ columns: PickerColumn[];
42
+ /**
43
+ * Additional classes to apply for custom CSS. If multiple classes are
44
+ * provided they should be separated by spaces.
45
+ */
46
+ cssClass?: string | string[];
47
+ /**
48
+ * Number of milliseconds to wait before dismissing the picker.
49
+ */
50
+ duration: number;
51
+ /**
52
+ * If `true`, a backdrop will be displayed behind the picker.
53
+ */
54
+ showBackdrop: boolean;
55
+ /**
56
+ * If `true`, the picker will be dismissed when the backdrop is clicked.
57
+ */
58
+ backdropDismiss: boolean;
27
59
  /**
28
- * If we are no longer focused
29
- * on a picker column, then we should
30
- * exit input mode. An exception is made
31
- * for the input in the picker since having
32
- * that focused means we are still in input mode.
60
+ * If `true`, the picker will animate.
33
61
  */
34
- private onFocusOut;
62
+ animated: boolean;
35
63
  /**
36
- * When picker columns receive focus
37
- * the parent picker needs to determine
38
- * whether to enter/exit input mode.
64
+ * Additional attributes to pass to the picker.
39
65
  */
40
- private onFocusIn;
66
+ htmlAttributes?: {
67
+ [key: string]: any;
68
+ };
41
69
  /**
42
- * On click we need to run an actionOnClick
43
- * function that has been set in onPointerDown
44
- * so that we enter/exit input mode correctly.
70
+ * If `true`, the picker will open. If `false`, the picker will close.
71
+ * Use this if you need finer grained control over presentation, otherwise
72
+ * just use the pickerController or the `trigger` property.
73
+ * Note: `isOpen` will not automatically be set back to `false` when
74
+ * the picker dismisses. You will need to do that in your code.
45
75
  */
46
- private onClick;
76
+ isOpen: boolean;
77
+ onIsOpenChange(newValue: boolean, oldValue: boolean): void;
47
78
  /**
48
- * Clicking a column also focuses the column on
49
- * certain browsers, so we use onPointerDown
50
- * to tell the onFocusIn function that users
51
- * are trying to click the column rather than
52
- * focus the column using the keyboard. When the
53
- * user completes the click, the onClick function
54
- * runs and runs the actionOnClick callback.
79
+ * An ID corresponding to the trigger element that
80
+ * causes the picker to open when clicked.
55
81
  */
56
- private onPointerDown;
82
+ trigger: string | undefined;
83
+ triggerChanged(): void;
84
+ /**
85
+ * Emitted after the picker has presented.
86
+ */
87
+ didPresent: EventEmitter<void>;
88
+ /**
89
+ * Emitted before the picker has presented.
90
+ */
91
+ willPresent: EventEmitter<void>;
92
+ /**
93
+ * Emitted before the picker has dismissed.
94
+ */
95
+ willDismiss: EventEmitter<OverlayEventDetail>;
96
+ /**
97
+ * Emitted after the picker has dismissed.
98
+ */
99
+ didDismiss: EventEmitter<OverlayEventDetail>;
100
+ /**
101
+ * Emitted after the picker has presented.
102
+ * Shorthand for ionPickerWillDismiss.
103
+ */
104
+ didPresentShorthand: EventEmitter<void>;
105
+ /**
106
+ * Emitted before the picker has presented.
107
+ * Shorthand for ionPickerWillPresent.
108
+ */
109
+ willPresentShorthand: EventEmitter<void>;
110
+ /**
111
+ * Emitted before the picker has dismissed.
112
+ * Shorthand for ionPickerWillDismiss.
113
+ */
114
+ willDismissShorthand: EventEmitter<OverlayEventDetail>;
115
+ /**
116
+ * Emitted after the picker has dismissed.
117
+ * Shorthand for ionPickerDidDismiss.
118
+ */
119
+ didDismissShorthand: EventEmitter<OverlayEventDetail>;
120
+ connectedCallback(): void;
121
+ disconnectedCallback(): void;
122
+ componentWillLoad(): void;
123
+ componentDidLoad(): void;
57
124
  /**
58
- * Enters input mode to allow
59
- * for text entry of numeric values.
60
- * If on mobile, we focus a hidden input
61
- * field so that the on screen keyboard
62
- * is brought up. When tabbing using a
63
- * keyboard, picker columns receive an outline
64
- * to indicate they are focused. As a result,
65
- * we should not focus the hidden input as it
66
- * would cause the outline to go away, preventing
67
- * users from having any visual indication of which
68
- * column is focused.
125
+ * Present the picker overlay after it has been created.
69
126
  */
70
- private enterInputMode;
127
+ present(): Promise<void>;
71
128
  /**
72
- * @internal
73
- * Exits text entry mode for the picker
74
- * This method blurs the hidden input
75
- * and cause the keyboard to dismiss.
129
+ * Dismiss the picker overlay after it has been presented.
130
+ *
131
+ * @param data Any data to emit in the dismiss events.
132
+ * @param role The role of the element that is dismissing the picker.
133
+ * This can be useful in a button handler for determining which button was
134
+ * clicked to dismiss the picker.
135
+ * Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
76
136
  */
77
- exitInputMode(): Promise<void>;
78
- private onKeyPress;
79
- private selectSingleColumn;
137
+ dismiss(data?: any, role?: string): Promise<boolean>;
80
138
  /**
81
- * Searches a list of column items for a particular
82
- * value. This is currently used for numeric values.
83
- * The zeroBehavior can be set to account for leading
84
- * or trailing zeros when looking at the item text.
139
+ * Returns a promise that resolves when the picker did dismiss.
85
140
  */
86
- private searchColumn;
87
- private selectMultiColumn;
141
+ onDidDismiss<T = any>(): Promise<OverlayEventDetail<T>>;
88
142
  /**
89
- * Searches the value of the active column
90
- * to determine which value users are trying
91
- * to select
143
+ * Returns a promise that resolves when the picker will dismiss.
92
144
  */
93
- private onInputChange;
145
+ onWillDismiss<T = any>(): Promise<OverlayEventDetail<T>>;
94
146
  /**
95
- * Emit ionInputModeChange. Picker columns
96
- * listen for this event to determine whether
97
- * or not their column is "active" for text input.
147
+ * Get the column that matches the specified name.
148
+ *
149
+ * @param name The name of the column.
98
150
  */
99
- private emitInputModeChange;
151
+ getColumn(name: string): Promise<PickerColumn | undefined>;
152
+ private buttonClick;
153
+ private callButtonHandler;
154
+ private getSelected;
155
+ private onBackdropTap;
156
+ private dispatchCancelHandler;
100
157
  render(): any;
101
158
  }
@@ -1,112 +1,46 @@
1
1
  import type { ComponentInterface, EventEmitter } from '../../stencil-public-runtime';
2
- import type { Color } from '../../interface';
3
- import type { PickerColumnItem } from './picker-column-interfaces';
2
+ import type { PickerColumn } from '../picker/picker-interface';
4
3
  /**
5
- * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
6
- *
7
- * @slot prefix - Content to show on the left side of the picker options.
8
- * @slot suffix - Content to show on the right side of the picker options.
4
+ * @internal
9
5
  */
10
- export declare class PickerColumn implements ComponentInterface {
11
- private scrollEl?;
12
- private destroyScrollListener?;
13
- private isScrolling;
14
- private scrollEndCallback?;
15
- private isColumnVisible;
16
- private parentEl?;
17
- private canExitInputMode;
18
- isActive: boolean;
19
- el: HTMLIonPickerColumnElement;
20
- /**
21
- * If `true`, the user cannot interact with the picker.
22
- */
23
- disabled: boolean;
24
- /**
25
- * A list of options to be displayed in the picker
26
- */
27
- items: PickerColumnItem[];
28
- /**
29
- * The selected option in the picker.
30
- */
31
- value?: string | number;
32
- /**
33
- * The color to use from your application's color palette.
34
- * Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
35
- * For more information on colors, see [theming](/docs/theming/basics).
36
- */
37
- color?: Color;
38
- /**
39
- * If `true`, tapping the picker will
40
- * reveal a number input keyboard that lets
41
- * the user type in values for each picker
42
- * column. This is useful when working
43
- * with time pickers.
44
- *
45
- * @internal
46
- */
47
- numericInput: boolean;
48
- /**
49
- * Emitted when the value has changed.
50
- */
51
- ionChange: EventEmitter<{
52
- value: string | number | undefined;
53
- }>;
54
- valueChange(): void;
55
- /**
56
- * Only setup scroll listeners
57
- * when the picker is visible, otherwise
58
- * the container will have a scroll
59
- * height of 0px.
60
- */
61
- componentWillLoad(): void;
62
- componentDidRender(): void;
63
- /** @internal */
64
- scrollActiveItemIntoView(): Promise<void>;
65
- /**
66
- * Sets the value prop and fires the ionChange event.
67
- * This is used when we need to fire ionChange from
68
- * user-generated events that cannot be caught with normal
69
- * input/change event listeners.
6
+ export declare class PickerColumnCmp implements ComponentInterface {
7
+ private bounceFrom;
8
+ private lastIndex?;
9
+ private minY;
10
+ private maxY;
11
+ private optHeight;
12
+ private rotateFactor;
13
+ private scaleFactor;
14
+ private velocity;
15
+ private y;
16
+ private optsEl?;
17
+ private gesture?;
18
+ private rafId?;
19
+ private tmrId?;
20
+ private noAnimate;
21
+ private colDidChange;
22
+ el: HTMLElement;
23
+ /**
24
+ * Emitted when the selected value has changed
70
25
  * @internal
71
26
  */
72
- setValue(value?: string | number): Promise<void>;
73
- /**
74
- * Sets focus on the scrollable container within the picker column.
75
- * Use this method instead of the global `pickerColumn.focus()`.
76
- */
77
- setFocus(): Promise<void>;
78
- private centerPickerItemInView;
79
- private setPickerItemActiveState;
80
- /**
81
- * When ionInputModeChange is emitted, each column
82
- * needs to check if it is the one being made available
83
- * for text entry.
84
- */
85
- private inputModeChange;
86
- /**
87
- * Setting isActive will cause a re-render.
88
- * As a result, we do not want to cause the
89
- * re-render mid scroll as this will cause
90
- * the picker column to jump back to
91
- * whatever value was selected at the
92
- * start of the scroll interaction.
93
- */
94
- private setInputModeActive;
95
- /**
96
- * When the column scrolls, the component
97
- * needs to determine which item is centered
98
- * in the view and will emit an ionChange with
99
- * the item object.
100
- */
101
- private initializeScrollListener;
102
- /**
103
- * Tells the parent picker to
104
- * exit text entry mode. This is only called
105
- * when the selected item changes during scroll, so
106
- * we know that the user likely wants to scroll
107
- * instead of type.
108
- */
109
- private exitInputMode;
110
- get activeItem(): HTMLIonPickerColumnOptionElement | undefined;
27
+ ionPickerColChange: EventEmitter<PickerColumn>;
28
+ /** Picker column data */
29
+ col: PickerColumn;
30
+ protected colChanged(): void;
31
+ connectedCallback(): Promise<void>;
32
+ componentDidLoad(): void;
33
+ componentDidUpdate(): void;
34
+ disconnectedCallback(): void;
35
+ private emitColChange;
36
+ private setSelected;
37
+ private update;
38
+ private decelerate;
39
+ private indexForY;
40
+ private onStart;
41
+ private onMove;
42
+ private onEnd;
43
+ private refresh;
44
+ private onDomChange;
111
45
  render(): any;
112
46
  }
@@ -0,0 +1,102 @@
1
+ import type { ComponentInterface, EventEmitter } from '../../stencil-public-runtime';
2
+ import type { Color } from '../../interface';
3
+ import type { PickerColumnItem } from './picker-column-internal-interfaces';
4
+ /**
5
+ * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
6
+ * @internal
7
+ */
8
+ export declare class PickerColumnInternal implements ComponentInterface {
9
+ private destroyScrollListener?;
10
+ private isScrolling;
11
+ private scrollEndCallback?;
12
+ private isColumnVisible;
13
+ private parentEl?;
14
+ private canExitInputMode;
15
+ isActive: boolean;
16
+ el: HTMLIonPickerColumnInternalElement;
17
+ /**
18
+ * If `true`, the user cannot interact with the picker.
19
+ */
20
+ disabled: boolean;
21
+ /**
22
+ * A list of options to be displayed in the picker
23
+ */
24
+ items: PickerColumnItem[];
25
+ /**
26
+ * The selected option in the picker.
27
+ */
28
+ value?: string | number;
29
+ /**
30
+ * The color to use from your application's color palette.
31
+ * Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
32
+ * For more information on colors, see [theming](/docs/theming/basics).
33
+ */
34
+ color?: Color;
35
+ /**
36
+ * If `true`, tapping the picker will
37
+ * reveal a number input keyboard that lets
38
+ * the user type in values for each picker
39
+ * column. This is useful when working
40
+ * with time pickers.
41
+ *
42
+ * @internal
43
+ */
44
+ numericInput: boolean;
45
+ /**
46
+ * Emitted when the value has changed.
47
+ */
48
+ ionChange: EventEmitter<PickerColumnItem>;
49
+ valueChange(): void;
50
+ /**
51
+ * Only setup scroll listeners
52
+ * when the picker is visible, otherwise
53
+ * the container will have a scroll
54
+ * height of 0px.
55
+ */
56
+ componentWillLoad(): void;
57
+ componentDidRender(): void;
58
+ /** @internal */
59
+ scrollActiveItemIntoView(): Promise<void>;
60
+ /**
61
+ * Sets the value prop and fires the ionChange event.
62
+ * This is used when we need to fire ionChange from
63
+ * user-generated events that cannot be caught with normal
64
+ * input/change event listeners.
65
+ * @internal
66
+ */
67
+ setValue(value?: string | number): Promise<void>;
68
+ private centerPickerItemInView;
69
+ private setPickerItemActiveState;
70
+ /**
71
+ * When ionInputModeChange is emitted, each column
72
+ * needs to check if it is the one being made available
73
+ * for text entry.
74
+ */
75
+ private inputModeChange;
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
+ private setInputModeActive;
85
+ /**
86
+ * When the column scrolls, the component
87
+ * needs to determine which item is centered
88
+ * in the view and will emit an ionChange with
89
+ * the item object.
90
+ */
91
+ private initializeScrollListener;
92
+ /**
93
+ * Tells the parent picker to
94
+ * exit text entry mode. This is only called
95
+ * when the selected item changes during scroll, so
96
+ * we know that the user likely wants to scroll
97
+ * instead of type.
98
+ */
99
+ private exitInputMode;
100
+ get activeItem(): HTMLElement | null;
101
+ render(): any;
102
+ }
@@ -0,0 +1,8 @@
1
+ export interface PickerInternalChangeEventDetail {
2
+ useInputMode: boolean;
3
+ inputModeColumn?: HTMLIonPickerColumnInternalElement;
4
+ }
5
+ export interface PickerInternalCustomEvent extends CustomEvent {
6
+ target: HTMLIonPickerInternalElement;
7
+ detail: PickerInternalChangeEventDetail;
8
+ }
@@ -0,0 +1,102 @@
1
+ import type { ComponentInterface, EventEmitter } from '../../stencil-public-runtime';
2
+ import type { PickerInternalChangeEventDetail } from './picker-internal-interfaces';
3
+ /**
4
+ * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
5
+ * @internal
6
+ */
7
+ export declare class PickerInternal implements ComponentInterface {
8
+ private inputEl?;
9
+ private useInputMode;
10
+ private inputModeColumn?;
11
+ private highlightEl?;
12
+ private actionOnClick?;
13
+ private destroyKeypressListener?;
14
+ private singleColumnSearchTimeout?;
15
+ el: HTMLIonPickerInternalElement;
16
+ ionInputModeChange: EventEmitter<PickerInternalChangeEventDetail>;
17
+ /**
18
+ * When the picker is interacted with
19
+ * we need to prevent touchstart so other
20
+ * gestures do not fire. For example,
21
+ * scrolling on the wheel picker
22
+ * in ion-datetime should not cause
23
+ * a card modal to swipe to close.
24
+ */
25
+ preventTouchStartPropagation(ev: TouchEvent): void;
26
+ componentWillLoad(): void;
27
+ private isInHighlightBounds;
28
+ /**
29
+ * If we are no longer focused
30
+ * on a picker column, then we should
31
+ * exit input mode. An exception is made
32
+ * for the input in the picker since having
33
+ * that focused means we are still in input mode.
34
+ */
35
+ private onFocusOut;
36
+ /**
37
+ * When picker columns receive focus
38
+ * the parent picker needs to determine
39
+ * whether to enter/exit input mode.
40
+ */
41
+ private onFocusIn;
42
+ /**
43
+ * On click we need to run an actionOnClick
44
+ * function that has been set in onPointerDown
45
+ * so that we enter/exit input mode correctly.
46
+ */
47
+ private onClick;
48
+ /**
49
+ * Clicking a column also focuses the column on
50
+ * certain browsers, so we use onPointerDown
51
+ * to tell the onFocusIn function that users
52
+ * are trying to click the column rather than
53
+ * focus the column using the keyboard. When the
54
+ * user completes the click, the onClick function
55
+ * runs and runs the actionOnClick callback.
56
+ */
57
+ private onPointerDown;
58
+ /**
59
+ * Enters input mode to allow
60
+ * for text entry of numeric values.
61
+ * If on mobile, we focus a hidden input
62
+ * field so that the on screen keyboard
63
+ * is brought up. When tabbing using a
64
+ * keyboard, picker columns receive an outline
65
+ * to indicate they are focused. As a result,
66
+ * we should not focus the hidden input as it
67
+ * would cause the outline to go away, preventing
68
+ * users from having any visual indication of which
69
+ * column is focused.
70
+ */
71
+ private enterInputMode;
72
+ /**
73
+ * @internal
74
+ * Exits text entry mode for the picker
75
+ * This method blurs the hidden input
76
+ * and cause the keyboard to dismiss.
77
+ */
78
+ exitInputMode(): Promise<void>;
79
+ private onKeyPress;
80
+ private selectSingleColumn;
81
+ /**
82
+ * Searches a list of column items for a particular
83
+ * value. This is currently used for numeric values.
84
+ * The zeroBehavior can be set to account for leading
85
+ * or trailing zeros when looking at the item text.
86
+ */
87
+ private searchColumn;
88
+ private selectMultiColumn;
89
+ /**
90
+ * Searches the value of the active column
91
+ * to determine which value users are trying
92
+ * to select
93
+ */
94
+ private onInputChange;
95
+ /**
96
+ * Emit ionInputModeChange. Picker columns
97
+ * listen for this event to determine whether
98
+ * or not their column is "active" for text input.
99
+ */
100
+ private emitInputModeChange;
101
+ render(): any;
102
+ }