@ionic/core 7.5.8-dev.11701791090.18ebbea8 → 7.5.8-dev.11701806358.1ca1b519

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 (308) hide show
  1. package/components/backdrop.js +0 -12
  2. package/components/data.js +1 -1
  3. package/components/gesture-controller.js +1 -1
  4. package/components/ion-content.js +1 -1
  5. package/components/ion-datetime.js +40 -64
  6. package/components/ion-input.js +2 -21
  7. package/components/ion-picker-column-option.d.ts +11 -0
  8. package/components/ion-picker-column-option.js +9 -0
  9. package/components/ion-picker-column.js +2 -2
  10. package/components/ion-picker-legacy-column.d.ts +11 -0
  11. package/components/ion-picker-legacy-column.js +9 -0
  12. package/components/{ion-picker-internal.d.ts → ion-picker-legacy.d.ts} +4 -4
  13. package/components/ion-picker-legacy.js +309 -0
  14. package/components/ion-picker.js +1 -309
  15. package/components/ion-textarea.js +2 -25
  16. package/components/overlays.js +11 -4
  17. package/components/picker-column-option.js +122 -0
  18. package/components/picker-column.js +363 -317
  19. package/components/picker-column2.js +379 -0
  20. package/components/{picker-internal.js → picker.js} +16 -16
  21. package/dist/cjs/{button-active-417ccdcb.js → button-active-9d7e0640.js} +1 -1
  22. package/dist/cjs/{data-36b9094e.js → data-e7526b58.js} +1 -1
  23. package/dist/cjs/{gesture-controller-c40c045a.js → gesture-controller-9436f482.js} +1 -0
  24. package/dist/cjs/{index-d1b59ffa.js → index-ee07ed59.js} +1 -1
  25. package/dist/cjs/index.cjs.js +3 -3
  26. package/dist/cjs/ion-action-sheet.cjs.entry.js +4 -4
  27. package/dist/cjs/ion-alert.cjs.entry.js +4 -4
  28. package/dist/cjs/ion-app_8.cjs.entry.js +2 -2
  29. package/dist/cjs/ion-backdrop.cjs.entry.js +0 -12
  30. package/dist/cjs/ion-datetime-button.cjs.entry.js +1 -1
  31. package/dist/cjs/ion-datetime_3.cjs.entry.js +36 -56
  32. package/dist/cjs/ion-input.cjs.entry.js +2 -21
  33. package/dist/cjs/ion-item-option_3.cjs.entry.js +1 -1
  34. package/dist/cjs/ion-loading.cjs.entry.js +2 -1
  35. package/dist/cjs/ion-menu_3.cjs.entry.js +3 -3
  36. package/dist/cjs/ion-modal.cjs.entry.js +3 -3
  37. package/dist/cjs/ion-nav_2.cjs.entry.js +1 -1
  38. package/dist/cjs/ion-picker-column-option.cjs.entry.js +104 -0
  39. package/dist/cjs/{ion-picker-column-internal.cjs.entry.js → ion-picker-column.cjs.entry.js} +105 -72
  40. package/dist/cjs/{ion-picker-internal.cjs.entry.js → ion-picker.cjs.entry.js} +13 -13
  41. package/dist/cjs/ion-popover.cjs.entry.js +2 -1
  42. package/dist/cjs/ion-range.cjs.entry.js +1 -1
  43. package/dist/cjs/ion-refresher_2.cjs.entry.js +3 -3
  44. package/dist/cjs/ion-reorder_2.cjs.entry.js +1 -1
  45. package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
  46. package/dist/cjs/ion-select_3.cjs.entry.js +2 -1
  47. package/dist/cjs/ion-textarea.cjs.entry.js +2 -25
  48. package/dist/cjs/ion-toast.cjs.entry.js +2 -1
  49. package/dist/cjs/ion-toggle.cjs.entry.js +1 -1
  50. package/dist/cjs/ionic.cjs.js +1 -1
  51. package/dist/cjs/loader.cjs.js +1 -1
  52. package/dist/cjs/{overlays-5c379703.js → overlays-e8e05b0e.js} +11 -4
  53. package/dist/cjs/{swipe-back-2a858bbd.js → swipe-back-b8f2330b.js} +2 -2
  54. package/dist/collection/collection-manifest.json +7 -6
  55. package/dist/collection/components/backdrop/backdrop.js +0 -12
  56. package/dist/collection/components/content/content.css +0 -4
  57. package/dist/collection/components/datetime/datetime.ios.css +83 -37
  58. package/dist/collection/components/datetime/datetime.js +24 -36
  59. package/dist/collection/components/datetime/datetime.md.css +88 -37
  60. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +1 -1
  61. package/dist/collection/components/datetime/test/a11y/datetime.spec.js +6 -9
  62. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +10 -0
  63. package/dist/collection/components/datetime/test/datetime.e2e.js +2 -2
  64. package/dist/collection/components/datetime/test/disabled/datetime.spec.js +4 -4
  65. package/dist/collection/components/datetime/test/locale/datetime.e2e.js +2 -2
  66. package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +6 -6
  67. package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +1 -1
  68. package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +43 -41
  69. package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +1 -1
  70. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +4 -4
  71. package/dist/collection/components/datetime/test/values/datetime.e2e.js +15 -12
  72. package/dist/collection/components/datetime/utils/data.js +1 -1
  73. package/dist/collection/components/input/input.js +2 -21
  74. package/dist/collection/components/input/test/clear-on-edit/input.e2e.js +9 -21
  75. package/dist/collection/components/picker/picker.ios.css +100 -205
  76. package/dist/collection/components/picker/picker.js +461 -743
  77. package/dist/collection/components/picker/picker.md.css +98 -194
  78. package/dist/collection/components/{picker-internal/test/a11y/picker-internal.e2e.js → picker/test/a11y/picker.e2e.js} +2 -2
  79. package/dist/collection/components/picker/test/basic/picker.e2e.js +99 -13
  80. package/dist/collection/components/{picker-internal/test/keyboard-entry/picker-internal.e2e.js → picker/test/keyboard-entry/picker.e2e.js} +23 -22
  81. package/dist/collection/components/picker-column/picker-column.ios.css +120 -160
  82. package/dist/collection/components/picker-column/picker-column.js +514 -329
  83. package/dist/collection/components/picker-column/picker-column.md.css +134 -107
  84. package/dist/collection/components/{picker-column-internal/test/basic/picker-column-internal.e2e.js → picker-column/test/basic/picker-column.e2e.js} +8 -8
  85. package/dist/collection/components/picker-column/test/disabled/picker-column.e2e.js +113 -0
  86. package/dist/collection/components/picker-column/test/slots/picker-column.e2e.js +39 -0
  87. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +87 -0
  88. package/dist/collection/components/picker-column-option/picker-column-option.js +173 -0
  89. package/dist/collection/components/{picker-column-internal/picker-column-internal.ios.css → picker-column-option/picker-column-option.md.css} +6 -53
  90. package/dist/collection/components/picker-column-option/test/a11y/picker-column-option.e2e.js +18 -0
  91. package/dist/collection/components/picker-column-option/test/basic/picker-column-option.e2e.js +37 -0
  92. package/dist/collection/components/picker-legacy/picker.ios.css +367 -0
  93. package/dist/collection/components/picker-legacy/picker.js +817 -0
  94. package/dist/collection/components/{picker-internal/picker-internal.ios.css → picker-legacy/picker.md.css} +192 -100
  95. package/dist/collection/components/picker-legacy/test/basic/picker.e2e.js +25 -0
  96. package/dist/collection/components/{picker → picker-legacy}/test/is-open/picker.e2e.js +4 -4
  97. package/dist/collection/components/{picker → picker-legacy}/test/picker-id.spec.js +5 -5
  98. package/dist/collection/components/{picker → picker-legacy}/test/trigger/picker.e2e.js +1 -1
  99. package/dist/collection/components/{picker-internal/picker-internal.md.css → picker-legacy-column/picker-column.ios.css} +98 -101
  100. package/dist/collection/components/picker-legacy-column/picker-column.js +419 -0
  101. package/dist/collection/components/{picker-column-internal/picker-column-internal.md.css → picker-legacy-column/picker-column.md.css} +113 -63
  102. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-aria.spec.js +3 -3
  103. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-dynamic.spec.js +2 -2
  104. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column.spec.js +2 -2
  105. package/dist/collection/components/{picker-column → picker-legacy-column}/test/standalone/picker-column.e2e.js +3 -3
  106. package/dist/collection/components/textarea/test/clear-on-edit/textarea.e2e.js +0 -28
  107. package/dist/collection/components/textarea/textarea.js +2 -25
  108. package/dist/collection/utils/gesture/gesture-controller.js +1 -1
  109. package/dist/collection/utils/overlays.js +11 -4
  110. package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +65 -0
  111. package/dist/docs.json +493 -40
  112. package/dist/esm/{button-active-3fdf3e4f.js → button-active-ed9d848c.js} +1 -1
  113. package/dist/esm/{data-f5c75b4e.js → data-4b9508c9.js} +1 -1
  114. package/dist/esm/{gesture-controller-1bf57181.js → gesture-controller-314a54f6.js} +1 -1
  115. package/dist/esm/{index-2cf77112.js → index-39782642.js} +2 -2
  116. package/dist/esm/index.js +3 -3
  117. package/dist/esm/ion-action-sheet.entry.js +4 -4
  118. package/dist/esm/ion-alert.entry.js +4 -4
  119. package/dist/esm/ion-app_8.entry.js +2 -2
  120. package/dist/esm/ion-backdrop.entry.js +0 -12
  121. package/dist/esm/ion-datetime-button.entry.js +1 -1
  122. package/dist/esm/ion-datetime_3.entry.js +35 -55
  123. package/dist/esm/ion-input.entry.js +2 -21
  124. package/dist/esm/ion-item-option_3.entry.js +1 -1
  125. package/dist/esm/ion-loading.entry.js +2 -1
  126. package/dist/esm/ion-menu_3.entry.js +3 -3
  127. package/dist/esm/ion-modal.entry.js +3 -3
  128. package/dist/esm/ion-nav_2.entry.js +1 -1
  129. package/dist/esm/ion-picker-column-option.entry.js +100 -0
  130. package/dist/esm/{ion-picker-column-internal.entry.js → ion-picker-column.entry.js} +105 -72
  131. package/dist/esm/{ion-picker-internal.entry.js → ion-picker.entry.js} +13 -13
  132. package/dist/esm/ion-popover.entry.js +2 -1
  133. package/dist/esm/ion-range.entry.js +1 -1
  134. package/dist/esm/ion-refresher_2.entry.js +3 -3
  135. package/dist/esm/ion-reorder_2.entry.js +1 -1
  136. package/dist/esm/ion-segment_2.entry.js +1 -1
  137. package/dist/esm/ion-select_3.entry.js +2 -1
  138. package/dist/esm/ion-textarea.entry.js +2 -25
  139. package/dist/esm/ion-toast.entry.js +2 -1
  140. package/dist/esm/ion-toggle.entry.js +1 -1
  141. package/dist/esm/ionic.js +1 -1
  142. package/dist/esm/loader.js +1 -1
  143. package/dist/esm/{overlays-abf58489.js → overlays-fbc5cab5.js} +11 -4
  144. package/dist/esm/{swipe-back-a6f386fc.js → swipe-back-a8ca7f93.js} +2 -2
  145. package/dist/esm-es5/{button-active-3fdf3e4f.js → button-active-ed9d848c.js} +1 -1
  146. package/dist/esm-es5/{gesture-controller-1bf57181.js → gesture-controller-314a54f6.js} +1 -1
  147. package/dist/esm-es5/{index-2cf77112.js → index-39782642.js} +1 -1
  148. package/dist/esm-es5/index.js +1 -1
  149. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  150. package/dist/esm-es5/ion-alert.entry.js +1 -1
  151. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  152. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  153. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  154. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  155. package/dist/esm-es5/ion-input.entry.js +1 -1
  156. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  157. package/dist/esm-es5/ion-loading.entry.js +1 -1
  158. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  159. package/dist/esm-es5/ion-modal.entry.js +1 -1
  160. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  161. package/dist/esm-es5/ion-picker-column-option.entry.js +4 -0
  162. package/dist/esm-es5/ion-picker-column.entry.js +4 -0
  163. package/dist/esm-es5/ion-picker.entry.js +4 -0
  164. package/dist/esm-es5/ion-popover.entry.js +1 -1
  165. package/dist/esm-es5/ion-range.entry.js +1 -1
  166. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  167. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  168. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  169. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  170. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  171. package/dist/esm-es5/ion-toast.entry.js +1 -1
  172. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  173. package/dist/esm-es5/ionic.js +1 -1
  174. package/dist/esm-es5/loader.js +1 -1
  175. package/dist/esm-es5/overlays-fbc5cab5.js +4 -0
  176. package/dist/esm-es5/swipe-back-a8ca7f93.js +4 -0
  177. package/dist/html.html-data.json +152 -1
  178. package/dist/ionic/index.esm.js +1 -1
  179. package/dist/ionic/ionic.esm.js +1 -1
  180. package/dist/ionic/{p-b0dc1cf9.system.js → p-1d624e03.system.js} +1 -1
  181. package/dist/ionic/{p-d40a974a.entry.js → p-1fc72959.entry.js} +1 -1
  182. package/dist/ionic/{p-c7c8429a.system.js → p-20d469d0.system.js} +1 -1
  183. package/dist/ionic/{p-0519cd21.entry.js → p-21c3515a.entry.js} +1 -1
  184. package/dist/ionic/{p-6470b136.entry.js → p-22e5af95.entry.js} +1 -1
  185. package/dist/ionic/p-232d1f22.entry.js +4 -0
  186. package/dist/ionic/p-23672c82.system.entry.js +4 -0
  187. package/dist/ionic/p-26798a7b.system.entry.js +4 -0
  188. package/dist/ionic/p-27bcbbc7.system.entry.js +4 -0
  189. package/dist/ionic/{p-765a08a7.system.entry.js → p-32303650.system.entry.js} +1 -1
  190. package/dist/ionic/p-3ba01a9c.system.entry.js +4 -0
  191. package/dist/ionic/{p-31b2326e.system.js → p-3e1e14d9.system.js} +1 -1
  192. package/dist/ionic/{p-667df818.system.entry.js → p-3fd26bd6.system.entry.js} +1 -1
  193. package/dist/ionic/{p-864c4046.entry.js → p-42ba3902.entry.js} +1 -1
  194. package/dist/ionic/{p-88fde0e0.entry.js → p-4911a5d6.entry.js} +1 -1
  195. package/dist/ionic/{p-a6f9dd7b.entry.js → p-4a081ea9.entry.js} +1 -1
  196. package/dist/ionic/{p-7b8d0af2.system.entry.js → p-4a36430f.system.entry.js} +1 -1
  197. package/dist/ionic/p-51abefb7.system.js +4 -0
  198. package/dist/ionic/{p-0b1bc636.entry.js → p-535d2a67.entry.js} +1 -1
  199. package/dist/ionic/{p-af5cfad2.system.js → p-54dfc9b5.system.js} +1 -1
  200. package/dist/ionic/p-563c41f0.system.entry.js +4 -0
  201. package/dist/ionic/{p-b04e4d62.entry.js → p-5d42b6b4.entry.js} +1 -1
  202. package/dist/ionic/{p-50880712.entry.js → p-6b7c55cd.entry.js} +1 -1
  203. package/dist/ionic/{p-a1987850.entry.js → p-6d72fb44.entry.js} +1 -1
  204. package/dist/ionic/{p-e6d68e02.system.entry.js → p-6fd64e7c.system.entry.js} +1 -1
  205. package/dist/ionic/p-73190c5f.entry.js +4 -0
  206. package/dist/ionic/p-73aa7604.entry.js +4 -0
  207. package/dist/ionic/{p-17f893be.js → p-76d3765d.js} +1 -1
  208. package/dist/ionic/{p-94389114.system.entry.js → p-77965464.system.entry.js} +1 -1
  209. package/dist/ionic/{p-98b14ece.entry.js → p-7b725280.entry.js} +1 -1
  210. package/dist/ionic/p-8017aad2.system.entry.js +4 -0
  211. package/dist/ionic/p-846ee227.entry.js +4 -0
  212. package/dist/ionic/p-8c97cdc0.entry.js +4 -0
  213. package/dist/ionic/{p-f5d2dc9b.js → p-8ededb41.js} +1 -1
  214. package/dist/ionic/p-8fa6583d.system.js +4 -0
  215. package/dist/ionic/p-9282b16f.entry.js +4 -0
  216. package/dist/ionic/{p-d7be6b7e.system.entry.js → p-96dbbac1.system.entry.js} +1 -1
  217. package/dist/ionic/{p-bb3615f7.js → p-9b97df10.js} +1 -1
  218. package/dist/ionic/p-9ba90516.system.entry.js +4 -0
  219. package/dist/ionic/{p-a0126dd5.system.entry.js → p-9c229210.system.entry.js} +2 -2
  220. package/dist/ionic/{p-7faba551.system.entry.js → p-a225bf0f.system.entry.js} +1 -1
  221. package/dist/ionic/p-a60a1ce5.js +4 -0
  222. package/dist/ionic/p-a8baa23e.entry.js +4 -0
  223. package/dist/ionic/{p-ad019ef0.entry.js → p-a9a80f5b.entry.js} +1 -1
  224. package/dist/ionic/p-afcf4620.entry.js +4 -0
  225. package/dist/ionic/{p-ddb30596.entry.js → p-b133e9b4.entry.js} +1 -1
  226. package/dist/ionic/{p-08f196ce.system.entry.js → p-b4d31b30.system.entry.js} +1 -1
  227. package/dist/ionic/{p-e553006f.system.entry.js → p-c18de88a.system.entry.js} +1 -1
  228. package/dist/ionic/p-c2910c78.entry.js +4 -0
  229. package/dist/ionic/p-c8f0a036.entry.js +4 -0
  230. package/dist/ionic/p-ca8938f4.js +4 -0
  231. package/dist/ionic/p-ca9d1792.system.entry.js +4 -0
  232. package/dist/ionic/{p-c3d09cf2.system.entry.js → p-cde52378.system.entry.js} +1 -1
  233. package/dist/ionic/p-da15f571.system.entry.js +4 -0
  234. package/dist/ionic/p-e3584231.system.js +1 -1
  235. package/dist/ionic/{p-6577aea9.system.entry.js → p-e8e86f69.system.entry.js} +1 -1
  236. package/dist/ionic/{p-9eec42cc.system.entry.js → p-f910cc73.system.entry.js} +1 -1
  237. package/dist/ionic/{p-3b686a65.system.entry.js → p-fbf3a689.system.entry.js} +1 -1
  238. package/dist/ionic/p-fe4dde76.entry.js +4 -0
  239. package/dist/ionic/p-ffd5dba4.system.entry.js +4 -0
  240. package/dist/types/components/backdrop/backdrop.d.ts +0 -3
  241. package/dist/types/components/datetime/datetime.d.ts +0 -1
  242. package/dist/types/components/datetime/utils/data.d.ts +2 -2
  243. package/dist/types/components/menu/menu.d.ts +1 -1
  244. package/dist/types/components/picker/picker-interfaces.d.ts +8 -0
  245. package/dist/types/components/picker/picker.d.ts +74 -131
  246. package/dist/types/components/picker-column/picker-column.d.ts +105 -39
  247. package/dist/types/components/picker-column-option/picker-column-option.d.ts +66 -0
  248. package/dist/types/components/picker-legacy/picker.d.ts +158 -0
  249. package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
  250. package/dist/types/components.d.ts +163 -122
  251. package/dist/types/interface.d.ts +1 -1
  252. package/dist/types/utils/config.d.ts +2 -2
  253. package/dist/types/utils/gesture/gesture-controller.d.ts +1 -0
  254. package/dist/types/utils/overlays.d.ts +5 -2
  255. package/hydrate/index.js +1367 -1296
  256. package/package.json +1 -1
  257. package/components/ion-picker-column-internal.d.ts +0 -11
  258. package/components/ion-picker-column-internal.js +0 -9
  259. package/components/ion-picker-internal.js +0 -9
  260. package/components/picker-column-internal.js +0 -390
  261. package/dist/collection/components/picker-column-internal/picker-column-internal.js +0 -565
  262. package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +0 -162
  263. package/dist/collection/components/picker-internal/picker-internal.js +0 -544
  264. package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +0 -118
  265. package/dist/esm-es5/ion-picker-column-internal.entry.js +0 -4
  266. package/dist/esm-es5/ion-picker-internal.entry.js +0 -4
  267. package/dist/esm-es5/overlays-abf58489.js +0 -4
  268. package/dist/esm-es5/swipe-back-a6f386fc.js +0 -4
  269. package/dist/ionic/p-18b6bd23.system.entry.js +0 -4
  270. package/dist/ionic/p-1d17219f.entry.js +0 -4
  271. package/dist/ionic/p-25b32c3d.entry.js +0 -4
  272. package/dist/ionic/p-2ba0657d.system.entry.js +0 -4
  273. package/dist/ionic/p-35ce400e.system.js +0 -4
  274. package/dist/ionic/p-3de71759.entry.js +0 -4
  275. package/dist/ionic/p-3e960213.system.entry.js +0 -4
  276. package/dist/ionic/p-61d7d7fb.js +0 -4
  277. package/dist/ionic/p-67da080d.entry.js +0 -4
  278. package/dist/ionic/p-6a6477b2.js +0 -4
  279. package/dist/ionic/p-73637557.system.entry.js +0 -4
  280. package/dist/ionic/p-73ea8f82.system.entry.js +0 -4
  281. package/dist/ionic/p-80fa068e.entry.js +0 -4
  282. package/dist/ionic/p-82045bc1.entry.js +0 -4
  283. package/dist/ionic/p-908475e7.system.entry.js +0 -4
  284. package/dist/ionic/p-9c3b6849.entry.js +0 -4
  285. package/dist/ionic/p-b4bad293.system.entry.js +0 -4
  286. package/dist/ionic/p-c3289ef2.entry.js +0 -4
  287. package/dist/ionic/p-cce9f61a.system.entry.js +0 -4
  288. package/dist/ionic/p-d1cb29a8.system.entry.js +0 -4
  289. package/dist/ionic/p-e94c392d.entry.js +0 -4
  290. package/dist/ionic/p-f2c21dae.system.js +0 -4
  291. package/dist/ionic/p-f51666d3.entry.js +0 -4
  292. package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +0 -102
  293. package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +0 -8
  294. package/dist/types/components/picker-internal/picker-internal.d.ts +0 -102
  295. /package/dist/collection/components/{picker-internal/picker-internal-interfaces.js → picker/picker-interfaces.js} +0 -0
  296. /package/dist/collection/components/{picker-column-internal/picker-column-internal-interfaces.js → picker-column/picker-column-interfaces.js} +0 -0
  297. /package/dist/collection/components/{picker → picker-legacy}/animations/ios.enter.js +0 -0
  298. /package/dist/collection/components/{picker → picker-legacy}/animations/ios.leave.js +0 -0
  299. /package/dist/collection/components/{picker → picker-legacy}/picker-interface.js +0 -0
  300. /package/dist/collection/components/{picker-column → picker-legacy-column}/test/test.utils.js +0 -0
  301. /package/dist/esm-es5/{data-f5c75b4e.js → data-4b9508c9.js} +0 -0
  302. /package/dist/ionic/{p-2aea8b1e.js → p-368f5215.js} +0 -0
  303. /package/dist/ionic/{p-82e3d633.system.js → p-f58981c2.system.js} +0 -0
  304. /package/dist/types/components/{picker-column-internal/picker-column-internal-interfaces.d.ts → picker-column/picker-column-interfaces.d.ts} +0 -0
  305. /package/dist/types/components/{picker → picker-legacy}/animations/ios.enter.d.ts +0 -0
  306. /package/dist/types/components/{picker → picker-legacy}/animations/ios.leave.d.ts +0 -0
  307. /package/dist/types/components/{picker → picker-legacy}/picker-interface.d.ts +0 -0
  308. /package/dist/types/components/{picker-column → picker-legacy-column}/test/test.utils.d.ts +0 -0
