@ionic/core 7.4.4-dev.11699472805.157e2476 → 7.4.4-dev.11699475060.1eee2115

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 (404) hide show
  1. package/components/alert.js +0 -8
  2. package/components/checkbox.js +3 -0
  3. package/components/data.js +22 -96
  4. package/components/haptic.js +0 -1
  5. package/components/icon.js +5 -9
  6. package/components/index.js +0 -1
  7. package/components/index4.js +19 -26
  8. package/components/index7.js +1 -1
  9. package/components/ion-datetime-button.js +4 -4
  10. package/components/ion-datetime.js +3 -3
  11. package/components/ion-menu.js +12 -0
  12. package/components/ion-nav.js +0 -1
  13. package/components/ion-router.js +0 -3
  14. package/components/ion-select.js +32 -18
  15. package/components/ion-toast.js +13 -157
  16. package/components/ion-toggle.js +3 -0
  17. package/components/ios.transition.js +0 -1
  18. package/components/overlays.js +0 -1
  19. package/components/radio-group.js +1 -1
  20. package/components/radio.js +4 -1
  21. package/dist/cjs/{app-globals-84b6a756.js → app-globals-fe1ad535.js} +1 -1
  22. package/dist/cjs/{button-active-f2147e85.js → button-active-0932cee9.js} +2 -2
  23. package/dist/cjs/{data-c8d21093.js → data-db832785.js} +22 -96
  24. package/dist/cjs/{haptic-678abc9f.js → haptic-c5f6b4d5.js} +0 -1
  25. package/dist/cjs/{index-14a4821e.js → index-305a23dc.js} +95 -51
  26. package/dist/cjs/{index-33d2809c.js → index-d3568232.js} +3 -3
  27. package/dist/cjs/{index-d8f84c5a.js → index-d8d1fc0b.js} +1 -1
  28. package/dist/cjs/{index-2e612e35.js → index-f94cbab1.js} +20 -27
  29. package/dist/cjs/index.cjs.js +8 -10
  30. package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
  31. package/dist/cjs/ion-action-sheet.cjs.entry.js +5 -5
  32. package/dist/cjs/ion-alert.cjs.entry.js +5 -13
  33. package/dist/cjs/ion-app_8.cjs.entry.js +4 -4
  34. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  35. package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
  36. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  37. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
  38. package/dist/cjs/ion-button_2.cjs.entry.js +7 -11
  39. package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
  40. package/dist/cjs/ion-checkbox.cjs.entry.js +5 -2
  41. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  42. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  43. package/dist/cjs/ion-datetime-button.cjs.entry.js +6 -6
  44. package/dist/cjs/ion-datetime_3.cjs.entry.js +8 -8
  45. package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
  46. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  47. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
  48. package/dist/cjs/ion-input.cjs.entry.js +3 -3
  49. package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
  50. package/dist/cjs/ion-item_8.cjs.entry.js +3 -3
  51. package/dist/cjs/ion-loading.cjs.entry.js +3 -3
  52. package/dist/cjs/ion-menu_3.cjs.entry.js +19 -8
  53. package/dist/cjs/ion-modal.cjs.entry.js +4 -4
  54. package/dist/cjs/ion-nav_2.cjs.entry.js +3 -4
  55. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +3 -3
  56. package/dist/cjs/ion-picker-internal.cjs.entry.js +1 -1
  57. package/dist/cjs/ion-popover.cjs.entry.js +4 -4
  58. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  59. package/dist/cjs/ion-radio_2.cjs.entry.js +7 -4
  60. package/dist/cjs/ion-range.cjs.entry.js +2 -2
  61. package/dist/cjs/ion-refresher_2.cjs.entry.js +4 -4
  62. package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
  63. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  64. package/dist/cjs/ion-route_4.cjs.entry.js +2 -5
  65. package/dist/cjs/ion-searchbar.cjs.entry.js +3 -3
  66. package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
  67. package/dist/cjs/ion-select_3.cjs.entry.js +36 -22
  68. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  69. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  70. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
  71. package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
  72. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  73. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  74. package/dist/cjs/ion-toast.cjs.entry.js +33 -175
  75. package/dist/cjs/ion-toggle.cjs.entry.js +7 -4
  76. package/dist/cjs/{ionic-global-a71608df.js → ionic-global-fb752503.js} +1 -1
  77. package/dist/cjs/ionic.cjs.js +5 -5
  78. package/dist/cjs/{ios.transition-8ddf91e6.js → ios.transition-7d688757.js} +2 -3
  79. package/dist/cjs/loader.cjs.js +4 -4
  80. package/dist/cjs/{md.transition-44ff8566.js → md.transition-d77d3c2e.js} +2 -2
  81. package/dist/cjs/{overlays-9cab437c.js → overlays-7e1a08fa.js} +1 -2
  82. package/dist/cjs/{status-tap-8c22e017.js → status-tap-778e8054.js} +1 -1
  83. package/dist/collection/collection-manifest.json +1 -1
  84. package/dist/collection/components/alert/alert.js +0 -8
  85. package/dist/collection/components/alert/test/a11y/alert.e2e.js +0 -11
  86. package/dist/collection/components/checkbox/checkbox.js +3 -0
  87. package/dist/collection/components/datetime/datetime.js +6 -12
  88. package/dist/collection/components/datetime/test/hour-cycle/datetime.e2e.js +0 -14
  89. package/dist/collection/components/datetime/utils/data.js +7 -33
  90. package/dist/collection/components/datetime/utils/format.js +10 -27
  91. package/dist/collection/components/datetime/utils/helpers.js +5 -37
  92. package/dist/collection/components/datetime-button/datetime-button.js +4 -4
  93. package/dist/collection/components/menu/menu.js +12 -0
  94. package/dist/collection/components/nav/nav.js +0 -1
  95. package/dist/collection/components/radio/radio.js +4 -1
  96. package/dist/collection/components/radio-group/radio-group.js +1 -1
  97. package/dist/collection/components/router/router.js +0 -2
  98. package/dist/collection/components/router/utils/path.js +0 -1
  99. package/dist/collection/components/select/select.js +32 -18
  100. package/dist/collection/components/select/test/disabled/select.e2e.js +30 -0
  101. package/dist/collection/components/toast/animations/ios.enter.js +3 -2
  102. package/dist/collection/components/toast/animations/ios.leave.js +3 -2
  103. package/dist/collection/components/toast/animations/md.enter.js +3 -2
  104. package/dist/collection/components/toast/toast.js +9 -98
  105. package/dist/collection/components/toggle/toggle.js +3 -0
  106. package/dist/collection/index.js +0 -1
  107. package/dist/collection/utils/menu-controller/index.js +19 -26
  108. package/dist/collection/utils/native/haptic.js +0 -1
  109. package/dist/collection/utils/overlays.js +0 -1
  110. package/dist/collection/utils/transition/ios.transition.js +0 -1
  111. package/dist/docs.json +11 -74
  112. package/dist/esm/{app-globals-df292a32.js → app-globals-ec816a70.js} +1 -1
  113. package/dist/esm/{button-active-3dd473a1.js → button-active-5136c12d.js} +2 -2
  114. package/dist/esm/{data-44d9e816.js → data-009dbf15.js} +22 -96
  115. package/dist/esm/{haptic-1243b917.js → haptic-6447af60.js} +0 -1
  116. package/dist/esm/{index-6e10cd02.js → index-641aeeed.js} +3 -3
  117. package/dist/esm/{index-cb894020.js → index-b49b173c.js} +95 -51
  118. package/dist/esm/{index-c3e624b7.js → index-d78b533e.js} +20 -27
  119. package/dist/esm/{index-504b03f0.js → index-ecfc2c9f.js} +1 -1
  120. package/dist/esm/index.js +8 -9
  121. package/dist/esm/ion-accordion_2.entry.js +3 -3
  122. package/dist/esm/ion-action-sheet.entry.js +5 -5
  123. package/dist/esm/ion-alert.entry.js +5 -13
  124. package/dist/esm/ion-app_8.entry.js +4 -4
  125. package/dist/esm/ion-avatar_3.entry.js +2 -2
  126. package/dist/esm/ion-back-button.entry.js +3 -3
  127. package/dist/esm/ion-backdrop.entry.js +2 -2
  128. package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
  129. package/dist/esm/ion-button_2.entry.js +7 -11
  130. package/dist/esm/ion-card_5.entry.js +2 -2
  131. package/dist/esm/ion-checkbox.entry.js +5 -2
  132. package/dist/esm/ion-chip.entry.js +2 -2
  133. package/dist/esm/ion-col_3.entry.js +2 -2
  134. package/dist/esm/ion-datetime-button.entry.js +6 -6
  135. package/dist/esm/ion-datetime_3.entry.js +8 -8
  136. package/dist/esm/ion-fab_3.entry.js +3 -3
  137. package/dist/esm/ion-img.entry.js +2 -2
  138. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
  139. package/dist/esm/ion-input.entry.js +3 -3
  140. package/dist/esm/ion-item-option_3.entry.js +2 -2
  141. package/dist/esm/ion-item_8.entry.js +3 -3
  142. package/dist/esm/ion-loading.entry.js +3 -3
  143. package/dist/esm/ion-menu_3.entry.js +18 -7
  144. package/dist/esm/ion-modal.entry.js +4 -4
  145. package/dist/esm/ion-nav_2.entry.js +3 -4
  146. package/dist/esm/ion-picker-column-internal.entry.js +3 -3
  147. package/dist/esm/ion-picker-internal.entry.js +1 -1
  148. package/dist/esm/ion-popover.entry.js +4 -4
  149. package/dist/esm/ion-progress-bar.entry.js +2 -2
  150. package/dist/esm/ion-radio_2.entry.js +7 -4
  151. package/dist/esm/ion-range.entry.js +2 -2
  152. package/dist/esm/ion-refresher_2.entry.js +4 -4
  153. package/dist/esm/ion-reorder_2.entry.js +4 -4
  154. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  155. package/dist/esm/ion-route_4.entry.js +2 -5
  156. package/dist/esm/ion-searchbar.entry.js +3 -3
  157. package/dist/esm/ion-segment_2.entry.js +2 -2
  158. package/dist/esm/ion-select_3.entry.js +36 -22
  159. package/dist/esm/ion-spinner.entry.js +2 -2
  160. package/dist/esm/ion-split-pane.entry.js +2 -2
  161. package/dist/esm/ion-tab-bar_2.entry.js +2 -2
  162. package/dist/esm/ion-tab_2.entry.js +1 -1
  163. package/dist/esm/ion-text.entry.js +2 -2
  164. package/dist/esm/ion-textarea.entry.js +2 -2
  165. package/dist/esm/ion-toast.entry.js +17 -159
  166. package/dist/esm/ion-toggle.entry.js +7 -4
  167. package/dist/esm/{ionic-global-63a8d8c9.js → ionic-global-246ca78f.js} +1 -1
  168. package/dist/esm/ionic.js +6 -6
  169. package/dist/esm/{ios.transition-6707a3a1.js → ios.transition-04c9a97a.js} +2 -3
  170. package/dist/esm/loader.js +5 -5
  171. package/dist/esm/{md.transition-957964fd.js → md.transition-67a8aabd.js} +2 -2
  172. package/dist/esm/{overlays-753933fc.js → overlays-2fa52617.js} +1 -2
  173. package/dist/esm/{status-tap-73e982b6.js → status-tap-9aeeaca5.js} +1 -1
  174. package/dist/esm-es5/app-globals-ec816a70.js +4 -0
  175. package/dist/esm-es5/{button-active-3dd473a1.js → button-active-5136c12d.js} +1 -1
  176. package/dist/esm-es5/data-009dbf15.js +4 -0
  177. package/dist/esm-es5/{index-6e10cd02.js → index-641aeeed.js} +1 -1
  178. package/dist/esm-es5/index-b49b173c.js +5 -0
  179. package/dist/esm-es5/index-d78b533e.js +4 -0
  180. package/dist/esm-es5/index.js +1 -1
  181. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  182. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  183. package/dist/esm-es5/ion-alert.entry.js +1 -1
  184. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  185. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  186. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  187. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  188. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  189. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  190. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  191. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  192. package/dist/esm-es5/ion-chip.entry.js +1 -1
  193. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  194. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  195. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  196. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  197. package/dist/esm-es5/ion-img.entry.js +1 -1
  198. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  199. package/dist/esm-es5/ion-input.entry.js +1 -1
  200. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  201. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  202. package/dist/esm-es5/ion-loading.entry.js +1 -1
  203. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  204. package/dist/esm-es5/ion-modal.entry.js +1 -1
  205. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  206. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  207. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  208. package/dist/esm-es5/ion-popover.entry.js +1 -1
  209. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  210. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  211. package/dist/esm-es5/ion-range.entry.js +1 -1
  212. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  213. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  214. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  215. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  216. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  217. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  218. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  219. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  220. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  221. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  222. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  223. package/dist/esm-es5/ion-text.entry.js +1 -1
  224. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  225. package/dist/esm-es5/ion-toast.entry.js +1 -1
  226. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  227. package/dist/esm-es5/{ionic-global-63a8d8c9.js → ionic-global-246ca78f.js} +1 -1
  228. package/dist/esm-es5/ionic.js +1 -1
  229. package/dist/esm-es5/{ios.transition-6707a3a1.js → ios.transition-04c9a97a.js} +1 -1
  230. package/dist/esm-es5/loader.js +1 -1
  231. package/dist/esm-es5/{md.transition-957964fd.js → md.transition-67a8aabd.js} +1 -1
  232. package/dist/esm-es5/{overlays-753933fc.js → overlays-2fa52617.js} +1 -1
  233. package/dist/esm-es5/{status-tap-73e982b6.js → status-tap-9aeeaca5.js} +1 -1
  234. package/dist/html.html-data.json +1 -11
  235. package/dist/ionic/index.esm.js +1 -1
  236. package/dist/ionic/ionic.esm.js +1 -1
  237. package/dist/ionic/ionic.js +1 -1
  238. package/dist/ionic/{p-9dbc208c.js → p-02a4e81a.js} +1 -1
  239. package/dist/ionic/{p-89e3d112.system.entry.js → p-03c381ec.system.entry.js} +1 -1
  240. package/dist/ionic/{p-44fa0a61.entry.js → p-048f1ebe.entry.js} +1 -1
  241. package/dist/ionic/{p-b7ac706d.entry.js → p-04e7c8fd.entry.js} +1 -1
  242. package/dist/ionic/p-05ae600a.system.js +4 -0
  243. package/dist/ionic/p-06ac429a.js +5 -0
  244. package/dist/ionic/p-0c37546b.system.entry.js +4 -0
  245. package/dist/ionic/{p-5b5311f6.system.entry.js → p-0d74acfb.system.entry.js} +1 -1
  246. package/dist/ionic/{p-7887ac7a.entry.js → p-108f9d49.entry.js} +1 -1
  247. package/dist/ionic/{p-ccdd595c.system.entry.js → p-117cd69f.system.entry.js} +1 -1
  248. package/dist/ionic/{p-e263255c.system.entry.js → p-1289b3b5.system.entry.js} +1 -1
  249. package/dist/ionic/p-13d6e57a.js +4 -0
  250. package/dist/ionic/{p-da024961.entry.js → p-164b0e76.entry.js} +1 -1
  251. package/dist/ionic/{p-8957b1de.system.entry.js → p-170e9de0.system.entry.js} +1 -1
  252. package/dist/ionic/{p-8a289322.js → p-181b7c2a.js} +1 -1
  253. package/dist/ionic/p-1c82e9ff.js +4 -0
  254. package/dist/ionic/{p-48159bfc.system.entry.js → p-1d0aa82f.system.entry.js} +1 -1
  255. package/dist/ionic/{p-9201a4d3.entry.js → p-1ecba429.entry.js} +1 -1
  256. package/dist/ionic/{p-3db27dec.entry.js → p-1f81b5be.entry.js} +1 -1
  257. package/dist/ionic/{p-db8b267a.system.entry.js → p-238f0ac5.system.entry.js} +1 -1
  258. package/dist/ionic/{p-0d3d44e7.entry.js → p-257cf0b7.entry.js} +1 -1
  259. package/dist/ionic/{p-37fc0d22.system.entry.js → p-2784263e.system.entry.js} +1 -1
  260. package/dist/ionic/{p-8f36cde3.system.entry.js → p-29073efe.system.entry.js} +1 -1
  261. package/dist/ionic/p-29e3a9bb.entry.js +4 -0
  262. package/dist/ionic/{p-3634b770.system.entry.js → p-32717950.system.entry.js} +1 -1
  263. package/dist/ionic/p-32d364f0.entry.js +4 -0
  264. package/dist/ionic/{p-c09e1da9.system.entry.js → p-33a8349a.system.entry.js} +1 -1
  265. package/dist/ionic/{p-4555335a.entry.js → p-35818410.entry.js} +1 -1
  266. package/dist/ionic/{p-b4f14d9e.entry.js → p-35eb1d95.entry.js} +1 -1
  267. package/dist/ionic/p-37448ac1.entry.js +4 -0
  268. package/dist/ionic/{p-3e6b0330.system.entry.js → p-38ccfd71.system.entry.js} +1 -1
  269. package/dist/ionic/{p-6f3099b6.system.entry.js → p-3a58e3a4.system.entry.js} +1 -1
  270. package/dist/ionic/{p-c0c794dd.entry.js → p-3c2c6fce.entry.js} +1 -1
  271. package/dist/ionic/{p-9a6f6789.system.entry.js → p-3f3da911.system.entry.js} +1 -1
  272. package/dist/ionic/p-44ef7224.system.js +4 -0
  273. package/dist/ionic/{p-efd574eb.system.entry.js → p-45f5c8ba.system.entry.js} +1 -1
  274. package/dist/ionic/{p-bc7420cc.entry.js → p-4b8db805.entry.js} +1 -1
  275. package/dist/ionic/{p-ec451ef7.system.entry.js → p-4bb26b01.system.entry.js} +1 -1
  276. package/dist/ionic/{p-6a92db9d.system.entry.js → p-4d6ac0fe.system.entry.js} +1 -1
  277. package/dist/ionic/p-4dd96c8d.entry.js +4 -0
  278. package/dist/ionic/{p-0793ebfd.entry.js → p-4e6e43c1.entry.js} +1 -1
  279. package/dist/ionic/{p-e0f66356.system.js → p-51269f3b.system.js} +1 -1
  280. package/dist/ionic/{p-14fd96a2.system.entry.js → p-5403baaa.system.entry.js} +1 -1
  281. package/dist/ionic/{p-abfd1f2e.system.entry.js → p-54f6cd27.system.entry.js} +1 -1
  282. package/dist/ionic/{p-b27772bf.entry.js → p-55d3a9b2.entry.js} +1 -1
  283. package/dist/ionic/{p-10fcb3a3.system.entry.js → p-576e6d0f.system.entry.js} +1 -1
  284. package/dist/ionic/{p-6a3c14d1.entry.js → p-5b32b053.entry.js} +1 -1
  285. package/dist/ionic/{p-b79eb3cd.entry.js → p-5b976d70.entry.js} +1 -1
  286. package/dist/ionic/p-5bc5008c.entry.js +4 -0
  287. package/dist/ionic/p-5c3e72a8.system.js +4 -0
  288. package/dist/ionic/p-5c651aab.system.entry.js +4 -0
  289. package/dist/ionic/{p-ae57449e.system.entry.js → p-5cd791b3.system.entry.js} +1 -1
  290. package/dist/ionic/p-5ece7025.system.js +4 -0
  291. package/dist/ionic/{p-70441a5b.entry.js → p-5efb899f.entry.js} +1 -1
  292. package/dist/ionic/{p-6c7d61b9.system.entry.js → p-6129af0a.system.entry.js} +1 -1
  293. package/dist/ionic/{p-26fbffd4.system.js → p-629aa3fd.system.js} +1 -1
  294. package/dist/ionic/{p-ee8881d0.js → p-63505fbb.js} +1 -1
  295. package/dist/ionic/{p-ef4408d6.entry.js → p-64e20cd9.entry.js} +1 -1
  296. package/dist/ionic/p-65a5761f.js +4 -0
  297. package/dist/ionic/{p-416d7f8d.system.entry.js → p-6ac3e877.system.entry.js} +1 -1
  298. package/dist/ionic/{p-82c72668.system.js → p-6ba7fad7.system.js} +1 -1
  299. package/dist/ionic/{p-92d72ad8.entry.js → p-6ea2e653.entry.js} +1 -1
  300. package/dist/ionic/{p-a9b13f18.system.entry.js → p-6f8a95a3.system.entry.js} +1 -1
  301. package/dist/ionic/{p-a60cff26.system.entry.js → p-6fb80ef3.system.entry.js} +1 -1
  302. package/dist/ionic/{p-b4c0e9ee.entry.js → p-706a0391.entry.js} +1 -1
  303. package/dist/ionic/{p-f48af9da.system.entry.js → p-72aea40e.system.entry.js} +1 -1
  304. package/dist/ionic/p-73ed9a91.js +4 -0
  305. package/dist/ionic/{p-7a590a28.js → p-76378400.js} +1 -1
  306. package/dist/ionic/p-7cfd253c.js +4 -0
  307. package/dist/ionic/{p-3dce88bf.entry.js → p-818b2e75.entry.js} +1 -1
  308. package/dist/ionic/p-8297652e.entry.js +4 -0
  309. package/dist/ionic/{p-b9e2aede.entry.js → p-839276d4.entry.js} +1 -1
  310. package/dist/ionic/{p-b4daca17.system.entry.js → p-8a2801f1.system.entry.js} +1 -1
  311. package/dist/ionic/{p-00cf2d6c.js → p-8e24ebbc.js} +1 -1
  312. package/dist/ionic/{p-037e2738.system.entry.js → p-8ee012cb.system.entry.js} +1 -1
  313. package/dist/ionic/{p-d8eeabae.system.entry.js → p-908720f3.system.entry.js} +1 -1
  314. package/dist/ionic/{p-03f7e3cc.entry.js → p-914ac0fc.entry.js} +1 -1
  315. package/dist/ionic/{p-88a1a4fe.system.entry.js → p-9173418c.system.entry.js} +1 -1
  316. package/dist/ionic/{p-9f9efb31.system.js → p-939e0fa1.system.js} +1 -1
  317. package/dist/ionic/{p-e6d2cca2.system.entry.js → p-95b14c73.system.entry.js} +1 -1
  318. package/dist/ionic/{p-ca655a7c.entry.js → p-96ba8eac.entry.js} +1 -1
  319. package/dist/ionic/{p-dcfea01f.system.entry.js → p-99dfa53f.system.entry.js} +1 -1
  320. package/dist/ionic/{p-9736406a.system.entry.js → p-9b4a77fc.system.entry.js} +1 -1
  321. package/dist/ionic/{p-50d83224.entry.js → p-a04bfada.entry.js} +1 -1
  322. package/dist/ionic/p-a18ec02b.entry.js +4 -0
  323. package/dist/ionic/{p-2acea831.entry.js → p-a7eec917.entry.js} +1 -1
  324. package/dist/ionic/{p-00f709ca.system.entry.js → p-b109a3d7.system.entry.js} +1 -1
  325. package/dist/ionic/{p-fbc7995a.system.entry.js → p-b3690814.system.entry.js} +1 -1
  326. package/dist/ionic/{p-534a1cbc.system.js → p-b3c68723.system.js} +1 -1
  327. package/dist/ionic/{p-4e76e29a.system.entry.js → p-b61a2fa0.system.entry.js} +1 -1
  328. package/dist/ionic/{p-f37d6823.system.entry.js → p-beb864e4.system.entry.js} +1 -1
  329. package/dist/ionic/{p-b25a96b7.system.js → p-c3efbcf5.system.js} +1 -1
  330. package/dist/ionic/{p-a157df46.system.entry.js → p-c48fc95d.system.entry.js} +1 -1
  331. package/dist/ionic/{p-5c24c115.system.js → p-c49672d8.system.js} +1 -1
  332. package/dist/ionic/{p-57743e20.entry.js → p-c4a5de01.entry.js} +1 -1
  333. package/dist/ionic/{p-7520e873.system.entry.js → p-c7428627.system.entry.js} +1 -1
  334. package/dist/ionic/{p-84549737.system.entry.js → p-cf0c93e3.system.entry.js} +1 -1
  335. package/dist/ionic/{p-7b15d413.entry.js → p-d35217be.entry.js} +1 -1
  336. package/dist/ionic/{p-5cafe439.system.entry.js → p-d55c9f92.system.entry.js} +1 -1
  337. package/dist/ionic/{p-06756f31.entry.js → p-d7b8d224.entry.js} +1 -1
  338. package/dist/ionic/{p-9b796813.entry.js → p-d89d0de0.entry.js} +1 -1
  339. package/dist/ionic/{p-fa06c407.entry.js → p-db1a1e00.entry.js} +1 -1
  340. package/dist/ionic/{p-0023e6eb.entry.js → p-deb6ddad.entry.js} +1 -1
  341. package/dist/ionic/{p-90012797.system.js → p-df5fe0be.system.js} +1 -1
  342. package/dist/ionic/{p-d90f0779.system.entry.js → p-e0f52215.system.entry.js} +1 -1
  343. package/dist/ionic/{p-a99e7e72.entry.js → p-e1ac688a.entry.js} +1 -1
  344. package/dist/ionic/{p-d2a278b1.entry.js → p-e2fd0895.entry.js} +1 -1
  345. package/dist/ionic/{p-9e91c83f.system.entry.js → p-eab10949.system.entry.js} +1 -1
  346. package/dist/ionic/{p-ac32f6ce.entry.js → p-eac263dd.entry.js} +1 -1
  347. package/dist/ionic/{p-0459db58.entry.js → p-ec9052a4.entry.js} +1 -1
  348. package/dist/ionic/{p-a7361c85.entry.js → p-f588e951.entry.js} +1 -1
  349. package/dist/ionic/{p-60dee335.entry.js → p-f623aa6d.entry.js} +1 -1
  350. package/dist/ionic/{p-ae8121f5.system.entry.js → p-f960fd84.system.entry.js} +1 -1
  351. package/dist/ionic/p-fbcb157b.system.js +4 -0
  352. package/dist/ionic/{p-4c20879c.entry.js → p-fccfe602.entry.js} +1 -1
  353. package/dist/ionic/{p-3bf7c0dc.entry.js → p-fcf47f80.entry.js} +1 -1
  354. package/dist/node_modules/ionicons/dist/collection/components/icon/icon.css +4 -46
  355. package/dist/types/components/datetime/datetime-interface.d.ts +0 -1
  356. package/dist/types/components/datetime/datetime.d.ts +2 -2
  357. package/dist/types/components/datetime/utils/data.d.ts +3 -3
  358. package/dist/types/components/datetime/utils/format.d.ts +3 -3
  359. package/dist/types/components/datetime/utils/helpers.d.ts +1 -15
  360. package/dist/types/components/menu/menu-interface.d.ts +1 -0
  361. package/dist/types/components/toast/animations/ios.enter.d.ts +1 -2
  362. package/dist/types/components/toast/animations/ios.leave.d.ts +2 -2
  363. package/dist/types/components/toast/animations/md.enter.d.ts +1 -2
  364. package/dist/types/components/toast/toast-interface.d.ts +0 -11
  365. package/dist/types/components/toast/toast.d.ts +1 -21
  366. package/dist/types/components.d.ts +8 -16
  367. package/dist/types/index.d.ts +0 -1
  368. package/dist/types/utils/menu-controller/index.d.ts +2 -1
  369. package/hydrate/index.js +158 -359
  370. package/package.json +7 -6
  371. package/dist/collection/components/menu/test/multiple/menu.e2e.js +0 -60
  372. package/dist/collection/components/toast/animations/utils.js +0 -85
  373. package/dist/collection/components/toast/test/position-anchor/toast.e2e.js +0 -45
  374. package/dist/esm-es5/app-globals-df292a32.js +0 -4
  375. package/dist/esm-es5/data-44d9e816.js +0 -4
  376. package/dist/esm-es5/index-c3e624b7.js +0 -4
  377. package/dist/esm-es5/index-cb894020.js +0 -5
  378. package/dist/ionic/p-0779a5c8.system.js +0 -4
  379. package/dist/ionic/p-0d198537.js +0 -4
  380. package/dist/ionic/p-100ea813.system.entry.js +0 -4
  381. package/dist/ionic/p-17240d90.js +0 -4
  382. package/dist/ionic/p-1d9b39f3.js +0 -4
  383. package/dist/ionic/p-2b47b2ce.entry.js +0 -4
  384. package/dist/ionic/p-32b5f10e.entry.js +0 -4
  385. package/dist/ionic/p-469d6a98.entry.js +0 -4
  386. package/dist/ionic/p-50125c8c.js +0 -4
  387. package/dist/ionic/p-520789c2.js +0 -4
  388. package/dist/ionic/p-68b405cc.entry.js +0 -4
  389. package/dist/ionic/p-6cfcb294.system.js +0 -4
  390. package/dist/ionic/p-73eba881.system.js +0 -4
  391. package/dist/ionic/p-903c36fe.js +0 -5
  392. package/dist/ionic/p-a4ce3b06.system.entry.js +0 -4
  393. package/dist/ionic/p-aae05032.entry.js +0 -4
  394. package/dist/ionic/p-b8c3f071.system.js +0 -4
  395. package/dist/ionic/p-d0d59328.entry.js +0 -4
  396. package/dist/ionic/p-d1df86ff.entry.js +0 -4
  397. package/dist/ionic/p-ec25d547.system.js +0 -4
  398. package/dist/types/components/toast/animations/utils.d.ts +0 -18
  399. /package/dist/esm-es5/{haptic-1243b917.js → haptic-6447af60.js} +0 -0
  400. /package/dist/esm-es5/{index-504b03f0.js → index-ecfc2c9f.js} +0 -0
  401. /package/dist/ionic/{p-15bae383.js → p-0a87858b.js} +0 -0
  402. /package/dist/ionic/{p-b4b4bb29.system.js → p-14d7b7e2.system.js} +0 -0
  403. /package/dist/ionic/{p-3f919368.system.js → p-8985b268.system.js} +0 -0
  404. /package/dist/ionic/{p-b923f3d7.js → p-bb6f38ed.js} +0 -0
