@ionic/core 8.8.19 → 8.8.20-dev.11787158518.168a2fea

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 (799) 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--m5cCjbK.js +4 -0
  99. package/components/p-1jI5oW-W.js +4 -0
  100. package/components/{p-6J0vc7Z8.js → p-63OhffQv.js} +1 -1
  101. package/components/p-8FN7p701.js +4 -0
  102. package/components/p-B4uHHhPK.js +4 -0
  103. package/components/p-BMPN55of.js +4 -0
  104. package/components/p-BNJOu1Q2.js +4 -0
  105. package/components/p-BOvLNVKq.js +4 -0
  106. package/components/p-BSQPZ79H.js +4 -0
  107. package/components/p-BeamQXHF.js +4 -0
  108. package/components/p-BhamHSw3.js +4 -0
  109. package/components/p-Bjig0DJK.js +4 -0
  110. package/components/p-BjluhQMI.js +4 -0
  111. package/components/p-BlsIikdZ.js +4 -0
  112. package/components/p-BqPNzJf6.js +4 -0
  113. package/components/p-BrD9Xv62.js +4 -0
  114. package/components/p-BvJqoZ5R.js +4 -0
  115. package/components/p-Bz6z3Asd.js +4 -0
  116. package/components/p-C5KYjZWD.js +4 -0
  117. package/components/p-C6HnVvHO.js +4 -0
  118. package/components/p-C7jvh5Wy.js +4 -0
  119. package/components/p-C9BGR5fy.js +4 -0
  120. package/components/p-CB-y1CdP.js +4 -0
  121. package/components/p-CEW4RXZO.js +4 -0
  122. package/components/p-CHH3loEE.js +4 -0
  123. package/components/p-CJKUWjmg.js +4 -0
  124. package/components/{p-qMmFisyx.js → p-CMLAwl_N.js} +1 -1
  125. package/components/{p-C7II1iDj.js → p-C_phlPMC.js} +1 -1
  126. package/components/p-CbhUdtjf.js +4 -0
  127. package/components/p-CejmQs3h.js +4 -0
  128. package/components/p-CtZqa4HM.js +4 -0
  129. package/components/p-D7-vHX0A.js +4 -0
  130. package/components/p-D9qIVSWm.js +4 -0
  131. package/components/p-DD5fQ4EQ.js +4 -0
  132. package/components/p-DE-3iMNW.js +4 -0
  133. package/components/p-DFvZn99E.js +4 -0
  134. package/components/p-DHFt2rdc.js +4 -0
  135. package/components/p-DM-PrAoh.js +4 -0
  136. package/components/p-DSzSbVP2.js +4 -0
  137. package/components/{p--JUspHvy.js → p-DV85C0e0.js} +1 -1
  138. package/components/p-DWCzVL3Y.js +4 -0
  139. package/components/p-D_RCyzwu.js +4 -0
  140. package/components/p-D_tD8r3L.js +4 -0
  141. package/components/p-DaA_8eqt.js +4 -0
  142. package/components/p-DjCtLZbF.js +4 -0
  143. package/components/p-Dmd2xqCe.js +4 -0
  144. package/components/p-Dojwmvde.js +4 -0
  145. package/components/{p-BkKAANMJ.js → p-DwpKZ6rl.js} +1 -1
  146. package/components/p-DzRT60Tw.js +4 -0
  147. package/components/p-G0TxqHfe.js +4 -0
  148. package/components/p-G6JR-cr_.js +4 -0
  149. package/components/p-GG5GhznE.js +4 -0
  150. package/components/p-TXPDHL13.js +4 -0
  151. package/components/p-UIBJkZf8.js +4 -0
  152. package/components/p-_IKFD3ID.js +4 -0
  153. package/components/p-byZM6qHV.js +4 -0
  154. package/components/p-dKq2jIum.js +4 -0
  155. package/components/p-fruGqVHh.js +4 -0
  156. package/components/p-iYhH60Tc.js +4 -0
  157. package/components/p-ia3IDdJS.js +4 -0
  158. package/components/{p-DqLB8yFQ.js → p-ryyf_ItD.js} +1 -1
  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-AWp_ygDP.js → button-active-CVMevT9a.js} +3 -3
  162. package/dist/cjs/config-CjUbvdPW.js +36 -0
  163. package/dist/cjs/{dir-DD0jPVH3.js → dir-zwDPRE5K.js} +2 -3
  164. package/dist/cjs/{format-BUFWn4Bn.js → format-pp0Du3K-.js} +40 -30
  165. package/dist/cjs/{framework-delegate-CEzl4MEA.js → framework-delegate-Dfo5XsGv.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-DdZyl6WL.js → helpers-YPQybDph.js} +4 -4
  170. package/dist/cjs/index-B7zJsYWS.js +429 -0
  171. package/dist/cjs/{index-CukZnH1U.js → index-BLdJCcJY.js} +5 -5
  172. package/dist/cjs/{index-MWAIyVLl.js → index-DDg31ZF5.js} +3 -3
  173. package/dist/cjs/{index-DOiZqxWZ.js → index-DXsPSne6.js} +6 -7
  174. package/dist/cjs/{index-BJ2-LydH.js → index-DwlRtFZe.js} +9 -3
  175. package/dist/cjs/{index-BfaXsATC.js → index-uvry__L4.js} +31 -14
  176. package/dist/cjs/{index-DqmRDbxg.js → index-wOmugbdg.js} +1 -1
  177. package/dist/cjs/{index-CD92bI7B.js → index-zVCah4Uz.js} +2 -2
  178. package/dist/cjs/index.cjs.js +19 -19
  179. package/dist/cjs/{input-shims-CPKgrIe3.js → input-shims-Cbu1fcye.js} +10 -12
  180. package/dist/cjs/input.utils-BZdMWVrt.js +35 -0
  181. package/dist/cjs/ion-accordion_2.cjs.entry.js +369 -341
  182. package/dist/cjs/ion-action-sheet.cjs.entry.js +188 -77
  183. package/dist/cjs/ion-alert.cjs.entry.js +274 -112
  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 +48 -24
  187. package/dist/cjs/ion-backdrop.cjs.entry.js +18 -14
  188. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +200 -122
  189. package/dist/cjs/ion-button_2.cjs.entry.js +139 -67
  190. package/dist/cjs/ion-card_5.cjs.entry.js +83 -31
  191. package/dist/cjs/ion-checkbox.cjs.entry.js +153 -102
  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 +254 -242
  195. package/dist/cjs/ion-datetime.cjs.entry.js +2770 -0
  196. package/dist/cjs/ion-fab_3.cjs.entry.js +140 -82
  197. package/dist/cjs/ion-img.cjs.entry.js +35 -13
  198. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +101 -73
  199. package/dist/cjs/ion-input-otp.cjs.entry.js +435 -372
  200. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +36 -22
  201. package/dist/cjs/ion-input.cjs.entry.js +343 -212
  202. package/dist/cjs/ion-item-option_3.cjs.entry.js +95 -55
  203. package/dist/cjs/ion-item_8.cjs.entry.js +192 -93
  204. package/dist/cjs/ion-loading.cjs.entry.js +147 -61
  205. package/dist/cjs/ion-menu_3.cjs.entry.js +169 -107
  206. package/dist/cjs/ion-modal.cjs.entry.js +456 -262
  207. package/dist/cjs/ion-nav_2.cjs.entry.js +102 -159
  208. package/dist/cjs/ion-picker-column-option.cjs.entry.js +38 -34
  209. package/dist/cjs/ion-picker-column.cjs.entry.js +418 -406
  210. package/dist/cjs/ion-picker.cjs.entry.js +402 -393
  211. package/dist/cjs/ion-popover.cjs.entry.js +320 -206
  212. package/dist/cjs/ion-progress-bar.cjs.entry.js +32 -26
  213. package/dist/cjs/ion-radio_2.cjs.entry.js +208 -135
  214. package/dist/cjs/ion-range.cjs.entry.js +304 -239
  215. package/dist/cjs/ion-refresher_2.cjs.entry.js +166 -94
  216. package/dist/cjs/ion-reorder_2.cjs.entry.js +54 -24
  217. package/dist/cjs/ion-ripple-effect.cjs.entry.js +14 -14
  218. package/dist/cjs/ion-route_4.cjs.entry.js +176 -72
  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 +105 -49
  224. package/dist/cjs/ion-select_3.cjs.entry.js +787 -260
  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 +101 -42
  228. package/dist/cjs/ion-tab_2.cjs.entry.js +54 -28
  229. package/dist/cjs/ion-text.cjs.entry.js +11 -5
  230. package/dist/cjs/ion-textarea.cjs.entry.js +296 -189
  231. package/dist/cjs/ion-toast.cjs.entry.js +237 -118
  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-CTiTDh3m.js → ios.transition-zTmJz8T-.js} +14 -18
  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-BpiTAaqF.js → md.transition-nb_4pUXu.js} +8 -9
  242. package/dist/cjs/overlay-control-label-D2sdL2O8.js +50 -0
  243. package/dist/cjs/{overlays-CQ_c1fko.js → overlays-KaNVDNqC.js} +48 -33
  244. package/dist/cjs/select-option-render-pULCGldr.js +123 -0
  245. package/dist/cjs/slot-mutation-controller-DPHmqXdV.js +397 -0
  246. package/dist/cjs/{status-tap-7FzRlXNr.js → status-tap-o9IIymsP.js} +4 -4
  247. package/dist/cjs/{swipe-back-DwTZiAc9.js → swipe-back-B7X9VOlH.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 +57 -26
  297. package/dist/collection/components/input/input.js +336 -206
  298. package/dist/collection/components/input/input.md.css +79 -43
  299. package/dist/collection/components/input-otp/input-otp.js +430 -368
  300. package/dist/collection/components/input-password-toggle/input-password-toggle.js +32 -19
  301. package/dist/collection/components/item/item.js +99 -53
  302. package/dist/collection/components/item-divider/item-divider.js +17 -12
  303. package/dist/collection/components/item-group/item-group.js +1 -1
  304. package/dist/collection/components/item-option/item-option.js +50 -22
  305. package/dist/collection/components/item-options/item-options.js +11 -8
  306. package/dist/collection/components/item-sliding/item-sliding.js +27 -21
  307. package/dist/collection/components/label/label.js +26 -6
  308. package/dist/collection/components/list/list.js +11 -8
  309. package/dist/collection/components/list-header/list-header.js +12 -2
  310. package/dist/collection/components/loading/loading.js +135 -51
  311. package/dist/collection/components/menu/menu.js +103 -61
  312. package/dist/collection/components/menu-button/menu-button.js +30 -21
  313. package/dist/collection/components/menu-toggle/menu-toggle.js +22 -15
  314. package/dist/collection/components/modal/animations/ios.enter.js +1 -1
  315. package/dist/collection/components/modal/animations/md.enter.js +1 -1
  316. package/dist/collection/components/modal/gestures/sheet.js +22 -10
  317. package/dist/collection/components/modal/gestures/swipe-to-close.js +15 -3
  318. package/dist/collection/components/modal/modal.js +398 -228
  319. package/dist/collection/components/modal/safe-area-utils.js +6 -7
  320. package/dist/collection/components/modal/test/fixtures.js +3 -0
  321. package/dist/collection/components/nav/nav.js +69 -247
  322. package/dist/collection/components/nav/view-controller.js +7 -1
  323. package/dist/collection/components/nav-link/nav-link.js +21 -10
  324. package/dist/collection/components/note/note.js +8 -2
  325. package/dist/collection/components/picker/picker.js +398 -390
  326. package/dist/collection/components/picker-column/picker-column.css +3 -0
  327. package/dist/collection/components/picker-column/picker-column.js +414 -404
  328. package/dist/collection/components/picker-column-option/picker-column-option.js +33 -31
  329. package/dist/collection/components/picker-column-option/picker-column-option.md.css +6 -1
  330. package/dist/collection/components/popover/animations/ios.enter.js +1 -2
  331. package/dist/collection/components/popover/animations/md.enter.js +1 -2
  332. package/dist/collection/components/popover/popover.ios.css +15 -0
  333. package/dist/collection/components/popover/popover.js +302 -185
  334. package/dist/collection/components/popover/popover.md.css +15 -0
  335. package/dist/collection/components/popover/test/fixture.js +1 -0
  336. package/dist/collection/components/popover/utils.js +4 -6
  337. package/dist/collection/components/progress-bar/progress-bar.js +27 -23
  338. package/dist/collection/components/radio/radio.js +102 -66
  339. package/dist/collection/components/radio-group/radio-group.js +101 -66
  340. package/dist/collection/components/radio-group/test/fixtures.js +2 -0
  341. package/dist/collection/components/range/range.js +298 -234
  342. package/dist/collection/components/refresher/refresher.js +110 -78
  343. package/dist/collection/components/refresher-content/refresher-content.js +41 -4
  344. package/dist/collection/components/reorder/reorder.js +2 -1
  345. package/dist/collection/components/reorder-group/reorder-group.js +44 -15
  346. package/dist/collection/components/ripple-effect/ripple-effect.js +12 -13
  347. package/dist/collection/components/route/route.js +39 -10
  348. package/dist/collection/components/route-redirect/route-redirect.js +31 -0
  349. package/dist/collection/components/router/router.js +37 -33
  350. package/dist/collection/components/router/utils/dom.js +25 -7
  351. package/dist/collection/components/router/utils/matching.js +7 -9
  352. package/dist/collection/components/router/utils/parser.js +1 -1
  353. package/dist/collection/components/router/utils/path.js +0 -1
  354. package/dist/collection/components/router-link/router-link.js +37 -12
  355. package/dist/collection/components/router-outlet/router-outlet.js +82 -21
  356. package/dist/collection/components/row/row.js +1 -1
  357. package/dist/collection/components/searchbar/searchbar.js +289 -199
  358. package/dist/collection/components/segment/segment.js +120 -85
  359. package/dist/collection/components/segment-button/segment-button.js +43 -37
  360. package/dist/collection/components/segment-content/segment-content.js +1 -1
  361. package/dist/collection/components/segment-view/segment-view.js +26 -16
  362. package/dist/collection/components/select/select.ios.css +96 -69
  363. package/dist/collection/components/select/select.js +629 -213
  364. package/dist/collection/components/select/select.md.css +118 -85
  365. package/dist/collection/components/select-modal/select-modal.ios.css +218 -0
  366. package/dist/collection/components/select-modal/select-modal.js +92 -38
  367. package/dist/collection/components/select-modal/select-modal.md.css +164 -0
  368. package/dist/collection/components/select-modal/test/fixtures.js +8 -1
  369. package/dist/collection/components/select-option/select-option.js +110 -9
  370. package/dist/collection/components/select-popover/select-popover.ios.css +218 -0
  371. package/dist/collection/components/select-popover/select-popover.js +103 -36
  372. package/dist/collection/components/select-popover/select-popover.md.css +164 -0
  373. package/dist/collection/components/select-popover/test/fixtures.js +8 -1
  374. package/dist/collection/components/skeleton-text/skeleton-text.js +12 -8
  375. package/dist/collection/components/spinner/spinner.js +21 -9
  376. package/dist/collection/components/split-pane/split-pane.js +27 -15
  377. package/dist/collection/components/tab/tab.js +17 -6
  378. package/dist/collection/components/tab-bar/tab-bar.js +32 -14
  379. package/dist/collection/components/tab-button/tab-button.js +62 -23
  380. package/dist/collection/components/tabs/tabs.js +33 -20
  381. package/dist/collection/components/text/text.js +8 -2
  382. package/dist/collection/components/textarea/textarea.ios.css +94 -62
  383. package/dist/collection/components/textarea/textarea.js +287 -181
  384. package/dist/collection/components/textarea/textarea.md.css +103 -77
  385. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  386. package/dist/collection/components/title/title.js +18 -2
  387. package/dist/collection/components/toast/toast.js +223 -106
  388. package/dist/collection/components/toggle/toggle.js +167 -115
  389. package/dist/collection/components/toolbar/toolbar.js +15 -7
  390. package/dist/collection/global/config.js +4 -6
  391. package/dist/collection/global/ionic-global.js +8 -2
  392. package/dist/collection/index.js +1 -1
  393. package/dist/collection/utils/animation/animation.js +3 -3
  394. package/dist/collection/utils/config.js +5 -4
  395. package/dist/collection/utils/focus-controller/index.js +1 -1
  396. package/dist/collection/utils/focus-trap.js +3 -3
  397. package/dist/collection/utils/forms/index.js +1 -0
  398. package/dist/collection/utils/forms/start-container-controller.js +132 -0
  399. package/dist/collection/utils/framework-delegate.js +4 -6
  400. package/dist/collection/utils/gesture/gesture-controller.js +15 -8
  401. package/dist/collection/utils/gesture/index.js +10 -2
  402. package/dist/collection/utils/hardware-back-button.js +3 -3
  403. package/dist/collection/utils/helpers.js +2 -2
  404. package/dist/collection/utils/input-shims/hacks/scroll-assist.js +4 -5
  405. package/dist/collection/utils/input-shims/hacks/scroll-data.js +1 -2
  406. package/dist/collection/utils/keyboard/keyboard-controller.js +5 -5
  407. package/dist/collection/utils/keyboard/keyboard.js +1 -1
  408. package/dist/collection/utils/logging/index.js +23 -4
  409. package/dist/collection/utils/menu-controller/index.js +1 -2
  410. package/dist/collection/utils/native/haptic.js +2 -3
  411. package/dist/collection/utils/native/keyboard.js +2 -2
  412. package/dist/collection/utils/native/status-bar.js +1 -1
  413. package/dist/collection/utils/overlay-control-label.js +45 -0
  414. package/dist/collection/utils/overlays.js +38 -23
  415. package/dist/collection/utils/platform.js +4 -5
  416. package/dist/collection/utils/rtl/dir.js +2 -3
  417. package/dist/collection/utils/sanitization/index.js +276 -20
  418. package/dist/collection/utils/select-option-render.js +118 -0
  419. package/dist/collection/utils/slot-mutation-controller.js +1 -2
  420. package/dist/collection/utils/test/playwright/apply-keyboard-focus.js +1 -1
  421. package/dist/collection/utils/test/playwright/drag-element.js +2 -3
  422. package/dist/collection/utils/test/playwright/generator.js +3 -4
  423. package/dist/collection/utils/test/playwright/page/event-spy.js +11 -12
  424. package/dist/collection/utils/test/playwright/page/utils/goto.js +4 -5
  425. package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
  426. package/dist/collection/utils/test/playwright/page/utils/set-ion-viewport.js +2 -3
  427. package/dist/collection/utils/test/press-keys.js +10 -17
  428. package/dist/collection/utils/theme.js +6 -1
  429. package/dist/collection/utils/transition/ios.transition.js +9 -13
  430. package/dist/collection/utils/transition/md.transition.js +3 -4
  431. package/dist/docs.json +557 -1257
  432. package/dist/esm/{animation-DLJpuoEz.js → animation-CGFdmGk9.js} +4 -4
  433. package/dist/esm/{app-globals-D0C5S4hU.js → app-globals-CYmMeGdU.js} +1 -1
  434. package/dist/esm/{button-active-CXXy0FIE.js → button-active-BDOsVAiZ.js} +3 -3
  435. package/dist/esm/config-DWCzVL3Y.js +32 -0
  436. package/dist/esm/{dir-o8OKV5aD.js → dir-Dojwmvde.js} +2 -3
  437. package/dist/esm/{format-CAmvpAez.js → format-Dcwga61t.js} +41 -31
  438. package/dist/esm/{framework-delegate-B9yvYzqV.js → framework-delegate-BHTU2Ip9.js} +5 -7
  439. package/dist/esm/{gesture-controller-BTEOs1at.js → gesture-controller-TXPDHL13.js} +15 -8
  440. package/dist/esm/{haptic-DzAMWJuk.js → haptic-Cq4UAeka.js} +2 -3
  441. package/dist/esm/{hardware-back-button-B93Gru0Y.js → hardware-back-button-gLJHMX_F.js} +4 -4
  442. package/dist/esm/{helpers-DkCLSLI9.js → helpers-CAGf8Wgp.js} +4 -4
  443. package/dist/esm/{index-DV3sJJW8.js → index-BvabGprD.js} +2 -2
  444. package/dist/esm/index-CKM1DdGm.js +424 -0
  445. package/dist/esm/{index-tcQvqkiX.js → index-ChhhtsGZ.js} +32 -15
  446. package/dist/esm/{index-DwNKJodj.js → index-Clc-28O1.js} +3 -3
  447. package/dist/esm/{index-DdeElWma.js → index-CqneaaGd.js} +6 -7
  448. package/dist/esm/{index-Bck1OwMs.js → index-DcPaH5uL.js} +9 -3
  449. package/dist/esm/{index-B_8X7INq.js → index-T0JxBI8V.js} +2 -2
  450. package/dist/esm/{index-Dsz7OTeL.js → index-WlteAIqz.js} +5 -5
  451. package/dist/esm/index.js +17 -16
  452. package/dist/esm/{input-shims-d-hDv86G.js → input-shims-B8sfni1e.js} +10 -12
  453. package/dist/esm/input.utils-B1ValN_N.js +33 -0
  454. package/dist/esm/ion-accordion_2.entry.js +369 -341
  455. package/dist/esm/ion-action-sheet.entry.js +188 -77
  456. package/dist/esm/ion-alert.entry.js +273 -111
  457. package/dist/esm/ion-app_8.entry.js +307 -190
  458. package/dist/esm/ion-avatar_3.entry.js +10 -4
  459. package/dist/esm/ion-back-button.entry.js +48 -24
  460. package/dist/esm/ion-backdrop.entry.js +18 -14
  461. package/dist/esm/ion-breadcrumb_2.entry.js +200 -122
  462. package/dist/esm/ion-button_2.entry.js +139 -67
  463. package/dist/esm/ion-card_5.entry.js +83 -31
  464. package/dist/esm/ion-checkbox.entry.js +153 -102
  465. package/dist/esm/ion-chip.entry.js +17 -11
  466. package/dist/esm/ion-col_3.entry.js +134 -10
  467. package/dist/esm/ion-datetime-button.entry.js +254 -242
  468. package/dist/esm/ion-datetime.entry.js +2768 -0
  469. package/dist/esm/ion-fab_3.entry.js +140 -82
  470. package/dist/esm/ion-img.entry.js +35 -13
  471. package/dist/esm/ion-infinite-scroll_2.entry.js +100 -72
  472. package/dist/esm/ion-input-otp.entry.js +435 -372
  473. package/dist/esm/ion-input-password-toggle.entry.js +36 -22
  474. package/dist/esm/ion-input.entry.js +341 -210
  475. package/dist/esm/ion-item-option_3.entry.js +95 -55
  476. package/dist/esm/ion-item_8.entry.js +192 -93
  477. package/dist/esm/ion-loading.entry.js +146 -60
  478. package/dist/esm/ion-menu_3.entry.js +169 -107
  479. package/dist/esm/ion-modal.entry.js +456 -262
  480. package/dist/esm/ion-nav_2.entry.js +102 -159
  481. package/dist/esm/ion-picker-column-option.entry.js +38 -34
  482. package/dist/esm/ion-picker-column.entry.js +418 -406
  483. package/dist/esm/ion-picker.entry.js +402 -393
  484. package/dist/esm/ion-popover.entry.js +320 -206
  485. package/dist/esm/ion-progress-bar.entry.js +32 -26
  486. package/dist/esm/ion-radio_2.entry.js +208 -135
  487. package/dist/esm/ion-range.entry.js +304 -239
  488. package/dist/esm/ion-refresher_2.entry.js +164 -92
  489. package/dist/esm/ion-reorder_2.entry.js +54 -24
  490. package/dist/esm/ion-ripple-effect.entry.js +14 -14
  491. package/dist/esm/ion-route_4.entry.js +176 -72
  492. package/dist/esm/ion-searchbar.entry.js +291 -200
  493. package/dist/esm/ion-segment-content.entry.js +2 -2
  494. package/dist/esm/ion-segment-view.entry.js +28 -17
  495. package/dist/esm/ion-segment_2.entry.js +169 -126
  496. package/dist/esm/ion-select-modal.entry.js +105 -49
  497. package/dist/esm/ion-select_3.entry.js +787 -260
  498. package/dist/esm/ion-spinner.entry.js +24 -10
  499. package/dist/esm/ion-split-pane.entry.js +29 -16
  500. package/dist/esm/ion-tab-bar_2.entry.js +101 -42
  501. package/dist/esm/ion-tab_2.entry.js +54 -28
  502. package/dist/esm/ion-text.entry.js +11 -5
  503. package/dist/esm/ion-textarea.entry.js +295 -188
  504. package/dist/esm/ion-toast.entry.js +236 -117
  505. package/dist/esm/ion-toggle.entry.js +175 -122
  506. package/dist/esm/{ionic-global-Cp_eT4sZ.js → ionic-global-BVB7BrLT.js} +13 -8
  507. package/dist/esm/ionic.js +5 -5
  508. package/dist/esm/{ios.transition-CxNhMt4a.js → ios.transition-DXRCmcbC.js} +14 -18
  509. package/dist/esm/{item-multiple-inputs-DlNuqNJm.js → item-multiple-inputs-rU8VaNNg.js} +1 -1
  510. package/dist/esm/{keyboard-ywgs5efA.js → keyboard-Cj8mLJeq.js} +2 -2
  511. package/dist/esm/{keyboard-CUw4ekVy.js → keyboard-DAF8GNJ9.js} +2 -2
  512. package/dist/esm/{keyboard-controller-BaaVITYt.js → keyboard-controller-DEwoa1ev.js} +6 -6
  513. package/dist/esm/loader.js +5 -5
  514. package/dist/esm/{md.transition-IE4mC3kp.js → md.transition-BMngO4i_.js} +8 -9
  515. package/dist/esm/overlay-control-label-BSQPZ79H.js +47 -0
  516. package/dist/esm/{overlays-COCl_nm9.js → overlays-CPmIs9Ls.js} +48 -33
  517. package/dist/esm/select-option-render-C4m76VGH.js +121 -0
  518. package/dist/esm/slot-mutation-controller-DiE_C9un.js +393 -0
  519. package/dist/esm/{status-tap-HhO5eQI9.js → status-tap-CHB7KwIb.js} +4 -4
  520. package/dist/esm/{swipe-back-DK6afpuO.js → swipe-back-C9HW1bug.js} +5 -5
  521. package/dist/esm/{theme-DiVJyqlX.js → theme-byZM6qHV.js} +6 -1
  522. package/dist/html.html-data.json +52 -80
  523. package/dist/ionic/index.esm.js +1 -1
  524. package/dist/ionic/ionic.esm.js +1 -1
  525. package/dist/ionic/p-06ec7136.entry.js +4 -0
  526. package/dist/ionic/p-09fe4fa3.entry.js +4 -0
  527. package/dist/ionic/p-10d45a07.entry.js +4 -0
  528. package/dist/ionic/p-208c8a07.entry.js +4 -0
  529. package/dist/ionic/p-212474fa.entry.js +4 -0
  530. package/dist/ionic/p-2eef1396.entry.js +4 -0
  531. package/dist/ionic/p-347e005d.entry.js +4 -0
  532. package/dist/ionic/p-3a0b3f1d.entry.js +4 -0
  533. package/dist/ionic/p-3b071259.entry.js +4 -0
  534. package/dist/ionic/{p-c6e49f3f.entry.js → p-40424a88.entry.js} +1 -1
  535. package/dist/ionic/p-4204184c.entry.js +4 -0
  536. package/dist/ionic/p-47464391.entry.js +4 -0
  537. package/dist/ionic/p-4eOQC00Z.js +4 -0
  538. package/dist/ionic/p-4f9c9126.entry.js +4 -0
  539. package/dist/ionic/p-5JsKPLJD.js +4 -0
  540. package/dist/ionic/p-5bc485c6.entry.js +4 -0
  541. package/dist/ionic/p-603a61e6.entry.js +4 -0
  542. package/dist/ionic/p-60576951.entry.js +4 -0
  543. package/dist/ionic/p-67a81d33.entry.js +4 -0
  544. package/dist/ionic/p-6affb775.entry.js +4 -0
  545. package/dist/ionic/p-6f120c25.entry.js +4 -0
  546. package/dist/ionic/p-71c82b60.entry.js +4 -0
  547. package/dist/ionic/p-79325ffe.entry.js +4 -0
  548. package/dist/ionic/{p-DZaO33Mw.js → p-7CBuOvEo.js} +1 -1
  549. package/dist/ionic/p-7e4d51fa.entry.js +4 -0
  550. package/dist/ionic/p-7f5d4664.entry.js +4 -0
  551. package/dist/ionic/p-80ee82fc.entry.js +4 -0
  552. package/dist/ionic/p-84af7dbc.entry.js +4 -0
  553. package/dist/ionic/p-89ca830a.entry.js +4 -0
  554. package/dist/ionic/p-93b8ec8f.entry.js +4 -0
  555. package/dist/ionic/p-946f65c2.entry.js +4 -0
  556. package/dist/ionic/p-9c4b39fb.entry.js +4 -0
  557. package/dist/ionic/p-B1NEZUzQ.js +4 -0
  558. package/dist/ionic/p-B1ck5iy-.js +4 -0
  559. package/dist/ionic/{p-Cd4H8ft-.js → p-B4FrqdW0.js} +1 -1
  560. package/dist/ionic/p-BB0LlG4y.js +4 -0
  561. package/dist/ionic/p-BMPN55of.js +4 -0
  562. package/dist/ionic/p-BSQPZ79H.js +4 -0
  563. package/dist/ionic/p-BYEAtHr-.js +4 -0
  564. package/dist/ionic/p-BhamHSw3.js +4 -0
  565. package/dist/ionic/{p-DV3sJJW8.js → p-BvabGprD.js} +1 -1
  566. package/dist/ionic/p-C-94tAim.js +4 -0
  567. package/dist/ionic/{p-DipZFfzN.js → p-C-eHZMYE.js} +1 -1
  568. package/dist/ionic/p-CBR_W98Z.js +4 -0
  569. package/dist/ionic/{p-ClM02LPk.js → p-CBWAXjA5.js} +1 -1
  570. package/dist/ionic/p-CMRtMbJc.js +4 -0
  571. package/dist/ionic/p-CPcPmkGv.js +4 -0
  572. package/dist/ionic/p-CaRuIadB.js +4 -0
  573. package/dist/ionic/p-Cdjxf_yg.js +4 -0
  574. package/dist/ionic/p-ChhhtsGZ.js +5 -0
  575. package/dist/ionic/p-CzS1qWve.js +4 -0
  576. package/dist/ionic/p-D5t_-oMk.js +4 -0
  577. package/dist/ionic/p-D94_RztK.js +4 -0
  578. package/dist/ionic/p-DWCzVL3Y.js +4 -0
  579. package/dist/ionic/p-DjjfauRM.js +4 -0
  580. package/dist/ionic/p-DkUB-ROc.js +4 -0
  581. package/dist/ionic/p-Dn0mqQ_R.js +4 -0
  582. package/dist/ionic/p-Dojwmvde.js +4 -0
  583. package/dist/ionic/p-DplOqGUv.js +4 -0
  584. package/dist/ionic/p-Dst_XmZh.js +4 -0
  585. package/dist/ionic/p-T71k3C35.js +4 -0
  586. package/dist/ionic/p-TXPDHL13.js +4 -0
  587. package/dist/ionic/p-UIBJkZf8.js +4 -0
  588. package/dist/ionic/p-a438b193.entry.js +4 -0
  589. package/dist/ionic/p-babaaaa7.entry.js +4 -0
  590. package/dist/ionic/p-be08d500.entry.js +4 -0
  591. package/dist/ionic/p-be9a4f51.entry.js +4 -0
  592. package/dist/ionic/p-byZM6qHV.js +4 -0
  593. package/dist/ionic/p-c00d3092.entry.js +4 -0
  594. package/dist/ionic/p-c36dc8f5.entry.js +4 -0
  595. package/dist/ionic/p-c72a7e17.entry.js +4 -0
  596. package/dist/ionic/p-c8edd88c.entry.js +4 -0
  597. package/dist/ionic/p-ce0e380b.entry.js +4 -0
  598. package/dist/ionic/p-ce32912b.entry.js +4 -0
  599. package/dist/ionic/p-d07cf130.entry.js +4 -0
  600. package/dist/ionic/p-d27edeb3.entry.js +4 -0
  601. package/dist/ionic/p-d5d2c506.entry.js +4 -0
  602. package/dist/ionic/p-d5e31ca9.entry.js +4 -0
  603. package/dist/ionic/p-de91444f.entry.js +4 -0
  604. package/dist/ionic/p-ded69ceb.entry.js +4 -0
  605. package/dist/ionic/p-df72866d.entry.js +4 -0
  606. package/dist/ionic/p-e47e3151.entry.js +4 -0
  607. package/dist/ionic/p-e621e5e8.entry.js +4 -0
  608. package/dist/ionic/p-eea9cf93.entry.js +4 -0
  609. package/dist/ionic/p-f402f5a4.entry.js +4 -0
  610. package/dist/ionic/p-fe1bfbcf.entry.js +4 -0
  611. package/{components/p-9GFIh9p1.js → dist/ionic/p-ffb90460.entry.js} +1 -1
  612. package/dist/types/components/img/img.d.ts +2 -0
  613. package/dist/types/components/input/input.d.ts +12 -6
  614. package/dist/types/components/modal/modal-interface.d.ts +9 -0
  615. package/dist/types/components/modal/modal.d.ts +11 -4
  616. package/dist/types/components/nav/nav-interface.d.ts +0 -1
  617. package/dist/types/components/nav/nav.d.ts +2 -22
  618. package/dist/types/components/route/route.d.ts +1 -1
  619. package/dist/types/components/router-outlet/router-outlet.d.ts +7 -0
  620. package/dist/types/components/searchbar/searchbar.d.ts +1 -1
  621. package/dist/types/components/select/select-interface.d.ts +31 -0
  622. package/dist/types/components/select/select.d.ts +30 -6
  623. package/dist/types/components/select-option/select-option.d.ts +42 -1
  624. package/dist/types/components/textarea/textarea.d.ts +12 -5
  625. package/dist/types/components.d.ts +74 -311
  626. package/dist/types/index.d.ts +1 -1
  627. package/dist/types/interface.d.ts +0 -1
  628. package/dist/types/utils/config.d.ts +1 -8
  629. package/dist/types/utils/forms/index.d.ts +1 -0
  630. package/dist/types/utils/forms/start-container-controller.d.ts +34 -0
  631. package/dist/types/utils/logging/index.d.ts +2 -1
  632. package/dist/types/utils/overlay-control-label.d.ts +32 -0
  633. package/dist/types/utils/overlays.d.ts +11 -9
  634. package/dist/types/utils/sanitization/index.d.ts +58 -2
  635. package/dist/types/utils/select-option-render.d.ts +53 -0
  636. package/dist/types/utils/test/playwright/playwright-page.d.ts +1 -1
  637. package/dist/types/utils/test/playwright/testExpect.d.ts +1 -1
  638. package/hydrate/index.js +10660 -7305
  639. package/hydrate/index.mjs +10660 -7305
  640. package/package.json +55 -12
  641. package/components/ion-picker-legacy-column.d.ts +0 -11
  642. package/components/ion-picker-legacy-column.js +0 -4
  643. package/components/ion-picker-legacy.d.ts +0 -11
  644. package/components/ion-picker-legacy.js +0 -4
  645. package/components/p-0LM2oPMC.js +0 -4
  646. package/components/p-B21528L5.js +0 -4
  647. package/components/p-B2nSfLHH.js +0 -4
  648. package/components/p-B3qf4bEn.js +0 -4
  649. package/components/p-B9jFTlwE.js +0 -4
  650. package/components/p-BDd9Zrb9.js +0 -4
  651. package/components/p-BLmJ0zRm.js +0 -4
  652. package/components/p-BMYNBJgf.js +0 -4
  653. package/components/p-BRYd8D-I.js +0 -4
  654. package/components/p-BSEgsdFI.js +0 -4
  655. package/components/p-BTEOs1at.js +0 -4
  656. package/components/p-BTJrYwxN.js +0 -4
  657. package/components/p-BV-zKay-.js +0 -4
  658. package/components/p-BYRVyMu9.js +0 -4
  659. package/components/p-Bmq8qlkW.js +0 -4
  660. package/components/p-BuxQcfHK.js +0 -4
  661. package/components/p-Bz0dSlXZ.js +0 -4
  662. package/components/p-CHqRYvYm.js +0 -4
  663. package/components/p-CSZf8_j0.js +0 -4
  664. package/components/p-CTdRooFV.js +0 -4
  665. package/components/p-Cf2jSDS8.js +0 -4
  666. package/components/p-Cfx4M1Bn.js +0 -4
  667. package/components/p-CgkrslTX.js +0 -4
  668. package/components/p-CiCzYG2V.js +0 -4
  669. package/components/p-Ck0lEczL.js +0 -4
  670. package/components/p-CmR5uXej.js +0 -4
  671. package/components/p-CniZht3v.js +0 -4
  672. package/components/p-CsaojgEs.js +0 -4
  673. package/components/p-CtWGkNnJ.js +0 -4
  674. package/components/p-D13Eaw-8.js +0 -4
  675. package/components/p-D4FYu-4R.js +0 -4
  676. package/components/p-D6Ynv7Xh.js +0 -4
  677. package/components/p-DARjq3GM.js +0 -4
  678. package/components/p-DEZ2myA3.js +0 -4
  679. package/components/p-DOFCbuQR.js +0 -4
  680. package/components/p-DVe41iHI.js +0 -4
  681. package/components/p-DX5m9g56.js +0 -4
  682. package/components/p-DboHi2CL.js +0 -4
  683. package/components/p-DiVJyqlX.js +0 -4
  684. package/components/p-DmzFY5IC.js +0 -4
  685. package/components/p-DqZAXv2t.js +0 -4
  686. package/components/p-Dv8w0kqz.js +0 -4
  687. package/components/p-Dw7GNDKq.js +0 -4
  688. package/components/p-Dww01PNs.js +0 -4
  689. package/components/p-Gy276IJk.js +0 -4
  690. package/components/p-ZzLXTvyt.js +0 -4
  691. package/components/p-cyNmxje6.js +0 -4
  692. package/components/p-j5IxBIan.js +0 -4
  693. package/components/p-k_E4tX5Z.js +0 -4
  694. package/components/p-lVAbdiAu.js +0 -4
  695. package/components/p-o8OKV5aD.js +0 -4
  696. package/components/p-rCa2eL0j.js +0 -4
  697. package/dist/cjs/config-D6C-KlA9.js +0 -201
  698. package/dist/cjs/input.utils-DQaUGGed.js +0 -150
  699. package/dist/cjs/ion-datetime_3.cjs.entry.js +0 -3167
  700. package/dist/cjs/notch-controller-aiy8aQb-.js +0 -155
  701. package/dist/collection/components/picker-legacy/animations/ios.enter.js +0 -27
  702. package/dist/collection/components/picker-legacy/animations/ios.leave.js +0 -23
  703. package/dist/collection/components/picker-legacy/picker-interface.js +0 -1
  704. package/dist/collection/components/picker-legacy/picker.ios.css +0 -300
  705. package/dist/collection/components/picker-legacy/picker.js +0 -890
  706. package/dist/collection/components/picker-legacy/picker.md.css +0 -287
  707. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -231
  708. package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
  709. package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -222
  710. package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
  711. package/dist/esm/config-DQCONYYp.js +0 -195
  712. package/dist/esm/input.utils-Cd23Gdd1.js +0 -147
  713. package/dist/esm/ion-datetime_3.entry.js +0 -3163
  714. package/dist/esm/notch-controller-Doqis1td.js +0 -153
  715. package/dist/ionic/p-01f81ea5.entry.js +0 -4
  716. package/dist/ionic/p-0283ea73.entry.js +0 -4
  717. package/dist/ionic/p-02ecae65.entry.js +0 -4
  718. package/dist/ionic/p-0672f677.entry.js +0 -4
  719. package/dist/ionic/p-0c06fe60.entry.js +0 -4
  720. package/dist/ionic/p-0fa9c382.entry.js +0 -4
  721. package/dist/ionic/p-1af4d74c.entry.js +0 -4
  722. package/dist/ionic/p-1d7ef0d2.entry.js +0 -4
  723. package/dist/ionic/p-26f05d3a.entry.js +0 -4
  724. package/dist/ionic/p-27d30585.entry.js +0 -4
  725. package/dist/ionic/p-2bb2cb18.entry.js +0 -4
  726. package/dist/ionic/p-31e7bd05.entry.js +0 -4
  727. package/dist/ionic/p-32f53010.entry.js +0 -4
  728. package/dist/ionic/p-35eb8b5c.entry.js +0 -4
  729. package/dist/ionic/p-37e720da.entry.js +0 -4
  730. package/dist/ionic/p-3efa137b.entry.js +0 -4
  731. package/dist/ionic/p-432bd72c.entry.js +0 -4
  732. package/dist/ionic/p-47214c72.entry.js +0 -4
  733. package/dist/ionic/p-4e172429.entry.js +0 -4
  734. package/dist/ionic/p-5c3da84e.entry.js +0 -4
  735. package/dist/ionic/p-5d1da0a2.entry.js +0 -4
  736. package/dist/ionic/p-5d8082fe.entry.js +0 -4
  737. package/dist/ionic/p-613d3c43.entry.js +0 -4
  738. package/dist/ionic/p-616e4d4f.entry.js +0 -4
  739. package/dist/ionic/p-65d611b2.entry.js +0 -4
  740. package/dist/ionic/p-67806e3f.entry.js +0 -4
  741. package/dist/ionic/p-68cbb2fc.entry.js +0 -4
  742. package/dist/ionic/p-737ae9eb.entry.js +0 -4
  743. package/dist/ionic/p-7b0d6248.entry.js +0 -4
  744. package/dist/ionic/p-7e71e470.entry.js +0 -4
  745. package/dist/ionic/p-84d5ce05.entry.js +0 -4
  746. package/dist/ionic/p-85d49987.entry.js +0 -4
  747. package/dist/ionic/p-8945088b.entry.js +0 -4
  748. package/dist/ionic/p-8b155568.entry.js +0 -4
  749. package/dist/ionic/p-90267c4b.entry.js +0 -4
  750. package/dist/ionic/p-92ad8a67.entry.js +0 -4
  751. package/dist/ionic/p-9a97d4e0.entry.js +0 -4
  752. package/dist/ionic/p-9e4b0894.entry.js +0 -4
  753. package/dist/ionic/p-9eeaBrnk.js +0 -4
  754. package/dist/ionic/p-B2kaj8sx.js +0 -4
  755. package/dist/ionic/p-B4y7nxsg.js +0 -4
  756. package/dist/ionic/p-B8t9Ro6f.js +0 -4
  757. package/dist/ionic/p-BEOxsxBw.js +0 -4
  758. package/dist/ionic/p-BJ2NxSHp.js +0 -4
  759. package/dist/ionic/p-BLiL8g0v.js +0 -4
  760. package/dist/ionic/p-BTEOs1at.js +0 -4
  761. package/dist/ionic/p-BUFIpxKM.js +0 -4
  762. package/dist/ionic/p-BYRVyMu9.js +0 -4
  763. package/dist/ionic/p-C0eMdTCW.js +0 -4
  764. package/dist/ionic/p-CKvCXMs9.js +0 -4
  765. package/dist/ionic/p-CPTv7G9B.js +0 -4
  766. package/dist/ionic/p-CtWGkNnJ.js +0 -4
  767. package/dist/ionic/p-CxMyXUtt.js +0 -4
  768. package/dist/ionic/p-D13Eaw-8.js +0 -4
  769. package/dist/ionic/p-DCoy2elM.js +0 -4
  770. package/dist/ionic/p-DiVJyqlX.js +0 -4
  771. package/dist/ionic/p-DqN5EA2O.js +0 -4
  772. package/dist/ionic/p-Dr9fTCb1.js +0 -4
  773. package/dist/ionic/p-DzWaWHGc.js +0 -4
  774. package/dist/ionic/p-EkpneKVM.js +0 -4
  775. package/dist/ionic/p-Nqf6uvGh.js +0 -4
  776. package/dist/ionic/p-SNAkTDfm.js +0 -4
  777. package/dist/ionic/p-ab00b0d8.entry.js +0 -4
  778. package/dist/ionic/p-c2175309.entry.js +0 -4
  779. package/dist/ionic/p-c4b69d9b.entry.js +0 -4
  780. package/dist/ionic/p-c4d8641b.entry.js +0 -4
  781. package/dist/ionic/p-ce637936.entry.js +0 -4
  782. package/dist/ionic/p-da85e958.entry.js +0 -4
  783. package/dist/ionic/p-dfa8d673.entry.js +0 -4
  784. package/dist/ionic/p-e139357c.entry.js +0 -4
  785. package/dist/ionic/p-e7b7a7b1.entry.js +0 -4
  786. package/dist/ionic/p-f37ca594.entry.js +0 -4
  787. package/dist/ionic/p-f8dd336e.entry.js +0 -4
  788. package/dist/ionic/p-f9de757b.entry.js +0 -4
  789. package/dist/ionic/p-fe11cf51.entry.js +0 -4
  790. package/dist/ionic/p-mjKAFv89.js +0 -4
  791. package/dist/ionic/p-o8OKV5aD.js +0 -4
  792. package/dist/ionic/p-tcQvqkiX.js +0 -5
  793. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +0 -5
  794. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +0 -5
  795. package/dist/types/components/picker-legacy/picker-interface.d.ts +0 -52
  796. package/dist/types/components/picker-legacy/picker.d.ts +0 -158
  797. package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
  798. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +0 -9
  799. /package/components/{p-CO7fmmxt.js → p-LpMHEu3v.js} +0 -0
@@ -1,418 +1,67 @@
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-DkCLSLI9.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';
10
- import './dir-o8OKV5aD.js';
6
+ import { r as raf } from './helpers-CAGf8Wgp.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
+ import './dir-Dojwmvde.js';
11
11
  import './capacitor-CFERIeaU.js';
12
12
 
13
- 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)}}`;
13
+ 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)}}`;
14
14
 
