@ionic/core 7.5.8-dev.11704294569.1abc989d → 7.5.8-dev.11705350665.1a40ee3a

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 (443) hide show
  1. package/components/action-sheet.js +1 -1
  2. package/components/alert.js +2 -2
  3. package/components/button.js +2 -2
  4. package/components/checkbox.js +2 -2
  5. package/components/data.js +1 -1
  6. package/components/index2.js +91 -0
  7. package/components/ion-back-button.js +1 -1
  8. package/components/ion-badge.js +2 -2
  9. package/components/ion-datetime.js +39 -30
  10. package/components/ion-fab-button.js +2 -2
  11. package/components/ion-input.js +2 -2
  12. package/components/ion-item-option.js +2 -2
  13. package/components/ion-loading.js +1 -1
  14. package/components/ion-menu-button.js +1 -1
  15. package/components/ion-picker-column-option.d.ts +11 -0
  16. package/components/ion-picker-column-option.js +9 -0
  17. package/components/ion-picker-column.js +2 -2
  18. package/components/ion-picker-legacy-column.d.ts +11 -0
  19. package/components/ion-picker-legacy-column.js +9 -0
  20. package/components/{ion-picker-internal.d.ts → ion-picker-legacy.d.ts} +4 -4
  21. package/components/ion-picker-legacy.js +309 -0
  22. package/components/ion-picker.js +1 -309
  23. package/components/ion-progress-bar.js +2 -2
  24. package/components/ion-range.js +2 -2
  25. package/components/ion-refresher-content.js +1 -1
  26. package/components/ion-refresher.js +1 -1
  27. package/components/ion-router-link.js +1 -1
  28. package/components/ion-searchbar.js +1 -1
  29. package/components/ion-segment-button.js +1 -1
  30. package/components/ion-select.js +2 -2
  31. package/components/ion-tab-bar.js +2 -2
  32. package/components/ion-textarea.js +2 -2
  33. package/components/ion-toast.js +2 -2
  34. package/components/ion-toggle.js +2 -2
  35. package/components/item.js +2 -2
  36. package/components/label.js +1 -1
  37. package/components/overlays.js +6 -3
  38. package/components/picker-column-option.js +122 -0
  39. package/components/picker-column.js +351 -322
  40. package/components/picker-column2.js +379 -0
  41. package/components/{picker-internal.js → picker.js} +29 -22
  42. package/components/radio.js +2 -2
  43. package/components/select-popover.js +1 -1
  44. package/css/core.css +44 -35
  45. package/css/core.css.map +1 -1
  46. package/css/global.bundle.css +1 -1
  47. package/css/ionic.bundle.css +1 -1
  48. package/css/ionic.bundle.css.map +1 -1
  49. package/css/typography.css +1 -1
  50. package/dist/cjs/{data-36b9094e.js → data-e7526b58.js} +1 -1
  51. package/dist/cjs/{index-d4c2e02c.js → index-ec51e99c.js} +93 -2
  52. package/dist/cjs/index.cjs.js +5 -5
  53. package/dist/cjs/ion-action-sheet.cjs.entry.js +2 -2
  54. package/dist/cjs/ion-alert.cjs.entry.js +3 -3
  55. package/dist/cjs/ion-app_8.cjs.entry.js +1 -1
  56. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  57. package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
  58. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  59. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
  60. package/dist/cjs/ion-datetime-button.cjs.entry.js +1 -1
  61. package/dist/cjs/ion-datetime_3.cjs.entry.js +30 -36
  62. package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
  63. package/dist/cjs/ion-input.cjs.entry.js +2 -2
  64. package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
  65. package/dist/cjs/ion-item_8.cjs.entry.js +3 -3
  66. package/dist/cjs/ion-loading.cjs.entry.js +2 -2
  67. package/dist/cjs/ion-menu_3.cjs.entry.js +2 -2
  68. package/dist/cjs/ion-modal.cjs.entry.js +2 -2
  69. package/dist/cjs/ion-nav_2.cjs.entry.js +2 -1
  70. package/dist/cjs/ion-picker-column-option.cjs.entry.js +104 -0
  71. package/dist/cjs/{ion-picker-column-internal.cjs.entry.js → ion-picker-column.cjs.entry.js} +104 -87
  72. package/dist/cjs/{ion-picker-internal.cjs.entry.js → ion-picker.cjs.entry.js} +26 -19
  73. package/dist/cjs/ion-popover.cjs.entry.js +2 -2
  74. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  75. package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
  76. package/dist/cjs/ion-range.cjs.entry.js +2 -2
  77. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  78. package/dist/cjs/ion-route_4.cjs.entry.js +1 -1
  79. package/dist/cjs/ion-searchbar.cjs.entry.js +1 -1
  80. package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
  81. package/dist/cjs/ion-select_3.cjs.entry.js +4 -4
  82. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
  83. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  84. package/dist/cjs/ion-toast.cjs.entry.js +3 -3
  85. package/dist/cjs/ion-toggle.cjs.entry.js +2 -2
  86. package/dist/cjs/ionic.cjs.js +1 -1
  87. package/dist/cjs/{ios.transition-a4ffb5a2.js → ios.transition-039d6aeb.js} +3 -1
  88. package/dist/cjs/loader.cjs.js +1 -1
  89. package/dist/cjs/{md.transition-292abe1c.js → md.transition-ce763350.js} +3 -1
  90. package/dist/cjs/{overlays-2c6b1072.js → overlays-e8e05b0e.js} +6 -3
  91. package/dist/collection/collection-manifest.json +7 -6
  92. package/dist/collection/components/action-sheet/action-sheet.ios.css +3 -3
  93. package/dist/collection/components/action-sheet/test/a11y/action-sheet.e2e.js +14 -23
  94. package/dist/collection/components/alert/alert.ios.css +6 -6
  95. package/dist/collection/components/alert/alert.md.css +6 -6
  96. package/dist/collection/components/alert/test/a11y/alert.e2e.js +9 -22
  97. package/dist/collection/components/back-button/back-button.ios.css +1 -1
  98. package/dist/collection/components/back-button/test/a11y/back-button.e2e.js +0 -21
  99. package/dist/collection/components/badge/badge.ios.css +1 -1
  100. package/dist/collection/components/badge/badge.md.css +1 -1
  101. package/dist/collection/components/badge/test/a11y/badge.e2e.js +0 -18
  102. package/dist/collection/components/button/button.ios.css +11 -11
  103. package/dist/collection/components/button/button.md.css +9 -9
  104. package/dist/collection/components/button/test/a11y/button.e2e.js +0 -48
  105. package/dist/collection/components/button/test/wrap/button.e2e.js +12 -24
  106. package/dist/collection/components/checkbox/checkbox.ios.css +2 -2
  107. package/dist/collection/components/checkbox/checkbox.md.css +2 -2
  108. package/dist/collection/components/checkbox/test/a11y/checkbox.e2e.js +2 -11
  109. package/dist/collection/components/datetime/datetime.ios.css +8 -13
  110. package/dist/collection/components/datetime/datetime.js +19 -16
  111. package/dist/collection/components/datetime/datetime.md.css +8 -13
  112. package/dist/collection/components/datetime/test/datetime.e2e.js +2 -2
  113. package/dist/collection/components/datetime/test/disabled/datetime.spec.js +4 -4
  114. package/dist/collection/components/datetime/test/locale/datetime.e2e.js +2 -2
  115. package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +6 -6
  116. package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +43 -41
  117. package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +1 -1
  118. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +2 -2
  119. package/dist/collection/components/datetime/test/values/datetime.e2e.js +15 -12
  120. package/dist/collection/components/datetime/utils/data.js +1 -1
  121. package/dist/collection/components/fab-button/fab-button.ios.css +13 -13
  122. package/dist/collection/components/fab-button/fab-button.md.css +4 -4
  123. package/dist/collection/components/fab-button/test/a11y/fab-button.e2e.js +0 -50
  124. package/dist/collection/components/input/input.ios.css +3 -3
  125. package/dist/collection/components/input/input.md.css +3 -3
  126. package/dist/collection/components/input/test/a11y/input.e2e.js +3 -35
  127. package/dist/collection/components/item/item.ios.css +3 -3
  128. package/dist/collection/components/item/item.md.css +4 -4
  129. package/dist/collection/components/item-option/item-option.ios.css +2 -2
  130. package/dist/collection/components/item-option/item-option.md.css +1 -1
  131. package/dist/collection/components/item-sliding/test/a11y/item-sliding.e2e.js +0 -28
  132. package/dist/collection/components/label/label.md.css +1 -1
  133. package/dist/collection/components/label/test/a11y/label.e2e.js +0 -20
  134. package/dist/collection/components/loading/loading.md.css +1 -1
  135. package/dist/collection/components/loading/test/a11y/loading.e2e.js +5 -21
  136. package/dist/collection/components/menu-button/menu-button.ios.css +1 -1
  137. package/dist/collection/components/menu-button/test/a11y/menu-button.e2e.js +0 -14
  138. package/dist/collection/components/picker/picker.ios.css +112 -211
  139. package/dist/collection/components/picker/picker.js +472 -744
  140. package/dist/collection/components/picker/picker.md.css +108 -198
  141. package/dist/collection/components/picker/test/a11y/picker.e2e.js +15 -0
  142. package/dist/collection/components/picker/test/basic/picker.e2e.js +99 -13
  143. package/dist/collection/components/picker/test/custom/picker.e2e.js +85 -0
  144. package/dist/collection/components/{picker-internal/test/keyboard-entry/picker-internal.e2e.js → picker/test/keyboard-entry/picker.e2e.js} +63 -32
  145. package/dist/collection/components/{picker-column-internal/picker-column-internal.md.css → picker-column/picker-column.css} +96 -83
  146. package/dist/collection/components/picker-column/picker-column.js +497 -335
  147. package/dist/collection/components/{picker-column-internal/test/basic/picker-column-internal.e2e.js → picker-column/test/basic/picker-column.e2e.js} +8 -8
  148. package/dist/collection/components/picker-column/test/disabled/picker-column.e2e.js +91 -0
  149. package/dist/collection/components/picker-column/test/slots/picker-column.e2e.js +39 -0
  150. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +87 -0
  151. package/dist/collection/components/picker-column-option/picker-column-option.js +173 -0
  152. package/dist/collection/components/{picker-column-internal/picker-column-internal.ios.css → picker-column-option/picker-column-option.md.css} +6 -53
  153. package/dist/collection/components/picker-column-option/test/a11y/picker-column-option.e2e.js +18 -0
  154. package/dist/collection/components/picker-column-option/test/basic/picker-column-option.e2e.js +37 -0
  155. package/dist/collection/components/picker-column-option/test/picker-column-option.spec.js +29 -0
  156. package/dist/collection/components/{picker-internal/picker-internal.md.css → picker-legacy/picker.ios.css} +207 -98
  157. package/dist/collection/components/picker-legacy/picker.js +817 -0
  158. package/dist/collection/components/{picker-internal/picker-internal.ios.css → picker-legacy/picker.md.css} +192 -100
  159. package/dist/collection/components/picker-legacy/test/basic/picker.e2e.js +25 -0
  160. package/dist/collection/components/{picker → picker-legacy}/test/is-open/picker.e2e.js +4 -4
  161. package/dist/collection/components/{picker → picker-legacy}/test/picker-id.spec.js +5 -5
  162. package/dist/collection/components/{picker → picker-legacy}/test/trigger/picker.e2e.js +1 -1
  163. package/dist/collection/components/picker-legacy-column/picker-column.js +419 -0
  164. package/dist/collection/components/{picker-column → picker-legacy-column}/picker-column.md.css +1 -1
  165. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-aria.spec.js +3 -3
  166. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-dynamic.spec.js +2 -2
  167. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column.spec.js +2 -2
  168. package/dist/collection/components/{picker-column → picker-legacy-column}/test/standalone/picker-column.e2e.js +3 -3
  169. package/dist/collection/components/progress-bar/progress-bar.ios.css +2 -2
  170. package/dist/collection/components/progress-bar/progress-bar.md.css +2 -2
  171. package/dist/collection/components/radio/radio.ios.css +2 -2
  172. package/dist/collection/components/radio/radio.md.css +2 -2
  173. package/dist/collection/components/radio/test/a11y/radio.e2e.js +6 -44
  174. package/dist/collection/components/range/range.ios.css +1 -1
  175. package/dist/collection/components/range/range.md.css +3 -3
  176. package/dist/collection/components/range/test/a11y/range.e2e.js +8 -18
  177. package/dist/collection/components/refresher/refresher.md.css +2 -2
  178. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  179. package/dist/collection/components/router-link/router-link.css +1 -1
  180. package/dist/collection/components/searchbar/searchbar.ios.css +1 -1
  181. package/dist/collection/components/segment/test/a11y/segment.e2e.js +0 -23
  182. package/dist/collection/components/segment-button/segment-button.md.css +2 -2
  183. package/dist/collection/components/select/select.ios.css +3 -3
  184. package/dist/collection/components/select/select.md.css +3 -3
  185. package/dist/collection/components/select/test/a11y/select.e2e.js +4 -59
  186. package/dist/collection/components/select-popover/select-popover.md.css +4 -4
  187. package/dist/collection/components/tab-bar/tab-bar.ios.css +1 -1
  188. package/dist/collection/components/tab-bar/tab-bar.md.css +1 -1
  189. package/dist/collection/components/textarea/test/a11y/textarea.e2e.js +3 -35
  190. package/dist/collection/components/textarea/textarea.ios.css +3 -3
  191. package/dist/collection/components/textarea/textarea.md.css +3 -3
  192. package/dist/collection/components/toast/test/a11y/toast.e2e.js +24 -56
  193. package/dist/collection/components/toast/toast.ios.css +1 -1
  194. package/dist/collection/components/toast/toast.md.css +2 -2
  195. package/dist/collection/components/toggle/test/a11y/toggle.e2e.js +2 -8
  196. package/dist/collection/components/toggle/toggle.ios.css +1 -1
  197. package/dist/collection/components/toggle/toggle.md.css +2 -2
  198. package/dist/collection/css/test/a11y/typography.e2e.js +0 -18
  199. package/dist/collection/utils/overlays.js +6 -3
  200. package/dist/collection/utils/test/playwright/generator.js +0 -1
  201. package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
  202. package/dist/collection/utils/transition/index.js +91 -0
  203. package/dist/docs.json +472 -24
  204. package/dist/esm/{data-f5c75b4e.js → data-4b9508c9.js} +1 -1
  205. package/dist/esm/{index-d8817fb0.js → index-933484ae.js} +93 -2
  206. package/dist/esm/index.js +5 -5
  207. package/dist/esm/ion-action-sheet.entry.js +2 -2
  208. package/dist/esm/ion-alert.entry.js +3 -3
  209. package/dist/esm/ion-app_8.entry.js +1 -1
  210. package/dist/esm/ion-avatar_3.entry.js +2 -2
  211. package/dist/esm/ion-back-button.entry.js +1 -1
  212. package/dist/esm/ion-button_2.entry.js +2 -2
  213. package/dist/esm/ion-checkbox.entry.js +2 -2
  214. package/dist/esm/ion-datetime-button.entry.js +1 -1
  215. package/dist/esm/ion-datetime_3.entry.js +29 -35
  216. package/dist/esm/ion-fab_3.entry.js +2 -2
  217. package/dist/esm/ion-input.entry.js +2 -2
  218. package/dist/esm/ion-item-option_3.entry.js +2 -2
  219. package/dist/esm/ion-item_8.entry.js +3 -3
  220. package/dist/esm/ion-loading.entry.js +2 -2
  221. package/dist/esm/ion-menu_3.entry.js +2 -2
  222. package/dist/esm/ion-modal.entry.js +2 -2
  223. package/dist/esm/ion-nav_2.entry.js +2 -1
  224. package/dist/esm/ion-picker-column-option.entry.js +100 -0
  225. package/dist/esm/{ion-picker-column-internal.entry.js → ion-picker-column.entry.js} +104 -87
  226. package/dist/esm/{ion-picker-internal.entry.js → ion-picker.entry.js} +26 -19
  227. package/dist/esm/ion-popover.entry.js +2 -2
  228. package/dist/esm/ion-progress-bar.entry.js +2 -2
  229. package/dist/esm/ion-radio_2.entry.js +2 -2
  230. package/dist/esm/ion-range.entry.js +2 -2
  231. package/dist/esm/ion-refresher_2.entry.js +2 -2
  232. package/dist/esm/ion-route_4.entry.js +1 -1
  233. package/dist/esm/ion-searchbar.entry.js +1 -1
  234. package/dist/esm/ion-segment_2.entry.js +1 -1
  235. package/dist/esm/ion-select_3.entry.js +4 -4
  236. package/dist/esm/ion-tab-bar_2.entry.js +2 -2
  237. package/dist/esm/ion-textarea.entry.js +2 -2
  238. package/dist/esm/ion-toast.entry.js +3 -3
  239. package/dist/esm/ion-toggle.entry.js +2 -2
  240. package/dist/esm/ionic.js +1 -1
  241. package/dist/esm/{ios.transition-fd16bec1.js → ios.transition-9e42996d.js} +3 -1
  242. package/dist/esm/loader.js +1 -1
  243. package/dist/esm/{md.transition-94ac93e1.js → md.transition-8cbb4e1d.js} +3 -1
  244. package/dist/esm/{overlays-d23ea6e1.js → overlays-fbc5cab5.js} +6 -3
  245. package/dist/esm-es5/index-933484ae.js +4 -0
  246. package/dist/esm-es5/index.js +1 -1
  247. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  248. package/dist/esm-es5/ion-alert.entry.js +1 -1
  249. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  250. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  251. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  252. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  253. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  254. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  255. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  256. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  257. package/dist/esm-es5/ion-input.entry.js +1 -1
  258. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  259. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  260. package/dist/esm-es5/ion-loading.entry.js +1 -1
  261. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  262. package/dist/esm-es5/ion-modal.entry.js +1 -1
  263. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  264. package/dist/esm-es5/ion-picker-column-option.entry.js +4 -0
  265. package/dist/esm-es5/ion-picker-column.entry.js +4 -0
  266. package/dist/esm-es5/ion-picker.entry.js +4 -0
  267. package/dist/esm-es5/ion-popover.entry.js +1 -1
  268. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  269. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  270. package/dist/esm-es5/ion-range.entry.js +1 -1
  271. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  272. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  273. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  274. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  275. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  276. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  277. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  278. package/dist/esm-es5/ion-toast.entry.js +1 -1
  279. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  280. package/dist/esm-es5/ionic.js +1 -1
  281. package/dist/esm-es5/ios.transition-9e42996d.js +4 -0
  282. package/dist/esm-es5/loader.js +1 -1
  283. package/dist/esm-es5/md.transition-8cbb4e1d.js +4 -0
  284. package/dist/esm-es5/overlays-fbc5cab5.js +4 -0
  285. package/dist/html.html-data.json +152 -1
  286. package/dist/ionic/index.esm.js +1 -1
  287. package/dist/ionic/ionic.esm.js +1 -1
  288. package/dist/ionic/{p-fff7a57e.system.js → p-16bd5224.system.js} +1 -1
  289. package/dist/ionic/p-17da5ed1.entry.js +4 -0
  290. package/dist/ionic/{p-be6344dd.entry.js → p-18ba8221.entry.js} +1 -1
  291. package/dist/ionic/{p-29bf41bd.entry.js → p-21c3515a.entry.js} +1 -1
  292. package/dist/ionic/{p-1de103b7.entry.js → p-22e5af95.entry.js} +1 -1
  293. package/dist/ionic/{p-02e066a0.entry.js → p-232d1f22.entry.js} +1 -1
  294. package/dist/ionic/{p-8e086176.system.entry.js → p-26798a7b.system.entry.js} +1 -1
  295. package/dist/ionic/{p-b1a2a195.system.entry.js → p-27bcbbc7.system.entry.js} +1 -1
  296. package/dist/ionic/p-294725bb.js +4 -0
  297. package/dist/ionic/{p-6f96f7b1.system.entry.js → p-2ab4e925.system.entry.js} +1 -1
  298. package/dist/ionic/{p-98c798de.system.entry.js → p-32303650.system.entry.js} +1 -1
  299. package/dist/ionic/{p-1286049a.entry.js → p-34c39c48.entry.js} +1 -1
  300. package/dist/ionic/p-36d194c5.entry.js +4 -0
  301. package/dist/ionic/p-3993ae66.entry.js +4 -0
  302. package/dist/ionic/{p-55a0cd33.entry.js → p-3f6270b3.entry.js} +1 -1
  303. package/dist/ionic/{p-0339b688.system.entry.js → p-3fd26bd6.system.entry.js} +1 -1
  304. package/dist/ionic/p-400b61c7.system.entry.js +4 -0
  305. package/dist/ionic/{p-d51019a8.entry.js → p-42ba3902.entry.js} +1 -1
  306. package/dist/ionic/{p-ed25b7cc.system.entry.js → p-464975c5.system.entry.js} +1 -1
  307. package/dist/ionic/{p-023b1cf4.entry.js → p-4911a5d6.entry.js} +1 -1
  308. package/dist/ionic/p-49c5f1a3.js +4 -0
  309. package/dist/ionic/{p-7c7e21a7.entry.js → p-4a31c99f.entry.js} +1 -1
  310. package/dist/ionic/{p-7a63e024.entry.js → p-4bee86bd.entry.js} +1 -1
  311. package/dist/ionic/p-510d9b43.js +4 -0
  312. package/dist/ionic/{p-0ebcff25.entry.js → p-51a087d6.entry.js} +1 -1
  313. package/dist/ionic/p-5a1aac13.system.entry.js +4 -0
  314. package/dist/ionic/{p-12869199.system.entry.js → p-5bebc7b3.system.entry.js} +1 -1
  315. package/dist/ionic/{p-5b834053.entry.js → p-5d42b6b4.entry.js} +1 -1
  316. package/dist/ionic/{p-2f2293da.system.entry.js → p-6555a5e7.system.entry.js} +1 -1
  317. package/dist/ionic/{p-60b386c9.system.entry.js → p-65e27aae.system.entry.js} +1 -1
  318. package/dist/ionic/{p-cef8c5c2.entry.js → p-6b7c55cd.entry.js} +1 -1
  319. package/dist/ionic/{p-0941a5d7.entry.js → p-6d72fb44.entry.js} +1 -1
  320. package/dist/ionic/p-6e70dd1a.system.entry.js +4 -0
  321. package/dist/ionic/{p-d1025b3d.entry.js → p-6fbecbda.entry.js} +1 -1
  322. package/dist/ionic/{p-ad8bed54.system.entry.js → p-6fd64e7c.system.entry.js} +1 -1
  323. package/dist/ionic/{p-0afef6b9.entry.js → p-73190c5f.entry.js} +1 -1
  324. package/dist/ionic/{p-c7c7c110.entry.js → p-73aa7604.entry.js} +1 -1
  325. package/dist/ionic/{p-5b20db28.entry.js → p-7b725280.entry.js} +1 -1
  326. package/dist/ionic/{p-de74582b.system.entry.js → p-8017aad2.system.entry.js} +1 -1
  327. package/dist/ionic/{p-3b568d18.entry.js → p-8adc9a45.entry.js} +1 -1
  328. package/dist/ionic/p-8c0e5060.system.js +4 -0
  329. package/dist/ionic/p-8e42850f.entry.js +4 -0
  330. package/dist/ionic/{p-5fbfa8c9.entry.js → p-8f5d30f5.entry.js} +1 -1
  331. package/dist/ionic/p-8fa6583d.system.js +4 -0
  332. package/dist/ionic/p-91af3c52.system.entry.js +4 -0
  333. package/dist/ionic/{p-3e625023.system.entry.js → p-93000a81.system.entry.js} +1 -1
  334. package/dist/ionic/{p-90483001.system.entry.js → p-96dbbac1.system.entry.js} +1 -1
  335. package/dist/ionic/p-9e48593b.system.js +4 -0
  336. package/dist/ionic/{p-a8e90d15.system.entry.js → p-a225bf0f.system.entry.js} +1 -1
  337. package/dist/ionic/{p-57798ba6.entry.js → p-a8baa23e.entry.js} +1 -1
  338. package/dist/ionic/{p-bcd073dd.entry.js → p-a98dc0c1.entry.js} +1 -1
  339. package/dist/ionic/{p-9588396d.entry.js → p-a9a80f5b.entry.js} +1 -1
  340. package/dist/ionic/{p-098f4d12.system.entry.js → p-ab9456e9.system.entry.js} +1 -1
  341. package/dist/ionic/{p-ebcf6eca.entry.js → p-ae712b95.entry.js} +1 -1
  342. package/dist/ionic/p-afcf4620.entry.js +4 -0
  343. package/dist/ionic/{p-ddb30596.entry.js → p-b133e9b4.entry.js} +1 -1
  344. package/dist/ionic/{p-d32188f3.system.entry.js → p-b4d31b30.system.entry.js} +1 -1
  345. package/dist/ionic/p-b7010c69.system.entry.js +4 -0
  346. package/dist/ionic/{p-7828a27f.system.entry.js → p-b752714f.system.entry.js} +1 -1
  347. package/dist/ionic/p-c006d974.entry.js +4 -0
  348. package/dist/ionic/{p-ec040c06.system.entry.js → p-c18de88a.system.entry.js} +1 -1
  349. package/dist/ionic/p-c41bff4e.system.entry.js +4 -0
  350. package/dist/ionic/{p-76c94634.system.entry.js → p-c9a21dfd.system.entry.js} +1 -1
  351. package/dist/ionic/p-ca8938f4.js +4 -0
  352. package/dist/ionic/p-cde52378.system.entry.js +4 -0
  353. package/dist/ionic/{p-1e57bd24.entry.js → p-d3c773d0.entry.js} +1 -1
  354. package/dist/ionic/p-d9ec6cf0.system.js +4 -0
  355. package/dist/ionic/p-e3584231.system.js +1 -1
  356. package/dist/ionic/{p-f957d584.system.entry.js → p-e7ea9815.system.entry.js} +1 -1
  357. package/dist/ionic/{p-93f25d0d.system.entry.js → p-e8e86f69.system.entry.js} +1 -1
  358. package/dist/ionic/{p-31cf9613.entry.js → p-ea69616e.entry.js} +1 -1
  359. package/dist/ionic/{p-d39db09e.system.entry.js → p-ef126ae8.system.entry.js} +1 -1
  360. package/dist/ionic/{p-5ff60387.system.entry.js → p-f6160677.system.entry.js} +1 -1
  361. package/dist/ionic/{p-9eec42cc.system.entry.js → p-f910cc73.system.entry.js} +1 -1
  362. package/dist/ionic/{p-193ff029.system.entry.js → p-fbf3a689.system.entry.js} +1 -1
  363. package/dist/ionic/p-ffd5dba4.system.entry.js +4 -0
  364. package/dist/types/components/datetime/utils/data.d.ts +11 -7
  365. package/dist/types/components/picker/picker-interfaces.d.ts +8 -0
  366. package/dist/types/components/picker/picker.d.ts +75 -129
  367. package/dist/types/components/picker-column/picker-column-interfaces.d.ts +4 -0
  368. package/dist/types/components/picker-column/picker-column.d.ts +99 -39
  369. package/dist/types/components/picker-column-option/picker-column-option.d.ts +66 -0
  370. package/dist/types/components/picker-legacy/picker.d.ts +158 -0
  371. package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
  372. package/dist/types/components.d.ts +154 -122
  373. package/dist/types/interface.d.ts +1 -1
  374. package/dist/types/utils/config.d.ts +8 -2
  375. package/dist/types/utils/overlays.d.ts +5 -2
  376. package/hydrate/index.js +1617 -1404
  377. package/package.json +1 -1
  378. package/components/ion-picker-column-internal.d.ts +0 -11
  379. package/components/ion-picker-column-internal.js +0 -9
  380. package/components/ion-picker-internal.js +0 -9
  381. package/components/picker-column-internal.js +0 -390
  382. package/css/themes/dark.always.css +0 -122
  383. package/css/themes/dark.always.css.map +0 -1
  384. package/css/themes/dark.class.css +0 -122
  385. package/css/themes/dark.class.css.map +0 -1
  386. package/css/themes/dark.css +0 -3
  387. package/css/themes/dark.css.map +0 -1
  388. package/css/themes/dark.system.css +0 -124
  389. package/css/themes/dark.system.css.map +0 -1
  390. package/dist/collection/components/picker-column-internal/picker-column-internal.js +0 -565
  391. package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +0 -162
  392. package/dist/collection/components/picker-internal/picker-internal.js +0 -544
  393. package/dist/collection/components/picker-internal/test/a11y/picker-internal.e2e.js +0 -31
  394. package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +0 -118
  395. package/dist/collection/components/progress-bar/test/a11y/progress-bar.e2e.js +0 -24
  396. package/dist/collection/components/refresher/test/a11y/refresher.e2e.js +0 -25
  397. package/dist/collection/components/router-link/test/a11y/router-link.e2e.js +0 -23
  398. package/dist/collection/components/select-popover/test/a11y/select-popover.e2e.js +0 -32
  399. package/dist/collection/themes/test/colors/theme.e2e.js +0 -114
  400. package/dist/esm-es5/index-d8817fb0.js +0 -4
  401. package/dist/esm-es5/ion-picker-column-internal.entry.js +0 -4
  402. package/dist/esm-es5/ion-picker-internal.entry.js +0 -4
  403. package/dist/esm-es5/ios.transition-fd16bec1.js +0 -4
  404. package/dist/esm-es5/md.transition-94ac93e1.js +0 -4
  405. package/dist/esm-es5/overlays-d23ea6e1.js +0 -4
  406. package/dist/ionic/p-2dd0355d.system.entry.js +0 -4
  407. package/dist/ionic/p-30029cc2.system.js +0 -4
  408. package/dist/ionic/p-31158892.js +0 -4
  409. package/dist/ionic/p-3e13501a.system.entry.js +0 -4
  410. package/dist/ionic/p-4890093d.js +0 -4
  411. package/dist/ionic/p-535d2a67.entry.js +0 -4
  412. package/dist/ionic/p-57477107.system.js +0 -4
  413. package/dist/ionic/p-67da080d.entry.js +0 -4
  414. package/dist/ionic/p-73ea8f82.system.entry.js +0 -4
  415. package/dist/ionic/p-80fa068e.entry.js +0 -4
  416. package/dist/ionic/p-9c229210.system.entry.js +0 -4
  417. package/dist/ionic/p-9eae578e.system.entry.js +0 -4
  418. package/dist/ionic/p-ab11130c.system.js +0 -4
  419. package/dist/ionic/p-c14f8ac8.js +0 -4
  420. package/dist/ionic/p-c9e07b2f.entry.js +0 -4
  421. package/dist/ionic/p-ccc2fb62.system.entry.js +0 -4
  422. package/dist/ionic/p-cce9f61a.system.entry.js +0 -4
  423. package/dist/ionic/p-d7e9a0ac.entry.js +0 -4
  424. package/dist/ionic/p-e4d90573.js +0 -4
  425. package/dist/ionic/p-f7a36cd0.system.js +0 -4
  426. package/dist/types/components/picker-column-internal/picker-column-internal-interfaces.d.ts +0 -5
  427. package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +0 -102
  428. package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +0 -8
  429. package/dist/types/components/picker-internal/picker-internal.d.ts +0 -102
  430. /package/dist/collection/components/{picker-internal/picker-internal-interfaces.js → picker/picker-interfaces.js} +0 -0
  431. /package/dist/collection/components/{picker-column-internal/picker-column-internal-interfaces.js → picker-column/picker-column-interfaces.js} +0 -0
  432. /package/dist/collection/components/{picker → picker-legacy}/animations/ios.enter.js +0 -0
  433. /package/dist/collection/components/{picker → picker-legacy}/animations/ios.leave.js +0 -0
  434. /package/dist/collection/components/{picker → picker-legacy}/picker-interface.js +0 -0
  435. /package/dist/collection/components/{picker-column → picker-legacy-column}/picker-column.ios.css +0 -0
  436. /package/dist/collection/components/{picker-column → picker-legacy-column}/test/test.utils.js +0 -0
  437. /package/dist/esm-es5/{data-f5c75b4e.js → data-4b9508c9.js} +0 -0
  438. /package/dist/ionic/{p-2aea8b1e.js → p-368f5215.js} +0 -0
  439. /package/dist/ionic/{p-82e3d633.system.js → p-f58981c2.system.js} +0 -0
  440. /package/dist/types/components/{picker → picker-legacy}/animations/ios.enter.d.ts +0 -0
  441. /package/dist/types/components/{picker → picker-legacy}/animations/ios.leave.d.ts +0 -0
  442. /package/dist/types/components/{picker → picker-legacy}/picker-interface.d.ts +0 -0
  443. /package/dist/types/components/{picker-column → picker-legacy-column}/test/test.utils.d.ts +0 -0
