@ionic/core 8.8.18 → 8.8.19-dev.11786730389.1a1927bf

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 (786) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-accordion-group.js +1 -1
  3. package/components/ion-accordion.js +1 -1
  4. package/components/ion-action-sheet.js +1 -1
  5. package/components/ion-alert.js +1 -1
  6. package/components/ion-app.js +1 -1
  7. package/components/ion-avatar.js +1 -1
  8. package/components/ion-back-button.js +1 -1
  9. package/components/ion-backdrop.js +1 -1
  10. package/components/ion-badge.js +1 -1
  11. package/components/ion-breadcrumb.js +1 -1
  12. package/components/ion-breadcrumbs.js +1 -1
  13. package/components/ion-button.js +1 -1
  14. package/components/ion-buttons.js +1 -1
  15. package/components/ion-card-content.js +1 -1
  16. package/components/ion-card-header.js +1 -1
  17. package/components/ion-card-subtitle.js +1 -1
  18. package/components/ion-card-title.js +1 -1
  19. package/components/ion-card.js +1 -1
  20. package/components/ion-checkbox.js +1 -1
  21. package/components/ion-chip.js +1 -1
  22. package/components/ion-col.js +1 -1
  23. package/components/ion-content.js +1 -1
  24. package/components/ion-datetime-button.js +1 -1
  25. package/components/ion-datetime.js +1 -1
  26. package/components/ion-fab-button.js +1 -1
  27. package/components/ion-fab-list.js +1 -1
  28. package/components/ion-fab.js +1 -1
  29. package/components/ion-footer.js +1 -1
  30. package/components/ion-grid.js +1 -1
  31. package/components/ion-header.js +1 -1
  32. package/components/ion-icon.js +1 -1
  33. package/components/ion-img.js +1 -1
  34. package/components/ion-infinite-scroll-content.js +1 -1
  35. package/components/ion-infinite-scroll.js +1 -1
  36. package/components/ion-input-otp.js +1 -1
  37. package/components/ion-input-password-toggle.js +1 -1
  38. package/components/ion-input.js +1 -1
  39. package/components/ion-item-divider.js +1 -1
  40. package/components/ion-item-group.js +1 -1
  41. package/components/ion-item-option.js +1 -1
  42. package/components/ion-item-options.js +1 -1
  43. package/components/ion-item-sliding.js +1 -1
  44. package/components/ion-item.js +1 -1
  45. package/components/ion-label.js +1 -1
  46. package/components/ion-list-header.js +1 -1
  47. package/components/ion-list.js +1 -1
  48. package/components/ion-loading.js +1 -1
  49. package/components/ion-menu-button.js +1 -1
  50. package/components/ion-menu-toggle.js +1 -1
  51. package/components/ion-menu.js +1 -1
  52. package/components/ion-modal.js +1 -1
  53. package/components/ion-nav-link.js +1 -1
  54. package/components/ion-nav.js +1 -1
  55. package/components/ion-note.js +1 -1
  56. package/components/ion-picker-column-option.js +1 -1
  57. package/components/ion-picker-column.js +1 -1
  58. package/components/ion-picker.js +1 -1
  59. package/components/ion-popover.js +1 -1
  60. package/components/ion-progress-bar.js +1 -1
  61. package/components/ion-radio-group.js +1 -1
  62. package/components/ion-radio.js +1 -1
  63. package/components/ion-range.js +1 -1
  64. package/components/ion-refresher-content.js +1 -1
  65. package/components/ion-refresher.js +1 -1
  66. package/components/ion-reorder-group.js +1 -1
  67. package/components/ion-reorder.js +1 -1
  68. package/components/ion-ripple-effect.js +1 -1
  69. package/components/ion-route-redirect.js +1 -1
  70. package/components/ion-route.js +1 -1
  71. package/components/ion-router-link.js +1 -1
  72. package/components/ion-router-outlet.js +1 -1
  73. package/components/ion-router.js +1 -1
  74. package/components/ion-row.js +1 -1
  75. package/components/ion-searchbar.js +1 -1
  76. package/components/ion-segment-button.js +1 -1
  77. package/components/ion-segment-content.js +1 -1
  78. package/components/ion-segment-view.js +1 -1
  79. package/components/ion-segment.js +1 -1
  80. package/components/ion-select-modal.js +1 -1
  81. package/components/ion-select-option.js +1 -1
  82. package/components/ion-select-popover.js +1 -1
  83. package/components/ion-select.js +1 -1
  84. package/components/ion-skeleton-text.js +1 -1
  85. package/components/ion-spinner.js +1 -1
  86. package/components/ion-split-pane.js +1 -1
  87. package/components/ion-tab-bar.js +1 -1
  88. package/components/ion-tab-button.js +1 -1
  89. package/components/ion-tab.js +1 -1
  90. package/components/ion-tabs.js +1 -1
  91. package/components/ion-text.js +1 -1
  92. package/components/ion-textarea.js +1 -1
  93. package/components/ion-thumbnail.js +1 -1
  94. package/components/ion-title.js +1 -1
  95. package/components/ion-toast.js +1 -1
  96. package/components/ion-toggle.js +1 -1
  97. package/components/ion-toolbar.js +1 -1
  98. package/components/p-0Pyit076.js +4 -0
  99. package/components/{p-C_hpsif8.js → p-30_sZS2V.js} +1 -1
  100. package/components/p-83oP9gzn.js +4 -0
  101. package/components/p-8FN7p701.js +4 -0
  102. package/components/p-B-FxiyeI.js +4 -0
  103. package/components/p-B6dUPQXq.js +4 -0
  104. package/components/p-BMPN55of.js +4 -0
  105. package/components/p-BMS4t-kJ.js +4 -0
  106. package/components/p-BO4sUqUv.js +4 -0
  107. package/components/p-BSQPZ79H.js +4 -0
  108. package/components/p-Bc4wROfM.js +4 -0
  109. package/components/p-BhamHSw3.js +4 -0
  110. package/components/{p-D3xo7hqU.js → p-BpG8kBfD.js} +1 -1
  111. package/components/p-BqPNzJf6.js +4 -0
  112. package/components/p-BsVxQGUT.js +4 -0
  113. package/components/p-BxUIQcD9.js +4 -0
  114. package/components/p-C1O9GEug.js +4 -0
  115. package/components/p-C5KYjZWD.js +4 -0
  116. package/components/p-C9BGR5fy.js +4 -0
  117. package/components/p-CD4fmpem.js +4 -0
  118. package/components/p-CEW4RXZO.js +4 -0
  119. package/components/p-CKhiNOEg.js +4 -0
  120. package/components/p-CO2zzh3W.js +4 -0
  121. package/components/p-CVnwvOBD.js +4 -0
  122. package/components/p-CbhUdtjf.js +4 -0
  123. package/components/p-CejmQs3h.js +4 -0
  124. package/components/p-CfnGxjv-.js +4 -0
  125. package/components/p-ClFYbgND.js +4 -0
  126. package/components/p-CmKf4pgI.js +4 -0
  127. package/components/p-Cs5f-uOS.js +4 -0
  128. package/components/p-D7-vHX0A.js +4 -0
  129. package/{dist/ionic/p-DC3RagnA.js → components/p-DIgGHN7D.js} +1 -1
  130. package/components/p-DRfgH82D.js +4 -0
  131. package/components/p-DTY4otpr.js +4 -0
  132. package/components/{p--JUspHvy.js → p-DV85C0e0.js} +1 -1
  133. package/components/p-DVKS-ovH.js +4 -0
  134. package/components/p-DWCzVL3Y.js +4 -0
  135. package/components/p-D_XD0pVT.js +4 -0
  136. package/components/p-Dd8ajo9a.js +4 -0
  137. package/components/p-DdnhY_oj.js +4 -0
  138. package/components/p-Dm7h4Nyv.js +4 -0
  139. package/components/{p-BkKAANMJ.js → p-DwpKZ6rl.js} +1 -1
  140. package/components/p-DyePCNGr.js +4 -0
  141. package/components/p-G0TxqHfe.js +4 -0
  142. package/components/{p-ChIZKXUu.js → p-J-p0EtHR.js} +1 -1
  143. package/components/p-LXu5-6Ti.js +4 -0
  144. package/components/p-MCJ7HjWe.js +4 -0
  145. package/components/p-Obm7si-x.js +4 -0
  146. package/components/p-TXPDHL13.js +4 -0
  147. package/components/p-UuPYCOZE.js +4 -0
  148. package/components/p-WeeS7GvC.js +4 -0
  149. package/components/{p-D7uN07a3.js → p-_0JhwClE.js} +1 -1
  150. package/components/p-_IKFD3ID.js +4 -0
  151. package/components/p-byZM6qHV.js +4 -0
  152. package/components/p-hh7qIC-X.js +4 -0
  153. package/components/p-idq4JFo2.js +4 -0
  154. package/components/{p-DqLB8yFQ.js → p-ryyf_ItD.js} +1 -1
  155. package/components/p-tYCT3JGl.js +4 -0
  156. package/components/p-wzAhIh03.js +4 -0
  157. package/components/p-xOjr4bwc.js +4 -0
  158. package/components/p-yuj4Nkm_.js +4 -0
  159. package/dist/cjs/{animation-Ch16T-Nb.js → animation-C0mOHzej.js} +4 -4
  160. package/dist/cjs/{app-globals-Dd89e0MR.js → app-globals-BREG4twP.js} +1 -1
  161. package/dist/cjs/{button-active-COnxOe4X.js → button-active-BKj1rdFx.js} +3 -3
  162. package/dist/cjs/config-CjUbvdPW.js +36 -0
  163. package/dist/cjs/{dir-Cn0z1rJH.js → dir-Brx7VkvP.js} +1 -1
  164. package/dist/cjs/{format-BUFWn4Bn.js → format-pp0Du3K-.js} +40 -30
  165. package/dist/cjs/{framework-delegate-BgU6U9Ez.js → framework-delegate-NTLQ5YzV.js} +5 -7
  166. package/dist/cjs/{gesture-controller-dtqlP_q4.js → gesture-controller-BDUH7687.js} +15 -8
  167. package/dist/cjs/{haptic-ClPPQ_PS.js → haptic-Ch-X4gRx.js} +2 -3
  168. package/dist/cjs/{hardware-back-button-CXmUnTJC.js → hardware-back-button-fqpYh-kd.js} +4 -4
  169. package/dist/cjs/{helpers-gntk8bfm.js → helpers-CaLhEmTE.js} +3 -3
  170. package/dist/cjs/index-B7zJsYWS.js +429 -0
  171. package/dist/cjs/{index-BhhuJ1Yx.js → index-BlshL9ib.js} +2 -2
  172. package/dist/cjs/{index-BS2uhvhT.js → index-Ck9advCT.js} +5 -5
  173. package/dist/cjs/{index-ooS8B4p9.js → index-D2X6b92x.js} +6 -7
  174. package/dist/cjs/{index-BiRrzGDi.js → index-D48vawBq.js} +2 -2
  175. package/dist/cjs/{index-CAvQ7Tka.js → index-P1nQxrpZ.js} +10 -4
  176. package/dist/cjs/{index-BfaXsATC.js → index-uvry__L4.js} +31 -14
  177. package/dist/cjs/{index-DqmRDbxg.js → index-wOmugbdg.js} +1 -1
  178. package/dist/cjs/index.cjs.js +18 -18
  179. package/dist/cjs/{input-shims-Bn1cXfCM.js → input-shims-DvHAFqiP.js} +9 -11
  180. package/dist/cjs/{input.utils-BwhxZooW.js → input.utils-CP4fzrqk.js} +3 -4
  181. package/dist/cjs/ion-accordion_2.cjs.entry.js +368 -340
  182. package/dist/cjs/ion-action-sheet.cjs.entry.js +187 -76
  183. package/dist/cjs/ion-alert.cjs.entry.js +273 -111
  184. package/dist/cjs/ion-app_8.cjs.entry.js +307 -190
  185. package/dist/cjs/ion-avatar_3.cjs.entry.js +10 -4
  186. package/dist/cjs/ion-back-button.cjs.entry.js +47 -23
  187. package/dist/cjs/ion-backdrop.cjs.entry.js +18 -14
  188. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +199 -121
  189. package/dist/cjs/ion-button_2.cjs.entry.js +138 -66
  190. package/dist/cjs/ion-card_5.cjs.entry.js +82 -30
  191. package/dist/cjs/ion-checkbox.cjs.entry.js +152 -101
  192. package/dist/cjs/ion-chip.cjs.entry.js +17 -11
  193. package/dist/cjs/ion-col_3.cjs.entry.js +134 -10
  194. package/dist/cjs/ion-datetime-button.cjs.entry.js +253 -241
  195. package/dist/cjs/ion-datetime.cjs.entry.js +2770 -0
  196. package/dist/cjs/ion-fab_3.cjs.entry.js +139 -81
  197. package/dist/cjs/ion-img.cjs.entry.js +34 -12
  198. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +100 -72
  199. package/dist/cjs/ion-input-otp.cjs.entry.js +433 -370
  200. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +33 -19
  201. package/dist/cjs/ion-input.cjs.entry.js +314 -168
  202. package/dist/cjs/ion-item-option_3.cjs.entry.js +91 -51
  203. package/dist/cjs/ion-item_8.cjs.entry.js +181 -82
  204. package/dist/cjs/ion-loading.cjs.entry.js +146 -60
  205. package/dist/cjs/ion-menu_3.cjs.entry.js +163 -101
  206. package/dist/cjs/ion-modal.cjs.entry.js +455 -261
  207. package/dist/cjs/ion-nav_2.cjs.entry.js +100 -157
  208. package/dist/cjs/ion-picker-column-option.cjs.entry.js +37 -33
  209. package/dist/cjs/ion-picker-column.cjs.entry.js +417 -405
  210. package/dist/cjs/ion-picker.cjs.entry.js +401 -392
  211. package/dist/cjs/ion-popover.cjs.entry.js +319 -205
  212. package/dist/cjs/ion-progress-bar.cjs.entry.js +31 -25
  213. package/dist/cjs/ion-radio_2.cjs.entry.js +206 -133
  214. package/dist/cjs/ion-range.cjs.entry.js +302 -237
  215. package/dist/cjs/ion-refresher_2.cjs.entry.js +165 -93
  216. package/dist/cjs/ion-reorder_2.cjs.entry.js +53 -23
  217. package/dist/cjs/ion-ripple-effect.cjs.entry.js +14 -14
  218. package/dist/cjs/ion-route_4.cjs.entry.js +175 -71
  219. package/dist/cjs/ion-searchbar.cjs.entry.js +291 -200
  220. package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
  221. package/dist/cjs/ion-segment-view.cjs.entry.js +28 -17
  222. package/dist/cjs/ion-segment_2.cjs.entry.js +169 -126
  223. package/dist/cjs/ion-select-modal.cjs.entry.js +104 -48
  224. package/dist/cjs/ion-select_3.cjs.entry.js +759 -214
  225. package/dist/cjs/ion-spinner.cjs.entry.js +24 -10
  226. package/dist/cjs/ion-split-pane.cjs.entry.js +29 -16
  227. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +100 -41
  228. package/dist/cjs/ion-tab_2.cjs.entry.js +53 -27
  229. package/dist/cjs/ion-text.cjs.entry.js +11 -5
  230. package/dist/cjs/ion-textarea.cjs.entry.js +263 -144
  231. package/dist/cjs/ion-toast.cjs.entry.js +236 -117
  232. package/dist/cjs/ion-toggle.cjs.entry.js +175 -122
  233. package/dist/cjs/{ionic-global-BerQGEpE.js → ionic-global-k6hOWWpn.js} +13 -8
  234. package/dist/cjs/ionic.cjs.js +4 -4
  235. package/dist/cjs/{ios.transition-IMJRwn29.js → ios.transition-KvuRAe2W.js} +13 -17
  236. package/dist/cjs/{item-multiple-inputs-jOJZE_I0.js → item-multiple-inputs-BdYSbfKN.js} +1 -1
  237. package/dist/cjs/{keyboard-hHzlEQpk.js → keyboard-Cix5TVkD.js} +2 -2
  238. package/dist/cjs/{keyboard-UuAS4D_9.js → keyboard-cHxZlTyz.js} +2 -2
  239. package/dist/cjs/{keyboard-controller-GXBiBRKS.js → keyboard-controller-PtZoN2GS.js} +6 -6
  240. package/dist/cjs/loader.cjs.js +4 -4
  241. package/dist/cjs/{md.transition-CgQZxcoT.js → md.transition-Bjl5Ozph.js} +7 -8
  242. package/dist/cjs/{notch-controller-_SwR025y.js → notch-controller-BEUpEgb5.js} +1 -1
  243. package/dist/cjs/overlay-control-label-D2sdL2O8.js +50 -0
  244. package/dist/cjs/{overlays-DuSEMhIW.js → overlays-IlP4H2Gn.js} +48 -33
  245. package/dist/cjs/select-option-render-pULCGldr.js +123 -0
  246. package/dist/cjs/{status-tap-CSvBT7FV.js → status-tap-BR_ujYHg.js} +3 -3
  247. package/dist/cjs/{swipe-back-CuIiziaa.js → swipe-back-DzQKEl5g.js} +5 -5
  248. package/dist/cjs/{theme-CeDs6Hcv.js → theme-Bw0rpaNN.js} +6 -1
  249. package/dist/collection/collection-manifest.json +6 -10
  250. package/dist/collection/components/accordion/accordion.js +315 -312
  251. package/dist/collection/components/accordion-group/accordion-group.js +48 -25
  252. package/dist/collection/components/action-sheet/action-sheet.ios.css +228 -2
  253. package/dist/collection/components/action-sheet/action-sheet.js +173 -64
  254. package/dist/collection/components/action-sheet/action-sheet.md.css +174 -2
  255. package/dist/collection/components/action-sheet/test/basic/fixture.js +3 -0
  256. package/dist/collection/components/alert/alert.ios.css +279 -10
  257. package/dist/collection/components/alert/alert.js +257 -97
  258. package/dist/collection/components/alert/alert.md.css +268 -20
  259. package/dist/collection/components/app/app.js +3 -0
  260. package/dist/collection/components/back-button/back-button.js +42 -19
  261. package/dist/collection/components/backdrop/backdrop.js +16 -14
  262. package/dist/collection/components/badge/badge.js +6 -0
  263. package/dist/collection/components/breadcrumb/breadcrumb.js +91 -30
  264. package/dist/collection/components/breadcrumbs/breadcrumbs.js +103 -88
  265. package/dist/collection/components/button/button.js +132 -61
  266. package/dist/collection/components/buttons/buttons.js +13 -15
  267. package/dist/collection/components/card/card.js +54 -21
  268. package/dist/collection/components/card-header/card-header.js +12 -8
  269. package/dist/collection/components/card-subtitle/card-subtitle.js +6 -0
  270. package/dist/collection/components/card-title/card-title.js +6 -0
  271. package/dist/collection/components/checkbox/checkbox.js +147 -97
  272. package/dist/collection/components/chip/chip.js +14 -10
  273. package/dist/collection/components/col/col.js +127 -3
  274. package/dist/collection/components/content/content.js +93 -64
  275. package/dist/collection/components/datetime/datetime.ios.css +42 -2
  276. package/dist/collection/components/datetime/datetime.js +1042 -807
  277. package/dist/collection/components/datetime/datetime.md.css +42 -1
  278. package/dist/collection/components/datetime/utils/data.js +13 -14
  279. package/dist/collection/components/datetime/utils/format.js +21 -11
  280. package/dist/collection/components/datetime/utils/manipulation.js +8 -8
  281. package/dist/collection/components/datetime/utils/parse.js +10 -10
  282. package/dist/collection/components/datetime/utils/state.js +8 -2
  283. package/dist/collection/components/datetime/utils/validate.js +4 -5
  284. package/dist/collection/components/datetime-button/datetime-button.ios.css +5 -0
  285. package/dist/collection/components/datetime-button/datetime-button.js +247 -237
  286. package/dist/collection/components/datetime-button/datetime-button.md.css +5 -0
  287. package/dist/collection/components/fab/fab.js +20 -13
  288. package/dist/collection/components/fab-button/fab-button.js +104 -55
  289. package/dist/collection/components/fab-list/fab-list.js +10 -11
  290. package/dist/collection/components/footer/footer.js +50 -44
  291. package/dist/collection/components/grid/grid.js +4 -6
  292. package/dist/collection/components/header/header.js +35 -25
  293. package/dist/collection/components/img/img.js +34 -10
  294. package/dist/collection/components/infinite-scroll/infinite-scroll.js +73 -66
  295. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +20 -3
  296. package/dist/collection/components/input/input.ios.css +1 -2
  297. package/dist/collection/components/input/input.js +309 -164
  298. package/dist/collection/components/input/input.md.css +1 -2
  299. package/dist/collection/components/input-otp/input-otp.js +428 -366
  300. package/dist/collection/components/input-password-toggle/input-password-toggle.js +29 -16
  301. package/dist/collection/components/item/item.js +99 -53
  302. package/dist/collection/components/item-divider/item-divider.js +15 -10
  303. package/dist/collection/components/item-option/item-option.js +49 -21
  304. package/dist/collection/components/item-options/item-options.js +10 -7
  305. package/dist/collection/components/item-sliding/item-sliding.js +26 -20
  306. package/dist/collection/components/label/label.js +24 -4
  307. package/dist/collection/components/list/list.js +10 -7
  308. package/dist/collection/components/list-header/list-header.js +10 -0
  309. package/dist/collection/components/loading/loading.js +135 -51
  310. package/dist/collection/components/menu/menu.js +101 -59
  311. package/dist/collection/components/menu-button/menu-button.js +29 -20
  312. package/dist/collection/components/menu-toggle/menu-toggle.js +20 -13
  313. package/dist/collection/components/modal/animations/ios.enter.js +1 -1
  314. package/dist/collection/components/modal/animations/md.enter.js +1 -1
  315. package/dist/collection/components/modal/gestures/sheet.js +22 -10
  316. package/dist/collection/components/modal/gestures/swipe-to-close.js +15 -3
  317. package/dist/collection/components/modal/modal.js +398 -228
  318. package/dist/collection/components/modal/safe-area-utils.js +6 -7
  319. package/dist/collection/components/modal/test/fixtures.js +3 -0
  320. package/dist/collection/components/nav/nav.js +69 -247
  321. package/dist/collection/components/nav/view-controller.js +7 -1
  322. package/dist/collection/components/nav-link/nav-link.js +20 -9
  323. package/dist/collection/components/note/note.js +6 -0
  324. package/dist/collection/components/picker/picker.js +398 -390
  325. package/dist/collection/components/picker-column/picker-column.css +3 -0
  326. package/dist/collection/components/picker-column/picker-column.js +414 -404
  327. package/dist/collection/components/picker-column-option/picker-column-option.js +33 -31
  328. package/dist/collection/components/picker-column-option/picker-column-option.md.css +6 -1
  329. package/dist/collection/components/popover/animations/ios.enter.js +1 -2
  330. package/dist/collection/components/popover/animations/md.enter.js +1 -2
  331. package/dist/collection/components/popover/popover.ios.css +15 -0
  332. package/dist/collection/components/popover/popover.js +302 -185
  333. package/dist/collection/components/popover/popover.md.css +15 -0
  334. package/dist/collection/components/popover/test/fixture.js +1 -0
  335. package/dist/collection/components/popover/utils.js +4 -6
  336. package/dist/collection/components/progress-bar/progress-bar.js +27 -23
  337. package/dist/collection/components/radio/radio.js +102 -66
  338. package/dist/collection/components/radio-group/radio-group.js +100 -65
  339. package/dist/collection/components/radio-group/test/fixtures.js +2 -0
  340. package/dist/collection/components/range/range.js +296 -232
  341. package/dist/collection/components/refresher/refresher.js +110 -78
  342. package/dist/collection/components/refresher-content/refresher-content.js +41 -4
  343. package/dist/collection/components/reorder/reorder.js +2 -1
  344. package/dist/collection/components/reorder-group/reorder-group.js +44 -15
  345. package/dist/collection/components/ripple-effect/ripple-effect.js +12 -13
  346. package/dist/collection/components/route/route.js +39 -10
  347. package/dist/collection/components/route-redirect/route-redirect.js +31 -0
  348. package/dist/collection/components/router/router.js +37 -33
  349. package/dist/collection/components/router/utils/dom.js +25 -7
  350. package/dist/collection/components/router/utils/matching.js +7 -9
  351. package/dist/collection/components/router/utils/parser.js +1 -1
  352. package/dist/collection/components/router/utils/path.js +0 -1
  353. package/dist/collection/components/router-link/router-link.js +37 -12
  354. package/dist/collection/components/router-outlet/router-outlet.js +82 -21
  355. package/dist/collection/components/row/row.js +1 -1
  356. package/dist/collection/components/searchbar/searchbar.js +289 -199
  357. package/dist/collection/components/segment/segment.js +120 -85
  358. package/dist/collection/components/segment-button/segment-button.js +43 -37
  359. package/dist/collection/components/segment-content/segment-content.js +1 -1
  360. package/dist/collection/components/segment-view/segment-view.js +26 -16
  361. package/dist/collection/components/select/select.ios.css +33 -0
  362. package/dist/collection/components/select/select.js +597 -166
  363. package/dist/collection/components/select/select.md.css +33 -0
  364. package/dist/collection/components/select-modal/select-modal.ios.css +218 -0
  365. package/dist/collection/components/select-modal/select-modal.js +92 -38
  366. package/dist/collection/components/select-modal/select-modal.md.css +164 -0
  367. package/dist/collection/components/select-modal/test/fixtures.js +8 -1
  368. package/dist/collection/components/select-option/select-option.js +110 -9
  369. package/dist/collection/components/select-popover/select-popover.ios.css +218 -0
  370. package/dist/collection/components/select-popover/select-popover.js +103 -36
  371. package/dist/collection/components/select-popover/select-popover.md.css +164 -0
  372. package/dist/collection/components/select-popover/test/fixtures.js +8 -1
  373. package/dist/collection/components/skeleton-text/skeleton-text.js +12 -8
  374. package/dist/collection/components/spinner/spinner.js +21 -9
  375. package/dist/collection/components/split-pane/split-pane.js +27 -15
  376. package/dist/collection/components/tab/tab.js +17 -6
  377. package/dist/collection/components/tab-bar/tab-bar.js +32 -14
  378. package/dist/collection/components/tab-button/tab-button.js +62 -23
  379. package/dist/collection/components/tabs/tabs.js +33 -20
  380. package/dist/collection/components/text/text.js +8 -2
  381. package/dist/collection/components/textarea/textarea.js +257 -139
  382. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  383. package/dist/collection/components/title/title.js +18 -2
  384. package/dist/collection/components/toast/toast.js +223 -106
  385. package/dist/collection/components/toggle/toggle.js +167 -115
  386. package/dist/collection/components/toolbar/toolbar.js +15 -7
  387. package/dist/collection/global/config.js +4 -6
  388. package/dist/collection/global/ionic-global.js +8 -2
  389. package/dist/collection/index.js +1 -1
  390. package/dist/collection/utils/animation/animation.js +3 -3
  391. package/dist/collection/utils/config.js +5 -4
  392. package/dist/collection/utils/focus-controller/index.js +1 -1
  393. package/dist/collection/utils/focus-trap.js +3 -3
  394. package/dist/collection/utils/framework-delegate.js +4 -6
  395. package/dist/collection/utils/gesture/gesture-controller.js +15 -8
  396. package/dist/collection/utils/gesture/index.js +10 -2
  397. package/dist/collection/utils/gesture/listener.js +1 -1
  398. package/dist/collection/utils/hardware-back-button.js +3 -3
  399. package/dist/collection/utils/helpers.js +2 -2
  400. package/dist/collection/utils/input-shims/hacks/scroll-assist.js +4 -5
  401. package/dist/collection/utils/input-shims/hacks/scroll-data.js +1 -2
  402. package/dist/collection/utils/keyboard/keyboard-controller.js +5 -5
  403. package/dist/collection/utils/keyboard/keyboard.js +1 -1
  404. package/dist/collection/utils/logging/index.js +23 -4
  405. package/dist/collection/utils/menu-controller/index.js +1 -2
  406. package/dist/collection/utils/native/haptic.js +2 -3
  407. package/dist/collection/utils/native/keyboard.js +2 -2
  408. package/dist/collection/utils/native/status-bar.js +1 -1
  409. package/dist/collection/utils/overlay-control-label.js +45 -0
  410. package/dist/collection/utils/overlays.js +38 -23
  411. package/dist/collection/utils/platform.js +4 -5
  412. package/dist/collection/utils/rtl/dir.js +1 -1
  413. package/dist/collection/utils/sanitization/index.js +276 -20
  414. package/dist/collection/utils/select-option-render.js +118 -0
  415. package/dist/collection/utils/slot-mutation-controller.js +1 -2
  416. package/dist/collection/utils/test/playwright/apply-keyboard-focus.js +1 -1
  417. package/dist/collection/utils/test/playwright/drag-element.js +2 -3
  418. package/dist/collection/utils/test/playwright/generator.js +3 -4
  419. package/dist/collection/utils/test/playwright/page/event-spy.js +11 -12
  420. package/dist/collection/utils/test/playwright/page/utils/goto.js +4 -5
  421. package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
  422. package/dist/collection/utils/test/playwright/page/utils/set-ion-viewport.js +2 -3
  423. package/dist/collection/utils/test/press-keys.js +10 -17
  424. package/dist/collection/utils/theme.js +6 -1
  425. package/dist/collection/utils/transition/ios.transition.js +9 -13
  426. package/dist/collection/utils/transition/md.transition.js +3 -4
  427. package/dist/docs.json +557 -1273
  428. package/dist/esm/{animation-DLJpuoEz.js → animation-CGFdmGk9.js} +4 -4
  429. package/dist/esm/{app-globals-D0C5S4hU.js → app-globals-CYmMeGdU.js} +1 -1
  430. package/dist/esm/{button-active-BSpTQmS9.js → button-active--80YqSHA.js} +3 -3
  431. package/dist/esm/config-DWCzVL3Y.js +32 -0
  432. package/dist/esm/{dir-C53feagD.js → dir-B-FxiyeI.js} +1 -1
  433. package/dist/esm/{format-CAmvpAez.js → format-Dcwga61t.js} +41 -31
  434. package/dist/esm/{framework-delegate-FnPGymXL.js → framework-delegate--ajhSeKH.js} +5 -7
  435. package/dist/esm/{gesture-controller-BTEOs1at.js → gesture-controller-TXPDHL13.js} +15 -8
  436. package/dist/esm/{haptic-DzAMWJuk.js → haptic-Cq4UAeka.js} +2 -3
  437. package/dist/esm/{hardware-back-button-B93Gru0Y.js → hardware-back-button-gLJHMX_F.js} +4 -4
  438. package/dist/esm/{helpers-HEqiOzXb.js → helpers-DexiPLIC.js} +3 -3
  439. package/dist/esm/{index-B_dQk_WE.js → index-8s8kZKJ7.js} +5 -5
  440. package/dist/esm/{index-BRHzoo00.js → index-BCgUwrV0.js} +2 -2
  441. package/dist/esm/{index-DV3sJJW8.js → index-BvabGprD.js} +2 -2
  442. package/dist/esm/index-CKM1DdGm.js +424 -0
  443. package/dist/esm/{index-tcQvqkiX.js → index-ChhhtsGZ.js} +32 -15
  444. package/dist/esm/{index-Q6UPU0Ay.js → index-CumkqGQF.js} +6 -7
  445. package/dist/esm/{index-CfgBF1SE.js → index-DppOcPFQ.js} +10 -4
  446. package/dist/esm/{index-Dw-wN0Ja.js → index-_Za5VB9w.js} +2 -2
  447. package/dist/esm/index.js +16 -15
  448. package/dist/esm/{input-shims-LXhI7LEx.js → input-shims-BB0AKb_k.js} +9 -11
  449. package/dist/esm/{input.utils-Y6NgW8bw.js → input.utils-J6HWocLA.js} +3 -4
  450. package/dist/esm/ion-accordion_2.entry.js +368 -340
  451. package/dist/esm/ion-action-sheet.entry.js +187 -76
  452. package/dist/esm/ion-alert.entry.js +272 -110
  453. package/dist/esm/ion-app_8.entry.js +307 -190
  454. package/dist/esm/ion-avatar_3.entry.js +10 -4
  455. package/dist/esm/ion-back-button.entry.js +47 -23
  456. package/dist/esm/ion-backdrop.entry.js +18 -14
  457. package/dist/esm/ion-breadcrumb_2.entry.js +199 -121
  458. package/dist/esm/ion-button_2.entry.js +138 -66
  459. package/dist/esm/ion-card_5.entry.js +82 -30
  460. package/dist/esm/ion-checkbox.entry.js +152 -101
  461. package/dist/esm/ion-chip.entry.js +17 -11
  462. package/dist/esm/ion-col_3.entry.js +134 -10
  463. package/dist/esm/ion-datetime-button.entry.js +253 -241
  464. package/dist/esm/ion-datetime.entry.js +2768 -0
  465. package/dist/esm/ion-fab_3.entry.js +139 -81
  466. package/dist/esm/ion-img.entry.js +34 -12
  467. package/dist/esm/ion-infinite-scroll_2.entry.js +99 -71
  468. package/dist/esm/ion-input-otp.entry.js +433 -370
  469. package/dist/esm/ion-input-password-toggle.entry.js +33 -19
  470. package/dist/esm/ion-input.entry.js +314 -168
  471. package/dist/esm/ion-item-option_3.entry.js +91 -51
  472. package/dist/esm/ion-item_8.entry.js +181 -82
  473. package/dist/esm/ion-loading.entry.js +145 -59
  474. package/dist/esm/ion-menu_3.entry.js +163 -101
  475. package/dist/esm/ion-modal.entry.js +455 -261
  476. package/dist/esm/ion-nav_2.entry.js +100 -157
  477. package/dist/esm/ion-picker-column-option.entry.js +37 -33
  478. package/dist/esm/ion-picker-column.entry.js +417 -405
  479. package/dist/esm/ion-picker.entry.js +401 -392
  480. package/dist/esm/ion-popover.entry.js +319 -205
  481. package/dist/esm/ion-progress-bar.entry.js +31 -25
  482. package/dist/esm/ion-radio_2.entry.js +206 -133
  483. package/dist/esm/ion-range.entry.js +302 -237
  484. package/dist/esm/ion-refresher_2.entry.js +163 -91
  485. package/dist/esm/ion-reorder_2.entry.js +53 -23
  486. package/dist/esm/ion-ripple-effect.entry.js +14 -14
  487. package/dist/esm/ion-route_4.entry.js +175 -71
  488. package/dist/esm/ion-searchbar.entry.js +291 -200
  489. package/dist/esm/ion-segment-content.entry.js +2 -2
  490. package/dist/esm/ion-segment-view.entry.js +28 -17
  491. package/dist/esm/ion-segment_2.entry.js +169 -126
  492. package/dist/esm/ion-select-modal.entry.js +104 -48
  493. package/dist/esm/ion-select_3.entry.js +760 -215
  494. package/dist/esm/ion-spinner.entry.js +24 -10
  495. package/dist/esm/ion-split-pane.entry.js +29 -16
  496. package/dist/esm/ion-tab-bar_2.entry.js +100 -41
  497. package/dist/esm/ion-tab_2.entry.js +53 -27
  498. package/dist/esm/ion-text.entry.js +11 -5
  499. package/dist/esm/ion-textarea.entry.js +263 -144
  500. package/dist/esm/ion-toast.entry.js +235 -116
  501. package/dist/esm/ion-toggle.entry.js +175 -122
  502. package/dist/esm/{ionic-global-Cp_eT4sZ.js → ionic-global-BVB7BrLT.js} +13 -8
  503. package/dist/esm/ionic.js +5 -5
  504. package/dist/esm/{ios.transition-ClFrsIrS.js → ios.transition-BdhybwLl.js} +13 -17
  505. package/dist/esm/{item-multiple-inputs-DlNuqNJm.js → item-multiple-inputs-rU8VaNNg.js} +1 -1
  506. package/dist/esm/{keyboard-ywgs5efA.js → keyboard-Cj8mLJeq.js} +2 -2
  507. package/dist/esm/{keyboard-CUw4ekVy.js → keyboard-DAF8GNJ9.js} +2 -2
  508. package/dist/esm/{keyboard-controller-BaaVITYt.js → keyboard-controller-DEwoa1ev.js} +6 -6
  509. package/dist/esm/loader.js +5 -5
  510. package/dist/esm/{md.transition-D0msQmzI.js → md.transition-B5lqKGCs.js} +7 -8
  511. package/dist/esm/{notch-controller-DKDjU_O7.js → notch-controller-CrUGyHYz.js} +1 -1
  512. package/dist/esm/overlay-control-label-BSQPZ79H.js +47 -0
  513. package/dist/esm/{overlays-Dg0q2_tJ.js → overlays-CjWwtvf1.js} +48 -33
  514. package/dist/esm/select-option-render-C4m76VGH.js +121 -0
  515. package/dist/esm/{status-tap-vO-6s4Yp.js → status-tap-DpLhkDWs.js} +3 -3
  516. package/dist/esm/{swipe-back-DQ1q5MgD.js → swipe-back-cz4-lyG3.js} +5 -5
  517. package/dist/esm/{theme-DiVJyqlX.js → theme-byZM6qHV.js} +6 -1
  518. package/dist/html.html-data.json +52 -80
  519. package/dist/ionic/index.esm.js +1 -1
  520. package/dist/ionic/ionic.esm.js +1 -1
  521. package/dist/ionic/p-0266b7e1.entry.js +4 -0
  522. package/dist/ionic/p-08443c08.entry.js +4 -0
  523. package/dist/ionic/p-08f1ed1c.entry.js +4 -0
  524. package/dist/ionic/p-09b47b7d.entry.js +4 -0
  525. package/dist/ionic/p-0FNc80PN.js +4 -0
  526. package/dist/ionic/p-12589d59.entry.js +4 -0
  527. package/dist/ionic/p-1d2e53e8.entry.js +4 -0
  528. package/dist/ionic/p-1edf0573.entry.js +4 -0
  529. package/dist/ionic/p-214e000a.entry.js +4 -0
  530. package/dist/ionic/p-21a7fb2a.entry.js +4 -0
  531. package/dist/ionic/p-2ce59395.entry.js +4 -0
  532. package/dist/ionic/p-33829e94.entry.js +4 -0
  533. package/dist/ionic/p-374b10cb.entry.js +4 -0
  534. package/dist/ionic/p-3835a020.entry.js +4 -0
  535. package/dist/ionic/p-3c5fdd27.entry.js +4 -0
  536. package/dist/ionic/{p-c6e49f3f.entry.js → p-40424a88.entry.js} +1 -1
  537. package/dist/ionic/p-48b6835f.entry.js +4 -0
  538. package/dist/ionic/p-4eOQC00Z.js +4 -0
  539. package/dist/ionic/p-5394e1d4.entry.js +4 -0
  540. package/dist/ionic/p-53bac1c9.entry.js +4 -0
  541. package/dist/ionic/p-5506caeb.entry.js +4 -0
  542. package/dist/ionic/p-5993a77f.entry.js +4 -0
  543. package/dist/ionic/p-6277efba.entry.js +4 -0
  544. package/dist/ionic/p-62e71297.entry.js +4 -0
  545. package/dist/ionic/p-6b286c5c.entry.js +4 -0
  546. package/dist/ionic/p-7116e558.entry.js +4 -0
  547. package/dist/ionic/p-74f30659.entry.js +4 -0
  548. package/dist/ionic/p-7bb3e957.entry.js +4 -0
  549. package/dist/ionic/p-82525fb0.entry.js +4 -0
  550. package/dist/ionic/p-865fa114.entry.js +4 -0
  551. package/dist/ionic/p-8a21bdbd.entry.js +4 -0
  552. package/dist/ionic/p-8e1d9e3a.entry.js +4 -0
  553. package/dist/ionic/p-8f3a1995.entry.js +4 -0
  554. package/dist/ionic/p-91c6faf1.entry.js +4 -0
  555. package/dist/ionic/{p-aaeedb6b.entry.js → p-9b865fe6.entry.js} +1 -1
  556. package/dist/ionic/p-9nmHvEvw.js +4 -0
  557. package/dist/ionic/p-B-FxiyeI.js +4 -0
  558. package/dist/ionic/p-BB0LlG4y.js +4 -0
  559. package/dist/ionic/p-BMPN55of.js +4 -0
  560. package/dist/ionic/p-BQ8oNV0v.js +4 -0
  561. package/dist/ionic/p-BSQPZ79H.js +4 -0
  562. package/dist/ionic/p-BhamHSw3.js +4 -0
  563. package/dist/ionic/p-BjvtSsVI.js +4 -0
  564. package/dist/ionic/p-BkfAWuv6.js +4 -0
  565. package/dist/ionic/p-BnMQxWON.js +4 -0
  566. package/dist/ionic/{p-DV3sJJW8.js → p-BvabGprD.js} +1 -1
  567. package/dist/ionic/p-BwIp10KV.js +4 -0
  568. package/dist/ionic/p-C-94tAim.js +4 -0
  569. package/dist/ionic/p-C6eME8Ey.js +4 -0
  570. package/dist/ionic/{p-DIuEbVLu.js → p-CKUuSnDR.js} +1 -1
  571. package/dist/ionic/p-CMRtMbJc.js +4 -0
  572. package/dist/ionic/p-CPcPmkGv.js +4 -0
  573. package/dist/ionic/{p-biz8zWmJ.js → p-CQ_4TirR.js} +1 -1
  574. package/dist/ionic/p-CaRuIadB.js +4 -0
  575. package/dist/ionic/p-Cdjxf_yg.js +4 -0
  576. package/dist/ionic/p-ChhhtsGZ.js +5 -0
  577. package/dist/ionic/p-CmKf4pgI.js +4 -0
  578. package/dist/ionic/p-D5t_-oMk.js +4 -0
  579. package/dist/ionic/p-D94b61er.js +4 -0
  580. package/dist/ionic/p-DCI3rXQo.js +4 -0
  581. package/dist/ionic/p-DDhtUaaA.js +4 -0
  582. package/dist/ionic/p-DWCzVL3Y.js +4 -0
  583. package/dist/ionic/p-Dn0mqQ_R.js +4 -0
  584. package/dist/ionic/{p-KjNvRoEp.js → p-I3In7hMC.js} +1 -1
  585. package/dist/ionic/p-T71k3C35.js +4 -0
  586. package/dist/ionic/p-TXPDHL13.js +4 -0
  587. package/dist/ionic/p-a641d428.entry.js +4 -0
  588. package/dist/ionic/p-ac6ef997.entry.js +4 -0
  589. package/dist/ionic/p-acf0a6af.entry.js +4 -0
  590. package/dist/ionic/p-ad98e3ff.entry.js +4 -0
  591. package/dist/ionic/p-af5166f5.entry.js +4 -0
  592. package/dist/ionic/p-b24dc0a1.entry.js +4 -0
  593. package/dist/ionic/p-ba8a598f.entry.js +4 -0
  594. package/dist/ionic/p-bf7c1f05.entry.js +4 -0
  595. package/dist/ionic/p-byZM6qHV.js +4 -0
  596. package/dist/ionic/p-c3f65965.entry.js +4 -0
  597. package/dist/ionic/p-c8fbe544.entry.js +4 -0
  598. package/dist/ionic/p-cb12f6c3.entry.js +4 -0
  599. package/dist/ionic/p-cec87704.entry.js +4 -0
  600. package/dist/ionic/p-dbfd2d52.entry.js +4 -0
  601. package/dist/ionic/p-e1e5b507.entry.js +4 -0
  602. package/dist/ionic/p-ede019ef.entry.js +4 -0
  603. package/dist/ionic/p-efef6788.entry.js +4 -0
  604. package/dist/ionic/p-f046aa37.entry.js +4 -0
  605. package/dist/ionic/p-f402f5a4.entry.js +4 -0
  606. package/dist/ionic/p-f622796d.entry.js +4 -0
  607. package/{components/p-B-JJgYSG.js → dist/ionic/p-kJA95YWg.js} +1 -1
  608. package/dist/types/components/img/img.d.ts +2 -0
  609. package/dist/types/components/input/input.d.ts +1 -1
  610. package/dist/types/components/modal/modal-interface.d.ts +9 -0
  611. package/dist/types/components/modal/modal.d.ts +11 -4
  612. package/dist/types/components/nav/nav-interface.d.ts +0 -1
  613. package/dist/types/components/nav/nav.d.ts +2 -22
  614. package/dist/types/components/route/route.d.ts +1 -1
  615. package/dist/types/components/router-outlet/router-outlet.d.ts +7 -0
  616. package/dist/types/components/searchbar/searchbar.d.ts +1 -1
  617. package/dist/types/components/select/select-interface.d.ts +31 -0
  618. package/dist/types/components/select/select.d.ts +18 -0
  619. package/dist/types/components/select-option/select-option.d.ts +42 -1
  620. package/dist/types/components.d.ts +74 -311
  621. package/dist/types/index.d.ts +1 -1
  622. package/dist/types/interface.d.ts +0 -1
  623. package/dist/types/utils/config.d.ts +1 -8
  624. package/dist/types/utils/logging/index.d.ts +2 -1
  625. package/dist/types/utils/overlay-control-label.d.ts +32 -0
  626. package/dist/types/utils/overlays.d.ts +11 -9
  627. package/dist/types/utils/sanitization/index.d.ts +58 -2
  628. package/dist/types/utils/select-option-render.d.ts +53 -0
  629. package/dist/types/utils/test/playwright/playwright-page.d.ts +1 -1
  630. package/dist/types/utils/test/playwright/testExpect.d.ts +1 -1
  631. package/hydrate/index.js +10343 -7070
  632. package/hydrate/index.mjs +10343 -7070
  633. package/package.json +55 -12
  634. package/components/ion-picker-legacy-column.d.ts +0 -11
  635. package/components/ion-picker-legacy-column.js +0 -4
  636. package/components/ion-picker-legacy.d.ts +0 -11
  637. package/components/ion-picker-legacy.js +0 -4
  638. package/components/p-A3O24YmY.js +0 -4
  639. package/components/p-ABkNVeU9.js +0 -4
  640. package/components/p-B9jFTlwE.js +0 -4
  641. package/components/p-BLmJ0zRm.js +0 -4
  642. package/components/p-BMI53wYL.js +0 -4
  643. package/components/p-BSEgsdFI.js +0 -4
  644. package/components/p-BTEOs1at.js +0 -4
  645. package/components/p-BlIAuGv2.js +0 -4
  646. package/components/p-Bnsn6KaP.js +0 -4
  647. package/components/p-BsBCoGa-.js +0 -4
  648. package/components/p-Bz0dSlXZ.js +0 -4
  649. package/components/p-C53feagD.js +0 -4
  650. package/components/p-CHqRYvYm.js +0 -4
  651. package/components/p-CQGnMY3n.js +0 -4
  652. package/components/p-CSZf8_j0.js +0 -4
  653. package/components/p-C_xFdyXe.js +0 -4
  654. package/components/p-Cf2jSDS8.js +0 -4
  655. package/components/p-Cfx4M1Bn.js +0 -4
  656. package/components/p-CkMSOsFF.js +0 -4
  657. package/components/p-Cl0B-RWe.js +0 -4
  658. package/components/p-CmR5uXej.js +0 -4
  659. package/components/p-Cp4GRDqq.js +0 -4
  660. package/components/p-CsNJ1ULL.js +0 -4
  661. package/components/p-CtWGkNnJ.js +0 -4
  662. package/components/p-CzCbeKys.js +0 -4
  663. package/components/p-D-aHdMxW.js +0 -4
  664. package/components/p-D0d8qTwj.js +0 -4
  665. package/components/p-D13Eaw-8.js +0 -4
  666. package/components/p-D6Ynv7Xh.js +0 -4
  667. package/components/p-DCnGU1fF.js +0 -4
  668. package/components/p-DGvrK8dD.js +0 -4
  669. package/components/p-DOFCbuQR.js +0 -4
  670. package/components/p-DRxvM2Ic.js +0 -4
  671. package/components/p-DV5mPYQS.js +0 -4
  672. package/components/p-DWkAgceV.js +0 -4
  673. package/components/p-DiVJyqlX.js +0 -4
  674. package/components/p-DqZAXv2t.js +0 -4
  675. package/components/p-Osve4qkc.js +0 -4
  676. package/components/p-R8zmRi4c.js +0 -4
  677. package/components/p-SLS1rDZM.js +0 -4
  678. package/components/p-aJ6PBUvj.js +0 -4
  679. package/components/p-cyNmxje6.js +0 -4
  680. package/components/p-gAg0kXZp.js +0 -4
  681. package/components/p-gYiraiT_.js +0 -4
  682. package/components/p-j5IxBIan.js +0 -4
  683. package/components/p-k_E4tX5Z.js +0 -4
  684. package/components/p-oD4kcBRX.js +0 -4
  685. package/components/p-rCa2eL0j.js +0 -4
  686. package/components/p-vRBNsYbs.js +0 -4
  687. package/components/p-yEQxMl70.js +0 -4
  688. package/components/p-yzCsOZE2.js +0 -4
  689. package/dist/cjs/config-D6C-KlA9.js +0 -201
  690. package/dist/cjs/ion-datetime_3.cjs.entry.js +0 -3167
  691. package/dist/collection/components/picker-legacy/animations/ios.enter.js +0 -27
  692. package/dist/collection/components/picker-legacy/animations/ios.leave.js +0 -23
  693. package/dist/collection/components/picker-legacy/picker-interface.js +0 -1
  694. package/dist/collection/components/picker-legacy/picker.ios.css +0 -300
  695. package/dist/collection/components/picker-legacy/picker.js +0 -890
  696. package/dist/collection/components/picker-legacy/picker.md.css +0 -287
  697. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -231
  698. package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
  699. package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -222
  700. package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
  701. package/dist/esm/config-DQCONYYp.js +0 -195
  702. package/dist/esm/ion-datetime_3.entry.js +0 -3163
  703. package/dist/ionic/p-01f81ea5.entry.js +0 -4
  704. package/dist/ionic/p-06c232a4.entry.js +0 -4
  705. package/dist/ionic/p-0caa922c.entry.js +0 -4
  706. package/dist/ionic/p-0dc33652.entry.js +0 -4
  707. package/dist/ionic/p-0fa9c382.entry.js +0 -4
  708. package/dist/ionic/p-10e833ef.entry.js +0 -4
  709. package/dist/ionic/p-21eb76d5.entry.js +0 -4
  710. package/dist/ionic/p-27d30585.entry.js +0 -4
  711. package/dist/ionic/p-2a05aa64.entry.js +0 -4
  712. package/dist/ionic/p-2b204c59.entry.js +0 -4
  713. package/dist/ionic/p-2bb2cb18.entry.js +0 -4
  714. package/dist/ionic/p-2fa58e80.entry.js +0 -4
  715. package/dist/ionic/p-3353c229.entry.js +0 -4
  716. package/dist/ionic/p-34586ead.entry.js +0 -4
  717. package/dist/ionic/p-37e720da.entry.js +0 -4
  718. package/dist/ionic/p-390ca786.entry.js +0 -4
  719. package/dist/ionic/p-3ae5f277.entry.js +0 -4
  720. package/dist/ionic/p-4654ae1c.entry.js +0 -4
  721. package/dist/ionic/p-4745f534.entry.js +0 -4
  722. package/dist/ionic/p-4858af1f.entry.js +0 -4
  723. package/dist/ionic/p-4baa5b82.entry.js +0 -4
  724. package/dist/ionic/p-4e92a11f.entry.js +0 -4
  725. package/dist/ionic/p-50e1194a.entry.js +0 -4
  726. package/dist/ionic/p-5334df12.entry.js +0 -4
  727. package/dist/ionic/p-5d1da0a2.entry.js +0 -4
  728. package/dist/ionic/p-5e2f73ee.entry.js +0 -4
  729. package/dist/ionic/p-5eb8e86d.entry.js +0 -4
  730. package/dist/ionic/p-65ebdf1b.entry.js +0 -4
  731. package/dist/ionic/p-746fa988.entry.js +0 -4
  732. package/dist/ionic/p-75dc25ba.entry.js +0 -4
  733. package/dist/ionic/p-7c319341.entry.js +0 -4
  734. package/dist/ionic/p-829367ed.entry.js +0 -4
  735. package/dist/ionic/p-84d5ce05.entry.js +0 -4
  736. package/dist/ionic/p-874b4bd8.entry.js +0 -4
  737. package/dist/ionic/p-8eb8ee76.entry.js +0 -4
  738. package/dist/ionic/p-9eeaBrnk.js +0 -4
  739. package/dist/ionic/p-9f9db3a2.entry.js +0 -4
  740. package/dist/ionic/p-9fa3c405.entry.js +0 -4
  741. package/dist/ionic/p-BGqMS-oh.js +0 -4
  742. package/dist/ionic/p-BTEOs1at.js +0 -4
  743. package/dist/ionic/p-BUFIpxKM.js +0 -4
  744. package/dist/ionic/p-C0eMdTCW.js +0 -4
  745. package/dist/ionic/p-C53feagD.js +0 -4
  746. package/dist/ionic/p-CFlfIb2g.js +0 -4
  747. package/dist/ionic/p-CKvCXMs9.js +0 -4
  748. package/dist/ionic/p-Cl0B-RWe.js +0 -4
  749. package/dist/ionic/p-CmcFnK-B.js +0 -4
  750. package/dist/ionic/p-CtWGkNnJ.js +0 -4
  751. package/dist/ionic/p-Cx3IXROA.js +0 -4
  752. package/dist/ionic/p-D-3ycHmd.js +0 -4
  753. package/dist/ionic/p-D13Eaw-8.js +0 -4
  754. package/dist/ionic/p-D4uTWt4-.js +0 -4
  755. package/dist/ionic/p-DiVJyqlX.js +0 -4
  756. package/dist/ionic/p-DoJvtrbw.js +0 -4
  757. package/dist/ionic/p-DqN5EA2O.js +0 -4
  758. package/dist/ionic/p-DzWaWHGc.js +0 -4
  759. package/dist/ionic/p-Nqf6uvGh.js +0 -4
  760. package/dist/ionic/p-SNAkTDfm.js +0 -4
  761. package/dist/ionic/p-VAemlbDS.js +0 -4
  762. package/dist/ionic/p-a3bdcae6.entry.js +0 -4
  763. package/dist/ionic/p-af55a72f.entry.js +0 -4
  764. package/dist/ionic/p-b2020591.entry.js +0 -4
  765. package/dist/ionic/p-b9fadbfe.entry.js +0 -4
  766. package/dist/ionic/p-c0fb8edd.entry.js +0 -4
  767. package/dist/ionic/p-c38b648e.entry.js +0 -4
  768. package/dist/ionic/p-c4d8641b.entry.js +0 -4
  769. package/dist/ionic/p-ca2ab74d.entry.js +0 -4
  770. package/dist/ionic/p-d889ff6d.entry.js +0 -4
  771. package/dist/ionic/p-dfa8d673.entry.js +0 -4
  772. package/dist/ionic/p-ea56626d.entry.js +0 -4
  773. package/dist/ionic/p-ef4c3bee.entry.js +0 -4
  774. package/dist/ionic/p-f386f6ae.entry.js +0 -4
  775. package/dist/ionic/p-mjKAFv89.js +0 -4
  776. package/dist/ionic/p-tcQvqkiX.js +0 -5
  777. package/dist/ionic/p-uWtqTrG8.js +0 -4
  778. package/dist/ionic/p-viFHDgRs.js +0 -4
  779. package/dist/ionic/p-xWb6fgfq.js +0 -4
  780. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +0 -5
  781. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +0 -5
  782. package/dist/types/components/picker-legacy/picker-interface.d.ts +0 -52
  783. package/dist/types/components/picker-legacy/picker.d.ts +0 -158
  784. package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
  785. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +0 -9
  786. /package/components/{p-CO7fmmxt.js → p-LpMHEu3v.js} +0 -0