15
15
  const PickerColumn = class {
16
16
  constructor(hostRef) {
17
17
  registerInstance(this, hostRef);
18
18
  this.ionChange = createEvent(this, "ionChange", 7);
19
- this.isScrolling = false;
20
- this.isColumnVisible = false;
21
- this.canExitInputMode = true;
22
- this.updateValueTextOnScroll = false;
23
- this.ariaLabel = null;
24
- this.isActive = false;
25
- /**
26
- * If `true`, the user cannot interact with the picker.
27
- */
28
- this.disabled = false;
29
- /**
30
- * The color to use from your application's color palette.
31
- * Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
32
- * For more information on colors, see [theming](/docs/theming/basics).
33
- */
34
- this.color = 'primary';
35
- /**
36
- * If `true`, tapping the picker will
37
- * reveal a number input keyboard that lets
38
- * the user type in values for each picker
39
- * column. This is useful when working
40
- * with time pickers.
41
- *
42
- * @internal
43
- */
44
- this.numericInput = false;
45
- this.centerPickerItemInView = (target, smooth = true, canExitInputMode = true) => {
46
- const { isColumnVisible, scrollEl } = this;
47
- if (isColumnVisible && scrollEl) {
48
- // (Vertical offset from parent) - (three empty picker rows) + (half the height of the target to ensure the scroll triggers)
49
- const top = target.offsetTop - 3 * target.clientHeight + target.clientHeight / 2;
50
- if (scrollEl.scrollTop !== top) {
51
- /**
52
- * Setting this flag prevents input
53
- * mode from exiting in the picker column's
54
- * scroll callback. This is useful when the user manually
55
- * taps an item or types on the keyboard as both
56
- * of these can cause a scroll to occur.
57
- */
58
- this.canExitInputMode = canExitInputMode;
59
- this.updateValueTextOnScroll = false;
60
- scrollEl.scroll({
61
- top,
62
- left: 0,
63
- behavior: smooth ? 'smooth' : undefined,
64
- });
65
- }
66
- }
67
- };
68
- this.setPickerItemActiveState = (item, isActive) => {
69
- if (isActive) {
70
- item.classList.add(PICKER_ITEM_ACTIVE_CLASS);
71
- }
72
- else {
73
- item.classList.remove(PICKER_ITEM_ACTIVE_CLASS);
74
- }
75
- };
76
- /**
77
- * When ionInputModeChange is emitted, each column
78
- * needs to check if it is the one being made available
79
- * for text entry.
80
- */
81
- this.inputModeChange = (ev) => {
82
- if (!this.numericInput) {
83
- return;
84
- }
85
- const { useInputMode, inputModeColumn } = ev.detail;
86
- /**
87
- * If inputModeColumn is undefined then this means
88
- * all numericInput columns are being selected.
89
- */
90
- const isColumnActive = inputModeColumn === undefined || inputModeColumn === this.el;
91
- if (!useInputMode || !isColumnActive) {
92
- this.setInputModeActive(false);
93
- return;
94
- }
95
- this.setInputModeActive(true);
96
- };
97
- /**
98
- * Setting isActive will cause a re-render.
99
- * As a result, we do not want to cause the
100
- * re-render mid scroll as this will cause
101
- * the picker column to jump back to
102
- * whatever value was selected at the
103
- * start of the scroll interaction.
104
- */
105
- this.setInputModeActive = (state) => {
106
- if (this.isScrolling) {
107
- this.scrollEndCallback = () => {
108
- this.isActive = state;
109
- };
110
- return;
111
- }
112
- this.isActive = state;
113
- };
114
- /**
115
- * When the column scrolls, the component
116
- * needs to determine which item is centered
117
- * in the view and will emit an ionChange with
118
- * the item object.
119
- */
120
- this.initializeScrollListener = () => {
121
- /**
122
- * The haptics for the wheel picker are
123
- * an iOS-only feature. As a result, they should
124
- * be disabled on Android.
125
- */
126
- const enableHaptics = isPlatform('ios');
127
- const { el, scrollEl } = this;
128
- let timeout;
129
- let activeEl = this.activeItem;
130
- const scrollCallback = () => {
131
- raf(() => {
132
- var _a;
133
- if (!scrollEl)
134
- return;
135
- if (timeout) {
136
- clearTimeout(timeout);
137
- timeout = undefined;
138
- }
139
- if (!this.isScrolling) {
140
- enableHaptics && hapticSelectionStart();
141
- this.isScrolling = true;
142
- }
143
- /**
144
- * Select item in the center of the column
145
- * which is the month/year that we want to select
146
- */
147
- const bbox = scrollEl.getBoundingClientRect();
148
- const centerX = bbox.x + bbox.width / 2;
149
- const centerY = bbox.y + bbox.height / 2;
150
- /**
151
- * elementFromPoint returns the top-most element.
152
- * This means that if an ion-backdrop is overlaying the
153
- * picker then the appropriate picker column option will
154
- * not be selected. To account for this, we use elementsFromPoint
155
- * and use an Array.find to find the appropriate column option
156
- * at that point.
157
- *
158
- * Additionally, the picker column could be used in the
159
- * Shadow DOM (i.e. in ion-datetime) so we need to make
160
- * sure we are choosing the correct host otherwise
161
- * the elements returns by elementsFromPoint will be
162
- * retargeted. To account for this, we check to see
163
- * if the picker column has a parent shadow root. If
164
- * so, we use that shadow root when doing elementsFromPoint.
165
- * Otherwise, we just use the document.
166
- */
167
- const rootNode = el.getRootNode();
168
- const hasParentShadow = rootNode instanceof ShadowRoot;
169
- const referenceNode = hasParentShadow ? rootNode : doc;
170
- /**
171
- * If the reference node is undefined
172
- * then it's likely that doc is undefined
173
- * due to being in an SSR environment.
174
- */
175
- if (referenceNode === undefined) {
176
- return;
177
- }
178
- const elementsAtPoint = referenceNode.elementsFromPoint(centerX, centerY);
179
- /**
180
- * elementsFromPoint can returns multiple elements
181
- * so find the relevant picker column option if one exists.
182
- */
183
- let newActiveElement = elementsAtPoint.find((el) => el.tagName === 'ION-PICKER-COLUMN-OPTION');
184
- /**
185
- * TODO(FW-6594): Remove this workaround when iOS 16 is no longer
186
- * supported.
187
- *
188
- * If `elementsFromPoint` failed to find the active element (a known
189
- * issue on iOS 16 when elements are in a Shadow DOM and the
190
- * referenceNode is the document), a fallback to `elementFromPoint`
191
- * is used. While `elementsFromPoint` returns all elements,
192
- * `elementFromPoint` returns only the top-most, which is sufficient
193
- * for this use case and appears to handle Shadow DOM retargeting
194
- * more reliably in this specific iOS bug.
195
- */
196
- if (newActiveElement === undefined) {
197
- const fallbackActiveElement = referenceNode.elementFromPoint(centerX, centerY);
198
- if ((fallbackActiveElement === null || fallbackActiveElement === void 0 ? void 0 : fallbackActiveElement.tagName) === 'ION-PICKER-COLUMN-OPTION') {
199
- newActiveElement = fallbackActiveElement;
200
- }
201
- }
202
- if (activeEl !== undefined) {
203
- this.setPickerItemActiveState(activeEl, false);
204
- }
205
- if (newActiveElement === undefined || newActiveElement.disabled) {
206
- return;
207
- }
208
- /**
209
- * If we are selecting a new value,
210
- * we need to run haptics again.
211
- */
212
- if (newActiveElement !== activeEl) {
213
- enableHaptics && hapticSelectionChanged();
214
- if (this.canExitInputMode) {
215
- /**
216
- * The native iOS wheel picker
217
- * only dismisses the keyboard
218
- * once the selected item has changed
219
- * as a result of a swipe
220
- * from the user. If `canExitInputMode` is
221
- * `false` then this means that the
222
- * scroll is happening as a result of
223
- * the `value` property programmatically changing
224
- * either by an application or by the user via the keyboard.
225
- */
226
- this.exitInputMode();
227
- }
228
- }
229
- activeEl = newActiveElement;
230
- this.setPickerItemActiveState(newActiveElement, true);
231
- /**
232
- * Set the aria-valuetext even though the value prop has not been updated yet.
233
- * This enables some screen readers to announce the value as the users drag
234
- * as opposed to when their release their pointer from the screen.
235
- *
236
- * When the value is programmatically updated, we will smoothly scroll
237
- * to the new option. However, we do not want to update aria-valuetext mid-scroll
238
- * as that can cause the old value to be briefly set before being set to the
239
- * correct option. This will cause some screen readers to announce the old value
240
- * again before announcing the new value. The correct valuetext will be set on render.
241
- */
242
- if (this.updateValueTextOnScroll) {
243
- (_a = this.assistiveFocusable) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-valuetext', this.getOptionValueText(newActiveElement));
244
- }
245
- timeout = setTimeout(() => {
246
- this.isScrolling = false;
247
- this.updateValueTextOnScroll = true;
248
- enableHaptics && hapticSelectionEnd();
249
- /**
250
- * Certain tasks (such as those that
251
- * cause re-renders) should only be done
252
- * once scrolling has finished, otherwise
253
- * flickering may occur.
254
- */
255
- const { scrollEndCallback } = this;
256
- if (scrollEndCallback) {
257
- scrollEndCallback();
258
- this.scrollEndCallback = undefined;
259
- }
260
- /**
261
- * Reset this flag as the
262
- * next scroll interaction could
263
- * be a scroll from the user. In this
264
- * case, we should exit input mode.
265
- */
266
- this.canExitInputMode = true;
267
- this.setValue(newActiveElement.value);
268
- }, 250);
269
- });
270
- };
271
- /**
272
- * Wrap this in an raf so that the scroll callback
273
- * does not fire when component is initially shown.
274
- */
275
- raf(() => {
276
- if (!scrollEl)
277
- return;
278
- scrollEl.addEventListener('scroll', scrollCallback);
279
- this.destroyScrollListener = () => {
280
- scrollEl.removeEventListener('scroll', scrollCallback);
281
- };
282
- });
283
- };
284
- /**
285
- * Tells the parent picker to
286
- * exit text entry mode. This is only called
287
- * when the selected item changes during scroll, so
288
- * we know that the user likely wants to scroll
289
- * instead of type.
290
- */
291
- this.exitInputMode = () => {
292
- const { parentEl } = this;
293
- if (parentEl == null)
294
- return;
295
- parentEl.exitInputMode();
296
- /**
297
- * setInputModeActive only takes
298
- * effect once scrolling stops to avoid
299
- * a component re-render while scrolling.
300
- * However, we want the visual active
301
- * indicator to go away immediately, so
302
- * we call classList.remove here.
303
- */
304
- this.el.classList.remove('picker-column-active');
305
- };
306
- /**
307
- * Find the next enabled option after the active option.
308
- * @param stride - How many options to "jump" over in order to select the next option.
309
- * This can be used to implement PageUp/PageDown behaviors where pressing these keys
310
- * scrolls the picker by more than 1 option. For example, a stride of 5 means select
311
- * the enabled option 5 options after the active one. Note that the actual option selected
312
- * may be past the stride if the option at the stride is disabled.
313
- */
314
- this.findNextOption = (stride = 1) => {
315
- const { activeItem } = this;
316
- if (!activeItem)
317
- return null;
318
- let prevNode = activeItem;
319
- let node = activeItem.nextElementSibling;
320
- while (node != null) {
321
- if (stride > 0) {
322
- stride--;
323
- }
324
- if (node.tagName === 'ION-PICKER-COLUMN-OPTION' && !node.disabled && stride === 0) {
325
- return node;
326
- }
327
- prevNode = node;
328
- // Use nextElementSibling instead of nextSibling to avoid text/comment nodes
329
- node = node.nextElementSibling;
330
- }
331
- return prevNode;
332
- };
333
- /**
334
- * Find the next enabled option after the active option.
335
- * @param stride - How many options to "jump" over in order to select the next option.
336
- * This can be used to implement PageUp/PageDown behaviors where pressing these keys
337
- * scrolls the picker by more than 1 option. For example, a stride of 5 means select
338
- * the enabled option 5 options before the active one. Note that the actual option selected
339
- * may be past the stride if the option at the stride is disabled.
340
- */
341
- this.findPreviousOption = (stride = 1) => {
342
- const { activeItem } = this;
343
- if (!activeItem)
344
- return null;
345
- let nextNode = activeItem;
346
- let node = activeItem.previousElementSibling;
347
- while (node != null) {
348
- if (stride > 0) {
349
- stride--;
350
- }
351
- if (node.tagName === 'ION-PICKER-COLUMN-OPTION' && !node.disabled && stride === 0) {
352
- return node;
353
- }
354
- nextNode = node;
355
- // Use previousElementSibling instead of previousSibling to avoid text/comment nodes
356
- node = node.previousElementSibling;
357
- }
358
- return nextNode;
359
- };
360
- this.onKeyDown = (ev) => {
361
- /**
362
- * The below operations should be inverted when running on a mobile device.
363
- * For example, swiping up will dispatch an "ArrowUp" event. On desktop,
364
- * this should cause the previous option to be selected. On mobile, swiping
365
- * up causes a view to scroll down. As a result, swiping up on mobile should
366
- * cause the next option to be selected. The Home/End operations remain
367
- * unchanged because those always represent the first/last options, respectively.
368
- */
369
- const mobile = isPlatform('mobile');
370
- let newOption = null;
371
- switch (ev.key) {
372
- case 'ArrowDown':
373
- newOption = mobile ? this.findPreviousOption() : this.findNextOption();
374
- break;
375
- case 'ArrowUp':
376
- newOption = mobile ? this.findNextOption() : this.findPreviousOption();
377
- break;
378
- case 'PageUp':
379
- newOption = mobile ? this.findNextOption(5) : this.findPreviousOption(5);
380
- break;
381
- case 'PageDown':
382
- newOption = mobile ? this.findPreviousOption(5) : this.findNextOption(5);
383
- break;
384
- case 'Home':
385
- /**
386
- * There is no guarantee that the first child will be an ion-picker-column-option,
387
- * so we do not use firstElementChild.
388
- */
389
- newOption = this.el.querySelector('ion-picker-column-option:first-of-type');
390
- break;
391
- case 'End':
392
- /**
393
- * There is no guarantee that the last child will be an ion-picker-column-option,
394
- * so we do not use lastElementChild.
395
- */
396
- newOption = this.el.querySelector('ion-picker-column-option:last-of-type');
397
- break;
398
- }
399
- if (newOption !== null) {
400
- this.setValue(newOption.value);
401
- // This stops any default browser behavior such as scrolling
402
- ev.preventDefault();
403
- }
404
- };
405
- /**
406
- * Utility to generate the correct text for aria-valuetext.
407
- */
408
- this.getOptionValueText = (el) => {
409
- var _a;
410
- return el ? (_a = el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : el.innerText : '';
411
- };
412
19
  }
20
+ scrollEl;
21
+ destroyScrollListener;
22
+ isScrolling = false;
23
+ scrollEndCallback;
24
+ isColumnVisible = false;
25
+ parentEl;
26
+ canExitInputMode = true;
27
+ assistiveFocusable;
28
+ updateValueTextOnScroll = false;
29
+ ariaLabel = null;
413
30
  ariaLabelChanged(newValue) {
414
31
  this.ariaLabel = newValue;
415
32
  }
33
+ isActive = false;
34
+ get el() { return getElement(this); }
35
+ /**
36
+ * If `true`, the user cannot interact with the picker.
37
+ */
38
+ disabled = false;
39
+ /**
40
+ * The selected option in the picker.
41
+ */
42
+ value;
43
+ /**
44
+ * The color to use from your application's color palette.
45
+ * Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
46
+ * For more information on colors, see [theming](/docs/theming/basics).
47
+ */
48
+ color;
49
+ /**
50
+ * If `true`, tapping the picker will
51
+ * reveal a number input keyboard that lets
52
+ * the user type in values for each picker
53
+ * column. This is useful when working
54
+ * with time pickers.
55
+ *
56
+ * @internal
57
+ */
58
+ numericInput = false;
59
+ /**
60
+ * Emitted when the value has changed.
61
+ *
62
+ * This event will not emit when programmatically setting the `value` property.
63
+ */
64
+ ionChange;
416
65
  valueChange() {
417
66
  if (this.isColumnVisible) {
418
67
  /**
@@ -529,9 +178,268 @@ const PickerColumn = class {
529
178
  }
530
179
  }
531
180
  connectedCallback() {
532
- var _a;
533
- this.ariaLabel = (_a = this.el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : 'Select a value';
181
+ this.ariaLabel = this.el.getAttribute('aria-label') ?? 'Select a value';
534
182
  }
183
+ centerPickerItemInView = (target, smooth = true, canExitInputMode = true) => {
184
+ const { isColumnVisible, scrollEl } = this;
185
+ if (isColumnVisible && scrollEl) {
186
+ // (Vertical offset from parent) - (three empty picker rows) + (half the height of the target to ensure the scroll triggers)
187
+ const top = target.offsetTop - 3 * target.clientHeight + target.clientHeight / 2;
188
+ if (scrollEl.scrollTop !== top) {
189
+ /**
190
+ * Setting this flag prevents input
191
+ * mode from exiting in the picker column's
192
+ * scroll callback. This is useful when the user manually
193
+ * taps an item or types on the keyboard as both
194
+ * of these can cause a scroll to occur.
195
+ */
196
+ this.canExitInputMode = canExitInputMode;
197
+ this.updateValueTextOnScroll = false;
198
+ scrollEl.scroll({
199
+ top,
200
+ left: 0,
201
+ behavior: smooth ? 'smooth' : undefined,
202
+ });
203
+ }
204
+ }
205
+ };
206
+ setPickerItemActiveState = (item, isActive) => {
207
+ if (isActive) {
208
+ item.classList.add(PICKER_ITEM_ACTIVE_CLASS);
209
+ }
210
+ else {
211
+ item.classList.remove(PICKER_ITEM_ACTIVE_CLASS);
212
+ }
213
+ };
214
+ /**
215
+ * When ionInputModeChange is emitted, each column
216
+ * needs to check if it is the one being made available
217
+ * for text entry.
218
+ */
219
+ inputModeChange = (ev) => {
220
+ if (!this.numericInput) {
221
+ return;
222
+ }
223
+ const { useInputMode, inputModeColumn } = ev.detail;
224
+ /**
225
+ * If inputModeColumn is undefined then this means
226
+ * all numericInput columns are being selected.
227
+ */
228
+ const isColumnActive = inputModeColumn === undefined || inputModeColumn === this.el;
229
+ if (!useInputMode || !isColumnActive) {
230
+ this.setInputModeActive(false);
231
+ return;
232
+ }
233
+ this.setInputModeActive(true);
234
+ };
235
+ /**
236
+ * Setting isActive will cause a re-render.
237
+ * As a result, we do not want to cause the
238
+ * re-render mid scroll as this will cause
239
+ * the picker column to jump back to
240
+ * whatever value was selected at the
241
+ * start of the scroll interaction.
242
+ */
243
+ setInputModeActive = (state) => {
244
+ if (this.isScrolling) {
245
+ this.scrollEndCallback = () => {
246
+ this.isActive = state;
247
+ };
248
+ return;
249
+ }
250
+ this.isActive = state;
251
+ };
252
+ /**
253
+ * When the column scrolls, the component
254
+ * needs to determine which item is centered
255
+ * in the view and will emit an ionChange with
256
+ * the item object.
257
+ */
258
+ initializeScrollListener = () => {
259
+ /**
260
+ * The haptics for the wheel picker are
261
+ * an iOS-only feature. As a result, they should
262
+ * be disabled on Android.
263
+ */
264
+ const enableHaptics = isPlatform('ios');
265
+ const { el, scrollEl } = this;
266
+ let timeout;
267
+ let activeEl = this.activeItem;
268
+ const scrollCallback = () => {
269
+ raf(() => {
270
+ if (!scrollEl)
271
+ return;
272
+ if (timeout) {
273
+ clearTimeout(timeout);
274
+ timeout = undefined;
275
+ }
276
+ if (!this.isScrolling) {
277
+ enableHaptics && hapticSelectionStart();
278
+ this.isScrolling = true;
279
+ }
280
+ /**
281
+ * Select item in the center of the column
282
+ * which is the month/year that we want to select
283
+ */
284
+ const bbox = scrollEl.getBoundingClientRect();
285
+ const centerX = bbox.x + bbox.width / 2;
286
+ const centerY = bbox.y + bbox.height / 2;
287
+ /**
288
+ * elementFromPoint returns the top-most element.
289
+ * This means that if an ion-backdrop is overlaying the
290
+ * picker then the appropriate picker column option will
291
+ * not be selected. To account for this, we use elementsFromPoint
292
+ * and use an Array.find to find the appropriate column option
293
+ * at that point.
294
+ *
295
+ * Additionally, the picker column could be used in the
296
+ * Shadow DOM (i.e. in ion-datetime) so we need to make
297
+ * sure we are choosing the correct host otherwise
298
+ * the elements returns by elementsFromPoint will be
299
+ * retargeted. To account for this, we check to see
300
+ * if the picker column has a parent shadow root. If
301
+ * so, we use that shadow root when doing elementsFromPoint.
302
+ * Otherwise, we just use the document.
303
+ */
304
+ const rootNode = el.getRootNode();
305
+ const hasParentShadow = rootNode instanceof ShadowRoot;
306
+ const referenceNode = hasParentShadow ? rootNode : doc;
307
+ /**
308
+ * If the reference node is undefined
309
+ * then it's likely that doc is undefined
310
+ * due to being in an SSR environment.
311
+ */
312
+ if (referenceNode === undefined) {
313
+ return;
314
+ }
315
+ const elementsAtPoint = referenceNode.elementsFromPoint(centerX, centerY);
316
+ /**
317
+ * elementsFromPoint can returns multiple elements
318
+ * so find the relevant picker column option if one exists.
319
+ */
320
+ let newActiveElement = elementsAtPoint.find((el) => el.tagName === 'ION-PICKER-COLUMN-OPTION');
321
+ /**
322
+ * TODO(FW-6594): Remove this workaround when iOS 16 is no longer
323
+ * supported.
324
+ *
325
+ * If `elementsFromPoint` failed to find the active element (a known
326
+ * issue on iOS 16 when elements are in a Shadow DOM and the
327
+ * referenceNode is the document), a fallback to `elementFromPoint`
328
+ * is used. While `elementsFromPoint` returns all elements,
329
+ * `elementFromPoint` returns only the top-most, which is sufficient
330
+ * for this use case and appears to handle Shadow DOM retargeting
331
+ * more reliably in this specific iOS bug.
332
+ */
333
+ if (newActiveElement === undefined) {
334
+ const fallbackActiveElement = referenceNode.elementFromPoint(centerX, centerY);
335
+ if (fallbackActiveElement?.tagName === 'ION-PICKER-COLUMN-OPTION') {
336
+ newActiveElement = fallbackActiveElement;
337
+ }
338
+ }
339
+ if (activeEl !== undefined) {
340
+ this.setPickerItemActiveState(activeEl, false);
341
+ }
342
+ if (newActiveElement === undefined || newActiveElement.disabled) {
343
+ return;
344
+ }
345
+ /**
346
+ * If we are selecting a new value,
347
+ * we need to run haptics again.
348
+ */
349
+ if (newActiveElement !== activeEl) {
350
+ enableHaptics && hapticSelectionChanged();
351
+ if (this.canExitInputMode) {
352
+ /**
353
+ * The native iOS wheel picker
354
+ * only dismisses the keyboard
355
+ * once the selected item has changed
356
+ * as a result of a swipe
357
+ * from the user. If `canExitInputMode` is
358
+ * `false` then this means that the
359
+ * scroll is happening as a result of
360
+ * the `value` property programmatically changing
361
+ * either by an application or by the user via the keyboard.
362
+ */
363
+ this.exitInputMode();
364
+ }
365
+ }
366
+ activeEl = newActiveElement;
367
+ this.setPickerItemActiveState(newActiveElement, true);
368
+ /**
369
+ * Set the aria-valuetext even though the value prop has not been updated yet.
370
+ * This enables some screen readers to announce the value as the users drag
371
+ * as opposed to when their release their pointer from the screen.
372
+ *
373
+ * When the value is programmatically updated, we will smoothly scroll
374
+ * to the new option. However, we do not want to update aria-valuetext mid-scroll
375
+ * as that can cause the old value to be briefly set before being set to the
376
+ * correct option. This will cause some screen readers to announce the old value
377
+ * again before announcing the new value. The correct valuetext will be set on render.
378
+ */
379
+ if (this.updateValueTextOnScroll) {
380
+ this.assistiveFocusable?.setAttribute('aria-valuetext', this.getOptionValueText(newActiveElement));
381
+ }
382
+ timeout = setTimeout(() => {
383
+ this.isScrolling = false;
384
+ this.updateValueTextOnScroll = true;
385
+ enableHaptics && hapticSelectionEnd();
386
+ /**
387
+ * Certain tasks (such as those that
388
+ * cause re-renders) should only be done
389
+ * once scrolling has finished, otherwise
390
+ * flickering may occur.
391
+ */
392
+ const { scrollEndCallback } = this;
393
+ if (scrollEndCallback) {
394
+ scrollEndCallback();
395
+ this.scrollEndCallback = undefined;
396
+ }
397
+ /**
398
+ * Reset this flag as the
399
+ * next scroll interaction could
400
+ * be a scroll from the user. In this
401
+ * case, we should exit input mode.
402
+ */
403
+ this.canExitInputMode = true;
404
+ this.setValue(newActiveElement.value);
405
+ }, 250);
406
+ });
407
+ };
408
+ /**
409
+ * Wrap this in an raf so that the scroll callback
410
+ * does not fire when component is initially shown.
411
+ */
412
+ raf(() => {
413
+ if (!scrollEl)
414
+ return;
415
+ scrollEl.addEventListener('scroll', scrollCallback);
416
+ this.destroyScrollListener = () => {
417
+ scrollEl.removeEventListener('scroll', scrollCallback);
418
+ };
419
+ });
420
+ };
421
+ /**
422
+ * Tells the parent picker to
423
+ * exit text entry mode. This is only called
424
+ * when the selected item changes during scroll, so
425
+ * we know that the user likely wants to scroll
426
+ * instead of type.
427
+ */
428
+ exitInputMode = () => {
429
+ const { parentEl } = this;
430
+ if (parentEl == null)
431
+ return;
432
+ parentEl.exitInputMode();
433
+ /**
434
+ * setInputModeActive only takes
435
+ * effect once scrolling stops to avoid
436
+ * a component re-render while scrolling.
437
+ * However, we want the visual active
438
+ * indicator to go away immediately, so
439
+ * we call classList.remove here.
440
+ */
441
+ this.el.classList.remove('picker-column-active');
442
+ };
535
443
  get activeItem() {
536
444
  const { value } = this;
537
445
  const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
@@ -546,19 +454,123 @@ const PickerColumn = class {
546
454
  return option.value === value;
547
455
  });
548
456
  }
