@ionic/core 7.5.7-dev.11701188221.15180cb4 → 7.5.7-dev.11701203423.1b6a8829

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 (259) hide show
  1. package/components/backdrop.js +12 -0
  2. package/components/gesture-controller.js +1 -1
  3. package/components/icon.js +14 -23
  4. package/components/index7.js +1 -1
  5. package/components/ion-content.js +1 -1
  6. package/components/ion-datetime.js +48 -15
  7. package/components/{ion-picker-legacy.d.ts → ion-picker-column.d.ts} +4 -4
  8. package/components/{ion-picker-legacy-column.js → ion-picker-column.js} +2 -2
  9. package/components/ion-picker.d.ts +11 -0
  10. package/components/ion-picker.js +307 -0
  11. package/components/overlays.js +4 -11
  12. package/components/picker-column.js +3 -3
  13. package/dist/cjs/{button-active-cd07b55b.js → button-active-af897e0e.js} +1 -1
  14. package/dist/cjs/{gesture-controller-d6a3f907.js → gesture-controller-b46721be.js} +0 -1
  15. package/dist/cjs/{index-0f8b33f8.js → index-0ee995e4.js} +1 -1
  16. package/dist/cjs/{index-09471526.js → index-5ea49600.js} +1 -1
  17. package/dist/cjs/index.cjs.js +3 -3
  18. package/dist/cjs/ion-accordion_2.cjs.entry.js +1 -1
  19. package/dist/cjs/ion-action-sheet.cjs.entry.js +4 -4
  20. package/dist/cjs/ion-alert.cjs.entry.js +4 -4
  21. package/dist/cjs/ion-app_8.cjs.entry.js +2 -2
  22. package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
  23. package/dist/cjs/ion-backdrop.cjs.entry.js +12 -0
  24. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +1 -1
  25. package/dist/cjs/ion-button_2.cjs.entry.js +14 -23
  26. package/dist/cjs/ion-datetime_3.cjs.entry.js +30 -17
  27. package/dist/cjs/ion-fab_3.cjs.entry.js +1 -1
  28. package/dist/cjs/ion-input.cjs.entry.js +1 -1
  29. package/dist/cjs/ion-item-option_3.cjs.entry.js +1 -1
  30. package/dist/cjs/ion-item_8.cjs.entry.js +1 -1
  31. package/dist/cjs/ion-loading.cjs.entry.js +1 -2
  32. package/dist/cjs/ion-menu_3.cjs.entry.js +4 -4
  33. package/dist/cjs/ion-modal.cjs.entry.js +3 -3
  34. package/dist/cjs/ion-nav_2.cjs.entry.js +1 -1
  35. package/dist/cjs/ion-popover.cjs.entry.js +1 -2
  36. package/dist/cjs/ion-range.cjs.entry.js +1 -1
  37. package/dist/cjs/ion-refresher_2.cjs.entry.js +4 -4
  38. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  39. package/dist/cjs/ion-searchbar.cjs.entry.js +1 -1
  40. package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
  41. package/dist/cjs/ion-select_3.cjs.entry.js +2 -3
  42. package/dist/cjs/ion-toast.cjs.entry.js +1 -2
  43. package/dist/cjs/ion-toggle.cjs.entry.js +2 -2
  44. package/dist/cjs/ionic.cjs.js +1 -1
  45. package/dist/cjs/loader.cjs.js +1 -1
  46. package/dist/cjs/{overlays-dbb71984.js → overlays-2ffc5f27.js} +4 -11
  47. package/dist/cjs/{swipe-back-a6dc6e5d.js → swipe-back-d0412fb6.js} +2 -2
  48. package/dist/collection/collection-manifest.json +4 -4
  49. package/dist/collection/components/backdrop/backdrop.js +12 -0
  50. package/dist/collection/components/content/content.css +4 -0
  51. package/dist/collection/components/datetime/datetime.ios.css +24 -83
  52. package/dist/collection/components/datetime/datetime.js +20 -5
  53. package/dist/collection/components/datetime/datetime.md.css +24 -88
  54. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +1 -1
  55. package/dist/collection/components/datetime/test/a11y/datetime.spec.js +9 -6
  56. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +0 -10
  57. package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +1 -1
  58. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +2 -2
  59. package/dist/collection/components/{picker-legacy → picker}/picker.js +5 -7
  60. package/dist/collection/components/{picker-legacy → picker}/test/basic/picker.e2e.js +2 -2
  61. package/dist/collection/components/{picker-legacy → picker}/test/is-open/picker.e2e.js +4 -4
  62. package/dist/collection/components/{picker-legacy → picker}/test/picker-id.spec.js +5 -5
  63. package/dist/collection/components/{picker-legacy → picker}/test/trigger/picker.e2e.js +1 -1
  64. package/dist/collection/components/{picker-legacy-column → picker-column}/picker-column.js +5 -5
  65. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column-aria.spec.js +3 -3
  66. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column-dynamic.spec.js +2 -2
  67. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column.spec.js +2 -2
  68. package/dist/collection/components/{picker-legacy-column → picker-column}/test/standalone/picker-column.e2e.js +3 -3
  69. package/dist/collection/utils/gesture/gesture-controller.js +1 -1
  70. package/dist/collection/utils/overlays.js +4 -11
  71. package/dist/docs.json +32 -21
  72. package/dist/esm/{button-active-5b0516e7.js → button-active-ce5cba4c.js} +1 -1
  73. package/dist/esm/{gesture-controller-3723db7c.js → gesture-controller-0fa396c4.js} +1 -1
  74. package/dist/esm/{index-c132c5f1.js → index-d1a56aed.js} +1 -1
  75. package/dist/esm/{index-32cbee52.js → index-ff313b19.js} +2 -2
  76. package/dist/esm/index.js +3 -3
  77. package/dist/esm/ion-accordion_2.entry.js +1 -1
  78. package/dist/esm/ion-action-sheet.entry.js +4 -4
  79. package/dist/esm/ion-alert.entry.js +4 -4
  80. package/dist/esm/ion-app_8.entry.js +2 -2
  81. package/dist/esm/ion-back-button.entry.js +1 -1
  82. package/dist/esm/ion-backdrop.entry.js +12 -0
  83. package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
  84. package/dist/esm/ion-button_2.entry.js +14 -23
  85. package/dist/esm/ion-datetime_3.entry.js +29 -16
  86. package/dist/esm/ion-fab_3.entry.js +1 -1
  87. package/dist/esm/ion-input.entry.js +1 -1
  88. package/dist/esm/ion-item-option_3.entry.js +1 -1
  89. package/dist/esm/ion-item_8.entry.js +1 -1
  90. package/dist/esm/ion-loading.entry.js +1 -2
  91. package/dist/esm/ion-menu_3.entry.js +4 -4
  92. package/dist/esm/ion-modal.entry.js +3 -3
  93. package/dist/esm/ion-nav_2.entry.js +1 -1
  94. package/dist/esm/ion-popover.entry.js +1 -2
  95. package/dist/esm/ion-range.entry.js +1 -1
  96. package/dist/esm/ion-refresher_2.entry.js +4 -4
  97. package/dist/esm/ion-reorder_2.entry.js +2 -2
  98. package/dist/esm/ion-searchbar.entry.js +1 -1
  99. package/dist/esm/ion-segment_2.entry.js +1 -1
  100. package/dist/esm/ion-select_3.entry.js +2 -3
  101. package/dist/esm/ion-toast.entry.js +1 -2
  102. package/dist/esm/ion-toggle.entry.js +2 -2
  103. package/dist/esm/ionic.js +1 -1
  104. package/dist/esm/loader.js +1 -1
  105. package/dist/esm/{overlays-789cd7a7.js → overlays-6c9feb7e.js} +4 -11
  106. package/dist/esm/{swipe-back-cc4c2bcb.js → swipe-back-0f3bfc8e.js} +2 -2
  107. package/dist/esm-es5/{button-active-5b0516e7.js → button-active-ce5cba4c.js} +1 -1
  108. package/dist/esm-es5/{gesture-controller-3723db7c.js → gesture-controller-0fa396c4.js} +1 -1
  109. package/dist/esm-es5/{index-32cbee52.js → index-ff313b19.js} +1 -1
  110. package/dist/esm-es5/index.js +1 -1
  111. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  112. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  113. package/dist/esm-es5/ion-alert.entry.js +1 -1
  114. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  115. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  116. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  117. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  118. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  119. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  120. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  121. package/dist/esm-es5/ion-input.entry.js +1 -1
  122. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  123. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  124. package/dist/esm-es5/ion-loading.entry.js +1 -1
  125. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  126. package/dist/esm-es5/ion-modal.entry.js +1 -1
  127. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  128. package/dist/esm-es5/ion-popover.entry.js +1 -1
  129. package/dist/esm-es5/ion-range.entry.js +1 -1
  130. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  131. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  132. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  133. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  134. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  135. package/dist/esm-es5/ion-toast.entry.js +1 -1
  136. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  137. package/dist/esm-es5/ionic.js +1 -1
  138. package/dist/esm-es5/loader.js +1 -1
  139. package/dist/esm-es5/overlays-6c9feb7e.js +4 -0
  140. package/dist/esm-es5/swipe-back-0f3bfc8e.js +4 -0
  141. package/dist/html.html-data.json +2 -2
  142. package/dist/ionic/index.esm.js +1 -1
  143. package/dist/ionic/ionic.esm.js +1 -1
  144. package/dist/ionic/{p-14aca3fb.entry.js → p-04dca48d.entry.js} +1 -1
  145. package/dist/ionic/{p-a8e68fd9.entry.js → p-0838e6bb.entry.js} +1 -1
  146. package/dist/ionic/{p-a57f223c.system.js → p-09d142b3.system.js} +1 -1
  147. package/dist/ionic/p-0d8e9393.entry.js +4 -0
  148. package/dist/ionic/{p-abacb44b.system.entry.js → p-14923cd7.system.entry.js} +1 -1
  149. package/dist/ionic/p-18e01b30.system.entry.js +4 -0
  150. package/dist/ionic/p-19a7c660.system.entry.js +4 -0
  151. package/dist/ionic/{p-9b5301cc.system.entry.js → p-1cb5f2f8.system.entry.js} +1 -1
  152. package/dist/ionic/p-1e5165db.system.entry.js +4 -0
  153. package/dist/ionic/p-29adc040.entry.js +4 -0
  154. package/dist/ionic/{p-56224549.entry.js → p-3de79805.entry.js} +1 -1
  155. package/dist/ionic/p-40903d34.system.js +1 -1
  156. package/dist/ionic/{p-664d2b07.system.entry.js → p-42435018.system.entry.js} +1 -1
  157. package/dist/ionic/p-431151f2.entry.js +4 -0
  158. package/dist/ionic/{p-d3952bd5.system.entry.js → p-4d786d1f.system.entry.js} +1 -1
  159. package/dist/ionic/{p-b6a8588f.entry.js → p-4fa201a7.entry.js} +1 -1
  160. package/dist/ionic/{p-ee800093.entry.js → p-52360c7a.entry.js} +1 -1
  161. package/dist/ionic/{p-b3e79338.system.entry.js → p-61c30156.system.entry.js} +1 -1
  162. package/dist/ionic/{p-f5a750e4.system.entry.js → p-640efee6.system.entry.js} +1 -1
  163. package/dist/ionic/p-64296b15.entry.js +4 -0
  164. package/dist/ionic/{p-5da0eb3e.system.entry.js → p-6594d76a.system.entry.js} +1 -1
  165. package/dist/ionic/{p-02d8fdba.system.entry.js → p-67e644bd.system.entry.js} +1 -1
  166. package/dist/ionic/{p-3f88eab8.system.entry.js → p-67ed452a.system.entry.js} +1 -1
  167. package/dist/ionic/{p-835e0346.entry.js → p-68166ba6.entry.js} +1 -1
  168. package/dist/ionic/{p-966cf574.system.entry.js → p-6d812360.system.entry.js} +1 -1
  169. package/dist/ionic/{p-a4cda7a8.system.entry.js → p-6e23777e.system.entry.js} +1 -1
  170. package/dist/ionic/{p-2ba9414e.entry.js → p-7176cea3.entry.js} +1 -1
  171. package/dist/ionic/{p-878c7aa5.system.entry.js → p-7b4cd5fc.system.entry.js} +1 -1
  172. package/dist/ionic/{p-4f3e2767.system.entry.js → p-7d7fdaf0.system.entry.js} +1 -1
  173. package/dist/ionic/p-800ef057.js +4 -0
  174. package/dist/ionic/{p-3fb57e1b.system.entry.js → p-8659f9a9.system.entry.js} +1 -1
  175. package/dist/ionic/p-86b2394a.entry.js +4 -0
  176. package/dist/ionic/{p-48d9faa7.entry.js → p-899fb2da.entry.js} +1 -1
  177. package/dist/ionic/{p-a7e2ac5c.js → p-8b1be026.js} +1 -1
  178. package/dist/ionic/{p-a21b8d05.entry.js → p-8cbf0979.entry.js} +1 -1
  179. package/dist/ionic/{p-477a182e.entry.js → p-8d5a30dd.entry.js} +1 -1
  180. package/dist/ionic/p-8dbdb163.system.js +4 -0
  181. package/dist/ionic/{p-9e6bf9ed.entry.js → p-8e1bded3.entry.js} +1 -1
  182. package/dist/ionic/{p-5ce11143.entry.js → p-965677f1.entry.js} +1 -1
  183. package/dist/ionic/{p-f4cc91f6.entry.js → p-97a96f5f.entry.js} +1 -1
  184. package/dist/ionic/p-97e31c0a.system.js +4 -0
  185. package/dist/ionic/{p-6500b298.system.js → p-9e852ff1.system.js} +1 -1
  186. package/dist/ionic/{p-1e86a71b.entry.js → p-a43603ce.entry.js} +1 -1
  187. package/dist/ionic/{p-c7fd81ba.system.js → p-a936d224.system.js} +1 -1
  188. package/dist/ionic/p-a9c3699b.system.entry.js +4 -0
  189. package/dist/ionic/p-b91fe549.entry.js +4 -0
  190. package/dist/ionic/{p-c1229981.entry.js → p-bd76524d.entry.js} +1 -1
  191. package/dist/ionic/{p-07d9e9cd.system.entry.js → p-c429a314.system.entry.js} +1 -1
  192. package/dist/ionic/p-c6be7737.system.entry.js +4 -0
  193. package/dist/ionic/p-c919498d.entry.js +4 -0
  194. package/dist/ionic/{p-d21bfe66.system.entry.js → p-cd2808f5.system.entry.js} +1 -1
  195. package/dist/ionic/p-cf425ec5.system.entry.js +4 -0
  196. package/dist/ionic/{p-c31fc05f.system.entry.js → p-db5043df.system.entry.js} +1 -1
  197. package/dist/ionic/{p-22813b28.system.entry.js → p-dbf7d6e5.system.entry.js} +1 -1
  198. package/dist/ionic/p-ddfc4ef4.system.entry.js +4 -0
  199. package/dist/ionic/{p-dd837fa8.entry.js → p-deab76dc.entry.js} +1 -1
  200. package/dist/ionic/{p-100ef961.js → p-e0b06b65.js} +1 -1
  201. package/dist/ionic/{p-302091ab.js → p-e627ed84.js} +1 -1
  202. package/dist/ionic/p-e6b240a0.js +4 -0
  203. package/dist/ionic/{p-b6f8ee31.entry.js → p-ee2469c1.entry.js} +1 -1
  204. package/dist/ionic/{p-939d903b.entry.js → p-f37b4b79.entry.js} +1 -1
  205. package/dist/ionic/{p-06e6d235.system.entry.js → p-f3c82f74.system.entry.js} +2 -2
  206. package/dist/ionic/p-f54ddd19.entry.js +4 -0
  207. package/dist/ionic/{p-2e1794df.system.js → p-fa8d4788.system.js} +1 -1
  208. package/dist/node_modules/ionicons/dist/collection/components/icon/icon.css +1 -0
  209. package/dist/types/components/backdrop/backdrop.d.ts +3 -0
  210. package/dist/types/components/datetime/datetime.d.ts +1 -0
  211. package/dist/types/components/menu/menu.d.ts +1 -1
  212. package/dist/types/components/{picker-legacy → picker}/picker.d.ts +1 -1
  213. package/dist/types/components/{picker-legacy-column → picker-column}/picker-column.d.ts +1 -1
  214. package/dist/types/components.d.ts +138 -138
  215. package/dist/types/interface.d.ts +1 -1
  216. package/dist/types/utils/config.d.ts +2 -2
  217. package/dist/types/utils/gesture/gesture-controller.d.ts +0 -1
  218. package/dist/types/utils/overlays.d.ts +2 -5
  219. package/hydrate/index.js +57 -43
  220. package/package.json +2 -2
  221. package/components/ion-picker-legacy-column.d.ts +0 -11
  222. package/components/ion-picker-legacy.js +0 -309
  223. package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +0 -65
  224. package/dist/esm-es5/overlays-789cd7a7.js +0 -4
  225. package/dist/esm-es5/swipe-back-cc4c2bcb.js +0 -4
  226. package/dist/ionic/p-0c244faf.entry.js +0 -4
  227. package/dist/ionic/p-1dc91702.entry.js +0 -4
  228. package/dist/ionic/p-234b9617.system.entry.js +0 -4
  229. package/dist/ionic/p-25c34422.system.entry.js +0 -4
  230. package/dist/ionic/p-2804781b.entry.js +0 -4
  231. package/dist/ionic/p-2ad38423.system.entry.js +0 -4
  232. package/dist/ionic/p-6893f6e4.entry.js +0 -4
  233. package/dist/ionic/p-8b4ab236.entry.js +0 -4
  234. package/dist/ionic/p-96e99303.entry.js +0 -4
  235. package/dist/ionic/p-992d3bad.entry.js +0 -4
  236. package/dist/ionic/p-9c967a65.system.entry.js +0 -4
  237. package/dist/ionic/p-b4cbb736.js +0 -4
  238. package/dist/ionic/p-dc565ca3.js +0 -4
  239. package/dist/ionic/p-e2b1b264.system.entry.js +0 -4
  240. package/dist/ionic/p-e88ed07f.system.js +0 -4
  241. package/dist/ionic/p-eb07ec1a.system.entry.js +0 -4
  242. package/dist/ionic/p-eb5697b5.system.js +0 -4
  243. package/dist/ionic/p-f0559c5d.system.entry.js +0 -4
  244. package/dist/ionic/p-fdd22426.entry.js +0 -4
  245. /package/dist/collection/components/{picker-legacy → picker}/animations/ios.enter.js +0 -0
  246. /package/dist/collection/components/{picker-legacy → picker}/animations/ios.leave.js +0 -0
  247. /package/dist/collection/components/{picker-legacy → picker}/picker-interface.js +0 -0
  248. /package/dist/collection/components/{picker-legacy → picker}/picker.ios.css +0 -0
  249. /package/dist/collection/components/{picker-legacy → picker}/picker.md.css +0 -0
  250. /package/dist/collection/components/{picker-legacy-column → picker-column}/picker-column.ios.css +0 -0
  251. /package/dist/collection/components/{picker-legacy-column → picker-column}/picker-column.md.css +0 -0
  252. /package/dist/collection/components/{picker-legacy-column → picker-column}/test/test.utils.js +0 -0
  253. /package/dist/esm-es5/{index-c132c5f1.js → index-d1a56aed.js} +0 -0
  254. /package/dist/ionic/{p-ea96fa73.js → p-6e383534.js} +0 -0
  255. /package/dist/ionic/{p-8050b9b9.system.js → p-84c6dece.system.js} +0 -0
  256. /package/dist/types/components/{picker-legacy → picker}/animations/ios.enter.d.ts +0 -0
  257. /package/dist/types/components/{picker-legacy → picker}/animations/ios.leave.d.ts +0 -0
  258. /package/dist/types/components/{picker-legacy → picker}/picker-interface.d.ts +0 -0
  259. /package/dist/types/components/{picker-legacy-column → picker-column}/test/test.utils.d.ts +0 -0