@@ -166,14 +166,6 @@ const Alert = /*@__PURE__*/ proxyCustomElement(class Alert extends HTMLElement {
166
166
  }
167
167
  onKeydown(ev) {
168
168
  const inputTypes = new Set(this.processedInputs.map((i) => i.type));
169
- /**
170
- * Based on keyboard navigation requirements, the
171
- * checkbox should not respond to the enter keydown event.
172
- */
173
- if (inputTypes.has('checkbox') && ev.key === 'Enter') {
174
- ev.preventDefault();
175
- return;
176
- }
177
169
  // The only inputs we want to navigate between using arrow keys are the radios
178
170
  // ignore the keydown event if it is not on a radio button
179
171
  if (!inputTypes.has('radio') ||
@@ -52,6 +52,9 @@ const Checkbox = /*@__PURE__*/ proxyCustomElement(class Checkbox extends HTMLEle
52
52
  this.ionBlur.emit();
53
53
  };
54
54
  this.onClick = (ev) => {
55
+ if (this.disabled) {
56
+ return;
57
+ }
55
58
  this.toggleChecked(ev);
56
59
  };
57
60
  this.color = undefined;
@@ -53,19 +53,13 @@ const warnIfValueOutOfBounds = (value, min, max) => {
53
53
  const isLeapYear = (year) => {
54
54
  return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
55
55
  };
56
- /**
57
- * Determines the hour cycle for a user.
58
- * If the hour cycle is explicitly defined, just use that.
59
- * Otherwise, we try to derive it from either the specified
60
- * locale extension tags or from Intl.DateTimeFormat directly.
61
- */
62
- const getHourCycle = (locale, hourCycle) => {
56
+ const is24Hour = (locale, hourCycle) => {
63
57
  /**
64
- * If developer has explicitly enabled 24-hour time
58
+ * If developer has explicitly enabled h23 time
65
59
  * then return early and do not look at the system default.
66
60
  */
67
61
  if (hourCycle !== undefined) {
68
- return hourCycle;
62
+ return hourCycle === 'h23';
69
63
  }
70
64
  /**
71
65
  * If hourCycle was not specified, check the locale
@@ -76,7 +70,7 @@ const getHourCycle = (locale, hourCycle) => {
76
70
  const formatted = new Intl.DateTimeFormat(locale, { hour: 'numeric' });
77
71
  const options = formatted.resolvedOptions();
78
72
  if (options.hourCycle !== undefined) {
79
- return options.hourCycle;
73
+ return options.hourCycle === 'h23';
80
74
  }
81
75
  /**
82
76
  * If hourCycle is not specified (either through lack
@@ -89,33 +83,7 @@ const getHourCycle = (locale, hourCycle) => {
89
83
  if (!hour) {
90
84
  throw new Error('Hour value not found from DateTimeFormat');
91
85
  }
92
- /**
93
- * Midnight for h11 starts at 0:00am
94
- * Midnight for h12 starts at 12:00am
95
- * Midnight for h23 starts at 00:00
96
- * Midnight for h24 starts at 24:00
97
- */
98
- switch (hour.value) {
99
- case '0':
100
- return 'h11';
101
- case '12':
102
- return 'h12';
103
- case '00':
104
- return 'h23';
105
- case '24':
106
- return 'h24';
107
- default:
108
- throw new Error(`Invalid hour cycle "${hourCycle}"`);
109
- }
110
- };
111
- /**
112
- * Determine if the hour cycle uses a 24-hour format.
113
- * Returns true for h23 and h24. Returns false otherwise.
114
- * If you don't know the hourCycle, use getHourCycle above
115
- * and pass the result into this function.
116
- */
117
- const is24Hour = (hourCycle) => {
118
- return hourCycle === 'h23' || hourCycle === 'h24';
86
+ return hour.value === '00';
119
87
  };
120
88
  /**
121
89
  * Given a date object, returns the number
@@ -782,7 +750,7 @@ const getFormattedDayPeriod = (dayPeriod) => {
782
750
  }
783
751
  return dayPeriod.toUpperCase();
784
752
  };
785
- const getLocalizedTime = (locale, refParts, hourCycle) => {
753
+ const getLocalizedTime = (locale, refParts, use24Hour) => {
786
754
  const timeParts = {
787
755
  hour: refParts.hour,
788
756
  minute: refParts.minute,
@@ -804,7 +772,7 @@ const getLocalizedTime = (locale, refParts, hourCycle) => {
804
772
  * We use hourCycle here instead of hour12 due to:
805
773
  * https://bugs.chromium.org/p/chromium/issues/detail?id=1347316&q=hour12&can=2
806
774
  */
807
- hourCycle,
775
+ hourCycle: use24Hour ? 'h23' : 'h12',
808
776
  /**
809
777
  * Setting Z at the end indicates that this
810
778
  * date string is in the UTC time zone. This
@@ -842,33 +810,17 @@ const addTimePadding = (value) => {
842
810
  * 12 hour times it ensures that
843
811
  * hour 0 is formatted as '12'.
844
812
  */
845
- const getFormattedHour = (hour, hourCycle) => {
846
- /**
847
- * Midnight for h11 starts at 0:00am
848
- * Midnight for h12 starts at 12:00am
849
- * Midnight for h23 starts at 00:00
850
- * Midnight for h24 starts at 24:00
851
- */
852
- if (hour === 0) {
853
- switch (hourCycle) {
854
- case 'h11':
855
- return '0';
856
- case 'h12':
857
- return '12';
858
- case 'h23':
859
- return '00';
860
- case 'h24':
861
- return '24';
862
- default:
863
- throw new Error(`Invalid hour cycle "${hourCycle}"`);
864
- }
813
+ const getFormattedHour = (hour, use24Hour) => {
814
+ if (use24Hour) {
815
+ return addTimePadding(hour);
865
816
  }
866
- const use24Hour = is24Hour(hourCycle);
867
817
  /**
868
- * h23 and h24 use 24 hour times.
818
+ * If using 12 hour
819
+ * format, make sure hour
820
+ * 0 is formatted as '12'.
869
821
  */
870
- if (use24Hour) {
871
- return addTimePadding(hour);
822
+ if (hour === 0) {
823
+ return '12';
872
824
  }
873
825
  return hour.toString();
874
826
  };
@@ -1103,14 +1055,8 @@ const minutes = [
1103
1055
  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1104
1056
  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1105
1057
  ];
1106
- // h11 hour system uses 0-11. Midnight starts at 0:00am.
1107
- const hour11 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
1108
- // h12 hour system uses 0-12. Midnight starts at 12:00am.
1109
1058
  const hour12 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
1110
- // h23 hour system uses 0-23. Midnight starts at 0:00.
1111
1059
  const hour23 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23];
1112
- // h24 hour system uses 1-24. Midnight starts at 24:00.
1113
- const hour24 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0];
1114
1060
  /**
1115
1061
  * Given a locale and a mode,
1116
1062
  * return an array with formatted days
@@ -1179,33 +1125,14 @@ const getDaysOfMonth = (month, year, firstDayOfWeek) => {
1179
1125
  }
1180
1126
  return days;
1181
1127
  };
1182
- /**
1183
- * Returns an array of pre-defined hour
1184
- * values based on the provided hourCycle.
1185
- */
1186
- const getHourData = (hourCycle) => {
1187
- switch (hourCycle) {
1188
- case 'h11':
1189
- return hour11;
1190
- case 'h12':
1191
- return hour12;
1192
- case 'h23':
1193
- return hour23;
1194
- case 'h24':
1195
- return hour24;
1196
- default:
1197
- throw new Error(`Invalid hour cycle "${hourCycle}"`);
1198
- }
1199
- };
1200
1128
  /**
1201
1129
  * Given a local, reference datetime parts and option
1202
1130
  * max/min bound datetime parts, calculate the acceptable
1203
1131
  * hour and minute values according to the bounds and locale.
1204
1132
  */
1205
- const generateTime = (locale, refParts, hourCycle = 'h12', minParts, maxParts, hourValues, minuteValues) => {
1206
- const computedHourCycle = getHourCycle(locale, hourCycle);
1207
- const use24Hour = is24Hour(computedHourCycle);
1208
- let processedHours = getHourData(computedHourCycle);
1133
+ const generateTime = (refParts, hourCycle = 'h12', minParts, maxParts, hourValues, minuteValues) => {
1134
+ const use24Hour = hourCycle === 'h23';
1135
+ let processedHours = use24Hour ? hour23 : hour12;
1209
1136
  let processedMinutes = minutes;
1210
1137
  let isAMAllowed = true;
1211
1138
  let isPMAllowed = true;
@@ -1537,12 +1464,11 @@ const getCombinedDateColumnData = (locale, todayParts, minParts, maxParts, dayVa
1537
1464
  };
1538
1465
  };
1539
1466
  const getTimeColumnsData = (locale, refParts, hourCycle, minParts, maxParts, allowedHourValues, allowedMinuteValues) => {
1540
- const computedHourCycle = getHourCycle(locale, hourCycle);
1541
- const use24Hour = is24Hour(computedHourCycle);
1542
- const { hours, minutes, am, pm } = generateTime(locale, refParts, computedHourCycle, minParts, maxParts, allowedHourValues, allowedMinuteValues);
1467
+ const use24Hour = is24Hour(locale, hourCycle);
1468
+ const { hours, minutes, am, pm } = generateTime(refParts, use24Hour ? 'h23' : 'h12', minParts, maxParts, allowedHourValues, allowedMinuteValues);
1543
1469
  const hoursItems = hours.map((hour) => {
1544
1470
  return {
1545
- text: getFormattedHour(hour, computedHourCycle),
1471
+ text: getFormattedHour(hour, use24Hour),
1546
1472
  value: getInternalHourValue(hour, use24Hour, refParts.ampm),
1547
1473
  };
1548
1474
  });
@@ -1572,4 +1498,4 @@ const getTimeColumnsData = (locale, refParts, hourCycle, minParts, maxParts, all
1572
1498
  };
1573
1499
  };
1574
1500
 
1575
- export { getDayColumnData as A, getYearColumnData as B, isMonthFirstLocale as C, getTimeColumnsData as D, isLocaleDayPeriodRTL as E, getMonthAndYear as F, getDaysOfWeek as G, getDaysOfMonth as H, generateMonths as I, getHourCycle as J, getLocalizedTime as K, getMonthAndDay as L, formatValue as M, getNextYear as N, getPreviousYear as O, clampDate as P, parseAmPm as Q, calculateHourFromAMPM as R, getLocalizedDateTime as S, getMonthDayAndYear as T, getDay as a, isAfter as b, isSameDay as c, getPreviousMonth as d, getNextMonth as e, getPartsFromCalendarDay as f, generateDayAriaLabel as g, getEndOfWeek as h, isBefore as i, getStartOfWeek as j, getPreviousDay as k, getNextDay as l, getPreviousWeek as m, getNextWeek as n, parseMaxParts as o, parseMinParts as p, parseDate as q, convertToArrayOfNumbers as r, convertDataToISO as s, getToday as t, getClosestValidDate as u, validateParts as v, warnIfValueOutOfBounds as w, getNumDaysInMonth as x, getCombinedDateColumnData as y, getMonthColumnData as z };
1501
+ export { getDayColumnData as A, getYearColumnData as B, isMonthFirstLocale as C, getTimeColumnsData as D, isLocaleDayPeriodRTL as E, getMonthAndYear as F, getDaysOfWeek as G, getDaysOfMonth as H, generateMonths as I, is24Hour as J, getLocalizedTime as K, getMonthAndDay as L, formatValue as M, getNextYear as N, getPreviousYear as O, clampDate as P, parseAmPm as Q, calculateHourFromAMPM as R, getLocalizedDateTime as S, getMonthDayAndYear as T, getDay as a, isAfter as b, isSameDay as c, getPreviousMonth as d, getNextMonth as e, getPartsFromCalendarDay as f, generateDayAriaLabel as g, getEndOfWeek as h, isBefore as i, getStartOfWeek as j, getPreviousDay as k, getNextDay as l, getPreviousWeek as m, getNextWeek as n, parseMaxParts as o, parseMinParts as p, parseDate as q, convertToArrayOfNumbers as r, convertDataToISO as s, getToday as t, getClosestValidDate as u, validateParts as v, warnIfValueOutOfBounds as w, getNumDaysInMonth as x, getCombinedDateColumnData as y, getMonthColumnData as z };
@@ -76,7 +76,6 @@ const HapticEngine = {
76
76
  * if the browser does not support the Vibrate API.
77
77
  */
78
78
  if ((capacitor === null || capacitor === void 0 ? void 0 : capacitor.getPlatform()) === 'web') {
79
- // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
80
79
  return typeof navigator !== 'undefined' && navigator.vibrate !== undefined;
81
80
  }
82
81
  return true;
@@ -221,7 +221,7 @@ const getSvgContent = (url, sanitize) => {
221
221
  return req;
222
222
  };
223
223
 
224
- const iconCss = ":host{display:inline-block;width:1em;height:1em;contain:strict;fill:currentColor;-webkit-box-sizing:content-box !important;box-sizing:content-box !important}:host .ionicon{stroke:currentColor}.ionicon-fill-none{fill:none}.ionicon-stroke-width{stroke-width:32px;stroke-width:var(--ionicon-stroke-width, 32px)}.icon-inner,.ionicon,svg{display:block;height:100%;width:100%}@supports (background: -webkit-named-image(i)){:host(.icon-rtl) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}}@supports not selector(:dir(rtl)) and selector(:host-context([dir='rtl'])){:host(.icon-rtl) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}}:host(.flip-rtl):host-context([dir='rtl']) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}@supports selector(:dir(rtl)){:host(.flip-rtl:dir(rtl)) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}:host(.flip-rtl:dir(ltr)) .icon-inner{-webkit-transform:scaleX(1);transform:scaleX(1)}}:host(.icon-small){font-size:18px !important}:host(.icon-large){font-size:32px !important}:host(.ion-color){color:var(--ion-color-base) !important}:host(.ion-color-primary){--ion-color-base:var(--ion-color-primary, #3880ff)}:host(.ion-color-secondary){--ion-color-base:var(--ion-color-secondary, #0cd1e8)}:host(.ion-color-tertiary){--ion-color-base:var(--ion-color-tertiary, #f4a942)}:host(.ion-color-success){--ion-color-base:var(--ion-color-success, #10dc60)}:host(.ion-color-warning){--ion-color-base:var(--ion-color-warning, #ffce00)}:host(.ion-color-danger){--ion-color-base:var(--ion-color-danger, #f14141)}:host(.ion-color-light){--ion-color-base:var(--ion-color-light, #f4f5f8)}:host(.ion-color-medium){--ion-color-base:var(--ion-color-medium, #989aa2)}:host(.ion-color-dark){--ion-color-base:var(--ion-color-dark, #222428)}";
224
+ const iconCss = ":host{display:inline-block;width:1em;height:1em;contain:strict;fill:currentColor;-webkit-box-sizing:content-box !important;box-sizing:content-box !important}:host .ionicon{stroke:currentColor}.ionicon-fill-none{fill:none}.ionicon-stroke-width{stroke-width:32px;stroke-width:var(--ionicon-stroke-width, 32px)}.icon-inner,.ionicon,svg{display:block;height:100%;width:100%}:host(.flip-rtl) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}:host(.icon-small){font-size:18px !important}:host(.icon-large){font-size:32px !important}:host(.ion-color){color:var(--ion-color-base) !important}:host(.ion-color-primary){--ion-color-base:var(--ion-color-primary, #3880ff)}:host(.ion-color-secondary){--ion-color-base:var(--ion-color-secondary, #0cd1e8)}:host(.ion-color-tertiary){--ion-color-base:var(--ion-color-tertiary, #f4a942)}:host(.ion-color-success){--ion-color-base:var(--ion-color-success, #10dc60)}:host(.ion-color-warning){--ion-color-base:var(--ion-color-warning, #ffce00)}:host(.ion-color-danger){--ion-color-base:var(--ion-color-danger, #f14141)}:host(.ion-color-light){--ion-color-base:var(--ion-color-light, #f4f5f8)}:host(.ion-color-medium){--ion-color-base:var(--ion-color-medium, #989aa2)}:host(.ion-color-dark){--ion-color-base:var(--ion-color-dark, #222428)}";
225
225
 
226
226
  const Icon = /*@__PURE__*/ proxyCustomElement(class Icon extends HTMLElement {
227
227
  constructor() {
@@ -300,15 +300,11 @@ const Icon = /*@__PURE__*/ proxyCustomElement(class Icon extends HTMLElement {
300
300
  this.iconName = getName(this.name, this.icon, this.mode, this.ios, this.md);
301
301
  }
302
302
  render() {
303
- const { flipRtl, iconName, inheritedAttributes, el } = this;
303
+ const { iconName, el, inheritedAttributes } = this;
304
304
  const mode = this.mode || 'md';
305
- // we have designated that arrows & chevrons should automatically flip (unless flip-rtl is set to false) because "back" is left in ltr and right in rtl, and "forward" is the opposite
306
- const shouldAutoFlip = iconName
307
- ? (iconName.includes('arrow') || iconName.includes('chevron')) && flipRtl !== false
308
- : false;
309
- // if shouldBeFlippable is true, the icon should change direction when `dir` changes
310
- const shouldBeFlippable = flipRtl || shouldAutoFlip;
311
- return (h(Host, Object.assign({ role: "img", class: Object.assign(Object.assign({ [mode]: true }, createColorClasses(this.color)), { [`icon-${this.size}`]: !!this.size, 'flip-rtl': shouldBeFlippable, 'icon-rtl': shouldBeFlippable && isRTL(el) }) }, inheritedAttributes), Build.isBrowser && this.svgContent ? (h("div", { class: "icon-inner", innerHTML: this.svgContent })) : (h("div", { class: "icon-inner" }))));
305
+ const flipRtl = this.flipRtl ||
306
+ (iconName && (iconName.indexOf('arrow') > -1 || iconName.indexOf('chevron') > -1) && this.flipRtl !== false);
307
+ return (h(Host, Object.assign({ role: "img", class: Object.assign(Object.assign({ [mode]: true }, createColorClasses(this.color)), { [`icon-${this.size}`]: !!this.size, 'flip-rtl': !!flipRtl && isRTL(el) }) }, inheritedAttributes), Build.isBrowser && this.svgContent ? (h("div", { class: "icon-inner", innerHTML: this.svgContent })) : (h("div", { class: "icon-inner" }))));
312
308
  }
313
309
  static get assetsDirs() { return ["svg"]; }
314
310
  get el() { return this; }
@@ -11,7 +11,6 @@ export { createGesture } from './index3.js';
11
11
  export { g as getPlatforms, i as initialize, a as isPlatform } from './ionic-global.js';
12
12
  export { c as componentOnReady } from './helpers.js';
13
13
  export { I as IonicSafeString, g as getMode, s as setupConfig } from './config.js';
14
- export { o as openURL } from './theme.js';
15
14
  export { m as menuController } from './index4.js';
16
15
  export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as pickerController, c as popoverController, t as toastController } from './overlays.js';
17
16
 
@@ -1,7 +1,6 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { p as printIonWarning } from './index6.js';
5
4
  import { MENU_BACK_BUTTON_PRIORITY } from './hardware-back-button.js';
6
5
  import { c as componentOnReady } from './helpers.js';
7
6
  import { b as getIonMode } from './ionic-global.js';
@@ -99,21 +98,21 @@ const createMenuController = () => {
99
98
  const menuAnimations = new Map();
100
99
  const menus = [];
101
100
  const open = async (menu) => {
102
- const menuEl = await get(menu, true);
101
+ const menuEl = await get(menu);
103
102
  if (menuEl) {
104
103
  return menuEl.open();
105
104
  }
106
105
  return false;
107
106
  };
108
107
  const close = async (menu) => {
109
- const menuEl = await (menu !== undefined ? get(menu, true) : getOpen());
108
+ const menuEl = await (menu !== undefined ? get(menu) : getOpen());
110
109
  if (menuEl !== undefined) {
111
110
  return menuEl.close();
112
111
  }
113
112
  return false;
114
113
  };
115
114
  const toggle = async (menu) => {
116
- const menuEl = await get(menu, true);
115
+ const menuEl = await get(menu);
117
116
  if (menuEl) {
118
117
  return menuEl.toggle();
119
118
  }
@@ -151,35 +150,18 @@ const createMenuController = () => {
151
150
  }
152
151
  return false;
153
152
  };
154
- /**
155
- * Finds and returns the menu specified by "menu" if registered.
156
- * @param menu - The side or ID of the desired menu
157
- * @param logOnMultipleSideMenus - If true, this function will log a warning
158
- * if "menu" is a side but multiple menus on the same side were found. Since this function
159
- * is used in multiple places, we default this log to false so that the calling
160
- * functions can choose whether or not it is appropriate to log this warning.
161
- */
162
- const get = async (menu, logOnMultipleSideMenus = false) => {
153
+ const get = async (menu) => {
163
154
  await waitUntilReady();
164
155
  if (menu === 'start' || menu === 'end') {
165
156
  // there could be more than one menu on the same side
166
157
  // so first try to get the enabled one
167
- const menuRefs = menus.filter((m) => m.side === menu && !m.disabled);
168
- if (menuRefs.length >= 1) {
169
- if (menuRefs.length > 1 && logOnMultipleSideMenus) {
170
- printIonWarning(`menuController queried for a menu on the "${menu}" side, but ${menuRefs.length} menus were found. The first menu reference will be used. If this is not the behavior you want then pass the ID of the menu instead of its side.`, menuRefs.map((m) => m.el));
171
- }
172
- return menuRefs[0].el;
158
+ const menuRef = find((m) => m.side === menu && !m.disabled);
159
+ if (menuRef) {
160
+ return menuRef;
173
161
  }
174
162
  // didn't find a menu side that is enabled
175
163
  // so try to get the first menu side found
176
- const sideMenuRefs = menus.filter((m) => m.side === menu);
177
- if (sideMenuRefs.length >= 1) {
178
- if (sideMenuRefs.length > 1 && logOnMultipleSideMenus) {
179
- printIonWarning(`menuController queried for a menu on the "${menu}" side, but ${sideMenuRefs.length} menus were found. The first menu reference will be used. If this is not the behavior you want then pass the ID of the menu instead of its side.`, sideMenuRefs.map((m) => m.el));
180
- }
181
- return sideMenuRefs[0].el;
182
- }
164
+ return find((m) => m.side === menu);
183
165
  }
184
166
  else if (menu != null) {
185
167
  // the menuId was not left or right
@@ -221,6 +203,9 @@ const createMenuController = () => {
221
203
  };
222
204
  const _register = (menu) => {
223
205
  if (menus.indexOf(menu) < 0) {
206
+ if (!menu.disabled) {
207
+ _setActiveMenu(menu);
208
+ }
224
209
  menus.push(menu);
225
210
  }
226
211
  };
@@ -230,6 +215,13 @@ const createMenuController = () => {
230
215
  menus.splice(index, 1);
231
216
  }
232
217
  };
218
+ const _setActiveMenu = (menu) => {
219
+ // if this menu should be enabled
220
+ // then find all the other menus on this same side
221
+ // and automatically disable other same side menus
222
+ const side = menu.side;
223
+ menus.filter((m) => m.side === side && m !== menu).forEach((m) => (m.disabled = true));
224
+ };
233
225
  const _setOpen = async (menu, shouldOpen, animated) => {
234
226
  if (isAnimatingSync()) {
235
227
  return false;
@@ -301,6 +293,7 @@ const createMenuController = () => {
301
293
  _register,
302
294
  _unregister,
303
295
  _setOpen,
296
+ _setActiveMenu,
304
297
  };
305
298
  };
306
299
  const menuController = /*@__PURE__*/ createMenuController();
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- /* Ionicons v7.1.2, ES Modules */
4
+ /* Ionicons v7.1.0, ES Modules */
5
5
  const arrowBackSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path stroke-linecap='square' stroke-miterlimit='10' stroke-width='48' d='M244 400L100 256l144-144M120 256h292' class='ionicon-fill-none'/></svg>";
6
6
  const arrowDown = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M112 268l144 144 144-144M256 392V100' class='ionicon-fill-none'/></svg>";
7
7
  const caretBackSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path d='M368 64L144 256l224 192V64z'/></svg>";
@@ -6,7 +6,7 @@ import { a as addEventListener, c as componentOnReady } from './helpers.js';
6
6
  import { a as printIonError } from './index6.js';
7
7
  import { c as createColorClasses } from './theme.js';
8
8
  import { b as getIonMode } from './ionic-global.js';
9
- import { q as parseDate, t as getToday, J as getHourCycle, S as getLocalizedDateTime, F as getMonthAndYear, K as getLocalizedTime, T as getMonthDayAndYear } from './data.js';
9
+ import { q as parseDate, t as getToday, J as is24Hour, S as getLocalizedDateTime, F as getMonthAndYear, K as getLocalizedTime, T as getMonthDayAndYear } from './data.js';
10
10
  import { d as defineCustomElement$2 } from './ripple-effect.js';
11
11
 
12
12
  const iosDatetimeButtonCss = ":host{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}:host button{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:0px;margin-bottom:0px;position:relative;-webkit-transition:150ms color ease-in-out;transition:150ms color ease-in-out;border:none;background:var(--ion-color-step-300, #edeef0);color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;overflow:hidden}:host(.time-active) #time-button,:host(.date-active) #date-button{color:var(--ion-color-base)}:host(.datetime-button-disabled){pointer-events:none}:host(.datetime-button-disabled) button{opacity:0.4}";
@@ -63,13 +63,13 @@ const DatetimeButton = /*@__PURE__*/ proxyCustomElement(class DatetimeButton ext
63
63
  * warning in the console.
64
64
  */
65
65
  const firstParsedDatetime = parsedDatetimes[0];
66
- const computedHourCycle = getHourCycle(locale, hourCycle);
66
+ const use24Hour = is24Hour(locale, hourCycle);
67
67
  this.dateText = this.timeText = undefined;
68
68
  switch (datetimePresentation) {
69
69
  case 'date-time':
70
70
  case 'time-date':
71
71
  const dateText = getMonthDayAndYear(locale, firstParsedDatetime);
72
- const timeText = getLocalizedTime(locale, firstParsedDatetime, computedHourCycle);
72
+ const timeText = getLocalizedTime(locale, firstParsedDatetime, use24Hour);
73
73
  if (preferWheel) {
74
74
  this.dateText = `${dateText} ${timeText}`;
75
75
  }
@@ -96,7 +96,7 @@ const DatetimeButton = /*@__PURE__*/ proxyCustomElement(class DatetimeButton ext
96
96
  }
97
97
  break;
98
98
  case 'time':
99
- this.timeText = getLocalizedTime(locale, firstParsedDatetime, computedHourCycle);
99
+ this.timeText = getLocalizedTime(locale, firstParsedDatetime, use24Hour);
100
100
  break;
101
101
  case 'month-year':
102
102
  this.dateText = getMonthAndYear(locale, firstParsedDatetime);
@@ -9,7 +9,7 @@ import { i as isRTL } from './dir.js';
9
9
  import { c as createColorClasses } from './theme.js';
10
10
  import { a as chevronBack, f as chevronForward, c as chevronDown, g as caretUpSharp, h as caretDownSharp } from './index7.js';
11
11
  import { b as getIonMode } from './ionic-global.js';
12
- import { g as generateDayAriaLabel, a as getDay, i as isBefore, b as isAfter, c as isSameDay, d as getPreviousMonth, e as getNextMonth, v as validateParts, f as getPartsFromCalendarDay, h as getEndOfWeek, j as getStartOfWeek, k as getPreviousDay, l as getNextDay, m as getPreviousWeek, n as getNextWeek, p as parseMinParts, o as parseMaxParts, q as parseDate, w as warnIfValueOutOfBounds, r as convertToArrayOfNumbers, s as convertDataToISO, t as getToday, u as getClosestValidDate, x as getNumDaysInMonth, y as getCombinedDateColumnData, z as getMonthColumnData, A as getDayColumnData, B as getYearColumnData, C as isMonthFirstLocale, D as getTimeColumnsData, E as isLocaleDayPeriodRTL, F as getMonthAndYear, G as getDaysOfWeek, H as getDaysOfMonth, I as generateMonths, J as getHourCycle, K as getLocalizedTime, L as getMonthAndDay, M as formatValue, N as getNextYear, O as getPreviousYear, P as clampDate, Q as parseAmPm, R as calculateHourFromAMPM } from './data.js';
12
+ import { g as generateDayAriaLabel, a as getDay, i as isBefore, b as isAfter, c as isSameDay, d as getPreviousMonth, e as getNextMonth, v as validateParts, f as getPartsFromCalendarDay, h as getEndOfWeek, j as getStartOfWeek, k as getPreviousDay, l as getNextDay, m as getPreviousWeek, n as getNextWeek, p as parseMinParts, o as parseMaxParts, q as parseDate, w as warnIfValueOutOfBounds, r as convertToArrayOfNumbers, s as convertDataToISO, t as getToday, u as getClosestValidDate, x as getNumDaysInMonth, y as getCombinedDateColumnData, z as getMonthColumnData, A as getDayColumnData, B as getYearColumnData, C as isMonthFirstLocale, D as getTimeColumnsData, E as isLocaleDayPeriodRTL, F as getMonthAndYear, G as getDaysOfWeek, H as getDaysOfMonth, I as generateMonths, J as is24Hour, K as getLocalizedTime, L as getMonthAndDay, M as formatValue, N as getNextYear, O as getPreviousYear, P as clampDate, Q as parseAmPm, R as calculateHourFromAMPM } from './data.js';
13
13
  import { d as defineCustomElement$c } from './backdrop.js';
14
14
  import { d as defineCustomElement$b } from './button.js';
15
15
  import { d as defineCustomElement$a } from './buttons.js';
@@ -1533,7 +1533,7 @@ const Datetime = /*@__PURE__*/ proxyCustomElement(class Datetime extends HTMLEle
1533
1533
  }
1534
1534
  renderTimeOverlay() {
1535
1535
  const { hourCycle, isTimePopoverOpen, locale } = this;
1536
- const computedHourCycle = getHourCycle(locale, hourCycle);
1536
+ const use24Hour = is24Hour(locale, hourCycle);
1537
1537
  const activePart = this.getActivePartsWithFallback();
1538
1538
  return [
1539
1539
  h("div", { class: "time-header" }, this.renderTimeLabel()),
@@ -1552,7 +1552,7 @@ const Datetime = /*@__PURE__*/ proxyCustomElement(class Datetime extends HTMLEle
1552
1552
  await popoverRef.onWillDismiss();
1553
1553
  this.isTimePopoverOpen = false;
1554
1554
  }
1555
- } }, getLocalizedTime(locale, activePart, computedHourCycle)),
1555
+ } }, getLocalizedTime(locale, activePart, use24Hour)),
1556
1556
  h("ion-popover", { alignment: "center", translucent: true, overlayIndex: 1, arrow: false, onWillPresent: (ev) => {
1557
1557
  /**
1558
1558
  * Intersection Observers do not consistently fire between Blink and Webkit
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { proxyCustomElement, HTMLElement, createEvent, Build, h, Host } from '@stencil/core/internal/client';
5
5
  import { g as getTimeGivenProgression } from './cubic-bezier.js';
6
+ import { d as doc } from './index5.js';
6
7
  import { G as GESTURE_CONTROLLER } from './gesture-controller.js';
7
8
  import { o as isEndSide, i as inheritAriaAttributes, p as assert, m as clamp } from './helpers.js';
8
9
  import { m as menuController } from './index4.js';
@@ -588,6 +589,17 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
588
589
  */
589
590
  this.afterAnimation(false);
590
591
  }
592
+ if (doc === null || doc === void 0 ? void 0 : doc.contains(this.el)) {
593
+ /**
594
+ * Only set the active menu if the menu element is
595
+ * present in the DOM. Otherwise if it was destructively
596
+ * re-hydrated (through Angular Universal), then ignore
597
+ * setting the removed node as the active menu.
598
+ */
599
+ if (!this.disabled) {
600
+ menuController._setActiveMenu(this);
601
+ }
602
+ }
591
603
  }
592
604
  render() {
593
605
  const { type, disabled, isPaneVisible, inheritedAttributes, side } = this;
@@ -746,7 +746,6 @@ const Nav = /*@__PURE__*/ proxyCustomElement(class Nav extends HTMLElement {
746
746
  : undefined;
747
747
  const mode = getIonMode(this);
748
748
  const enteringEl = enteringView.element;
749
- // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
750
749
  const leavingEl = leavingView && leavingView.element;
751
750
  const animationOpts = Object.assign(Object.assign({ mode, showGoBack: this.canGoBackSync(enteringView), baseEl: this.el, progressCallback, animated: this.animated && config.getBoolean('animated', true), enteringEl,
752
751
  leavingEl }, opts), { animationBuilder: opts.animationBuilder || this.animation || config.get('navAnimation') });
@@ -44,7 +44,6 @@ const chainToSegments = (chain) => {
44
44
  for (const route of chain) {
45
45
  for (const segment of route.segments) {
46
46
  if (segment[0] === ':') {
47
- // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
48
47
  const param = route.params && route.params[segment.slice(1)];
49
48
  if (!param) {
50
49
  return null;
@@ -741,14 +740,12 @@ const Router = /*@__PURE__*/ proxyCustomElement(class Router extends HTMLElement
741
740
  }
742
741
  const routes = readRoutes(this.el);
743
742
  const fromChain = findChainForSegments(from, routes);
744
- // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
745
743
  const beforeLeaveHook = fromChain && fromChain[fromChain.length - 1].beforeLeave;
746
744
  const canLeave = beforeLeaveHook ? await beforeLeaveHook() : true;
747
745
  if (canLeave === false || typeof canLeave === 'object') {
748
746
  return canLeave;
749
747
  }
750
748
  const toChain = findChainForSegments(to, routes);
751
- // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
752
749
  const beforeEnterHook = toChain && toChain[toChain.length - 1].beforeEnter;
753
750
  return beforeEnterHook ? beforeEnterHook() : true;
754
751
  }
@@ -137,25 +137,39 @@ const Select = /*@__PURE__*/ proxyCustomElement(class Select extends HTMLElement
137
137
  await overlay.present();
138
138
  // focus selected option for popovers
139
139
  if (this.interface === 'popover') {
140
- let indexOfSelected = this.childOpts.map((o) => o.value).indexOf(this.value);
141
- indexOfSelected = indexOfSelected > -1 ? indexOfSelected : 0; // default to first option if nothing selected
142
- const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
143
- if (selectedItem) {
144
- focusElement(selectedItem);
140
+ const indexOfSelected = this.childOpts.map((o) => o.value).indexOf(this.value);
141
+ if (indexOfSelected > -1) {
142
+ const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
143
+ if (selectedItem) {
144
+ focusElement(selectedItem);
145
+ /**
146
+ * Browsers such as Firefox do not
147
+ * correctly delegate focus when manually
148
+ * focusing an element with delegatesFocus.
149
+ * We work around this by manually focusing
150
+ * the interactive element.
151
+ * ion-radio and ion-checkbox are the only
152
+ * elements that ion-select-popover uses, so
153
+ * we only need to worry about those two components
154
+ * when focusing.
155
+ */
156
+ const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
157
+ if (interactiveEl) {
158
+ interactiveEl.focus();
159
+ }
160
+ }
161
+ }
162
+ else {
145
163
  /**
146
- * Browsers such as Firefox do not
147
- * correctly delegate focus when manually
148
- * focusing an element with delegatesFocus.
149
- * We work around this by manually focusing
150
- * the interactive element.
151
- * ion-radio and ion-checkbox are the only
152
- * elements that ion-select-popover uses, so
153
- * we only need to worry about those two components
154
- * when focusing.
164
+ * If no value is set then focus the first enabled option.
155
165
  */
156
- const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
157
- if (interactiveEl) {
158
- interactiveEl.focus();
166
+ const firstEnabledOption = overlay.querySelector('ion-radio:not(.radio-disabled), ion-checkbox:not(.checkbox-disabled)');
167
+ if (firstEnabledOption) {
168
+ focusElement(firstEnabledOption.closest('ion-item'));
169
+ /**
170
+ * Focus the option for the same reason as we do above.
171
+ */
172
+ firstEnabledOption.focus();
159
173
  }
160
174
  }
161
175
  }
@@ -626,7 +640,7 @@ Developers can use the "legacy" property to continue using the legacy form marku
626
640
  }
627
641
  renderListbox() {
628
642
  const { disabled, inputId, isExpanded } = this;
629
- return (h("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
643
+ return (h("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "listbox", "aria-expanded": `${isExpanded}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
630
644
  }
631
645
  render() {
632
646
  const { legacyFormController } = this;