@@ -53,97 +53,166 @@
53
53
  * }
54
54
  * }
55
55
  */
56
- .picker-col {
56
+ :host {
57
57
  display: flex;
58
- position: relative;
59
- flex: 1;
58
+ align-items: center;
60
59
  justify-content: center;
61
- height: 100%;
62
- box-sizing: content-box;
63
- contain: content;
60
+ max-width: 100%;
61
+ height: 200px;
62
+ font-size: 22px;
63
+ text-align: center;
64
64
  }
65
65
 
66
66
  .picker-opts {
67
- position: relative;
68
- flex: 1;
69
- max-width: 100%;
67
+ /**
68
+ * This padding must be set here and not on the
69
+ * host to ensure that the focus highlight on the
70
+ * column is not overly narrow.
71
+ */
72
+ -webkit-padding-start: 16px;
73
+ padding-inline-start: 16px;
74
+ -webkit-padding-end: 16px;
75
+ padding-inline-end: 16px;
76
+ padding-top: 0px;
77
+ padding-bottom: 0px;
78
+ /**
79
+ * When using reactive data, such as in datetime's
80
+ * wheel picker, there may be layout shifts between
81
+ * individual columns in a picker as the columns
82
+ * shrink to fit the widest item in the column.
83
+ * Setting a minimum width avoids this layout shifting.
84
+ *
85
+ * Note that we need this min-width set on the same
86
+ * element as the vertical padding (i.e. not on the
87
+ * host).
88
+ */
89
+ min-width: 26px;
90
+ max-height: 200px;
91
+ outline: none;
92
+ /**
93
+ * Added so that text-align can be set on the host
94
+ * from external components. For example, datetime
95
+ * changes the alignment of specific columns in its
96
+ * wheel pickers.
97
+ */
98
+ text-align: inherit;
99
+ scroll-snap-type: y mandatory;
100
+ /**
101
+ * Need to explicitly set overflow-x: hidden
102
+ * for older implementations of scroll snapping.
103
+ */
104
+ overflow-x: hidden;
105
+ overflow-y: scroll;
106
+ scrollbar-width: none;
107
+ }
108
+
109
+ /**
110
+ * Hide scrollbars on Chrome and Safari
111
+ */
112
+ .picker-opts::-webkit-scrollbar {
113
+ display: none;
70
114
  }
71
115
 
72
- .picker-opt {
73
- top: 0;
116
+ ::slotted(ion-picker-column-option) {
74
117
  display: block;
75
- position: absolute;
76
- width: 100%;
77
- border: 0;
78
- text-align: center;
118
+ scroll-snap-align: center;
119
+ }
120
+
121
+ .picker-item-empty,
122
+ :host(:not([disabled])) ::slotted(ion-picker-column-option.option-disabled) {
123
+ scroll-snap-align: none;
124
+ }
125
+
126
+ ::slotted([slot=prefix]), ::slotted([slot=suffix]) {
127
+ max-width: 200px;
79
128
  text-overflow: ellipsis;
80
129
  white-space: nowrap;
81
- contain: strict;
82
130
  overflow: hidden;
83
- will-change: transform;
84
- }
85
- @supports (inset-inline-start: 0) {
86
- .picker-opt {
87
- inset-inline-start: 0;
88
- }
89
131
  }
90
- @supports not (inset-inline-start: 0) {
91
- .picker-opt {
92
- left: 0;
93
- }
94
- :host-context([dir=rtl]) .picker-opt {
95
- left: unset;
96
- right: unset;
97
- right: 0;
98
- }
99
- [dir=rtl] .picker-opt {
100
- left: unset;
101
- right: unset;
102
- right: 0;
103
- }
104
- @supports selector(:dir(rtl)) {
105
- .picker-opt:dir(rtl) {
106
- left: unset;
107
- right: unset;
108
- right: 0;
109
- }
110
- }
132
+
133
+ ::slotted([slot=prefix]) {
134
+ /**
135
+ * This is added in addition to the column's own padding so that there is white
136
+ * space between the slot and the column's focus highlight.
137
+ */
138
+ -webkit-padding-start: 16px;
139
+ padding-inline-start: 16px;
140
+ -webkit-padding-end: 16px;
141
+ padding-inline-end: 16px;
142
+ padding-top: 0;
143
+ padding-bottom: 0;
144
+ justify-content: end;
111
145
  }
112
146
 
113
- .picker-opt.picker-opt-disabled {
114
- pointer-events: none;
147
+ ::slotted([slot=suffix]) {
148
+ /**
149
+ * This is added in addition to the column's own padding so that there is white
150
+ * space between the slot and the column's focus highlight.
151
+ */
152
+ -webkit-padding-start: 16px;
153
+ padding-inline-start: 16px;
154
+ -webkit-padding-end: 16px;
155
+ padding-inline-end: 16px;
156
+ padding-top: 0;
157
+ padding-bottom: 0;
158
+ justify-content: start;
115
159
  }
116
160
 
117
- .picker-opt-disabled {
118
- opacity: 0;
161
+ :host .picker-item {
162
+ padding-left: 0;
163
+ padding-right: 0;
164
+ padding-top: 0;
165
+ padding-bottom: 0;
166
+ margin-left: 0;
167
+ margin-right: 0;
168
+ margin-top: 0;
169
+ margin-bottom: 0;
170
+ display: block;
171
+ width: 100%;
172
+ height: 34px;
173
+ border: 0px;
174
+ outline: none;
175
+ background: transparent;
176
+ color: inherit;
177
+ font-family: var(--ion-font-family, inherit);
178
+ font-size: inherit;
179
+ line-height: 34px;
180
+ text-align: inherit;
181
+ text-overflow: ellipsis;
182
+ white-space: nowrap;
183
+ cursor: pointer;
184
+ overflow: hidden;
185
+ scroll-snap-align: center;
119
186
  }
120
187
 
121
- .picker-opts-left {
122
- justify-content: flex-start;
188
+ :host .picker-item-empty,
189
+ :host .picker-item[disabled] {
190
+ cursor: default;
123
191
  }
124
192
 
125
- .picker-opts-right {
126
- justify-content: flex-end;
193
+ :host .picker-item-empty,
194
+ :host(:not([disabled])) .picker-item[disabled] {
195
+ scroll-snap-align: none;
127
196
  }
128
197
 
129
- .picker-opt:active, .picker-opt:focus {
130
- outline: none;
198
+ :host([disabled]) {
199
+ overflow-y: hidden;
131
200
  }
132
201
 
133
- .picker-prefix {
134
- position: relative;
135
- flex: 1;
136
- text-align: end;
137
- white-space: nowrap;
202
+ :host .picker-item[disabled] {
203
+ opacity: 0.4;
138
204
  }
139
205
 
140
- .picker-suffix {
141
- position: relative;
142
- flex: 1;
143
- text-align: start;
144
- white-space: nowrap;
206
+ :host(.picker-column-active) .picker-item.picker-item-active {
207
+ color: var(--ion-color-base);
145
208
  }
146
209
 
210
+ @media (any-hover: hover) {
211
+ :host(:focus) .picker-opts {
212
+ outline: none;
213
+ background: rgba(var(--ion-color-base-rgb), 0.2);
214
+ }
215
+ }
147
216
  /**
148
217
  * Convert a font size to a dynamic font size.
149
218
  * Fonts that participate in Dynamic Type should use
@@ -199,48 +268,6 @@
199
268
  * }
200
269
  * }
201
270
  */
202
- .picker-col {
203
- -webkit-padding-start: 8px;
204
- padding-inline-start: 8px;
205
- -webkit-padding-end: 8px;
206
- padding-inline-end: 8px;
207
- padding-top: 0;
208
- padding-bottom: 0;
209
- transform-style: preserve-3d;
210
- }
211
-
212
- .picker-prefix,
213
- .picker-suffix,
214
- .picker-opts {
215
- top: 77px;
216
- transform-style: preserve-3d;
217
- color: inherit;
218
- font-size: 22px;
219
- line-height: 42px;
220
- pointer-events: none;
221
- }
222
-
223
- .picker-opt {
224
- margin-left: 0;
225
- margin-right: 0;
226
- margin-top: 0;
227
- margin-bottom: 0;
228
- padding-left: 0;
229
- padding-right: 0;
230
- padding-top: 0;
231
- padding-bottom: 0;
232
- height: 43px;
233
- transition-timing-function: ease-out;
234
- background: transparent;
235
- color: inherit;
236
- font-size: 22px;
237
- line-height: 42px;
238
- backface-visibility: hidden;
239
- pointer-events: auto;
240
- }
241
-
242
- .picker-prefix,
243
- .picker-suffix,
244
- .picker-opt.picker-opt-selected {
245
- color: var(--ion-color-primary, #3880ff);
271
+ :host .picker-item-active {
272
+ color: var(--ion-color-base);
246
273
  }
@@ -7,20 +7,20 @@ import { configs, test } from "../../../../utils/test/playwright/index";
7
7
  * This behavior does not vary across modes/directions.
8
8
  */
9
9
  configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
10
- test.describe(title('picker-column-internal'), () => {
10
+ test.describe(title('picker-column'), () => {
11
11
  test.beforeEach(async ({ page }) => {
12
- await page.goto('/src/components/picker-column-internal/test/basic', config);
12
+ await page.goto('/src/components/picker-column/test/basic', config);
13
13
  });
14
14
  test('should render a picker item for each item', async ({ page }) => {
15
- const columns = page.locator('ion-picker-column-internal .picker-item:not(.picker-item-empty)');
15
+ const columns = page.locator('ion-picker-column ion-picker-column-option');
16
16
  await expect(columns).toHaveCount(24);
17
17
  });
18
18
  test('should render 6 empty picker items', async ({ page }) => {
19
- const columns = page.locator('ion-picker-column-internal .picker-item-empty');
19
+ const columns = page.locator('ion-picker-column .picker-item-empty');
20
20
  await expect(columns).toHaveCount(6);
21
21
  });
22
22
  test('should not have an active item when value is not set', async ({ page }) => {
23
- const activeColumn = page.locator('ion-picker-column-internal .picker-item-active');
23
+ const activeColumn = page.locator('ion-picker-column ion-picker-column-option.option-active');
24
24
  await expect(activeColumn).toHaveCount(0);
25
25
  });
26
26
  test('should have an active item when value is set', async ({ page }) => {
@@ -28,7 +28,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
28
28
  el.value = '12';
29
29
  });
30
30
  await page.waitForChanges();
31
- const activeColumn = page.locator('ion-picker-column-internal .picker-item-active');
31
+ const activeColumn = page.locator('ion-picker-column ion-picker-column-option.option-active');
32
32
  expect(activeColumn).not.toBeNull();
33
33
  });
34
34
  // TODO FW-3616
@@ -38,8 +38,8 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
38
38
  el.scrollTop = 801;
39
39
  });
40
40
  await page.waitForChanges();
41
- const activeColumn = page.locator('ion-picker-column-internal .picker-item-active');
42
- expect(await (activeColumn === null || activeColumn === void 0 ? void 0 : activeColumn.innerText())).toEqual('23');
41
+ const activeColumn = page.locator('ion-picker-column ion-picker-column-option.option-active');
42
+ await expect(activeColumn).toHaveJSProperty('value', 23);
43
43
  });
44
44
  test('should not emit ionChange when the value is modified externally', async ({ page, skip }) => {
45
45
  skip.browser('firefox', 'https://bugzilla.mozilla.org/show_bug.cgi?id=1766890');
@@ -0,0 +1,113 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { expect } from "@playwright/test";
5
+ import { configs, test } from "../../../../utils/test/playwright/index";
6
+ /**
7
+ * This behavior does not vary across modes/directions.
8
+ */
9
+ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
10
+ test.describe(title('picker-column: disabled items'), () => {
11
+ // TODO FW-5580 move this to a spec test in picker-column-option
12
+ test('all picker items should be enabled by default', async ({ page }) => {
13
+ await page.setContent(`
14
+ <ion-picker>
15
+ <ion-picker-column>
16
+ <ion-picker-column-option value="a">A</ion-picker-column-option>
17
+ <ion-picker-column-option value="b">B</ion-picker-column-option>
18
+ <ion-picker-column-option value="c">C</ion-picker-column-option>
19
+ </ion-picker-column>
20
+ </ion-picker>
21
+ `, config);
22
+ const pickerItems = page.locator('ion-picker-column ion-picker-column-option button:not([disabled])');
23
+ expect(await pickerItems.count()).toBe(3);
24
+ });
25
+ // TODO FW-5580 move this to a spec test in picker-column-option
26
+ test('disabled picker item should not be interactive', async ({ page }) => {
27
+ await page.setContent(`
28
+ <ion-picker>
29
+ <ion-picker-column>
30
+ <ion-picker-column-option value="a">A</ion-picker-column-option>
31
+ <ion-picker-column-option value="b" disabled="true">B</ion-picker-column-option>
32
+ <ion-picker-column-option value="c">C</ion-picker-column-option>
33
+ </ion-picker-column>
34
+ </ion-picker>
35
+ `, config);
36
+ const disabledItem = page.locator('ion-picker-column ion-picker-column-option button').nth(1);
37
+ await expect(disabledItem).not.toBeEnabled();
38
+ });
39
+ test('disabled picker item should not be considered active', async ({ page }) => {
40
+ await page.setContent(`
41
+ <ion-picker>
42
+ <ion-picker-column value="b">
43
+ <ion-picker-column-option value="a">A</ion-picker-column-option>
44
+ <ion-picker-column-option value="b" disabled="true">B</ion-picker-column-option>
45
+ <ion-picker-column-option value="c">C</ion-picker-column-option>
46
+ </ion-picker-column>
47
+ </ion-picker>
48
+ `, config);
49
+ const disabledItem = page.locator('ion-picker-column-option').nth(1);
50
+ await expect(disabledItem).not.toHaveClass(/option-active/);
51
+ });
52
+ test('setting the value to a disabled item should not cause that item to be active', async ({ page }) => {
53
+ await page.setContent(`
54
+ <ion-picker>
55
+ <ion-picker-column>
56
+ <ion-picker-column-option value="a">A</ion-picker-column-option>
57
+ <ion-picker-column-option value="b" disabled="true">B</ion-picker-column-option>
58
+ <ion-picker-column-option value="c">C</ion-picker-column-option>
59
+ </ion-picker-column>
60
+ </ion-picker>
61
+ `, config);
62
+ const pickerColumn = page.locator('ion-picker-column');
63
+ await pickerColumn.evaluate((el) => (el.value = 'b'));
64
+ await page.waitForChanges();
65
+ const disabledItem = page.locator('ion-picker-column ion-picker-column-option').nth(1);
66
+ await expect(disabledItem).not.toHaveClass(/option-active/);
67
+ });
68
+ test('defaulting the value to a disabled item should not cause that item to be active', async ({ page }) => {
69
+ await page.setContent(`
70
+ <ion-picker>
71
+ <ion-picker-column value="b">
72
+ <ion-picker-column-option value="a">A</ion-picker-column-option>
73
+ <ion-picker-column-option value="b" disabled="true">B</ion-picker-column-option>
74
+ <ion-picker-column-option value="c">C</ion-picker-column-option>
75
+ </ion-picker-column>
76
+ </ion-picker>
77
+ `, config);
78
+ const disabledItem = page.locator('ion-picker-column ion-picker-column-option').nth(1);
79
+ await expect(disabledItem).not.toHaveClass(/option-active/);
80
+ });
81
+ });
82
+ });
83
+ /**
84
+ * This behavior does not vary across directions.
85
+ */
86
+ // TODO FW-5580 fix this
87
+ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
88
+ test.describe.skip(title('picker-column: disabled column rendering'), () => {
89
+ test.beforeEach(async ({ page }) => {
90
+ await page.goto('/src/components/picker-column/test/disabled', config);
91
+ });
92
+ test('disabled column should not have visual regressions', async ({ page }) => {
93
+ const disabledColumn = page.locator('#column-disabled');
94
+ await page.waitForChanges();
95
+ await expect(disabledColumn).toHaveScreenshot(screenshot('picker-disabled-column'));
96
+ });
97
+ });
98
+ });
99
+ /**
100
+ * This behavior does not vary across modes/directions.
101
+ */
102
+ // TODO FW-5580 fix this
103
+ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
104
+ test.describe.skip(title('picker-column: disabled column'), () => {
105
+ test.beforeEach(async ({ page }) => {
106
+ await page.goto('/src/components/picker-column/test/disabled', config);
107
+ });
108
+ test('item in disabled column should not be interactive', async ({ page }) => {
109
+ const secondItem = page.locator('#column-disabled .picker-item:not(.picker-item-empty)').nth(1);
110
+ await expect(secondItem).toBeDisabled();
111
+ });
112
+ });
113
+ });
@@ -0,0 +1,39 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { expect } from "@playwright/test";
5
+ import { configs, test } from "../../../../utils/test/playwright/index";
6
+ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
7
+ test.describe(title('picker-column: slots'), () => {
8
+ test('should not have visual regressions with prefix and suffix', async ({ page }) => {
9
+ await page.setContent(`
10
+ <ion-picker>
11
+ <ion-picker-column value="b">
12
+ <ion-picker-column-option value="a">A</ion-picker-column-option>
13
+ <ion-picker-column-option value="b">B</ion-picker-column-option>
14
+ <ion-picker-column-option value="c">C</ion-picker-column-option>
15
+ <div slot="prefix">Prefix</div>
16
+ <div slot="suffix">Suffix</div>
17
+ </ion-picker-column>
18
+ </ion-picker>
19
+ `, config);
20
+ const picker = page.locator('ion-picker');
21
+ await expect(picker).toHaveScreenshot(screenshot(`picker-prefix-suffix`));
22
+ });
23
+ test('should not have visual regressions with a long prefix and suffix', async ({ page }) => {
24
+ await page.setContent(`
25
+ <ion-picker>
26
+ <ion-picker-column value="b">
27
+ <ion-picker-column-option value="a">A</ion-picker-column-option>
28
+ <ion-picker-column-option value="b">B</ion-picker-column-option>
29
+ <ion-picker-column-option value="c">C</ion-picker-column-option>
30
+ <div slot="prefix">Long prefix long prefix long prefix</div>
31
+ <div slot="suffix">Long suffix long suffix long suffix</div>
32
+ </ion-picker-column>
33
+ </ion-picker>
34
+ `, config);
35
+ const picker = page.locator('ion-picker');
36
+ await expect(picker).toHaveScreenshot(screenshot(`picker-long-prefix-suffix`));
37
+ });
38
+ });
39
+ });
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Convert a font size to a dynamic font size.
3
+ * Fonts that participate in Dynamic Type should use
4
+ * dynamic font sizes.
5
+ * @param size - The initial font size including the unit (i.e. px or pt)
6
+ * @param unit (optional) - The unit to convert to. Use this if you want to
7
+ * convert to a unit other than $baselineUnit.
8
+ */
9
+ /**
10
+ * Convert a font size to a dynamic font size but impose
11
+ * a maximum font size.
12
+ * @param size - The initial font size including the unit (i.e. px or pt)
13
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
14
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
15
+ * convert to a unit other than $baselineUnit.
16
+ */
17
+ /**
18
+ * Convert a font size to a dynamic font size but impose
19
+ * a minimum font size.
20
+ * @param size - The initial font size including the unit (i.e. px or pt)
21
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
22
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
23
+ * convert to a unit other than $baselineUnit.
24
+ */
25
+ /**
26
+ * Convert a font size to a dynamic font size but impose
27
+ * maximum and minimum font sizes.
28
+ * @param size - The initial font size including the unit (i.e. px or pt)
29
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
30
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
31
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
32
+ * convert to a unit other than $baselineUnit.
33
+ */
34
+ /**
35
+ * A heuristic that applies CSS to tablet
36
+ * viewports.
37
+ *
38
+ * Usage:
39
+ * @include tablet-viewport() {
40
+ * :host {
41
+ * background-color: green;
42
+ * }
43
+ * }
44
+ */
45
+ /**
46
+ * A heuristic that applies CSS to mobile
47
+ * viewports (i.e. phones, not tablets).
48
+ *
49
+ * Usage:
50
+ * @include mobile-viewport() {
51
+ * :host {
52
+ * background-color: blue;
53
+ * }
54
+ * }
55
+ */
56
+ button {
57
+ padding-left: 0;
58
+ padding-right: 0;
59
+ padding-top: 0;
60
+ padding-bottom: 0;
61
+ margin-left: 0;
62
+ margin-right: 0;
63
+ margin-top: 0;
64
+ margin-bottom: 0;
65
+ width: 100%;
66
+ height: 34px;
67
+ border: 0px;
68
+ outline: none;
69
+ background: transparent;
70
+ color: inherit;
71
+ font-family: var(--ion-font-family, inherit);
72
+ font-size: inherit;
73
+ line-height: 34px;
74
+ text-align: inherit;
75
+ text-overflow: ellipsis;
76
+ white-space: nowrap;
77
+ cursor: pointer;
78
+ overflow: hidden;
79
+ }
80
+
81
+ :host(.option-disabled) {
82
+ opacity: 0.4;
83
+ }
84
+
85
+ :host(.option-disabled) button {
86
+ cursor: default;
87
+ }