@@ -94,7 +94,7 @@ ion-picker-column-internal {
94
94
  }
95
95
 
96
96
  /**
97
- * This ensures that the picker is appropriately
97
+ * This ensures that the picker is apppropriately
98
98
  * sized and never truncates the text.
99
99
  */
100
100
  :host(.datetime-size-fixed.datetime-prefer-wheel) {
@@ -317,8 +317,23 @@ ion-picker-column-internal {
317
317
  justify-content: space-between;
318
318
  }
319
319
 
320
+ :host .calendar-action-buttons ion-item,
320
321
  :host .calendar-action-buttons ion-button {
321
- --background: transparent;
322
+ --background: translucent;
323
+ }
324
+
325
+ :host .calendar-action-buttons ion-item ion-label {
326
+ display: flex;
327
+ align-items: center;
328
+ }
329
+
330
+ :host .calendar-action-buttons ion-item ion-icon {
331
+ -webkit-padding-start: 4px;
332
+ padding-inline-start: 4px;
333
+ -webkit-padding-end: 0;
334
+ padding-inline-end: 0;
335
+ padding-top: 0;
336
+ padding-bottom: 0;
322
337
  }
323
338
 
324
339
  :host .calendar-days-of-week {
@@ -500,66 +515,8 @@ ion-picker-column-internal {
500
515
  position: static;
501
516
  }
502
517
 
503
- :host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle {
504
- color: var(--ion-color-base);
505
- }
506
-
507
- .calendar-month-year {
508
- min-width: 0;
509
- }
510
-
511
- .calendar-month-year-toggle {
512
- font-family: inherit;
513
- font-size: inherit;
514
- font-style: inherit;
515
- font-weight: inherit;
516
- letter-spacing: inherit;
517
- text-decoration: inherit;
518
- text-indent: inherit;
519
- text-overflow: inherit;
520
- text-transform: inherit;
521
- text-align: inherit;
522
- white-space: inherit;
523
- color: inherit;
524
- position: relative;
525
- border: 0;
526
- outline: none;
527
- background: transparent;
528
- cursor: pointer;
529
- z-index: 1;
530
- }
531
- .calendar-month-year-toggle::after {
532
- left: 0;
533
- right: 0;
534
- top: 0;
535
- bottom: 0;
536
- position: absolute;
537
- content: "";
538
- opacity: 0;
539
- transition: opacity 15ms linear, background-color 15ms linear;
540
- z-index: -1;
541
- }
542
- .calendar-month-year-toggle.ion-focused::after {
543
- background: currentColor;
544
- }
545
- .calendar-month-year-toggle:disabled {
546
- opacity: 0.3;
547
- pointer-events: none;
548
- }
549
-
550
- .calendar-month-year-toggle ion-icon {
551
- -webkit-padding-start: 4px;
552
- padding-inline-start: 4px;
553
- -webkit-padding-end: 0;
554
- padding-inline-end: 0;
555
- padding-top: 0;
556
- padding-bottom: 0;
557
- flex-shrink: 0;
558
- }
559
-
560
- .calendar-month-year-toggle #toggle-wrapper {
561
- display: inline-flex;
562
- align-items: center;
518
+ :host(.show-month-and-year) .calendar-action-buttons ion-item {
519
+ --color: var(--ion-color-base);
563
520
  }
564
521
 
565
522
  /**
@@ -648,31 +605,15 @@ ion-picker-column-internal {
648
605
  margin-top: 10px;
649
606
  }
650
607
 
651
- .calendar-month-year-toggle {
652
- -webkit-padding-start: 16px;
653
- padding-inline-start: 16px;
654
- -webkit-padding-end: 16px;
655
- padding-inline-end: 16px;
656
- padding-top: 0px;
657
- padding-bottom: 0px;
658
- min-height: 44px;
608
+ :host .calendar-action-buttons ion-item {
609
+ --padding-start: 16px;
610
+ --background-hover: transparent;
611
+ --background-activated: transparent;
659
612
  font-size: min(1rem, 25.6px);
660
613
  font-weight: 600;
661
614
  }
662
- .calendar-month-year-toggle.ion-focused::after {
663
- opacity: 0.15;
664
- }
665
-
666
- .calendar-month-year-toggle #toggle-wrapper {
667
- -webkit-margin-start: 0;
668
- margin-inline-start: 0;
669
- -webkit-margin-end: 8px;
670
- margin-inline-end: 8px;
671
- margin-top: 10px;
672
- margin-bottom: 10px;
673
- }
674
615
 
675
- :host .calendar-action-buttons .calendar-month-year-toggle ion-icon,
616
+ :host .calendar-action-buttons ion-item ion-icon,
676
617
  :host .calendar-action-buttons ion-buttons ion-button {
677
618
  color: var(--ion-color-base);
678
619
  }
@@ -1257,11 +1257,26 @@ export class Datetime {
1257
1257
  const nextMonthDisabled = disabled || isNextMonthDisabled(this.workingParts, this.maxParts);
1258
1258
  // don't use the inheritAttributes util because it removes dir from the host, and we still need that
1259
1259
  const hostDir = this.el.getAttribute('dir') || undefined;
1260
- return (h("div", { class: "calendar-header" }, h("div", { class: "calendar-action-buttons" }, h("div", { class: "calendar-month-year" }, h("button", { class: {
1261
- 'calendar-month-year-toggle': true,
1262
- 'ion-activatable': true,
1263
- 'ion-focusable': true,
1264
- }, part: "month-year-button", disabled: disabled, "aria-label": this.showMonthAndYear ? 'Hide year picker' : 'Show year picker', onClick: () => this.toggleMonthAndYearView() }, h("span", { id: "toggle-wrapper" }, getMonthAndYear(this.locale, this.workingParts), h("ion-icon", { "aria-hidden": "true", icon: this.showMonthAndYear ? expandedIcon : collapsedIcon, lazy: false, flipRtl: true })), mode === 'md' && h("ion-ripple-effect", null))), h("div", { class: "calendar-next-prev" }, h("ion-buttons", null, h("ion-button", { "aria-label": "Previous month", disabled: prevMonthDisabled, onClick: () => this.prevMonth() }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronBack, lazy: false, flipRtl: true })), h("ion-button", { "aria-label": "Next month", disabled: nextMonthDisabled, onClick: () => this.nextMonth() }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronForward, lazy: false, flipRtl: true }))))), h("div", { class: "calendar-days-of-week", "aria-hidden": "true" }, getDaysOfWeek(this.locale, mode, this.firstDayOfWeek % 7).map((d) => {
1260
+ return (h("div", { class: "calendar-header" }, h("div", { class: "calendar-action-buttons" }, h("div", { class: "calendar-month-year" }, h("ion-item", { part: "month-year-button", ref: (el) => (this.monthYearToggleItemRef = el), button: true, "aria-label": "Show year picker", detail: false, lines: "none", disabled: disabled, onClick: () => {
1261
+ var _a;
1262
+ this.toggleMonthAndYearView();
1263
+ /**
1264
+ * TODO: FW-3547
1265
+ *
1266
+ * Currently there is not a way to set the aria-label on the inner button
1267
+ * on the `ion-item` and have it be reactive to changes. This is a workaround
1268
+ * until we either refactor `ion-item` to a button or Stencil adds a way to
1269
+ * have reactive props for built-in properties, such as `aria-label`.
1270
+ */
1271
+ const { monthYearToggleItemRef } = this;
1272
+ if (monthYearToggleItemRef) {
1273
+ const btn = (_a = monthYearToggleItemRef.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-native');
1274
+ if (btn) {
1275
+ const monthYearAriaLabel = this.showMonthAndYear ? 'Hide year picker' : 'Show year picker';
1276
+ btn.setAttribute('aria-label', monthYearAriaLabel);
1277
+ }
1278
+ }
1279
+ } }, h("ion-label", null, getMonthAndYear(this.locale, this.workingParts), h("ion-icon", { "aria-hidden": "true", icon: this.showMonthAndYear ? expandedIcon : collapsedIcon, lazy: false, flipRtl: true })))), h("div", { class: "calendar-next-prev" }, h("ion-buttons", null, h("ion-button", { "aria-label": "Previous month", disabled: prevMonthDisabled, onClick: () => this.prevMonth() }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronBack, lazy: false, flipRtl: true })), h("ion-button", { "aria-label": "Next month", disabled: nextMonthDisabled, onClick: () => this.nextMonth() }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronForward, lazy: false, flipRtl: true }))))), h("div", { class: "calendar-days-of-week", "aria-hidden": "true" }, getDaysOfWeek(this.locale, mode, this.firstDayOfWeek % 7).map((d) => {
1265
1280
  return h("div", { class: "day-of-week" }, d);
1266
1281
  }))));