@@ -0,0 +1,419 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { Host, h } from "@stencil/core";
5
+ import { clamp } from "../../utils/helpers";
6
+ import { hapticSelectionChanged, hapticSelectionEnd, hapticSelectionStart } from "../../utils/native/haptic";
7
+ import { getClassMap } from "../../utils/theme";
8
+ import { getIonMode } from "../../global/ionic-global";
9
+ /**
10
+ * @internal
11
+ */
12
+ export class PickerColumnCmp {
13
+ constructor() {
14
+ this.optHeight = 0;
15
+ this.rotateFactor = 0;
16
+ this.scaleFactor = 1;
17
+ this.velocity = 0;
18
+ this.y = 0;
19
+ this.noAnimate = true;
20
+ // `colDidChange` is a flag that gets set when the column is changed
21
+ // dynamically. When this flag is set, the column will refresh
22
+ // after the component re-renders to incorporate the new column data.
23
+ // This is necessary because `this.refresh` queries for the option elements,
24
+ // so it needs to wait for the latest elements to be available in the DOM.
25
+ // Ex: column is created with 3 options. User updates the column data
26
+ // to have 5 options. The column will still think it only has 3 options.
27
+ this.colDidChange = false;
28
+ this.col = undefined;
29
+ }
30
+ colChanged() {
31
+ this.colDidChange = true;
32
+ }
33
+ async connectedCallback() {
34
+ let pickerRotateFactor = 0;
35
+ let pickerScaleFactor = 0.81;
36
+ const mode = getIonMode(this);
37
+ if (mode === 'ios') {
38
+ pickerRotateFactor = -0.46;
39
+ pickerScaleFactor = 1;
40
+ }
41
+ this.rotateFactor = pickerRotateFactor;
42
+ this.scaleFactor = pickerScaleFactor;
43
+ this.gesture = (await import('../../utils/gesture')).createGesture({
44
+ el: this.el,
45
+ gestureName: 'picker-swipe',
46
+ gesturePriority: 100,
47
+ threshold: 0,
48
+ passive: false,
49
+ onStart: (ev) => this.onStart(ev),
50
+ onMove: (ev) => this.onMove(ev),
51
+ onEnd: (ev) => this.onEnd(ev),
52
+ });
53
+ this.gesture.enable();
54
+ // Options have not been initialized yet
55
+ // Animation must be disabled through the `noAnimate` flag
56
+ // Otherwise, the options will render
57
+ // at the top of the column and transition down
58
+ this.tmrId = setTimeout(() => {
59
+ this.noAnimate = false;
60
+ // After initialization, `refresh()` will be called
61
+ // At this point, animation will be enabled. The options will
62
+ // animate as they are being selected.
63
+ this.refresh(true);
64
+ }, 250);
65
+ }
66
+ componentDidLoad() {
67
+ this.onDomChange();
68
+ }
69
+ componentDidUpdate() {
70
+ // Options may have changed since last update.
71
+ if (this.colDidChange) {
72
+ // Animation must be disabled through the `onDomChange` parameter.
73
+ // Otherwise, the recently added options will render
74
+ // at the top of the column and transition down
75
+ this.onDomChange(true, false);
76
+ this.colDidChange = false;
77
+ }
78
+ }
79
+ disconnectedCallback() {
80
+ if (this.rafId !== undefined)
81
+ cancelAnimationFrame(this.rafId);
82
+ if (this.tmrId)
83
+ clearTimeout(this.tmrId);
84
+ if (this.gesture) {
85
+ this.gesture.destroy();
86
+ this.gesture = undefined;
87
+ }
88
+ }
89
+ emitColChange() {
90
+ this.ionPickerColChange.emit(this.col);
91
+ }
92
+ setSelected(selectedIndex, duration) {
93
+ // if there is a selected index, then figure out it's y position
94
+ // if there isn't a selected index, then just use the top y position
95
+ const y = selectedIndex > -1 ? -(selectedIndex * this.optHeight) : 0;
96
+ this.velocity = 0;
97
+ // set what y position we're at
98
+ if (this.rafId !== undefined)
99
+ cancelAnimationFrame(this.rafId);
100
+ this.update(y, duration, true);
101
+ this.emitColChange();
102
+ }
103
+ update(y, duration, saveY) {
104
+ if (!this.optsEl) {
105
+ return;
106
+ }
107
+ // ensure we've got a good round number :)
108
+ let translateY = 0;
109
+ let translateZ = 0;
110
+ const { col, rotateFactor } = this;
111
+ const prevSelected = col.selectedIndex;
112
+ const selectedIndex = (col.selectedIndex = this.indexForY(-y));
113
+ const durationStr = duration === 0 ? '' : duration + 'ms';
114
+ const scaleStr = `scale(${this.scaleFactor})`;
115
+ const children = this.optsEl.children;
116
+ for (let i = 0; i < children.length; i++) {
117
+ const button = children[i];
118
+ const opt = col.options[i];
119
+ const optOffset = i * this.optHeight + y;
120
+ let transform = '';
121
+ if (rotateFactor !== 0) {
122
+ const rotateX = optOffset * rotateFactor;
123
+ if (Math.abs(rotateX) <= 90) {
124
+ translateY = 0;
125
+ translateZ = 90;
126
+ transform = `rotateX(${rotateX}deg) `;
127
+ }
128
+ else {
129
+ translateY = -9999;
130
+ }
131
+ }
132
+ else {
133
+ translateZ = 0;
134
+ translateY = optOffset;
135
+ }
136
+ const selected = selectedIndex === i;
137
+ transform += `translate3d(0px,${translateY}px,${translateZ}px) `;
138
+ if (this.scaleFactor !== 1 && !selected) {
139
+ transform += scaleStr;
140
+ }
141
+ // Update transition duration
142
+ if (this.noAnimate) {
143
+ opt.duration = 0;
144
+ button.style.transitionDuration = '';
145
+ }
146
+ else if (duration !== opt.duration) {
147
+ opt.duration = duration;
148
+ button.style.transitionDuration = durationStr;
149
+ }
150
+ // Update transform
151
+ if (transform !== opt.transform) {
152
+ opt.transform = transform;
153
+ }
154
+ button.style.transform = transform;
155
+ /**
156
+ * Ensure that the select column
157
+ * item has the selected class
158
+ */
159
+ opt.selected = selected;
160
+ if (selected) {
161
+ button.classList.add(PICKER_OPT_SELECTED);
162
+ }
163
+ else {
164
+ button.classList.remove(PICKER_OPT_SELECTED);
165
+ }
166
+ }
167
+ this.col.prevSelected = prevSelected;
168
+ if (saveY) {
169
+ this.y = y;
170
+ }
171
+ if (this.lastIndex !== selectedIndex) {
172
+ // have not set a last index yet
173
+ hapticSelectionChanged();
174
+ this.lastIndex = selectedIndex;
175
+ }
176
+ }
177
+ decelerate() {
178
+ if (this.velocity !== 0) {
179
+ // still decelerating
180
+ this.velocity *= DECELERATION_FRICTION;
181
+ // do not let it go slower than a velocity of 1
182
+ this.velocity = this.velocity > 0 ? Math.max(this.velocity, 1) : Math.min(this.velocity, -1);
183
+ let y = this.y + this.velocity;
184
+ if (y > this.minY) {
185
+ // whoops, it's trying to scroll up farther than the options we have!
186
+ y = this.minY;
187
+ this.velocity = 0;
188
+ }
189
+ else if (y < this.maxY) {
190
+ // gahh, it's trying to scroll down farther than we can!
191
+ y = this.maxY;
192
+ this.velocity = 0;
193
+ }
194
+ this.update(y, 0, true);
195
+ const notLockedIn = Math.round(y) % this.optHeight !== 0 || Math.abs(this.velocity) > 1;
196
+ if (notLockedIn) {
197
+ // isn't locked in yet, keep decelerating until it is
198
+ this.rafId = requestAnimationFrame(() => this.decelerate());
199
+ }
200
+ else {
201
+ this.velocity = 0;
202
+ this.emitColChange();
203
+ hapticSelectionEnd();
204
+ }
205
+ }
206
+ else if (this.y % this.optHeight !== 0) {
207
+ // needs to still get locked into a position so options line up
208
+ const currentPos = Math.abs(this.y % this.optHeight);
209
+ // create a velocity in the direction it needs to scroll
210
+ this.velocity = currentPos > this.optHeight / 2 ? 1 : -1;
211
+ this.decelerate();
212
+ }
213
+ }
214
+ indexForY(y) {
215
+ return Math.min(Math.max(Math.abs(Math.round(y / this.optHeight)), 0), this.col.options.length - 1);
216
+ }
217
+ onStart(detail) {
218
+ // We have to prevent default in order to block scrolling under the picker
219
+ // but we DO NOT have to stop propagation, since we still want
220
+ // some "click" events to capture
221
+ if (detail.event.cancelable) {
222
+ detail.event.preventDefault();
223
+ }
224
+ detail.event.stopPropagation();
225
+ hapticSelectionStart();
226
+ // reset everything
227
+ if (this.rafId !== undefined)
228
+ cancelAnimationFrame(this.rafId);
229
+ const options = this.col.options;
230
+ let minY = options.length - 1;
231
+ let maxY = 0;
232
+ for (let i = 0; i < options.length; i++) {
233
+ if (!options[i].disabled) {
234
+ minY = Math.min(minY, i);
235
+ maxY = Math.max(maxY, i);
236
+ }
237
+ }
238
+ this.minY = -(minY * this.optHeight);
239
+ this.maxY = -(maxY * this.optHeight);
240
+ }
241
+ onMove(detail) {
242
+ if (detail.event.cancelable) {
243
+ detail.event.preventDefault();
244
+ }
245
+ detail.event.stopPropagation();
246
+ // update the scroll position relative to pointer start position
247
+ let y = this.y + detail.deltaY;
248
+ if (y > this.minY) {
249
+ // scrolling up higher than scroll area
250
+ y = Math.pow(y, 0.8);
251
+ this.bounceFrom = y;
252
+ }
253
+ else if (y < this.maxY) {
254
+ // scrolling down below scroll area
255
+ y += Math.pow(this.maxY - y, 0.9);
256
+ this.bounceFrom = y;
257
+ }
258
+ else {
259
+ this.bounceFrom = 0;
260
+ }
261
+ this.update(y, 0, false);
262
+ }
263
+ onEnd(detail) {
264
+ if (this.bounceFrom > 0) {
265
+ // bounce back up
266
+ this.update(this.minY, 100, true);
267
+ this.emitColChange();
268
+ return;
269
+ }
270
+ else if (this.bounceFrom < 0) {
271
+ // bounce back down
272
+ this.update(this.maxY, 100, true);
273
+ this.emitColChange();
274
+ return;
275
+ }
276
+ this.velocity = clamp(-MAX_PICKER_SPEED, detail.velocityY * 23, MAX_PICKER_SPEED);
277
+ if (this.velocity === 0 && detail.deltaY === 0) {
278
+ const opt = detail.event.target.closest('.picker-opt');
279
+ if (opt === null || opt === void 0 ? void 0 : opt.hasAttribute('opt-index')) {
280
+ this.setSelected(parseInt(opt.getAttribute('opt-index'), 10), TRANSITION_DURATION);
281
+ }
282
+ }
283
+ else {
284
+ this.y += detail.deltaY;
285
+ if (Math.abs(detail.velocityY) < 0.05) {
286
+ const isScrollingUp = detail.deltaY > 0;
287
+ const optHeightFraction = (Math.abs(this.y) % this.optHeight) / this.optHeight;
288
+ if (isScrollingUp && optHeightFraction > 0.5) {
289
+ this.velocity = Math.abs(this.velocity) * -1;
290
+ }
291
+ else if (!isScrollingUp && optHeightFraction <= 0.5) {
292
+ this.velocity = Math.abs(this.velocity);
293
+ }
294
+ }
295
+ this.decelerate();
296
+ }
297
+ }
298
+ refresh(forceRefresh, animated) {
299
+ var _a;
300
+ let min = this.col.options.length - 1;
301
+ let max = 0;
302
+ const options = this.col.options;
303
+ for (let i = 0; i < options.length; i++) {
304
+ if (!options[i].disabled) {
305
+ min = Math.min(min, i);
306
+ max = Math.max(max, i);
307
+ }
308
+ }
309
+ /**
310
+ * Only update selected value if column has a
311
+ * velocity of 0. If it does not, then the
312
+ * column is animating might land on
313
+ * a value different than the value at
314
+ * selectedIndex
315
+ */
316
+ if (this.velocity !== 0) {
317
+ return;
318
+ }
319
+ const selectedIndex = clamp(min, (_a = this.col.selectedIndex) !== null && _a !== void 0 ? _a : 0, max);
320
+ if (this.col.prevSelected !== selectedIndex || forceRefresh) {
321
+ const y = selectedIndex * this.optHeight * -1;
322
+ const duration = animated ? TRANSITION_DURATION : 0;
323
+ this.velocity = 0;
324
+ this.update(y, duration, true);
325
+ }
326
+ }
327
+ onDomChange(forceRefresh, animated) {
328
+ const colEl = this.optsEl;
329
+ if (colEl) {
330
+ // DOM READ
331
+ // We perfom a DOM read over a rendered item, this needs to happen after the first render or after the the column has changed
332
+ this.optHeight = colEl.firstElementChild ? colEl.firstElementChild.clientHeight : 0;
333
+ }
334
+ this.refresh(forceRefresh, animated);
335
+ }
336
+ render() {
337
+ const col = this.col;
338
+ const mode = getIonMode(this);
339
+ return (h(Host, { class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
340
+ 'max-width': this.col.columnWidth,
341
+ } }, col.prefix && (h("div", { class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), h("div", { class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (h("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (h("div", { class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
342
+ }
343
+ static get is() { return "ion-picker-legacy-column"; }
344
+ static get originalStyleUrls() {
345
+ return {
346
+ "ios": ["picker-column.ios.scss"],
347
+ "md": ["picker-column.md.scss"]
348
+ };
349
+ }
350
+ static get styleUrls() {
351
+ return {
352
+ "ios": ["picker-column.ios.css"],
353
+ "md": ["picker-column.md.css"]
354
+ };
355
+ }
356
+ static get properties() {
357
+ return {
358
+ "col": {
359
+ "type": "unknown",
360
+ "mutable": false,
361
+ "complexType": {
362
+ "original": "PickerColumn",
363
+ "resolved": "PickerColumn",
364
+ "references": {
365
+ "PickerColumn": {
366
+ "location": "import",
367
+ "path": "../picker-legacy/picker-interface",
368
+ "id": "src/components/picker-legacy/picker-interface.ts::PickerColumn"
369
+ }
370
+ }
371
+ },
372
+ "required": true,
373
+ "optional": false,
374
+ "docs": {
375
+ "tags": [],
376
+ "text": "Picker column data"
377
+ }
378
+ }
379
+ };
380
+ }
381
+ static get events() {
382
+ return [{
383
+ "method": "ionPickerColChange",
384
+ "name": "ionPickerColChange",
385
+ "bubbles": true,
386
+ "cancelable": true,
387
+ "composed": true,
388
+ "docs": {
389
+ "tags": [{
390
+ "name": "internal",
391
+ "text": undefined
392
+ }],
393
+ "text": "Emitted when the selected value has changed"
394
+ },
395
+ "complexType": {
396
+ "original": "PickerColumn",
397
+ "resolved": "PickerColumn",
398
+ "references": {
399
+ "PickerColumn": {
400
+ "location": "import",
401
+ "path": "../picker-legacy/picker-interface",
402
+ "id": "src/components/picker-legacy/picker-interface.ts::PickerColumn"
403
+ }
404
+ }
405
+ }
406
+ }];
407
+ }
408
+ static get elementRef() { return "el"; }
409
+ static get watchers() {
410
+ return [{
411
+ "propName": "col",
412
+ "methodName": "colChanged"
413
+ }];
414
+ }
415
+ }
416
+ const PICKER_OPT_SELECTED = 'picker-opt-selected';
417
+ const DECELERATION_FRICTION = 0.97;
418
+ const MAX_PICKER_SPEED = 90;
419
+ const TRANSITION_DURATION = 150;
@@ -242,5 +242,5 @@
242
242
  .picker-prefix,
243
243
  .picker-suffix,
244
244
  .picker-opt.picker-opt-selected {
245
- color: var(--ion-color-primary, #0054e9);
245
+ color: var(--ion-color-primary, #3880ff);
246
246
  }
@@ -25,10 +25,10 @@ describe('picker-column', () => {
25
25
  };
26
26
  const page = await newSpecPage({
27
27
  components: [PickerColumnCmp],
28
- template: () => h("ion-picker-column", { col: col }),
28
+ template: () => h("ion-picker-legacy-column", { col: col }),
29
29
  });
30
- const firstOption = page.body.querySelector('ion-picker-column .picker-opt:nth-child(1)');
31
- const secondOption = page.body.querySelector('ion-picker-column .picker-opt:nth-child(2)');
30
+ const firstOption = page.body.querySelector('ion-picker-legacy-column .picker-opt:nth-child(1)');
31
+ const secondOption = page.body.querySelector('ion-picker-legacy-column .picker-opt:nth-child(2)');
32
32
  expect(firstOption.getAttribute('aria-label')).toBe('C Sharp');
33
33
  expect(secondOption.getAttribute('aria-label')).toBe(null);
34
34
  });
@@ -15,9 +15,9 @@ describe('picker-column: dynamic options', () => {
15
15
  ];
16
16
  const page = await newSpecPage({
17
17
  components: [PickerColumnCmp],
18
- template: () => h("ion-picker-column", { col: { options: defaultOptions, name: 'animals' } }),
18
+ template: () => (h("ion-picker-legacy-column", { col: { options: defaultOptions, name: 'animals' } })),
19
19
  });
20
- const pickerCol = page.body.querySelector('ion-picker-column');
20
+ const pickerCol = page.body.querySelector('ion-picker-legacy-column');
21
21
  pickerCol.col = {
22
22
  options: [...defaultOptions, { text: 'Carrot', value: 'carrot' }],
23
23
  name: 'vegetables',
@@ -9,9 +9,9 @@ describe('picker-column', () => {
9
9
  const col = { cssClass: 'test-class', options: [], name: 'col' };
10
10
  const page = await newSpecPage({
11
11
  components: [PickerColumnCmp],
12
- template: () => h("ion-picker-column", { col: col }),
12
+ template: () => h("ion-picker-legacy-column", { col: col }),
13
13
  });
14
- const pickerCol = page.body.querySelector('ion-picker-column');
14
+ const pickerCol = page.body.querySelector('ion-picker-legacy-column');
15
15
  expect(pickerCol.classList.contains('test-class')).toBe(true);
16
16
  });
17
17
  });
@@ -6,11 +6,11 @@ import { configs, test } from "../../../../utils/test/playwright/index";
6
6
  configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
7
7
  test.describe(title('picker-column'), () => {
8
8
  test.beforeEach(async ({ page }) => {
9
- await page.goto(`/src/components/picker-column/test/standalone`, config);
9
+ await page.goto(`/src/components/picker-legacy-column/test/standalone`, config);
10
10
  });
11
11
  test('should present picker without ion-app', async ({ page }) => {
12
12
  const ionPickerDidPresent = await page.spyOnEvent('ionPickerDidPresent');
13
- const picker = page.locator('ion-picker');
13
+ const picker = page.locator('ion-picker-legacy');
14
14
  await page.click('#single-column-button');
15
15
  await ionPickerDidPresent.next();
16
16
  await expect(picker).toBeVisible();
@@ -22,7 +22,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
22
22
  });
23
23
  const ionPickerDidPresent = await page.spyOnEvent('ionPickerDidPresent');
24
24
  const ionPickerColChangeEvent = await page.spyOnEvent('ionPickerColChange');
25
- const column = page.locator('ion-picker-column');
25
+ const column = page.locator('ion-picker-legacy-column');
26
26
  const secondOption = column.locator('.picker-opt').nth(1);
27
27
  await page.click('#single-column-button');
28
28
  await ionPickerDidPresent.next();
@@ -59,8 +59,8 @@
59
59
  * @prop --progress-background: Background of the progress bar representing the current value
60
60
  * @prop --buffer-background: DEPRECATED, use `--background` instead
61
61
  */
62
- --background: rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.3);
63
- --progress-background: var(--ion-color-primary, #0054e9);
62
+ --background: rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.3);
63
+ --progress-background: var(--ion-color-primary, #3880ff);
64
64
  --buffer-background: var(--background);
65
65
  display: block;
66
66
  position: relative;
@@ -59,8 +59,8 @@
59
59
  * @prop --progress-background: Background of the progress bar representing the current value
60
60
  * @prop --buffer-background: DEPRECATED, use `--background` instead
61
61
  */
62
- --background: rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.3);
63
- --progress-background: var(--ion-color-primary, #0054e9);
62
+ --background: rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.3);
63
+ --progress-background: var(--ion-color-primary, #3880ff);
64
64
  --buffer-background: var(--background);
65
65
  display: block;
66
66
  position: relative;
@@ -468,7 +468,7 @@ input {
468
468
  * }
469
469
  */
470
470
  :host {
471
- --color-checked: var(--ion-color-primary, #0054e9);
471
+ --color-checked: var(--ion-color-primary, #3880ff);
472
472
  }
473
473
 
474
474
  :host(.legacy-radio) {
@@ -510,7 +510,7 @@ input {
510
510
  position: absolute;
511
511
  width: 36px;
512
512
  height: 36px;
513
- background: var(--ion-color-primary-tint, #1a65eb);
513
+ background: var(--ion-color-primary-tint, #4c8dff);
514
514
  content: "";
515
515
  opacity: 0.2;
516
516
  }
@@ -469,7 +469,7 @@ input {
469
469
  */
470
470
  :host {
471
471
  --color: rgb(var(--ion-text-color-rgb, 0, 0, 0), 0.6);
472
- --color-checked: var(--ion-color-primary, #0054e9);
472
+ --color-checked: var(--ion-color-primary, #3880ff);
473
473
  --border-width: 0.125rem;
474
474
  --border-style: solid;
475
475
  --border-radius: 50%;
@@ -557,7 +557,7 @@ input {
557
557
  position: absolute;
558
558
  width: 36px;
559
559
  height: 36px;
560
- background: var(--ion-color-primary-tint, #1a65eb);
560
+ background: var(--ion-color-primary-tint, #4c8dff);
561
561
  content: "";
562
562
  opacity: 0.2;
563
563
  }
@@ -4,55 +4,17 @@
4
4
  import AxeBuilder from "@axe-core/playwright";
5
5
  import { expect } from "@playwright/test";
6
6
  import { configs, test } from "../../../../utils/test/playwright/index";
7
- configs({ directions: ['ltr'], themes: ['light', 'dark'] }).forEach(({ title, config }) => {
7
+ /**
8
+ * This behavior does not vary across modes/directions.
9
+ */
10
+ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
8
11
  test.describe(title('radio: a11y'), () => {
9
- test('default layout should not have accessibility violations', async ({ page }) => {
10
- await page.setContent(`
11
- <main>
12
- <ion-radio>my label</ion-radio>
13
- <ion-radio aria-label="my aria label"></ion-radio>
14
- <ion-radio-group>
15
- <ion-radio>my label in a group</ion-radio>
16
- </ion-radio-group>
17
- <ion-radio-group>
18
- <ion-radio aria-label="my aria label in a group"></ion-radio>
19
- </ion-radio-group>
20
- <ion-list>
21
- <ion-item>
22
- <ion-radio-group>
23
- <ion-radio>my label in a group in a list</ion-radio>
24
- </ion-radio-group>
25
- </ion-item>
26
- </ion-list>
27
- <ion-list>
28
- <ion-item>
29
- <ion-radio-group>
30
- <ion-radio aria-label="my aria label in a group in a list"></ion-radio>
31
- </ion-radio-group>
32
- </ion-item>
33
- </ion-list>
34
- </main>
35
- `, config);
36
- const results = await new AxeBuilder({ page }).analyze();
37
- expect(results.violations).toEqual([]);
38
- });
39
- test('selected state should not have accessibility violations', async ({ page }) => {
40
- await page.setContent(`
41
- <main>
42
- <ion-radio-group value="a">
43
- <ion-radio value="a">Selected radio</ion-radio>
44
- </ion-radio-group>
45
- </main>
46
- `, config);
12
+ test('should not have accessibility violations', async ({ page }) => {
13
+ await page.goto(`/src/components/radio/test/a11y`, config);
47
14
  const results = await new AxeBuilder({ page }).analyze();
48
15
  expect(results.violations).toEqual([]);
49
16
  });
50
17
  });
51
- });
52
- /**
53
- * This behavior does not vary across modes/directions.
54
- */
55
- configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
56
18
  test.describe(title('radio: keyboard navigation'), () => {
57
19
  test.beforeEach(async ({ page }) => {
58
20
  await page.setContent(`
@@ -530,7 +530,7 @@
530
530
  --knob-size: 26px;
531
531
  --bar-height: 4px;
532
532
  --bar-background: var(--ion-color-step-900, #e6e6e6);
533
- --bar-background-active: var(--ion-color-primary, #0054e9);
533
+ --bar-background-active: var(--ion-color-primary, #3880ff);
534
534
  --bar-border-radius: 2px;
535
535
  --height: 42px;
536
536
  }
@@ -529,11 +529,11 @@
529
529
  --knob-box-shadow: none;
530
530
  --knob-size: 18px;
531
531
  --bar-height: 2px;
532
- --bar-background: rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.26);
533
- --bar-background-active: var(--ion-color-primary, #0054e9);
532
+ --bar-background: rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.26);
533
+ --bar-background-active: var(--ion-color-primary, #3880ff);
534
534
  --bar-border-radius: 0;
535
535
  --height: 42px;
536
- --pin-background: var(--ion-color-primary, #0054e9);
536
+ --pin-background: var(--ion-color-primary, #3880ff);
537
537
  --pin-color: var(--ion-color-primary-contrast, #fff);
538
538
  }
539
539