@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
@@ -3,418 +3,67 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-BfaXsATC.js');
6
+ var index = require('./index-uvry__L4.js');
7
7
  var index$1 = require('./index-DkNv4J_i.js');
8
- var helpers = require('./helpers-DdZyl6WL.js');
9
- var haptic = require('./haptic-ClPPQ_PS.js');
10
- var ionicGlobal = require('./ionic-global-BerQGEpE.js');
11
- var theme = require('./theme-CeDs6Hcv.js');
12
- require('./dir-DD0jPVH3.js');
8
+ var helpers = require('./helpers-YPQybDph.js');
9
+ var haptic = require('./haptic-Ch-X4gRx.js');
10
+ var ionicGlobal = require('./ionic-global-k6hOWWpn.js');
11
+ var theme = require('./theme-Bw0rpaNN.js');
12
+ require('./dir-zwDPRE5K.js');
13
13
  require('./capacitor-DmA66EwP.js');
14
14
 
15
- 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)}}`;
15
+ 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)}}`;
16
16
 
17
17
  const PickerColumn = class {
18
18
  constructor(hostRef) {
19
19
  index.registerInstance(this, hostRef);
20
20
  this.ionChange = index.createEvent(this, "ionChange", 7);
21
- this.isScrolling = false;
22
- this.isColumnVisible = false;
23
- this.canExitInputMode = true;
24
- this.updateValueTextOnScroll = false;
25
- this.ariaLabel = null;
26
- this.isActive = false;
27
- /**
28
- * If `true`, the user cannot interact with the picker.
29
- */
30
- this.disabled = false;
31
- /**
32
- * The color to use from your application's color palette.
33
- * Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
34
- * For more information on colors, see [theming](/docs/theming/basics).
35
- */
36
- this.color = 'primary';
37
- /**
38
- * If `true`, tapping the picker will
39
- * reveal a number input keyboard that lets
40
- * the user type in values for each picker
41
- * column. This is useful when working
42
- * with time pickers.
43
- *
44
- * @internal
45
- */
46
- this.numericInput = false;
47
- this.centerPickerItemInView = (target, smooth = true, canExitInputMode = true) => {
48
- const { isColumnVisible, scrollEl } = this;
49
- if (isColumnVisible && scrollEl) {
50
- // (Vertical offset from parent) - (three empty picker rows) + (half the height of the target to ensure the scroll triggers)
51
- const top = target.offsetTop - 3 * target.clientHeight + target.clientHeight / 2;
52
- if (scrollEl.scrollTop !== top) {
53
- /**
54
- * Setting this flag prevents input
55
- * mode from exiting in the picker column's
56
- * scroll callback. This is useful when the user manually
57
- * taps an item or types on the keyboard as both
58
- * of these can cause a scroll to occur.
59
- */
60
- this.canExitInputMode = canExitInputMode;
61
- this.updateValueTextOnScroll = false;
62
- scrollEl.scroll({
63
- top,
64
- left: 0,
65
- behavior: smooth ? 'smooth' : undefined,
66
- });
67
- }
68
- }
69
- };
70
- this.setPickerItemActiveState = (item, isActive) => {
71
- if (isActive) {
72
- item.classList.add(PICKER_ITEM_ACTIVE_CLASS);
73
- }
74
- else {
75
- item.classList.remove(PICKER_ITEM_ACTIVE_CLASS);
76
- }
77
- };
78
- /**
79
- * When ionInputModeChange is emitted, each column
80
- * needs to check if it is the one being made available
81
- * for text entry.
82
- */
83
- this.inputModeChange = (ev) => {
84
- if (!this.numericInput) {
85
- return;
86
- }
87
- const { useInputMode, inputModeColumn } = ev.detail;
88
- /**
89
- * If inputModeColumn is undefined then this means
90
- * all numericInput columns are being selected.
91
- */
92
- const isColumnActive = inputModeColumn === undefined || inputModeColumn === this.el;
93
- if (!useInputMode || !isColumnActive) {
94
- this.setInputModeActive(false);
95
- return;
96
- }
97
- this.setInputModeActive(true);
98
- };
99
- /**
100
- * Setting isActive will cause a re-render.
101
- * As a result, we do not want to cause the
102
- * re-render mid scroll as this will cause
103
- * the picker column to jump back to
104
- * whatever value was selected at the
105
- * start of the scroll interaction.
106
- */
107
- this.setInputModeActive = (state) => {
108
- if (this.isScrolling) {
109
- this.scrollEndCallback = () => {
110
- this.isActive = state;
111
- };
112
- return;
113
- }
114
- this.isActive = state;
115
- };
116
- /**
117
- * When the column scrolls, the component
118
- * needs to determine which item is centered
119
- * in the view and will emit an ionChange with
120
- * the item object.
121
- */
122
- this.initializeScrollListener = () => {
123
- /**
124
- * The haptics for the wheel picker are
125
- * an iOS-only feature. As a result, they should
126
- * be disabled on Android.
127
- */
128
- const enableHaptics = ionicGlobal.isPlatform('ios');
129
- const { el, scrollEl } = this;
130
- let timeout;
131
- let activeEl = this.activeItem;
132
- const scrollCallback = () => {
133
- helpers.raf(() => {
134
- var _a;
135
- if (!scrollEl)
136
- return;
137
- if (timeout) {
138
- clearTimeout(timeout);
139
- timeout = undefined;
140
- }
141
- if (!this.isScrolling) {
142
- enableHaptics && haptic.hapticSelectionStart();
143
- this.isScrolling = true;
144
- }
145
- /**
146
- * Select item in the center of the column
147
- * which is the month/year that we want to select
148
- */
149
- const bbox = scrollEl.getBoundingClientRect();
150
- const centerX = bbox.x + bbox.width / 2;
151
- const centerY = bbox.y + bbox.height / 2;
152
- /**
153
- * elementFromPoint returns the top-most element.
154
- * This means that if an ion-backdrop is overlaying the
155
- * picker then the appropriate picker column option will
156
- * not be selected. To account for this, we use elementsFromPoint
157
- * and use an Array.find to find the appropriate column option
158
- * at that point.
159
- *
160
- * Additionally, the picker column could be used in the
161
- * Shadow DOM (i.e. in ion-datetime) so we need to make
162
- * sure we are choosing the correct host otherwise
163
- * the elements returns by elementsFromPoint will be
164
- * retargeted. To account for this, we check to see
165
- * if the picker column has a parent shadow root. If
166
- * so, we use that shadow root when doing elementsFromPoint.
167
- * Otherwise, we just use the document.
168
- */
169
- const rootNode = el.getRootNode();
170
- const hasParentShadow = rootNode instanceof ShadowRoot;
171
- const referenceNode = hasParentShadow ? rootNode : index$1.doc;
172
- /**
173
- * If the reference node is undefined
174
- * then it's likely that doc is undefined
175
- * due to being in an SSR environment.
176
- */
177
- if (referenceNode === undefined) {
178
- return;
179
- }
180
- const elementsAtPoint = referenceNode.elementsFromPoint(centerX, centerY);
181
- /**
182
- * elementsFromPoint can returns multiple elements
183
- * so find the relevant picker column option if one exists.
184
- */
185
- let newActiveElement = elementsAtPoint.find((el) => el.tagName === 'ION-PICKER-COLUMN-OPTION');
186
- /**
187
- * TODO(FW-6594): Remove this workaround when iOS 16 is no longer
188
- * supported.
189
- *
190
- * If `elementsFromPoint` failed to find the active element (a known
191
- * issue on iOS 16 when elements are in a Shadow DOM and the
192
- * referenceNode is the document), a fallback to `elementFromPoint`
193
- * is used. While `elementsFromPoint` returns all elements,
194
- * `elementFromPoint` returns only the top-most, which is sufficient
195
- * for this use case and appears to handle Shadow DOM retargeting
196
- * more reliably in this specific iOS bug.
197
- */
198
- if (newActiveElement === undefined) {
199
- const fallbackActiveElement = referenceNode.elementFromPoint(centerX, centerY);
200
- if ((fallbackActiveElement === null || fallbackActiveElement === void 0 ? void 0 : fallbackActiveElement.tagName) === 'ION-PICKER-COLUMN-OPTION') {
201
- newActiveElement = fallbackActiveElement;
202
- }
203
- }
204
- if (activeEl !== undefined) {
205
- this.setPickerItemActiveState(activeEl, false);
206
- }
207
- if (newActiveElement === undefined || newActiveElement.disabled) {
208
- return;
209
- }
210
- /**
211
- * If we are selecting a new value,
212
- * we need to run haptics again.
213
- */
214
- if (newActiveElement !== activeEl) {
215
- enableHaptics && haptic.hapticSelectionChanged();
216
- if (this.canExitInputMode) {
217
- /**
218
- * The native iOS wheel picker
219
- * only dismisses the keyboard
220
- * once the selected item has changed
221
- * as a result of a swipe
222
- * from the user. If `canExitInputMode` is
223
- * `false` then this means that the
224
- * scroll is happening as a result of
225
- * the `value` property programmatically changing
226
- * either by an application or by the user via the keyboard.
227
- */
228
- this.exitInputMode();
229
- }
230
- }
231
- activeEl = newActiveElement;
232
- this.setPickerItemActiveState(newActiveElement, true);
233
- /**
234
- * Set the aria-valuetext even though the value prop has not been updated yet.
235
- * This enables some screen readers to announce the value as the users drag
236
- * as opposed to when their release their pointer from the screen.
237
- *
238
- * When the value is programmatically updated, we will smoothly scroll
239
- * to the new option. However, we do not want to update aria-valuetext mid-scroll
240
- * as that can cause the old value to be briefly set before being set to the
241
- * correct option. This will cause some screen readers to announce the old value
242
- * again before announcing the new value. The correct valuetext will be set on render.
243
- */
244
- if (this.updateValueTextOnScroll) {
245
- (_a = this.assistiveFocusable) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-valuetext', this.getOptionValueText(newActiveElement));
246
- }
247
- timeout = setTimeout(() => {
248
- this.isScrolling = false;
249
- this.updateValueTextOnScroll = true;
250
- enableHaptics && haptic.hapticSelectionEnd();
251
- /**
252
- * Certain tasks (such as those that
253
- * cause re-renders) should only be done
254
- * once scrolling has finished, otherwise
255
- * flickering may occur.
256
- */
257
- const { scrollEndCallback } = this;
258
- if (scrollEndCallback) {
259
- scrollEndCallback();
260
- this.scrollEndCallback = undefined;
261
- }
262
- /**
263
- * Reset this flag as the
264
- * next scroll interaction could
265
- * be a scroll from the user. In this
266
- * case, we should exit input mode.
267
- */
268
- this.canExitInputMode = true;
269
- this.setValue(newActiveElement.value);
270
- }, 250);
271
- });
272
- };
273
- /**
274
- * Wrap this in an raf so that the scroll callback
275
- * does not fire when component is initially shown.
276
- */
277
- helpers.raf(() => {
278
- if (!scrollEl)
279
- return;
280
- scrollEl.addEventListener('scroll', scrollCallback);
281
- this.destroyScrollListener = () => {
282
- scrollEl.removeEventListener('scroll', scrollCallback);
283
- };
284
- });
285
- };
286
- /**
287
- * Tells the parent picker to
288
- * exit text entry mode. This is only called
289
- * when the selected item changes during scroll, so
290
- * we know that the user likely wants to scroll
291
- * instead of type.
292
- */
293
- this.exitInputMode = () => {
294
- const { parentEl } = this;
295
- if (parentEl == null)
296
- return;
297
- parentEl.exitInputMode();
298
- /**
299
- * setInputModeActive only takes
300
- * effect once scrolling stops to avoid
301
- * a component re-render while scrolling.
302
- * However, we want the visual active
303
- * indicator to go away immediately, so
304
- * we call classList.remove here.
305
- */
306
- this.el.classList.remove('picker-column-active');
307
- };
308
- /**
309
- * Find the next enabled option after the active option.
310
- * @param stride - How many options to "jump" over in order to select the next option.
311
- * This can be used to implement PageUp/PageDown behaviors where pressing these keys
312
- * scrolls the picker by more than 1 option. For example, a stride of 5 means select
313
- * the enabled option 5 options after the active one. Note that the actual option selected
314
- * may be past the stride if the option at the stride is disabled.
315
- */
316
- this.findNextOption = (stride = 1) => {
317
- const { activeItem } = this;
318
- if (!activeItem)
319
- return null;
320
- let prevNode = activeItem;
321
- let node = activeItem.nextElementSibling;
322
- while (node != null) {
323
- if (stride > 0) {
324
- stride--;
325
- }
326
- if (node.tagName === 'ION-PICKER-COLUMN-OPTION' && !node.disabled && stride === 0) {
327
- return node;
328
- }
329
- prevNode = node;
330
- // Use nextElementSibling instead of nextSibling to avoid text/comment nodes
331
- node = node.nextElementSibling;
332
- }
333
- return prevNode;
334
- };
335
- /**
336
- * Find the next enabled option after the active option.
337
- * @param stride - How many options to "jump" over in order to select the next option.
338
- * This can be used to implement PageUp/PageDown behaviors where pressing these keys
339
- * scrolls the picker by more than 1 option. For example, a stride of 5 means select
340
- * the enabled option 5 options before the active one. Note that the actual option selected
341
- * may be past the stride if the option at the stride is disabled.
342
- */
343
- this.findPreviousOption = (stride = 1) => {
344
- const { activeItem } = this;
345
- if (!activeItem)
346
- return null;
347
- let nextNode = activeItem;
348
- let node = activeItem.previousElementSibling;
349
- while (node != null) {
350
- if (stride > 0) {
351
- stride--;
352
- }
353
- if (node.tagName === 'ION-PICKER-COLUMN-OPTION' && !node.disabled && stride === 0) {
354
- return node;
355
- }
356
- nextNode = node;
357
- // Use previousElementSibling instead of previousSibling to avoid text/comment nodes
358
- node = node.previousElementSibling;
359
- }
360
- return nextNode;
361
- };
362
- this.onKeyDown = (ev) => {
363
- /**
364
- * The below operations should be inverted when running on a mobile device.
365
- * For example, swiping up will dispatch an "ArrowUp" event. On desktop,
366
- * this should cause the previous option to be selected. On mobile, swiping
367
- * up causes a view to scroll down. As a result, swiping up on mobile should
368
- * cause the next option to be selected. The Home/End operations remain
369
- * unchanged because those always represent the first/last options, respectively.
370
- */
371
- const mobile = ionicGlobal.isPlatform('mobile');
372
- let newOption = null;
373
- switch (ev.key) {
374
- case 'ArrowDown':
375
- newOption = mobile ? this.findPreviousOption() : this.findNextOption();
376
- break;
377
- case 'ArrowUp':
378
- newOption = mobile ? this.findNextOption() : this.findPreviousOption();
379
- break;
380
- case 'PageUp':
381
- newOption = mobile ? this.findNextOption(5) : this.findPreviousOption(5);
382
- break;
383
- case 'PageDown':
384
- newOption = mobile ? this.findPreviousOption(5) : this.findNextOption(5);
385
- break;
386
- case 'Home':
387
- /**
388
- * There is no guarantee that the first child will be an ion-picker-column-option,
389
- * so we do not use firstElementChild.
390
- */
391
- newOption = this.el.querySelector('ion-picker-column-option:first-of-type');
392
- break;
393
- case 'End':
394
- /**
395
- * There is no guarantee that the last child will be an ion-picker-column-option,
396
- * so we do not use lastElementChild.
397
- */
398
- newOption = this.el.querySelector('ion-picker-column-option:last-of-type');
399
- break;
400
- }
401
- if (newOption !== null) {
402
- this.setValue(newOption.value);
403
- // This stops any default browser behavior such as scrolling
404
- ev.preventDefault();
405
- }
406
- };
407
- /**
408
- * Utility to generate the correct text for aria-valuetext.
409
- */
410
- this.getOptionValueText = (el) => {
411
- var _a;
412
- return el ? (_a = el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : el.innerText : '';
413
- };
414
21
  }
22
+ scrollEl;
23
+ destroyScrollListener;
24
+ isScrolling = false;
25
+ scrollEndCallback;
26
+ isColumnVisible = false;
27
+ parentEl;
28
+ canExitInputMode = true;
29
+ assistiveFocusable;
30
+ updateValueTextOnScroll = false;
31
+ ariaLabel = null;
415
32
  ariaLabelChanged(newValue) {
416
33
  this.ariaLabel = newValue;
417
34
  }
35
+ isActive = false;
36
+ get el() { return index.getElement(this); }
37
+ /**
38
+ * If `true`, the user cannot interact with the picker.
39
+ */
40
+ disabled = false;
41
+ /**
42
+ * The selected option in the picker.
43
+ */
44
+ value;
45
+ /**
46
+ * The color to use from your application's color palette.
47
+ * Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
48
+ * For more information on colors, see [theming](/docs/theming/basics).
49
+ */
50
+ color;
51
+ /**
52
+ * If `true`, tapping the picker will
53
+ * reveal a number input keyboard that lets
54
+ * the user type in values for each picker
55
+ * column. This is useful when working
56
+ * with time pickers.
57
+ *
58
+ * @internal
59
+ */
60
+ numericInput = false;
61
+ /**
62
+ * Emitted when the value has changed.
63
+ *
64
+ * This event will not emit when programmatically setting the `value` property.
65
+ */
66
+ ionChange;
418
67
  valueChange() {
419
68
  if (this.isColumnVisible) {
420
69
  /**
@@ -531,9 +180,268 @@ const PickerColumn = class {
531
180
  }
532
181
  }
533
182
  connectedCallback() {
534
- var _a;
535
- this.ariaLabel = (_a = this.el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : 'Select a value';
183
+ this.ariaLabel = this.el.getAttribute('aria-label') ?? 'Select a value';
536
184
  }
185
+ centerPickerItemInView = (target, smooth = true, canExitInputMode = true) => {
186
+ const { isColumnVisible, scrollEl } = this;
187
+ if (isColumnVisible && scrollEl) {
188
+ // (Vertical offset from parent) - (three empty picker rows) + (half the height of the target to ensure the scroll triggers)
189
+ const top = target.offsetTop - 3 * target.clientHeight + target.clientHeight / 2;
190
+ if (scrollEl.scrollTop !== top) {
191
+ /**
192
+ * Setting this flag prevents input
193
+ * mode from exiting in the picker column's
194
+ * scroll callback. This is useful when the user manually
195
+ * taps an item or types on the keyboard as both
196
+ * of these can cause a scroll to occur.
197
+ */
198
+ this.canExitInputMode = canExitInputMode;
199
+ this.updateValueTextOnScroll = false;
200
+ scrollEl.scroll({
201
+ top,
202
+ left: 0,
203
+ behavior: smooth ? 'smooth' : undefined,
204
+ });
205
+ }
206
+ }
207
+ };
208
+ setPickerItemActiveState = (item, isActive) => {
209
+ if (isActive) {
210
+ item.classList.add(PICKER_ITEM_ACTIVE_CLASS);
211
+ }
212
+ else {
213
+ item.classList.remove(PICKER_ITEM_ACTIVE_CLASS);
214
+ }
215
+ };
216
+ /**
217
+ * When ionInputModeChange is emitted, each column
218
+ * needs to check if it is the one being made available
219
+ * for text entry.
220
+ */
221
+ inputModeChange = (ev) => {
222
+ if (!this.numericInput) {
223
+ return;
224
+ }
225
+ const { useInputMode, inputModeColumn } = ev.detail;
226
+ /**
227
+ * If inputModeColumn is undefined then this means
228
+ * all numericInput columns are being selected.
229
+ */
230
+ const isColumnActive = inputModeColumn === undefined || inputModeColumn === this.el;
231
+ if (!useInputMode || !isColumnActive) {
232
+ this.setInputModeActive(false);
233
+ return;
234
+ }
235
+ this.setInputModeActive(true);
236
+ };
237
+ /**
238
+ * Setting isActive will cause a re-render.
239
+ * As a result, we do not want to cause the
240
+ * re-render mid scroll as this will cause
241
+ * the picker column to jump back to
242
+ * whatever value was selected at the
243
+ * start of the scroll interaction.
244
+ */
245
+ setInputModeActive = (state) => {
246
+ if (this.isScrolling) {
247
+ this.scrollEndCallback = () => {
248
+ this.isActive = state;
249
+ };
250
+ return;
251
+ }
252
+ this.isActive = state;
253
+ };
254
+ /**
255
+ * When the column scrolls, the component
256
+ * needs to determine which item is centered
257
+ * in the view and will emit an ionChange with
258
+ * the item object.
259
+ */
260
+ initializeScrollListener = () => {
261
+ /**
262
+ * The haptics for the wheel picker are
263
+ * an iOS-only feature. As a result, they should
264
+ * be disabled on Android.
265
+ */
266
+ const enableHaptics = ionicGlobal.isPlatform('ios');
267
+ const { el, scrollEl } = this;
268
+ let timeout;
269
+ let activeEl = this.activeItem;
270
+ const scrollCallback = () => {
271
+ helpers.raf(() => {
272
+ if (!scrollEl)
273
+ return;
274
+ if (timeout) {
275
+ clearTimeout(timeout);
276
+ timeout = undefined;
277
+ }
278
+ if (!this.isScrolling) {
279
+ enableHaptics && haptic.hapticSelectionStart();
280
+ this.isScrolling = true;
281
+ }
282
+ /**
283
+ * Select item in the center of the column
284
+ * which is the month/year that we want to select
285
+ */
286
+ const bbox = scrollEl.getBoundingClientRect();
287
+ const centerX = bbox.x + bbox.width / 2;
288
+ const centerY = bbox.y + bbox.height / 2;
289
+ /**
290
+ * elementFromPoint returns the top-most element.
291
+ * This means that if an ion-backdrop is overlaying the
292
+ * picker then the appropriate picker column option will
293
+ * not be selected. To account for this, we use elementsFromPoint
294
+ * and use an Array.find to find the appropriate column option
295
+ * at that point.
296
+ *
297
+ * Additionally, the picker column could be used in the
298
+ * Shadow DOM (i.e. in ion-datetime) so we need to make
299
+ * sure we are choosing the correct host otherwise
300
+ * the elements returns by elementsFromPoint will be
301
+ * retargeted. To account for this, we check to see
302
+ * if the picker column has a parent shadow root. If
303
+ * so, we use that shadow root when doing elementsFromPoint.
304
+ * Otherwise, we just use the document.
305
+ */
306
+ const rootNode = el.getRootNode();
307
+ const hasParentShadow = rootNode instanceof ShadowRoot;
308
+ const referenceNode = hasParentShadow ? rootNode : index$1.doc;
309
+ /**
310
+ * If the reference node is undefined
311
+ * then it's likely that doc is undefined
312
+ * due to being in an SSR environment.
313
+ */
314
+ if (referenceNode === undefined) {
315
+ return;
316
+ }
317
+ const elementsAtPoint = referenceNode.elementsFromPoint(centerX, centerY);
318
+ /**
319
+ * elementsFromPoint can returns multiple elements
320
+ * so find the relevant picker column option if one exists.
321
+ */
322
+ let newActiveElement = elementsAtPoint.find((el) => el.tagName === 'ION-PICKER-COLUMN-OPTION');
323
+ /**
324
+ * TODO(FW-6594): Remove this workaround when iOS 16 is no longer
325
+ * supported.
326
+ *
327
+ * If `elementsFromPoint` failed to find the active element (a known
328
+ * issue on iOS 16 when elements are in a Shadow DOM and the
329
+ * referenceNode is the document), a fallback to `elementFromPoint`
330
+ * is used. While `elementsFromPoint` returns all elements,
331
+ * `elementFromPoint` returns only the top-most, which is sufficient
332
+ * for this use case and appears to handle Shadow DOM retargeting
333
+ * more reliably in this specific iOS bug.
334
+ */
335
+ if (newActiveElement === undefined) {
336
+ const fallbackActiveElement = referenceNode.elementFromPoint(centerX, centerY);
337
+ if (fallbackActiveElement?.tagName === 'ION-PICKER-COLUMN-OPTION') {
338
+ newActiveElement = fallbackActiveElement;
339
+ }
340
+ }
341
+ if (activeEl !== undefined) {
342
+ this.setPickerItemActiveState(activeEl, false);
343
+ }
344
+ if (newActiveElement === undefined || newActiveElement.disabled) {
345
+ return;
346
+ }
347
+ /**
348
+ * If we are selecting a new value,
349
+ * we need to run haptics again.
350
+ */
351
+ if (newActiveElement !== activeEl) {
352
+ enableHaptics && haptic.hapticSelectionChanged();
353
+ if (this.canExitInputMode) {
354
+ /**
355
+ * The native iOS wheel picker
356
+ * only dismisses the keyboard
357
+ * once the selected item has changed
358
+ * as a result of a swipe
359
+ * from the user. If `canExitInputMode` is
360
+ * `false` then this means that the
361
+ * scroll is happening as a result of
362
+ * the `value` property programmatically changing
363
+ * either by an application or by the user via the keyboard.
364
+ */
365
+ this.exitInputMode();
366
+ }
367
+ }
368
+ activeEl = newActiveElement;
369
+ this.setPickerItemActiveState(newActiveElement, true);
370
+ /**
371
+ * Set the aria-valuetext even though the value prop has not been updated yet.
372
+ * This enables some screen readers to announce the value as the users drag
373
+ * as opposed to when their release their pointer from the screen.
374
+ *
375
+ * When the value is programmatically updated, we will smoothly scroll
376
+ * to the new option. However, we do not want to update aria-valuetext mid-scroll
377
+ * as that can cause the old value to be briefly set before being set to the
378
+ * correct option. This will cause some screen readers to announce the old value
379
+ * again before announcing the new value. The correct valuetext will be set on render.
380
+ */
381
+ if (this.updateValueTextOnScroll) {
382
+ this.assistiveFocusable?.setAttribute('aria-valuetext', this.getOptionValueText(newActiveElement));
383
+ }
384
+ timeout = setTimeout(() => {
385
+ this.isScrolling = false;
386
+ this.updateValueTextOnScroll = true;
387
+ enableHaptics && haptic.hapticSelectionEnd();
388
+ /**
389
+ * Certain tasks (such as those that
390
+ * cause re-renders) should only be done
391
+ * once scrolling has finished, otherwise
392
+ * flickering may occur.
393
+ */
394
+ const { scrollEndCallback } = this;
395
+ if (scrollEndCallback) {
396
+ scrollEndCallback();
397
+ this.scrollEndCallback = undefined;
398
+ }
399
+ /**
400
+ * Reset this flag as the
401
+ * next scroll interaction could
402
+ * be a scroll from the user. In this
403
+ * case, we should exit input mode.
404
+ */
405
+ this.canExitInputMode = true;
406
+ this.setValue(newActiveElement.value);
407
+ }, 250);
408
+ });
409
+ };
410
+ /**
411
+ * Wrap this in an raf so that the scroll callback
412
+ * does not fire when component is initially shown.
413
+ */
414
+ helpers.raf(() => {
415
+ if (!scrollEl)
416
+ return;
417
+ scrollEl.addEventListener('scroll', scrollCallback);
418
+ this.destroyScrollListener = () => {
419
+ scrollEl.removeEventListener('scroll', scrollCallback);
420
+ };
421
+ });
422
+ };
423
+ /**
424
+ * Tells the parent picker to
425
+ * exit text entry mode. This is only called
426
+ * when the selected item changes during scroll, so
427
+ * we know that the user likely wants to scroll
428
+ * instead of type.
429
+ */
430
+ exitInputMode = () => {
431
+ const { parentEl } = this;
432
+ if (parentEl == null)
433
+ return;
434
+ parentEl.exitInputMode();
435
+ /**
436
+ * setInputModeActive only takes
437
+ * effect once scrolling stops to avoid
438
+ * a component re-render while scrolling.
439
+ * However, we want the visual active
440
+ * indicator to go away immediately, so
441
+ * we call classList.remove here.
442
+ */
443
+ this.el.classList.remove('picker-column-active');
444
+ };
537
445
  get activeItem() {
538
446
  const { value } = this;
539
447
  const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
@@ -548,19 +456,123 @@ const PickerColumn = class {
548
456
  return option.value === value;
549
457
  });
550
458
  }