1267
1282
  }
@@ -94,7 +94,7 @@ ion-picker-column-internal {
94
94
  }
95
95
 
96
96
  /**
97
- * This ensures that the picker is appropriately
97
+ * This ensures that the picker is apppropriately
98
98
  * sized and never truncates the text.
99
99
  */
100
100
  :host(.datetime-size-fixed.datetime-prefer-wheel) {
@@ -317,8 +317,23 @@ ion-picker-column-internal {
317
317
  justify-content: space-between;
318
318
  }
319
319
 
320
+ :host .calendar-action-buttons ion-item,
320
321
  :host .calendar-action-buttons ion-button {
321
- --background: transparent;
322
+ --background: translucent;
323
+ }
324
+
325
+ :host .calendar-action-buttons ion-item ion-label {
326
+ display: flex;
327
+ align-items: center;
328
+ }
329
+
330
+ :host .calendar-action-buttons ion-item ion-icon {
331
+ -webkit-padding-start: 4px;
332
+ padding-inline-start: 4px;
333
+ -webkit-padding-end: 0;
334
+ padding-inline-end: 0;
335
+ padding-top: 0;
336
+ padding-bottom: 0;
322
337
  }
323
338
 
324
339
  :host .calendar-days-of-week {
@@ -500,66 +515,8 @@ ion-picker-column-internal {
500
515
  position: static;
501
516
  }
502
517
 
503
- :host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle {
504
- color: var(--ion-color-base);
505
- }
506
-
507
- .calendar-month-year {
508
- min-width: 0;
509
- }
510
-
511
- .calendar-month-year-toggle {
512
- font-family: inherit;
513
- font-size: inherit;
514
- font-style: inherit;
515
- font-weight: inherit;
516
- letter-spacing: inherit;
517
- text-decoration: inherit;
518
- text-indent: inherit;
519
- text-overflow: inherit;
520
- text-transform: inherit;
521
- text-align: inherit;
522
- white-space: inherit;
523
- color: inherit;
524
- position: relative;
525
- border: 0;
526
- outline: none;
527
- background: transparent;
528
- cursor: pointer;
529
- z-index: 1;
530
- }
531
- .calendar-month-year-toggle::after {
532
- left: 0;
533
- right: 0;
534
- top: 0;
535
- bottom: 0;
536
- position: absolute;
537
- content: "";
538
- opacity: 0;
539
- transition: opacity 15ms linear, background-color 15ms linear;
540
- z-index: -1;
541
- }
542
- .calendar-month-year-toggle.ion-focused::after {
543
- background: currentColor;
544
- }
545
- .calendar-month-year-toggle:disabled {
546
- opacity: 0.3;
547
- pointer-events: none;
548
- }
549
-
550
- .calendar-month-year-toggle ion-icon {
551
- -webkit-padding-start: 4px;
552
- padding-inline-start: 4px;
553
- -webkit-padding-end: 0;
554
- padding-inline-end: 0;
555
- padding-top: 0;
556
- padding-bottom: 0;
557
- flex-shrink: 0;
558
- }
559
-
560
- .calendar-month-year-toggle #toggle-wrapper {
561
- display: inline-flex;
562
- align-items: center;
518
+ :host(.show-month-and-year) .calendar-action-buttons ion-item {
519
+ --color: var(--ion-color-base);
563
520
  }
564
521
 
565
522
  /**
@@ -643,36 +600,15 @@ ion-picker-column-internal {
643
600
  font-size: 2.125rem;
644
601
  }
645
602
 
646
- :host .calendar-action-buttons ion-button {
647
- --color: var(--ion-color-step-650, #595959);
648
- }
649
-
650
- .calendar-month-year-toggle {
651
- -webkit-padding-start: 20px;
652
- padding-inline-start: 20px;
653
- -webkit-padding-end: 16px;
654
- padding-inline-end: 16px;
655
- padding-top: 12px;
656
- padding-bottom: 12px;
657
- min-height: 48px;
658
- background: transparent;
659
- color: var(--ion-color-step-650, #595959);
660
- z-index: 1;
661
- }
662
- .calendar-month-year-toggle.ion-focused::after {
663
- opacity: 0.04;
603
+ :host .datetime-calendar .calendar-action-buttons ion-item {
604
+ --padding-start: 20px;
664
605
  }
665
606
 
666
- .calendar-month-year-toggle ion-ripple-effect {
667
- color: currentColor;
607
+ :host .calendar-action-buttons ion-item,
608
+ :host .calendar-action-buttons ion-button {
609
+ --color: var(--ion-color-step-650, #595959);
668
610
  }
669
611
 
670
- @media (any-hover: hover) {
671
- .calendar-month-year-toggle.ion-activatable:not(.ion-focused):hover::after {
672
- background: currentColor;
673
- opacity: 0.04;
674
- }
675
- }
676
612
  :host .calendar-days-of-week {
677
613
  -webkit-padding-start: 10px;
678
614
  padding-inline-start: 10px;
@@ -38,7 +38,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
38
38
  `, config);
39
39
  const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab';
40
40
  const datetime = page.locator('ion-datetime');
41
- const monthYearButton = page.locator('.calendar-month-year-toggle');
41
+ const monthYearButton = page.locator('.calendar-month-year ion-item');
42
42
  const prevButton = page.locator('.calendar-next-prev ion-button:nth-child(1)');
43
43
  const nextButton = page.locator('.calendar-next-prev ion-button:nth-child(2)');
44
44
  await page.keyboard.press(tabKey);
@@ -2,6 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { newSpecPage } from "@stencil/core/testing";
5
+ import { Item } from "../../../item/item";
5
6
  import { Datetime } from "../../datetime";
6
7
  describe('datetime', () => {
7
8
  beforeEach(() => {
@@ -17,23 +18,25 @@ describe('datetime', () => {
17
18
  let page;
18
19
  beforeEach(async () => {
19
20
  page = await newSpecPage({
20
- components: [Datetime],
21
+ components: [Datetime, Item],
21
22
  html: `<ion-datetime></ion-datetime>`,
22
23
  });
23
24
  });
24
25
  it('should have aria-label "Show year picker" when collapsed', async () => {
25
26
  const datetime = page.body.querySelector('ion-datetime');
26
- const monthYearToggleBtn = datetime.shadowRoot.querySelector('.calendar-month-year .calendar-month-year-toggle');
27
+ const item = datetime.shadowRoot.querySelector('.calendar-month-year ion-item');
28
+ const monthYearToggleBtn = item.shadowRoot.querySelector('button');
27
29
  const ariaLabel = monthYearToggleBtn.getAttribute('aria-label');
28
30
  expect(ariaLabel).toContain('Show year picker');
29
31
  });
30
32
  it('should have aria-label "Hide year picker" when expanded', async () => {
31
33
  const datetime = page.body.querySelector('ion-datetime');
32
- const monthYearToggleBtn = datetime.shadowRoot.querySelector('.calendar-month-year .calendar-month-year-toggle');
33
- monthYearToggleBtn.click();
34
+ const item = datetime.shadowRoot.querySelector('.calendar-month-year ion-item');
35
+ item.click();
34
36
  await page.waitForChanges();
35
- const monthYearToggleBtnAfter = datetime.shadowRoot.querySelector('.calendar-month-year .calendar-month-year-toggle');
36
- const ariaLabel = monthYearToggleBtnAfter.getAttribute('aria-label');
37
+ const itemAfter = datetime.shadowRoot.querySelector('.calendar-month-year ion-item');
38
+ const monthYearToggleBtn = itemAfter.shadowRoot.querySelector('button');
39
+ const ariaLabel = monthYearToggleBtn.getAttribute('aria-label');
37
40
  expect(ariaLabel).toContain('Hide year picker');
38
41
  });
39
42
  });
@@ -372,14 +372,4 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
372
372
  await expect(datetime).toHaveScreenshot(screenshot(`datetime-focus-calendar-day`));
373
373
  });
374
374
  });
375
- test.describe(title('datetime: calendar month toggle'), () => {
376
- test('should have focus styles', async ({ page }) => {
377
- await page.setContent('<ion-datetime value="2021-01-01"></ion-datetime>', config);
378
- const datetime = page.locator('ion-datetime');
379
- await page.waitForSelector('.datetime-ready');
380
- const monthYearToggle = datetime.locator('.calendar-month-year-toggle');
381
- monthYearToggle.evaluate((el) => el.classList.add('ion-focused'));
382
- await expect(datetime).toHaveScreenshot(screenshot(`date-month-toggle-focused`));
383
- });
384
- });
385
375
  });
@@ -16,7 +16,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
16
16
  test('should hide the footer when picker is open', async ({ page }) => {
17
17
  const datetimeFooter = page.locator('#date-time .datetime-footer');
18
18
  await expect(datetimeFooter).toBeVisible();
19
- const pickerButton = page.locator('#date-time .calendar-month-year > .calendar-month-year-toggle');
19
+ const pickerButton = page.locator('#date-time .calendar-month-year > ion-item');
20
20
  await pickerButton.click();
21
21
  await page.waitForChanges();
22
22
  await expect(datetimeFooter).not.toBeVisible();
@@ -46,7 +46,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config, scree
46
46
  const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab';
47
47
  await page.waitForSelector('.datetime-ready');
48
48
  const calendarMonthYear = page.locator('ion-datetime .calendar-month-year');
49
- const monthYearButton = page.locator('.calendar-month-year-toggle');
49
+ const monthYearButton = page.locator('.calendar-month-year ion-item');
50
50
  await expect(calendarMonthYear).toHaveText('February 2022');
51
51
  await page.keyboard.press(tabKey);
52
52
  await expect(monthYearButton).toBeFocused();
@@ -75,7 +75,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config, scree
75
75
  `, config);
76
76
  const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab';
77
77
  const datetime = page.locator('ion-datetime');
78
- const monthYearButton = page.locator('.calendar-month-year-toggle');
78
+ const monthYearButton = page.locator('.calendar-month-year ion-item');
79
79
  const prevButton = page.locator('.calendar-next-prev ion-button:nth-child(1)');
80
80
  const nextButton = page.locator('.calendar-next-prev ion-button:nth-child(2)');
81
81
  const calendarMonthYear = page.locator('ion-datetime .calendar-month-year');
@@ -4,7 +4,6 @@
4
4
  import { Host, h } from "@stencil/core";
5
5
  import { raf } from "../../utils/helpers";
6
6
  import { createLockController } from "../../utils/lock-controller";
7
- import { printIonWarning } from "../../utils/logging/index";
8
7
  import { createDelegateController, createTriggerController, BACKDROP, dismiss, eventMethod, isCancel, prepareOverlay, present, safeCall, setOverlayId, } from "../../utils/overlays";
9
8
  import { getClassMap } from "../../utils/theme";
10
9
  import { getIonMode } from "../../global/ionic-global";
@@ -72,7 +71,6 @@ export class Picker {
72
71
  setOverlayId(this.el);
73
72
  }
74
73
  componentDidLoad() {
75
- printIonWarning('ion-picker-legacy and ion-picker-legacy-column have been deprecated in favor of new versions of the ion-picker and ion-picker-column components. These new components display inline with your page content allowing for more presentation flexibility than before.', this.el);
76
74
  /**
77
75
  * If picker was rendered with isOpen="true"
78
76
  * then we should open picker immediately.
@@ -176,9 +174,9 @@ export class Picker {
176
174
  zIndex: `${20000 + this.overlayIndex}`,
177
175
  }, class: Object.assign({ [mode]: true,
178
176
  // Used internally for styling
179
- [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), h("ion-backdrop", { visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { tabindex: "0" }), h("div", { class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, h("div", { class: "picker-toolbar" }, this.buttons.map((b) => (h("div", { class: buttonWrapperClass(b) }, h("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass(b) }, b.text))))), h("div", { class: "picker-columns" }, h("div", { class: "picker-above-highlight" }), this.presented && this.columns.map((c) => h("ion-picker-legacy-column", { col: c })), h("div", { class: "picker-below-highlight" }))), h("div", { tabindex: "0" })));
177
+ [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), h("ion-backdrop", { visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { tabindex: "0" }), h("div", { class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, h("div", { class: "picker-toolbar" }, this.buttons.map((b) => (h("div", { class: buttonWrapperClass(b) }, h("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass(b) }, b.text))))), h("div", { class: "picker-columns" }, h("div", { class: "picker-above-highlight" }), this.presented && this.columns.map((c) => h("ion-picker-column", { col: c })), h("div", { class: "picker-below-highlight" }))), h("div", { tabindex: "0" })));
180
178
  }
181
- static get is() { return "ion-picker-legacy"; }
179
+ static get is() { return "ion-picker"; }
182
180
  static get encapsulation() { return "scoped"; }
183
181
  static get originalStyleUrls() {
184
182
  return {
@@ -329,7 +327,7 @@ export class Picker {
329
327
  "PickerButton": {
330
328
  "location": "import",
331
329
  "path": "./picker-interface",
332
- "id": "src/components/picker-legacy/picker-interface.ts::PickerButton"
330
+ "id": "src/components/picker/picker-interface.ts::PickerButton"
333
331
  }
334
332
  }
335
333
  },
@@ -351,7 +349,7 @@ export class Picker {
351
349
  "PickerColumn": {
352
350
  "location": "import",
353
351
  "path": "./picker-interface",
354
- "id": "src/components/picker-legacy/picker-interface.ts::PickerColumn"
352
+ "id": "src/components/picker/picker-interface.ts::PickerColumn"
355
353
  }
356
354
  }
357
355
  },
@@ -780,7 +778,7 @@ export class Picker {
780
778
  "PickerColumn": {
781
779
  "location": "import",
782
780
  "path": "./picker-interface",
783
- "id": "src/components/picker-legacy/picker-interface.ts::PickerColumn"
781
+ "id": "src/components/picker/picker-interface.ts::PickerColumn"
784
782
  }
785
783
  },
786
784
  "return": "Promise<PickerColumn | undefined>"
@@ -6,7 +6,7 @@ import { configs, test } from "../../../../utils/test/playwright/index";
6
6
  configs().forEach(({ title, screenshot, config }) => {
7
7
  test.describe(title('picker: basic'), () => {
8
8
  test('should not have visual regressions', async ({ page }) => {
9
- await page.goto('/src/components/picker-legacy/test/basic', config);
9
+ await page.goto('/src/components/picker/test/basic', config);
10
10
  const didPresent = await page.spyOnEvent('ionPickerDidPresent');
11
11
  const didDismiss = await page.spyOnEvent('ionPickerDidDismiss');
12
12
  await page.click('#basic');
@@ -14,7 +14,7 @@ configs().forEach(({ title, screenshot, config }) => {
14
14
  await page.waitForChanges();
15
15
  await expect(page).toHaveScreenshot(screenshot(`picker-basic`));
16
16
  await page.click('.picker-opt:nth-child(2)');
17
- await page.click('ion-picker-legacy .save-btn');
17
+ await page.click('ion-picker .save-btn');
18
18
  await didDismiss.next();
19
19
  await page.click('#basic');
20
20
  await didPresent.next();
@@ -9,10 +9,10 @@ import { configs, test } from "../../../../utils/test/playwright/index";
9
9
  configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
10
10
  test.describe(title('picker: isOpen'), () => {
11
11
  test('should open and close the picker', async ({ page }) => {
12
- await page.goto('/src/components/picker-legacy/test/is-open', config);
12
+ await page.goto('/src/components/picker/test/is-open', config);
13
13
  const ionPickerDidPresent = await page.spyOnEvent('ionPickerDidPresent');
14
14
  const ionPickerDidDismiss = await page.spyOnEvent('ionPickerDidDismiss');
15
- const picker = page.locator('ion-picker-legacy');
15
+ const picker = page.locator('ion-picker');
16
16
  await page.click('#default');
17
17
  await ionPickerDidPresent.next();
18
18
  await expect(picker).toBeVisible();
@@ -21,8 +21,8 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
21
21
  await expect(picker).toBeHidden();
22
22
  });
23
23
  test('should open if isOpen is true on load', async ({ page }) => {
24
- await page.setContent('<ion-picker-legacy is-open="true"></ion-picker-legacy>', config);
25
- await expect(page.locator('ion-picker-legacy')).toBeVisible();
24
+ await page.setContent('<ion-picker is-open="true"></ion-picker>', config);
25
+ await expect(page.locator('ion-picker')).toBeVisible();
26
26
  });
27
27
  });
28
28
  });
@@ -6,27 +6,27 @@ import { Picker } from "../picker";
6
6
  it('picker should be assigned an incrementing id', async () => {
7
7
  const page = await newSpecPage({
8
8
  components: [Picker],
9
- html: `<ion-picker-legacy is-open="true"></ion-picker-legacy>`,
9
+ html: `<ion-picker is-open="true"></ion-picker>`,
10
10
  });
11
11
  let picker;
12
- picker = page.body.querySelector('ion-picker-legacy');
12
+ picker = page.body.querySelector('ion-picker');
13
13
  expect(picker).not.toBe(null);
14
14
  expect(picker.getAttribute('id')).toBe('ion-overlay-1');
15
15
  // Remove the picker from the DOM
16
16
  picker.remove();
17
17
  await page.waitForChanges();
18
18
  // Create a new picker to verify the id is incremented
19
- picker = document.createElement('ion-picker-legacy');
19
+ picker = document.createElement('ion-picker');
20
20
  picker.isOpen = true;
21
21
  page.body.appendChild(picker);
22
22
  await page.waitForChanges();
23
- picker = page.body.querySelector('ion-picker-legacy');
23
+ picker = page.body.querySelector('ion-picker');
24
24
  expect(picker.getAttribute('id')).toBe('ion-overlay-2');
25
25
  // Presenting the same picker again should reuse the existing id
26
26
  picker.isOpen = false;
27
27
  await page.waitForChanges();
28
28
  picker.isOpen = true;
29
29
  await page.waitForChanges();
30
- picker = page.body.querySelector('ion-picker-legacy');
30
+ picker = page.body.querySelector('ion-picker');
31
31
  expect(picker.getAttribute('id')).toBe('ion-overlay-2');
32
32
  });
@@ -9,7 +9,7 @@ import { configs, test } from "../../../../utils/test/playwright/index";
9
9
  configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
10
10
  test.describe(title('picker: trigger'), () => {
11
11
  test.beforeEach(async ({ page }) => {
12
- await page.goto('/src/components/picker-legacy/test/trigger', config);
12
+ await page.goto('/src/components/picker/test/trigger', config);
13
13
  });
14
14
  test('should open the picker', async ({ page }) => {
15
15
  const ionPickerDidPresent = await page.spyOnEvent('ionPickerDidPresent');
@@ -340,7 +340,7 @@ export class PickerColumnCmp {
340
340
  'max-width': this.col.columnWidth,
341
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
342
  }
343
- static get is() { return "ion-picker-legacy-column"; }
343
+ static get is() { return "ion-picker-column"; }
344
344
  static get originalStyleUrls() {
345
345
  return {
346
346
  "ios": ["picker-column.ios.scss"],
@@ -364,8 +364,8 @@ export class PickerColumnCmp {
364
364
  "references": {
365
365
  "PickerColumn": {
366
366
  "location": "import",
367
- "path": "../picker-legacy/picker-interface",
368
- "id": "src/components/picker-legacy/picker-interface.ts::PickerColumn"
367
+ "path": "../picker/picker-interface",
368
+ "id": "src/components/picker/picker-interface.ts::PickerColumn"
369
369
  }
370
370
  }
371
371
  },
@@ -398,8 +398,8 @@ export class PickerColumnCmp {
398
398
  "references": {
399
399
  "PickerColumn": {
400
400
  "location": "import",
401
- "path": "../picker-legacy/picker-interface",
402
- "id": "src/components/picker-legacy/picker-interface.ts::PickerColumn"
401
+ "path": "../picker/picker-interface",
402
+ "id": "src/components/picker/picker-interface.ts::PickerColumn"
403
403
  }
404
404
  }
405
405
  }
@@ -25,10 +25,10 @@ describe('picker-column', () => {
25
25
  };
26
26
  const page = await newSpecPage({
27
27
  components: [PickerColumnCmp],
28
- template: () => h("ion-picker-legacy-column", { col: col }),
28
+ template: () => h("ion-picker-column", { col: col }),
29
29
  });
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)');
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)');
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-legacy-column", { col: { options: defaultOptions, name: 'animals' } })),
18
+ template: () => h("ion-picker-column", { col: { options: defaultOptions, name: 'animals' } }),
19
19
  });
20
- const pickerCol = page.body.querySelector('ion-picker-legacy-column');
20
+ const pickerCol = page.body.querySelector('ion-picker-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-legacy-column", { col: col }),
12
+ template: () => h("ion-picker-column", { col: col }),
13
13
  });
14
- const pickerCol = page.body.querySelector('ion-picker-legacy-column');
14
+ const pickerCol = page.body.querySelector('ion-picker-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-legacy-column/test/standalone`, config);
9
+ await page.goto(`/src/components/picker-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-legacy');
13
+ const picker = page.locator('ion-picker');
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-legacy-column');
25
+ const column = page.locator('ion-picker-column');
26
26
  const secondOption = column.locator('.picker-opt').nth(1);
27
27
  await page.click('#single-column-button');
28
28
  await ionPickerDidPresent.next();