@@ -1,417 +1,66 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, c as createEvent, h, d as Host, g as getElement } from './index-tcQvqkiX.js';
4
+ import { r as registerInstance, c as createEvent, g as getElement, h, d as Host } from './index-ChhhtsGZ.js';
5
5
  import { d as doc } from './index-ZjP4CjeZ.js';
6
- import { r as raf } from './helpers-HEqiOzXb.js';
7
- import { b as hapticSelectionStart, a as hapticSelectionChanged, h as hapticSelectionEnd } from './haptic-DzAMWJuk.js';
8
- import { a as isPlatform, b as getIonMode } from './ionic-global-Cp_eT4sZ.js';
9
- import { c as createColorClasses } from './theme-DiVJyqlX.js';
6
+ import { r as raf } from './helpers-DexiPLIC.js';
7
+ import { b as hapticSelectionStart, a as hapticSelectionChanged, h as hapticSelectionEnd } from './haptic-Cq4UAeka.js';
8
+ import { a as isPlatform, b as getIonMode } from './ionic-global-BVB7BrLT.js';
9
+ import { c as createColorClasses } from './theme-byZM6qHV.js';
10
10
  import './capacitor-CFERIeaU.js';
11
11
 
12
- const pickerColumnCss = () => `:host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;max-width:100%;height:200px;font-size:22px;text-align:center}.assistive-focusable{left:0;right:0;top:0;bottom:0;position:absolute;z-index:1;pointer-events:none}.assistive-focusable:focus{outline:none}.picker-opts{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;min-width:26px;max-height:200px;outline:none;text-align:inherit;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;overflow-x:hidden;overflow-y:scroll;scrollbar-width:none}.picker-item-empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.picker-opts::-webkit-scrollbar{display:none}::slotted(ion-picker-column-option){display:block;scroll-snap-align:center}.picker-item-empty,:host(:not([disabled])) ::slotted(ion-picker-column-option.option-disabled){scroll-snap-align:none}::slotted([slot=prefix]),::slotted([slot=suffix]){max-width:200px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::slotted([slot=prefix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:end;justify-content:end}::slotted([slot=suffix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:start;justify-content:start}:host(.picker-column-disabled) .picker-opts{overflow-y:hidden}:host(.picker-column-disabled) ::slotted(ion-picker-column-option){cursor:default;opacity:0.4;pointer-events:none}@media (any-hover: hover){:host(:focus) .picker-opts{outline:none;background:rgba(var(--ion-color-base-rgb), 0.2)}}`;
12
+ const pickerColumnCss = () => `:host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;max-width:100%;height:200px;font-size:22px;text-align:center}.assistive-focusable{left:0;right:0;top:0;bottom:0;position:absolute;z-index:1;pointer-events:none}.assistive-focusable:focus{outline:none}.picker-opts{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;min-width:26px;max-height:200px;outline:none;text-align:inherit;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;overflow-x:hidden;overflow-y:scroll;scrollbar-width:none}.picker-item-empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.picker-opts::-webkit-scrollbar{display:none}::slotted(ion-picker-column-option){display:block;scroll-snap-align:center}.picker-item-empty,:host(:not([disabled])) ::slotted(ion-picker-column-option.option-disabled){scroll-snap-align:none}::slotted([slot=prefix]),::slotted([slot=suffix]){max-width:200px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::slotted([slot=prefix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:end;justify-content:end}::slotted([slot=suffix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:start;justify-content:start}:host(.picker-column-disabled) .picker-opts{overflow-y:hidden}:host(.picker-column-disabled) ::slotted(ion-picker-column-option){cursor:default;opacity:0.4;pointer-events:none}@media (any-hover: hover){:host(:focus) .picker-opts{outline:none;background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2)}:host(.ion-color:focus) .picker-opts{background:rgba(var(--ion-color-base-rgb), 0.2)}}`;
13
13
 