457
+ /**
458
+ * Find the next enabled option after the active option.
459
+ * @param stride - How many options to "jump" over in order to select the next option.
460
+ * This can be used to implement PageUp/PageDown behaviors where pressing these keys
461
+ * scrolls the picker by more than 1 option. For example, a stride of 5 means select
462
+ * the enabled option 5 options after the active one. Note that the actual option selected
463
+ * may be past the stride if the option at the stride is disabled.
464
+ */
465
+ findNextOption = (stride = 1) => {
466
+ const { activeItem } = this;
467
+ if (!activeItem)
468
+ return null;
469
+ let prevNode = activeItem;
470
+ let node = activeItem.nextElementSibling;
471
+ while (node != null) {
472
+ if (stride > 0) {
473
+ stride--;
474
+ }
475
+ if (node.tagName === 'ION-PICKER-COLUMN-OPTION' && !node.disabled && stride === 0) {
476
+ return node;
477
+ }
478
+ prevNode = node;
479
+ // Use nextElementSibling instead of nextSibling to avoid text/comment nodes
480
+ node = node.nextElementSibling;
481
+ }
482
+ return prevNode;
483
+ };
484
+ /**
485
+ * Find the next enabled option after the active option.
486
+ * @param stride - How many options to "jump" over in order to select the next option.
487
+ * This can be used to implement PageUp/PageDown behaviors where pressing these keys
488
+ * scrolls the picker by more than 1 option. For example, a stride of 5 means select
489
+ * the enabled option 5 options before the active one. Note that the actual option selected
490
+ * may be past the stride if the option at the stride is disabled.
491
+ */
492
+ findPreviousOption = (stride = 1) => {
493
+ const { activeItem } = this;
494
+ if (!activeItem)
495
+ return null;
496
+ let nextNode = activeItem;
497
+ let node = activeItem.previousElementSibling;
498
+ while (node != null) {
499
+ if (stride > 0) {
500
+ stride--;
501
+ }
502
+ if (node.tagName === 'ION-PICKER-COLUMN-OPTION' && !node.disabled && stride === 0) {
503
+ return node;
504
+ }
505
+ nextNode = node;
506
+ // Use previousElementSibling instead of previousSibling to avoid text/comment nodes
507
+ node = node.previousElementSibling;
508
+ }
509
+ return nextNode;
510
+ };
511
+ onKeyDown = (ev) => {
512
+ /**
513
+ * The below operations should be inverted when running on a mobile device.
514
+ * For example, swiping up will dispatch an "ArrowUp" event. On desktop,
515
+ * this should cause the previous option to be selected. On mobile, swiping
516
+ * up causes a view to scroll down. As a result, swiping up on mobile should
517
+ * cause the next option to be selected. The Home/End operations remain
518
+ * unchanged because those always represent the first/last options, respectively.
519
+ */
520
+ const mobile = isPlatform('mobile');
521
+ let newOption = null;
522
+ switch (ev.key) {
523
+ case 'ArrowDown':
524
+ newOption = mobile ? this.findPreviousOption() : this.findNextOption();
525
+ break;
526
+ case 'ArrowUp':
527
+ newOption = mobile ? this.findNextOption() : this.findPreviousOption();
528
+ break;
529
+ case 'PageUp':
530
+ newOption = mobile ? this.findNextOption(5) : this.findPreviousOption(5);
531
+ break;
532
+ case 'PageDown':
533
+ newOption = mobile ? this.findPreviousOption(5) : this.findNextOption(5);
534
+ break;
535
+ case 'Home':
536
+ /**
537
+ * There is no guarantee that the first child will be an ion-picker-column-option,
538
+ * so we do not use firstElementChild.
539
+ */
540
+ newOption = this.el.querySelector('ion-picker-column-option:first-of-type');
541
+ break;
542
+ case 'End':
543
+ /**
544
+ * There is no guarantee that the last child will be an ion-picker-column-option,
545
+ * so we do not use lastElementChild.
546
+ */
547
+ newOption = this.el.querySelector('ion-picker-column-option:last-of-type');
548
+ break;
549
+ }
550
+ if (newOption !== null) {
551
+ this.setValue(newOption.value);
552
+ // This stops any default browser behavior such as scrolling
553
+ ev.preventDefault();
554
+ }
555
+ };
556
+ /**
557
+ * Utility to generate the correct text for aria-valuetext.
558
+ */
559
+ getOptionValueText = (el) => {
560
+ return el ? el.getAttribute('aria-label') ?? el.innerText : '';
561
+ };
549
562
  render() {
550
563
  const { color, disabled, isActive, numericInput } = this;
551
564
  const mode = getIonMode(this);
552
- return (h(Host, { key: '234c96a501d7ac413b9b0ea56b33017681e25b40', class: createColorClasses(color, {
565
+ return (h(Host, { key: '78b46ad10d88ea1bb43ca8c36748767912f03224', class: createColorClasses(color, {
553
566
  [mode]: true,
554
567
  ['picker-column-active']: isActive,
555
568
  ['picker-column-numeric-input']: numericInput,
556
569
  ['picker-column-disabled']: disabled,
557
- }) }, h("slot", { key: '9dc15ea0601ddd2cb2e0a745e91e036a8bd96f8b', name: "prefix" }), h("div", { key: 'de4fe28ee4bc46b7c0420d6ab0df0e7809443da9', class: "picker-opts", ref: (el) => {
570
+ }) }, h("slot", { key: '761e501df77f7de896ffb3ebb99ebf88c5c3bf70', name: "prefix" }), h("div", { key: '9f4caaeef8ab704522a85f30876d371712f47c5c', class: "picker-opts", ref: (el) => {
558
571
  this.scrollEl = el;
559
- }, 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" })));
572
+ }, 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" })));
560
573
  }
561
- get el() { return getElement(this); }
562
574
  static get watchers() { return {
563
575
  "aria-label": [{
564
576
  "ariaLabelChanged": 0