459
+ /**
460
+ * Find the next enabled option after the active option.
461
+ * @param stride - How many options to "jump" over in order to select the next option.
462
+ * This can be used to implement PageUp/PageDown behaviors where pressing these keys
463
+ * scrolls the picker by more than 1 option. For example, a stride of 5 means select
464
+ * the enabled option 5 options after the active one. Note that the actual option selected
465
+ * may be past the stride if the option at the stride is disabled.
466
+ */
467
+ findNextOption = (stride = 1) => {
468
+ const { activeItem } = this;
469
+ if (!activeItem)
470
+ return null;
471
+ let prevNode = activeItem;
472
+ let node = activeItem.nextElementSibling;
473
+ while (node != null) {
474
+ if (stride > 0) {
475
+ stride--;
476
+ }
477
+ if (node.tagName === 'ION-PICKER-COLUMN-OPTION' && !node.disabled && stride === 0) {
478
+ return node;
479
+ }
480
+ prevNode = node;
481
+ // Use nextElementSibling instead of nextSibling to avoid text/comment nodes
482
+ node = node.nextElementSibling;
483
+ }
484
+ return prevNode;
485
+ };
486
+ /**
487
+ * Find the next enabled option after the active option.
488
+ * @param stride - How many options to "jump" over in order to select the next option.
489
+ * This can be used to implement PageUp/PageDown behaviors where pressing these keys
490
+ * scrolls the picker by more than 1 option. For example, a stride of 5 means select
491
+ * the enabled option 5 options before the active one. Note that the actual option selected
492
+ * may be past the stride if the option at the stride is disabled.
493
+ */
494
+ findPreviousOption = (stride = 1) => {
495
+ const { activeItem } = this;
496
+ if (!activeItem)
497
+ return null;
498
+ let nextNode = activeItem;
499
+ let node = activeItem.previousElementSibling;
500
+ while (node != null) {
501
+ if (stride > 0) {
502
+ stride--;
503
+ }
504
+ if (node.tagName === 'ION-PICKER-COLUMN-OPTION' && !node.disabled && stride === 0) {
505
+ return node;
506
+ }
507
+ nextNode = node;
508
+ // Use previousElementSibling instead of previousSibling to avoid text/comment nodes
509
+ node = node.previousElementSibling;
510
+ }
511
+ return nextNode;
512
+ };
513
+ onKeyDown = (ev) => {
514
+ /**
515
+ * The below operations should be inverted when running on a mobile device.
516
+ * For example, swiping up will dispatch an "ArrowUp" event. On desktop,
517
+ * this should cause the previous option to be selected. On mobile, swiping
518
+ * up causes a view to scroll down. As a result, swiping up on mobile should
519
+ * cause the next option to be selected. The Home/End operations remain
520
+ * unchanged because those always represent the first/last options, respectively.
521
+ */
522
+ const mobile = ionicGlobal.isPlatform('mobile');
523
+ let newOption = null;
524
+ switch (ev.key) {
525
+ case 'ArrowDown':
526
+ newOption = mobile ? this.findPreviousOption() : this.findNextOption();
527
+ break;
528
+ case 'ArrowUp':
529
+ newOption = mobile ? this.findNextOption() : this.findPreviousOption();
530
+ break;
531
+ case 'PageUp':
532
+ newOption = mobile ? this.findNextOption(5) : this.findPreviousOption(5);
533
+ break;
534
+ case 'PageDown':
535
+ newOption = mobile ? this.findPreviousOption(5) : this.findNextOption(5);
536
+ break;
537
+ case 'Home':
538
+ /**
539
+ * There is no guarantee that the first child will be an ion-picker-column-option,
540
+ * so we do not use firstElementChild.
541
+ */
542
+ newOption = this.el.querySelector('ion-picker-column-option:first-of-type');
543
+ break;
544
+ case 'End':
545
+ /**
546
+ * There is no guarantee that the last child will be an ion-picker-column-option,
547
+ * so we do not use lastElementChild.
548
+ */
549
+ newOption = this.el.querySelector('ion-picker-column-option:last-of-type');
550
+ break;
551
+ }
552
+ if (newOption !== null) {
553
+ this.setValue(newOption.value);
554
+ // This stops any default browser behavior such as scrolling
555
+ ev.preventDefault();
556
+ }
557
+ };
558
+ /**
559
+ * Utility to generate the correct text for aria-valuetext.
560
+ */
561
+ getOptionValueText = (el) => {
562
+ return el ? el.getAttribute('aria-label') ?? el.innerText : '';
563
+ };
551
564
  render() {
552
565
  const { color, disabled, isActive, numericInput } = this;
553
566
  const mode = ionicGlobal.getIonMode(this);
554
- return (index.h(index.Host, { key: '234c96a501d7ac413b9b0ea56b33017681e25b40', class: theme.createColorClasses(color, {
567
+ return (index.h(index.Host, { key: '78b46ad10d88ea1bb43ca8c36748767912f03224', class: theme.createColorClasses(color, {
555
568
  [mode]: true,
556
569
  ['picker-column-active']: isActive,
557
570
  ['picker-column-numeric-input']: numericInput,
558
571
  ['picker-column-disabled']: disabled,
559
- }) }, index.h("slot", { key: '9dc15ea0601ddd2cb2e0a745e91e036a8bd96f8b', name: "prefix" }), index.h("div", { key: 'de4fe28ee4bc46b7c0420d6ab0df0e7809443da9', class: "picker-opts", ref: (el) => {
572
+ }) }, index.h("slot", { key: '761e501df77f7de896ffb3ebb99ebf88c5c3bf70', name: "prefix" }), index.h("div", { key: '9f4caaeef8ab704522a85f30876d371712f47c5c', class: "picker-opts", ref: (el) => {
560
573
  this.scrollEl = el;
561
- }, 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) }, index.h("div", { key: '5297617462cc30e9444039ae032d8bdf718349af', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { key: '55ea39ef867bcb1a11a912d52ecd20cb886c5fb3', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { key: '3496730ce6182ebfd33e0ee4bafc130feb575a31', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("slot", { key: '44c3628aa957d60f799dc7019f72fe8b676c7843' }), index.h("div", { key: '5a1809f6c949678a67e0d4b5bfe93ea335c0161d', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { key: '98fd57f1c66dbaebc2db2dd5da142671b3159fd1', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { key: '85590708abddfa885994e549deac64866fec938f', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), index.h("slot", { key: 'bb7e674f543696a80fcbfb1f68f2e975826898a6', name: "suffix" })));
574
+ }, 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) }, index.h("div", { key: '9d3533436aba6c61c93f65f84a077fba832194a0', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { key: '3f18d3a47361f06f55321b65fdf5742a61722b26', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { key: 'eac0d20ab8c533ef829875e323e93e1ee2067d6d', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("slot", { key: '92e25989ef41cf6f910c73238e1a0a5ac03f1c1f' }), index.h("div", { key: '33a84644ebdc84108b44a8e3a129b54e824939c8', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { key: '128ad61a3a68c7ff2d2e44a6e968424fcc608a15', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { key: '6e4d59a4f75befcbbf47279a263f28a69b12dbbd', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), index.h("slot", { key: '3c6621b64438792a3024c90e3d9916a0a3614506', name: "suffix" })));
562
575
  }
563
- get el() { return index.getElement(this); }
564
576
  static get watchers() { return {
565
577
  "aria-label": [{
566
578
  "ariaLabelChanged": 0