14
14
  const PickerColumn = class {
15
15
  constructor(hostRef) {
16
16
  registerInstance(this, hostRef);
17
17
  this.ionChange = createEvent(this, "ionChange", 7);
18
- this.isScrolling = false;
19
- this.isColumnVisible = false;
20
- this.canExitInputMode = true;
21
- this.updateValueTextOnScroll = false;
22
- this.ariaLabel = null;
23
- this.isActive = false;
24
- /**
25
- * If `true`, the user cannot interact with the picker.
26
- */
27
- this.disabled = false;
28
- /**
29
- * The color to use from your application's color palette.
30
- * Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
31
- * For more information on colors, see [theming](/docs/theming/basics).
32
- */
33
- this.color = 'primary';
34
- /**
35
- * If `true`, tapping the picker will
36
- * reveal a number input keyboard that lets
37
- * the user type in values for each picker
38
- * column. This is useful when working
39
- * with time pickers.
40
- *
41
- * @internal
42
- */
43
- this.numericInput = false;
44
- this.centerPickerItemInView = (target, smooth = true, canExitInputMode = true) => {
45
- const { isColumnVisible, scrollEl } = this;
46
- if (isColumnVisible && scrollEl) {
47
- // (Vertical offset from parent) - (three empty picker rows) + (half the height of the target to ensure the scroll triggers)
48
- const top = target.offsetTop - 3 * target.clientHeight + target.clientHeight / 2;
49
- if (scrollEl.scrollTop !== top) {
50
- /**
51
- * Setting this flag prevents input
52
- * mode from exiting in the picker column's
53
- * scroll callback. This is useful when the user manually
54
- * taps an item or types on the keyboard as both
55
- * of these can cause a scroll to occur.
56
- */
57
- this.canExitInputMode = canExitInputMode;
58
- this.updateValueTextOnScroll = false;
59
- scrollEl.scroll({
60
- top,
61
- left: 0,
62
- behavior: smooth ? 'smooth' : undefined,
63
- });
64
- }
65
- }
66
- };
67
- this.setPickerItemActiveState = (item, isActive) => {
68
- if (isActive) {
69
- item.classList.add(PICKER_ITEM_ACTIVE_CLASS);
70
- }
71
- else {
72
- item.classList.remove(PICKER_ITEM_ACTIVE_CLASS);
73
- }
74
- };
75
- /**
76
- * When ionInputModeChange is emitted, each column
77
- * needs to check if it is the one being made available
78
- * for text entry.
79
- */
80
- this.inputModeChange = (ev) => {
81
- if (!this.numericInput) {
82
- return;
83
- }
84
- const { useInputMode, inputModeColumn } = ev.detail;
85
- /**
86
- * If inputModeColumn is undefined then this means
87
- * all numericInput columns are being selected.
88
- */
89
- const isColumnActive = inputModeColumn === undefined || inputModeColumn === this.el;
90
- if (!useInputMode || !isColumnActive) {
91
- this.setInputModeActive(false);
92
- return;
93
- }
94
- this.setInputModeActive(true);
95
- };
96
- /**
97
- * Setting isActive will cause a re-render.
98
- * As a result, we do not want to cause the
99
- * re-render mid scroll as this will cause
100
- * the picker column to jump back to
101
- * whatever value was selected at the
102
- * start of the scroll interaction.
103
- */
104
- this.setInputModeActive = (state) => {
105
- if (this.isScrolling) {
106
- this.scrollEndCallback = () => {
107
- this.isActive = state;
108
- };
109
- return;
110
- }
111
- this.isActive = state;
112
- };
113
- /**
114
- * When the column scrolls, the component
115
- * needs to determine which item is centered
116
- * in the view and will emit an ionChange with
117
- * the item object.
118
- */
119
- this.initializeScrollListener = () => {
120
- /**
121
- * The haptics for the wheel picker are
122
- * an iOS-only feature. As a result, they should
123
- * be disabled on Android.
124
- */
125
- const enableHaptics = isPlatform('ios');
126
- const { el, scrollEl } = this;
127
- let timeout;
128
- let activeEl = this.activeItem;
129
- const scrollCallback = () => {
130
- raf(() => {
131
- var _a;
132
- if (!scrollEl)
133
- return;
134
- if (timeout) {
135
- clearTimeout(timeout);
136
- timeout = undefined;
137
- }
138
- if (!this.isScrolling) {
139
- enableHaptics && hapticSelectionStart();
140
- this.isScrolling = true;
141
- }
142
- /**
143
- * Select item in the center of the column
144
- * which is the month/year that we want to select
145
- */
146
- const bbox = scrollEl.getBoundingClientRect();
147
- const centerX = bbox.x + bbox.width / 2;
148
- const centerY = bbox.y + bbox.height / 2;
149
- /**
150
- * elementFromPoint returns the top-most element.
151
- * This means that if an ion-backdrop is overlaying the
152
- * picker then the appropriate picker column option will
153
- * not be selected. To account for this, we use elementsFromPoint
154
- * and use an Array.find to find the appropriate column option
155
- * at that point.
156
- *
157
- * Additionally, the picker column could be used in the
158
- * Shadow DOM (i.e. in ion-datetime) so we need to make
159
- * sure we are choosing the correct host otherwise
160
- * the elements returns by elementsFromPoint will be
161
- * retargeted. To account for this, we check to see
162
- * if the picker column has a parent shadow root. If
163
- * so, we use that shadow root when doing elementsFromPoint.
164
- * Otherwise, we just use the document.
165
- */
166
- const rootNode = el.getRootNode();
167
- const hasParentShadow = rootNode instanceof ShadowRoot;
168
- const referenceNode = hasParentShadow ? rootNode : doc;
169
- /**
170
- * If the reference node is undefined
171
- * then it's likely that doc is undefined
172
- * due to being in an SSR environment.
173
- */
174
- if (referenceNode === undefined) {
175
- return;
176
- }
177
- const elementsAtPoint = referenceNode.elementsFromPoint(centerX, centerY);
178
- /**
179
- * elementsFromPoint can returns multiple elements
180
- * so find the relevant picker column option if one exists.
181
- */
182
- let newActiveElement = elementsAtPoint.find((el) => el.tagName === 'ION-PICKER-COLUMN-OPTION');
183
- /**
184
- * TODO(FW-6594): Remove this workaround when iOS 16 is no longer
185
- * supported.
186
- *
187
- * If `elementsFromPoint` failed to find the active element (a known
188
- * issue on iOS 16 when elements are in a Shadow DOM and the
189
- * referenceNode is the document), a fallback to `elementFromPoint`
190
- * is used. While `elementsFromPoint` returns all elements,
191
- * `elementFromPoint` returns only the top-most, which is sufficient
192
- * for this use case and appears to handle Shadow DOM retargeting
193
- * more reliably in this specific iOS bug.
194
- */
195
- if (newActiveElement === undefined) {
196
- const fallbackActiveElement = referenceNode.elementFromPoint(centerX, centerY);
197
- if ((fallbackActiveElement === null || fallbackActiveElement === void 0 ? void 0 : fallbackActiveElement.tagName) === 'ION-PICKER-COLUMN-OPTION') {
198
- newActiveElement = fallbackActiveElement;
199
- }
200
- }
201
- if (activeEl !== undefined) {
202
- this.setPickerItemActiveState(activeEl, false);
203
- }
204
- if (newActiveElement === undefined || newActiveElement.disabled) {
205
- return;
206
- }
207
- /**
208
- * If we are selecting a new value,
209
- * we need to run haptics again.
210
- */
211
- if (newActiveElement !== activeEl) {
212
- enableHaptics && hapticSelectionChanged();
213
- if (this.canExitInputMode) {
214
- /**
215
- * The native iOS wheel picker
216
- * only dismisses the keyboard
217
- * once the selected item has changed
218
- * as a result of a swipe
219
- * from the user. If `canExitInputMode` is
220
- * `false` then this means that the
221
- * scroll is happening as a result of
222
- * the `value` property programmatically changing
223
- * either by an application or by the user via the keyboard.
224
- */
225
- this.exitInputMode();
226
- }
227
- }
228
- activeEl = newActiveElement;
229
- this.setPickerItemActiveState(newActiveElement, true);
230
- /**
231
- * Set the aria-valuetext even though the value prop has not been updated yet.
232
- * This enables some screen readers to announce the value as the users drag
233
- * as opposed to when their release their pointer from the screen.
234
- *
235
- * When the value is programmatically updated, we will smoothly scroll
236
- * to the new option. However, we do not want to update aria-valuetext mid-scroll
237
- * as that can cause the old value to be briefly set before being set to the
238
- * correct option. This will cause some screen readers to announce the old value
239
- * again before announcing the new value. The correct valuetext will be set on render.
240
- */
241
- if (this.updateValueTextOnScroll) {
242
- (_a = this.assistiveFocusable) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-valuetext', this.getOptionValueText(newActiveElement));
243
- }
244
- timeout = setTimeout(() => {
245
- this.isScrolling = false;
246
- this.updateValueTextOnScroll = true;
247
- enableHaptics && hapticSelectionEnd();
248
- /**
249
- * Certain tasks (such as those that
250
- * cause re-renders) should only be done
251
- * once scrolling has finished, otherwise
252
- * flickering may occur.
253
- */
254
- const { scrollEndCallback } = this;
255
- if (scrollEndCallback) {
256
- scrollEndCallback();
257
- this.scrollEndCallback = undefined;
258
- }
259
- /**
260
- * Reset this flag as the
261
- * next scroll interaction could
262
- * be a scroll from the user. In this
263
- * case, we should exit input mode.
264
- */
265
- this.canExitInputMode = true;
266
- this.setValue(newActiveElement.value);
267
- }, 250);
268
- });
269
- };
270
- /**
271
- * Wrap this in an raf so that the scroll callback
272
- * does not fire when component is initially shown.
273
- */
274
- raf(() => {
275
- if (!scrollEl)
276
- return;
277
- scrollEl.addEventListener('scroll', scrollCallback);
278
- this.destroyScrollListener = () => {
279
- scrollEl.removeEventListener('scroll', scrollCallback);
280
- };
281
- });
282
- };
283
- /**
284
- * Tells the parent picker to
285
- * exit text entry mode. This is only called
286
- * when the selected item changes during scroll, so
287
- * we know that the user likely wants to scroll
288
- * instead of type.
289
- */
290
- this.exitInputMode = () => {
291
- const { parentEl } = this;
292
- if (parentEl == null)
293
- return;
294
- parentEl.exitInputMode();
295
- /**
296
- * setInputModeActive only takes
297
- * effect once scrolling stops to avoid
298
- * a component re-render while scrolling.
299
- * However, we want the visual active
300
- * indicator to go away immediately, so
301
- * we call classList.remove here.
302
- */
303
- this.el.classList.remove('picker-column-active');
304
- };
305
- /**
306
- * Find the next enabled option after the active option.
307
- * @param stride - How many options to "jump" over in order to select the next option.
308
- * This can be used to implement PageUp/PageDown behaviors where pressing these keys
309
- * scrolls the picker by more than 1 option. For example, a stride of 5 means select
310
- * the enabled option 5 options after the active one. Note that the actual option selected
311
- * may be past the stride if the option at the stride is disabled.
312
- */
313
- this.findNextOption = (stride = 1) => {
314
- const { activeItem } = this;
315
- if (!activeItem)
316
- return null;
317
- let prevNode = activeItem;
318
- let node = activeItem.nextElementSibling;
319
- while (node != null) {
320
- if (stride > 0) {
321
- stride--;
322
- }
323
- if (node.tagName === 'ION-PICKER-COLUMN-OPTION' && !node.disabled && stride === 0) {
324
- return node;
325
- }
326
- prevNode = node;
327
- // Use nextElementSibling instead of nextSibling to avoid text/comment nodes
328
- node = node.nextElementSibling;
329
- }
330
- return prevNode;
331
- };
332
- /**
333
- * Find the next enabled option after the active option.
334
- * @param stride - How many options to "jump" over in order to select the next option.
335
- * This can be used to implement PageUp/PageDown behaviors where pressing these keys
336
- * scrolls the picker by more than 1 option. For example, a stride of 5 means select
337
- * the enabled option 5 options before the active one. Note that the actual option selected
338
- * may be past the stride if the option at the stride is disabled.
339
- */
340
- this.findPreviousOption = (stride = 1) => {
341
- const { activeItem } = this;
342
- if (!activeItem)
343
- return null;
344
- let nextNode = activeItem;
345
- let node = activeItem.previousElementSibling;
346
- while (node != null) {
347
- if (stride > 0) {
348
- stride--;
349
- }
350
- if (node.tagName === 'ION-PICKER-COLUMN-OPTION' && !node.disabled && stride === 0) {
351
- return node;
352
- }
353
- nextNode = node;
354
- // Use previousElementSibling instead of previousSibling to avoid text/comment nodes
355
- node = node.previousElementSibling;
356
- }
357
- return nextNode;
358
- };
359
- this.onKeyDown = (ev) => {
360
- /**
361
- * The below operations should be inverted when running on a mobile device.
362
- * For example, swiping up will dispatch an "ArrowUp" event. On desktop,
363
- * this should cause the previous option to be selected. On mobile, swiping
364
- * up causes a view to scroll down. As a result, swiping up on mobile should
365
- * cause the next option to be selected. The Home/End operations remain
366
- * unchanged because those always represent the first/last options, respectively.
367
- */
368
- const mobile = isPlatform('mobile');
369
- let newOption = null;
370
- switch (ev.key) {
371
- case 'ArrowDown':
372
- newOption = mobile ? this.findPreviousOption() : this.findNextOption();
373
- break;
374
- case 'ArrowUp':
375
- newOption = mobile ? this.findNextOption() : this.findPreviousOption();
376
- break;
377
- case 'PageUp':
378
- newOption = mobile ? this.findNextOption(5) : this.findPreviousOption(5);
379
- break;
380
- case 'PageDown':
381
- newOption = mobile ? this.findPreviousOption(5) : this.findNextOption(5);
382
- break;
383
- case 'Home':
384
- /**
385
- * There is no guarantee that the first child will be an ion-picker-column-option,
386
- * so we do not use firstElementChild.
387
- */
388
- newOption = this.el.querySelector('ion-picker-column-option:first-of-type');
389
- break;
390
- case 'End':
391
- /**
392
- * There is no guarantee that the last child will be an ion-picker-column-option,
393
- * so we do not use lastElementChild.
394
- */
395
- newOption = this.el.querySelector('ion-picker-column-option:last-of-type');
396
- break;
397
- }
398
- if (newOption !== null) {
399
- this.setValue(newOption.value);
400
- // This stops any default browser behavior such as scrolling
401
- ev.preventDefault();
402
- }
403
- };
404
- /**
405
- * Utility to generate the correct text for aria-valuetext.
406
- */
407
- this.getOptionValueText = (el) => {
408
- var _a;
409
- return el ? (_a = el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : el.innerText : '';
410
- };
411
18
  }
19
+ scrollEl;
20
+ destroyScrollListener;
21
+ isScrolling = false;
22
+ scrollEndCallback;
23
+ isColumnVisible = false;
24
+ parentEl;
25
+ canExitInputMode = true;
26
+ assistiveFocusable;
27
+ updateValueTextOnScroll = false;
28
+ ariaLabel = null;
412
29
  ariaLabelChanged(newValue) {
413
30
  this.ariaLabel = newValue;
414
31
  }
32
+ isActive = false;
33
+ get el() { return getElement(this); }
34
+ /**
35
+ * If `true`, the user cannot interact with the picker.
36
+ */
37
+ disabled = false;
38
+ /**
39
+ * The selected option in the picker.
40
+ */
41
+ value;
42
+ /**
43
+ * The color to use from your application's color palette.
44
+ * Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
45
+ * For more information on colors, see [theming](/docs/theming/basics).
46
+ */
47
+ color;
48
+ /**
49
+ * If `true`, tapping the picker will
50
+ * reveal a number input keyboard that lets
51
+ * the user type in values for each picker
52
+ * column. This is useful when working
53
+ * with time pickers.
54
+ *
55
+ * @internal
56
+ */
57
+ numericInput = false;
58
+ /**
59
+ * Emitted when the value has changed.
60
+ *
61
+ * This event will not emit when programmatically setting the `value` property.
62
+ */
63
+ ionChange;
415
64
  valueChange() {
416
65
  if (this.isColumnVisible) {
417
66
  /**
@@ -528,9 +177,268 @@ const PickerColumn = class {
528
177
  }
529
178
  }
530
179
  connectedCallback() {
531
- var _a;
532
- this.ariaLabel = (_a = this.el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : 'Select a value';
180
+ this.ariaLabel = this.el.getAttribute('aria-label') ?? 'Select a value';
533
181
  }
182
+ centerPickerItemInView = (target, smooth = true, canExitInputMode = true) => {
183
+ const { isColumnVisible, scrollEl } = this;
184
+ if (isColumnVisible && scrollEl) {
185
+ // (Vertical offset from parent) - (three empty picker rows) + (half the height of the target to ensure the scroll triggers)
186
+ const top = target.offsetTop - 3 * target.clientHeight + target.clientHeight / 2;
187
+ if (scrollEl.scrollTop !== top) {
188
+ /**
189
+ * Setting this flag prevents input
190
+ * mode from exiting in the picker column's
191
+ * scroll callback. This is useful when the user manually
192
+ * taps an item or types on the keyboard as both
193
+ * of these can cause a scroll to occur.
194
+ */
195
+ this.canExitInputMode = canExitInputMode;
196
+ this.updateValueTextOnScroll = false;
197
+ scrollEl.scroll({
198
+ top,
199
+ left: 0,
200
+ behavior: smooth ? 'smooth' : undefined,
201
+ });
202
+ }
203
+ }
204
+ };
205
+ setPickerItemActiveState = (item, isActive) => {
206
+ if (isActive) {
207
+ item.classList.add(PICKER_ITEM_ACTIVE_CLASS);
208
+ }
209
+ else {
210
+ item.classList.remove(PICKER_ITEM_ACTIVE_CLASS);
211
+ }
212
+ };
213
+ /**
214
+ * When ionInputModeChange is emitted, each column
215
+ * needs to check if it is the one being made available
216
+ * for text entry.
217
+ */
218
+ inputModeChange = (ev) => {
219
+ if (!this.numericInput) {
220
+ return;
221
+ }
222
+ const { useInputMode, inputModeColumn } = ev.detail;
223
+ /**
224
+ * If inputModeColumn is undefined then this means
225
+ * all numericInput columns are being selected.
226
+ */
227
+ const isColumnActive = inputModeColumn === undefined || inputModeColumn === this.el;
228
+ if (!useInputMode || !isColumnActive) {
229
+ this.setInputModeActive(false);
230
+ return;
231
+ }
232
+ this.setInputModeActive(true);
233
+ };
234
+ /**
235
+ * Setting isActive will cause a re-render.
236
+ * As a result, we do not want to cause the
237
+ * re-render mid scroll as this will cause
238
+ * the picker column to jump back to
239
+ * whatever value was selected at the
240
+ * start of the scroll interaction.
241
+ */
242
+ setInputModeActive = (state) => {
243
+ if (this.isScrolling) {
244
+ this.scrollEndCallback = () => {
245
+ this.isActive = state;
246
+ };
247
+ return;
248
+ }
249
+ this.isActive = state;
250
+ };
251
+ /**
252
+ * When the column scrolls, the component
253
+ * needs to determine which item is centered
254
+ * in the view and will emit an ionChange with
255
+ * the item object.
256
+ */
257
+ initializeScrollListener = () => {
258
+ /**
259
+ * The haptics for the wheel picker are
260
+ * an iOS-only feature. As a result, they should
261
+ * be disabled on Android.
262
+ */
263
+ const enableHaptics = isPlatform('ios');
264
+ const { el, scrollEl } = this;
265
+ let timeout;
266
+ let activeEl = this.activeItem;
267
+ const scrollCallback = () => {
268
+ raf(() => {
269
+ if (!scrollEl)
270
+ return;
271
+ if (timeout) {
272
+ clearTimeout(timeout);
273
+ timeout = undefined;
274
+ }
275
+ if (!this.isScrolling) {
276
+ enableHaptics && hapticSelectionStart();
277
+ this.isScrolling = true;
278
+ }
279
+ /**
280
+ * Select item in the center of the column
281
+ * which is the month/year that we want to select
282
+ */
283
+ const bbox = scrollEl.getBoundingClientRect();
284
+ const centerX = bbox.x + bbox.width / 2;
285
+ const centerY = bbox.y + bbox.height / 2;
286
+ /**
287
+ * elementFromPoint returns the top-most element.
288
+ * This means that if an ion-backdrop is overlaying the
289
+ * picker then the appropriate picker column option will
290
+ * not be selected. To account for this, we use elementsFromPoint
291
+ * and use an Array.find to find the appropriate column option
292
+ * at that point.
293
+ *
294
+ * Additionally, the picker column could be used in the
295
+ * Shadow DOM (i.e. in ion-datetime) so we need to make
296
+ * sure we are choosing the correct host otherwise
297
+ * the elements returns by elementsFromPoint will be
298
+ * retargeted. To account for this, we check to see
299
+ * if the picker column has a parent shadow root. If
300
+ * so, we use that shadow root when doing elementsFromPoint.
301
+ * Otherwise, we just use the document.
302
+ */
303
+ const rootNode = el.getRootNode();
304
+ const hasParentShadow = rootNode instanceof ShadowRoot;
305
+ const referenceNode = hasParentShadow ? rootNode : doc;
306
+ /**
307
+ * If the reference node is undefined
308
+ * then it's likely that doc is undefined
309
+ * due to being in an SSR environment.
310
+ */
311
+ if (referenceNode === undefined) {
312
+ return;
313
+ }
314
+ const elementsAtPoint = referenceNode.elementsFromPoint(centerX, centerY);
315
+ /**
316
+ * elementsFromPoint can returns multiple elements
317
+ * so find the relevant picker column option if one exists.
318
+ */
319
+ let newActiveElement = elementsAtPoint.find((el) => el.tagName === 'ION-PICKER-COLUMN-OPTION');
320
+ /**
321
+ * TODO(FW-6594): Remove this workaround when iOS 16 is no longer
322
+ * supported.
323
+ *
324
+ * If `elementsFromPoint` failed to find the active element (a known
325
+ * issue on iOS 16 when elements are in a Shadow DOM and the
326
+ * referenceNode is the document), a fallback to `elementFromPoint`
327
+ * is used. While `elementsFromPoint` returns all elements,
328
+ * `elementFromPoint` returns only the top-most, which is sufficient
329
+ * for this use case and appears to handle Shadow DOM retargeting
330
+ * more reliably in this specific iOS bug.
331
+ */
332
+ if (newActiveElement === undefined) {
333
+ const fallbackActiveElement = referenceNode.elementFromPoint(centerX, centerY);
334
+ if (fallbackActiveElement?.tagName === 'ION-PICKER-COLUMN-OPTION') {
335
+ newActiveElement = fallbackActiveElement;
336
+ }
337
+ }
338
+ if (activeEl !== undefined) {
339
+ this.setPickerItemActiveState(activeEl, false);
340
+ }
341
+ if (newActiveElement === undefined || newActiveElement.disabled) {
342
+ return;
343
+ }
344
+ /**
345
+ * If we are selecting a new value,
346
+ * we need to run haptics again.
347
+ */
348
+ if (newActiveElement !== activeEl) {
349
+ enableHaptics && hapticSelectionChanged();
350
+ if (this.canExitInputMode) {
351
+ /**
352
+ * The native iOS wheel picker
353
+ * only dismisses the keyboard
354
+ * once the selected item has changed
355
+ * as a result of a swipe
356
+ * from the user. If `canExitInputMode` is
357
+ * `false` then this means that the
358
+ * scroll is happening as a result of
359
+ * the `value` property programmatically changing
360
+ * either by an application or by the user via the keyboard.
361
+ */
362
+ this.exitInputMode();
363
+ }
364
+ }
365
+ activeEl = newActiveElement;
366
+ this.setPickerItemActiveState(newActiveElement, true);
367
+ /**
368
+ * Set the aria-valuetext even though the value prop has not been updated yet.
369
+ * This enables some screen readers to announce the value as the users drag
370
+ * as opposed to when their release their pointer from the screen.
371
+ *
372
+ * When the value is programmatically updated, we will smoothly scroll
373
+ * to the new option. However, we do not want to update aria-valuetext mid-scroll
374
+ * as that can cause the old value to be briefly set before being set to the
375
+ * correct option. This will cause some screen readers to announce the old value
376
+ * again before announcing the new value. The correct valuetext will be set on render.
377
+ */
378
+ if (this.updateValueTextOnScroll) {
379
+ this.assistiveFocusable?.setAttribute('aria-valuetext', this.getOptionValueText(newActiveElement));
380
+ }
381
+ timeout = setTimeout(() => {
382
+ this.isScrolling = false;
383
+ this.updateValueTextOnScroll = true;
384
+ enableHaptics && hapticSelectionEnd();
385
+ /**
386
+ * Certain tasks (such as those that
387
+ * cause re-renders) should only be done
388
+ * once scrolling has finished, otherwise
389
+ * flickering may occur.
390
+ */
391
+ const { scrollEndCallback } = this;
392
+ if (scrollEndCallback) {
393
+ scrollEndCallback();
394
+ this.scrollEndCallback = undefined;
395
+ }
396
+ /**
397
+ * Reset this flag as the
398
+ * next scroll interaction could
399
+ * be a scroll from the user. In this
400
+ * case, we should exit input mode.
401
+ */
402
+ this.canExitInputMode = true;
403
+ this.setValue(newActiveElement.value);
404
+ }, 250);
405
+ });
406
+ };
407
+ /**
408
+ * Wrap this in an raf so that the scroll callback
409
+ * does not fire when component is initially shown.
410
+ */
411
+ raf(() => {
412
+ if (!scrollEl)
413
+ return;
414
+ scrollEl.addEventListener('scroll', scrollCallback);
415
+ this.destroyScrollListener = () => {
416
+ scrollEl.removeEventListener('scroll', scrollCallback);
417
+ };
418
+ });
419
+ };
420
+ /**
421
+ * Tells the parent picker to
422
+ * exit text entry mode. This is only called
423
+ * when the selected item changes during scroll, so
424
+ * we know that the user likely wants to scroll
425
+ * instead of type.
426
+ */
427
+ exitInputMode = () => {
428
+ const { parentEl } = this;
429
+ if (parentEl == null)
430
+ return;
431
+ parentEl.exitInputMode();
432
+ /**
433
+ * setInputModeActive only takes
434
+ * effect once scrolling stops to avoid
435
+ * a component re-render while scrolling.
436
+ * However, we want the visual active
437
+ * indicator to go away immediately, so
438
+ * we call classList.remove here.
439
+ */
440
+ this.el.classList.remove('picker-column-active');
441
+ };
534
442
  get activeItem() {
535
443
  const { value } = this;
536
444
  const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
@@ -545,19 +453,123 @@ const PickerColumn = class {
545
453
  return option.value === value;
546
454
  });
547
455
  }
456
+ /**
457
+ * Find the next enabled option after the active option.
458
+ * @param stride - How many options to "jump" over in order to select the next option.
459
+ * This can be used to implement PageUp/PageDown behaviors where pressing these keys
460
+ * scrolls the picker by more than 1 option. For example, a stride of 5 means select
461
+ * the enabled option 5 options after the active one. Note that the actual option selected
462
+ * may be past the stride if the option at the stride is disabled.
463
+ */
464
+ findNextOption = (stride = 1) => {
465
+ const { activeItem } = this;
466
+ if (!activeItem)
467
+ return null;
468
+ let prevNode = activeItem;
469
+ let node = activeItem.nextElementSibling;
470
+ while (node != null) {
471
+ if (stride > 0) {
472
+ stride--;
473
+ }
474
+ if (node.tagName === 'ION-PICKER-COLUMN-OPTION' && !node.disabled && stride === 0) {
475
+ return node;
476
+ }
477
+ prevNode = node;
478
+ // Use nextElementSibling instead of nextSibling to avoid text/comment nodes
479
+ node = node.nextElementSibling;
480
+ }
481
+ return prevNode;
482
+ };
483
+ /**
484
+ * Find the next enabled option after the active option.
485
+ * @param stride - How many options to "jump" over in order to select the next option.
486
+ * This can be used to implement PageUp/PageDown behaviors where pressing these keys
487
+ * scrolls the picker by more than 1 option. For example, a stride of 5 means select
488
+ * the enabled option 5 options before the active one. Note that the actual option selected
489
+ * may be past the stride if the option at the stride is disabled.
490
+ */
491
+ findPreviousOption = (stride = 1) => {
492
+ const { activeItem } = this;
493
+ if (!activeItem)
494
+ return null;
495
+ let nextNode = activeItem;
496
+ let node = activeItem.previousElementSibling;
497
+ while (node != null) {
498
+ if (stride > 0) {
499
+ stride--;
500
+ }
501
+ if (node.tagName === 'ION-PICKER-COLUMN-OPTION' && !node.disabled && stride === 0) {
502
+ return node;
503
+ }
504
+ nextNode = node;
505
+ // Use previousElementSibling instead of previousSibling to avoid text/comment nodes
506
+ node = node.previousElementSibling;
507
+ }
508
+ return nextNode;
509
+ };
510
+ onKeyDown = (ev) => {
511
+ /**
512
+ * The below operations should be inverted when running on a mobile device.
513
+ * For example, swiping up will dispatch an "ArrowUp" event. On desktop,
514
+ * this should cause the previous option to be selected. On mobile, swiping
515
+ * up causes a view to scroll down. As a result, swiping up on mobile should
516
+ * cause the next option to be selected. The Home/End operations remain
517
+ * unchanged because those always represent the first/last options, respectively.
518
+ */
519
+ const mobile = isPlatform('mobile');
520
+ let newOption = null;
521
+ switch (ev.key) {
522
+ case 'ArrowDown':
523
+ newOption = mobile ? this.findPreviousOption() : this.findNextOption();
524
+ break;
525
+ case 'ArrowUp':
526
+ newOption = mobile ? this.findNextOption() : this.findPreviousOption();
527
+ break;
528
+ case 'PageUp':
529
+ newOption = mobile ? this.findNextOption(5) : this.findPreviousOption(5);
530
+ break;
531
+ case 'PageDown':
532
+ newOption = mobile ? this.findPreviousOption(5) : this.findNextOption(5);
533
+ break;
534
+ case 'Home':
535
+ /**
536
+ * There is no guarantee that the first child will be an ion-picker-column-option,
537
+ * so we do not use firstElementChild.
538
+ */
539
+ newOption = this.el.querySelector('ion-picker-column-option:first-of-type');
540
+ break;
541
+ case 'End':
542
+ /**
543
+ * There is no guarantee that the last child will be an ion-picker-column-option,
544
+ * so we do not use lastElementChild.
545
+ */
546
+ newOption = this.el.querySelector('ion-picker-column-option:last-of-type');
547
+ break;
548
+ }
549
+ if (newOption !== null) {
550
+ this.setValue(newOption.value);
551
+ // This stops any default browser behavior such as scrolling
552
+ ev.preventDefault();
553
+ }
554
+ };
555
+ /**
556
+ * Utility to generate the correct text for aria-valuetext.
557
+ */
558
+ getOptionValueText = (el) => {
559
+ return el ? el.getAttribute('aria-label') ?? el.innerText : '';
560
+ };
548
561
  render() {
549
562
  const { color, disabled, isActive, numericInput } = this;
550
563
  const mode = getIonMode(this);
551
- return (h(Host, { key: '234c96a501d7ac413b9b0ea56b33017681e25b40', class: createColorClasses(color, {
564
+ return (h(Host, { key: '78b46ad10d88ea1bb43ca8c36748767912f03224', class: createColorClasses(color, {
552
565
  [mode]: true,
553
566
  ['picker-column-active']: isActive,
554
567
  ['picker-column-numeric-input']: numericInput,
555
568
  ['picker-column-disabled']: disabled,
556
- }) }, h("slot", { key: '9dc15ea0601ddd2cb2e0a745e91e036a8bd96f8b', name: "prefix" }), h("div", { key: 'de4fe28ee4bc46b7c0420d6ab0df0e7809443da9', class: "picker-opts", ref: (el) => {
569
+ }) }, h("slot", { key: '761e501df77f7de896ffb3ebb99ebf88c5c3bf70', name: "prefix" }), h("div", { key: '9f4caaeef8ab704522a85f30876d371712f47c5c', class: "picker-opts", ref: (el) => {
557
570
  this.scrollEl = el;
558
- }, role: "slider", tabindex: this.disabled ? undefined : 0, "aria-label": this.ariaLabel, "aria-valuemin": 0, "aria-valuemax": 0, "aria-valuenow": 0, "aria-valuetext": this.getOptionValueText(this.activeItem), "aria-orientation": "vertical", onKeyDown: (ev) => this.onKeyDown(ev) }, h("div", { key: '5297617462cc30e9444039ae032d8bdf718349af', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '55ea39ef867bcb1a11a912d52ecd20cb886c5fb3', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '3496730ce6182ebfd33e0ee4bafc130feb575a31', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("slot", { key: '44c3628aa957d60f799dc7019f72fe8b676c7843' }), h("div", { key: '5a1809f6c949678a67e0d4b5bfe93ea335c0161d', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '98fd57f1c66dbaebc2db2dd5da142671b3159fd1', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '85590708abddfa885994e549deac64866fec938f', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), h("slot", { key: 'bb7e674f543696a80fcbfb1f68f2e975826898a6', name: "suffix" })));
571
+ }, role: "slider", tabindex: this.disabled ? undefined : 0, "aria-label": this.ariaLabel, "aria-valuemin": 0, "aria-valuemax": 0, "aria-valuenow": 0, "aria-valuetext": this.getOptionValueText(this.activeItem), "aria-orientation": "vertical", onKeyDown: (ev) => this.onKeyDown(ev) }, h("div", { key: '9d3533436aba6c61c93f65f84a077fba832194a0', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '3f18d3a47361f06f55321b65fdf5742a61722b26', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'eac0d20ab8c533ef829875e323e93e1ee2067d6d', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("slot", { key: '92e25989ef41cf6f910c73238e1a0a5ac03f1c1f' }), h("div", { key: '33a84644ebdc84108b44a8e3a129b54e824939c8', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '128ad61a3a68c7ff2d2e44a6e968424fcc608a15', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '6e4d59a4f75befcbbf47279a263f28a69b12dbbd', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), h("slot", { key: '3c6621b64438792a3024c90e3d9916a0a3614506', name: "suffix" })));
559
572
  }
560
- get el() { return getElement(this); }
561
573
  static get watchers() { return {
562
574
  "aria-label": [{
563
575
  "ariaLabelChanged": 0