@ionic/core 9.0.10 → 9.0.11-dev.11793705116.185a3203

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 (1100) 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-divider.d.ts +11 -0
  27. package/components/ion-divider.js +4 -0
  28. package/components/ion-fab-button.js +1 -1
  29. package/components/ion-fab-list.js +1 -1
  30. package/components/ion-fab.js +1 -1
  31. package/components/ion-footer.js +1 -1
  32. package/components/ion-gallery-item.d.ts +11 -0
  33. package/components/ion-gallery-item.js +4 -0
  34. package/components/ion-gallery.d.ts +11 -0
  35. package/components/ion-gallery.js +4 -0
  36. package/components/ion-grid.js +1 -1
  37. package/components/ion-header.js +1 -1
  38. package/components/ion-icon.js +1 -1
  39. package/components/ion-img.js +1 -1
  40. package/components/ion-infinite-scroll-content.js +1 -1
  41. package/components/ion-infinite-scroll.js +1 -1
  42. package/components/ion-input-otp.js +1 -1
  43. package/components/ion-input-password-toggle.js +1 -1
  44. package/components/ion-input.js +1 -1
  45. package/components/ion-item-divider.js +1 -1
  46. package/components/ion-item-group.js +1 -1
  47. package/components/ion-item-option.js +1 -1
  48. package/components/ion-item-options.js +1 -1
  49. package/components/ion-item-sliding.js +1 -1
  50. package/components/ion-item.js +1 -1
  51. package/components/ion-label.js +1 -1
  52. package/components/ion-list-header.js +1 -1
  53. package/components/ion-list.js +1 -1
  54. package/components/ion-loading.js +1 -1
  55. package/components/ion-menu-button.js +1 -1
  56. package/components/ion-menu-toggle.js +1 -1
  57. package/components/ion-menu.js +1 -1
  58. package/components/ion-modal.js +1 -1
  59. package/components/ion-nav-link.js +1 -1
  60. package/components/ion-nav.js +1 -1
  61. package/components/ion-note.js +1 -1
  62. package/components/ion-picker-column-option.js +1 -1
  63. package/components/ion-picker-column.js +1 -1
  64. package/components/ion-picker.js +1 -1
  65. package/components/ion-popover.js +1 -1
  66. package/components/ion-progress-bar.js +1 -1
  67. package/components/ion-radio-group.js +1 -1
  68. package/components/ion-radio.js +1 -1
  69. package/components/ion-range.js +1 -1
  70. package/components/ion-refresher-content.js +1 -1
  71. package/components/ion-refresher.js +1 -1
  72. package/components/ion-reorder-group.js +1 -1
  73. package/components/ion-reorder.js +1 -1
  74. package/components/ion-ripple-effect.js +1 -1
  75. package/components/ion-route-redirect.js +1 -1
  76. package/components/ion-route.js +1 -1
  77. package/components/ion-router-link.js +1 -1
  78. package/components/ion-router-outlet.js +1 -1
  79. package/components/ion-router.js +1 -1
  80. package/components/ion-row.js +1 -1
  81. package/components/ion-searchbar.js +1 -1
  82. package/components/ion-segment-button.js +1 -1
  83. package/components/ion-segment-content.js +1 -1
  84. package/components/ion-segment-view.js +1 -1
  85. package/components/ion-segment.js +1 -1
  86. package/components/ion-select-modal.js +1 -1
  87. package/components/ion-select-option.js +1 -1
  88. package/components/ion-select-popover.js +1 -1
  89. package/components/ion-select.js +1 -1
  90. package/components/ion-skeleton-text.js +1 -1
  91. package/components/ion-spinner.js +1 -1
  92. package/components/ion-split-pane.js +1 -1
  93. package/components/ion-tab-bar.js +1 -1
  94. package/components/ion-tab-button.js +1 -1
  95. package/components/ion-tab.js +1 -1
  96. package/components/ion-tabs.js +1 -1
  97. package/components/ion-text.js +1 -1
  98. package/components/ion-textarea.js +1 -1
  99. package/components/ion-thumbnail.js +1 -1
  100. package/components/ion-title.js +1 -1
  101. package/components/ion-toast.js +1 -1
  102. package/components/ion-toggle.js +1 -1
  103. package/components/ion-toolbar.js +1 -1
  104. package/components/p-0rXxxCTt.js +4 -0
  105. package/components/p-3Qs1sQxU.js +4 -0
  106. package/components/p-3SVb97od.js +4 -0
  107. package/components/p-7-zF1amS.js +4 -0
  108. package/components/p-AgF3xGwz.js +4 -0
  109. package/components/{p-ChkSQqfP.js → p-B8TMb1l1.js} +1 -1
  110. package/{dist/ionic/p-BO10QT9r.js → components/p-BCQSEpww.js} +1 -1
  111. package/components/p-BCYVFy50.js +4 -0
  112. package/components/p-BHiggB_l.js +4 -0
  113. package/components/p-BNBa8_Ls.js +4 -0
  114. package/components/p-BNV7BMZo.js +4 -0
  115. package/components/p-BUF_V-Kg.js +4 -0
  116. package/components/p-BYk20Mf5.js +4 -0
  117. package/components/p-B_o50gvn.js +4 -0
  118. package/components/p-BfDzKnZ-.js +4 -0
  119. package/{dist/ionic/p-BWKtcudz.js → components/p-BmfO2-NE.js} +1 -1
  120. package/components/{p-BWbz71uB.js → p-BmnPbSf3.js} +1 -1
  121. package/components/p-ByE0slik.js +4 -0
  122. package/components/p-C0H1LYQ5.js +4 -0
  123. package/components/p-C7BPrXxF.js +4 -0
  124. package/components/p-C93i7QCU.js +4 -0
  125. package/components/p-C9qQ2zBV.js +4 -0
  126. package/components/p-CAekGbOf.js +4 -0
  127. package/components/p-CE7N7-7s.js +4 -0
  128. package/components/p-CL3vSQL7.js +4 -0
  129. package/components/p-CODBQrPj.js +4 -0
  130. package/components/{p-Dbi3KqKm.js → p-CSSj6cqb.js} +1 -1
  131. package/components/{p-ChsJlFCQ.js → p-CXzJ234J.js} +1 -1
  132. package/components/p-CehdCO1m.js +4 -0
  133. package/components/{p-CwEis84J.js → p-CiEBXUnh.js} +1 -1
  134. package/components/p-CvxND1-3.js +4 -0
  135. package/components/p-CyvtM0H1.js +4 -0
  136. package/components/p-CzDkZh7h.js +4 -0
  137. package/components/p-DEh2reav.js +4 -0
  138. package/components/p-DFBWAYvo.js +4 -0
  139. package/components/p-DFjX2uxL.js +4 -0
  140. package/components/p-DLXAGW46.js +4 -0
  141. package/components/p-DQwGbYN_.js +4 -0
  142. package/components/p-DRpeTf7R.js +4 -0
  143. package/components/p-DbKRl9BQ.js +4 -0
  144. package/components/{p-07wRJfkt.js → p-Dce65ayP.js} +1 -1
  145. package/components/p-DdOVnjsY.js +4 -0
  146. package/components/p-DibGn4gb.js +4 -0
  147. package/components/p-DktrWeJE.js +4 -0
  148. package/components/p-DmdTkb5k.js +4 -0
  149. package/components/p-DmhWSY74.js +4 -0
  150. package/components/p-DtZimz8H.js +4 -0
  151. package/components/p-ET0FZop5.js +4 -0
  152. package/components/p-LoXpKVmq.js +4 -0
  153. package/components/p-NZGZhPF5.js +4 -0
  154. package/components/p-NcQUGze-.js +4 -0
  155. package/components/p-PFwuhbqg.js +4 -0
  156. package/components/{p-CqvARtmt.js → p-YAWKbhjV.js} +1 -1
  157. package/components/{p-DHo45oj7.js → p-cm7z1a2E.js} +1 -1
  158. package/components/p-fU4OdAZ9.js +4 -0
  159. package/components/{p-CCFj0kgH.js → p-i08Rz__6.js} +1 -1
  160. package/components/p-iNIvlAGo.js +4 -0
  161. package/{dist/ionic/p-CJmyfI8x.js → components/p-o89R3aqe.js} +1 -1
  162. package/components/p-qbig9BW8.js +4 -0
  163. package/css/core.css +1 -1
  164. package/css/core.css.map +1 -1
  165. package/css/display.css +1 -1
  166. package/css/display.css.map +1 -1
  167. package/css/flex-utils.css +1 -1
  168. package/css/flex-utils.css.map +1 -1
  169. package/css/float-elements.css.map +1 -1
  170. package/css/global.bundle.css.map +1 -1
  171. package/css/ionic/bundle.ionic.css +1 -0
  172. package/css/ionic/bundle.ionic.css.map +1 -0
  173. package/css/ionic/core.ionic.css +1 -0
  174. package/css/ionic/core.ionic.css.map +1 -0
  175. package/css/ionic/global.bundle.ionic.css +1 -0
  176. package/css/ionic/global.bundle.ionic.css.map +1 -0
  177. package/css/ionic/ionic-swiper.ionic.css +1 -0
  178. package/css/ionic/ionic-swiper.ionic.css.map +1 -0
  179. package/css/ionic/link.ionic.css +1 -0
  180. package/css/ionic/link.ionic.css.map +1 -0
  181. package/css/ionic/structure.ionic.css +1 -0
  182. package/css/ionic/structure.ionic.css.map +1 -0
  183. package/css/ionic/typography.ionic.css +1 -0
  184. package/css/ionic/typography.ionic.css.map +1 -0
  185. package/css/ionic/utils.bundle.ionic.css +1 -0
  186. package/css/ionic/utils.bundle.ionic.css.map +1 -0
  187. package/css/ionic-swiper.css +1 -1
  188. package/css/ionic-swiper.css.map +1 -1
  189. package/css/ionic.bundle.css +1 -1
  190. package/css/ionic.bundle.css.map +1 -1
  191. package/css/normalize.css.map +1 -1
  192. package/css/padding.css.map +1 -1
  193. package/css/palettes/dark.always.css.map +1 -1
  194. package/css/palettes/dark.class.css.map +1 -1
  195. package/css/palettes/dark.system.css.map +1 -1
  196. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  197. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  198. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  199. package/css/palettes/high-contrast.always.css.map +1 -1
  200. package/css/palettes/high-contrast.class.css.map +1 -1
  201. package/css/palettes/high-contrast.system.css.map +1 -1
  202. package/css/structure.css.map +1 -1
  203. package/css/text-alignment.css.map +1 -1
  204. package/css/text-transformation.css.map +1 -1
  205. package/css/typography.css.map +1 -1
  206. package/css/utils.bundle.css +1 -1
  207. package/css/utils.bundle.css.map +1 -1
  208. package/dist/cjs/{animation-UiXhXV49.js → animation-zKIdNEmG.js} +3 -3
  209. package/dist/cjs/{app-globals-BoFCZq0K.js → app-globals-BDrxn8eR.js} +1 -1
  210. package/dist/cjs/{attribute-controller-0-lwbVEj.js → attribute-controller-D7O2snOZ.js} +3 -2
  211. package/dist/cjs/{button-active-DzN1aPt-.js → button-active-CY7cZvH5.js} +2 -2
  212. package/dist/cjs/{capacitor-BTjfXFlK.js → capacitor-DmA66EwP.js} +3 -3
  213. package/dist/cjs/clear-button-press-controller-C6PTS3jC.js +45 -0
  214. package/dist/cjs/focus-visible-DGPRKkcx.js +151 -0
  215. package/dist/cjs/{format-CVjpvAl1.js → format-C6r4Asi4.js} +1 -1
  216. package/dist/cjs/{framework-delegate-hNMKEiQC.js → framework-delegate-CAdDEnFS.js} +4 -2
  217. package/dist/cjs/{haptic-BD5qPgy8.js → haptic-Ch-X4gRx.js} +1 -1
  218. package/dist/cjs/{helpers-BrETKUUX.js → helpers-DHNLF4fD.js} +88 -10
  219. package/dist/cjs/{index-B4ONUQRp.js → index-B3s1jjBU.js} +1 -1
  220. package/dist/cjs/{index-BTc0Jnhx.js → index-C3pmpKlo.js} +17 -15
  221. package/dist/cjs/{index-bwclzjks.js → index-C6QFfpm5.js} +9 -7
  222. package/dist/cjs/{index-BiQyIvoc.js → index-CB1PuDlX.js} +55 -5
  223. package/dist/cjs/{index-wOmugbdg.js → index-CxDnX7hd.js} +2 -0
  224. package/dist/cjs/{index-DMz2Eyis.js → index-DhGCo_n8.js} +2 -2
  225. package/dist/cjs/index-DkNv4J_i.js +10 -0
  226. package/dist/cjs/{index-DNBYnlrc.js → index-lD5wTj_b.js} +4 -4
  227. package/dist/cjs/index.cjs.js +20 -18
  228. package/dist/cjs/{input-shims-CRmdShL9.js → input-shims-CjkWx7ae.js} +18 -16
  229. package/dist/cjs/{input.utils-Becpo0ax.js → input.utils-CD4DNiim.js} +1 -1
  230. package/dist/cjs/ion-accordion_2.cjs.entry.js +57 -29
  231. package/dist/cjs/ion-action-sheet.cjs.entry.js +42 -37
  232. package/dist/cjs/ion-alert.cjs.entry.js +50 -45
  233. package/dist/cjs/ion-app_8.cjs.entry.js +457 -195
  234. package/dist/cjs/ion-avatar_3.cjs.entry.js +124 -13
  235. package/dist/cjs/ion-back-button.cjs.entry.js +31 -23
  236. package/dist/cjs/ion-backdrop.cjs.entry.js +11 -7
  237. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +42 -18
  238. package/dist/cjs/ion-button_2.cjs.entry.js +61 -23
  239. package/dist/cjs/ion-card_5.cjs.entry.js +57 -34
  240. package/dist/cjs/ion-checkbox.cjs.entry.js +43 -17
  241. package/dist/cjs/ion-chip.cjs.entry.js +51 -9
  242. package/dist/cjs/ion-col_3.cjs.entry.js +56 -63
  243. package/dist/cjs/ion-datetime-button.cjs.entry.js +14 -9
  244. package/dist/cjs/ion-datetime.cjs.entry.js +75 -33
  245. package/dist/cjs/ion-divider.cjs.entry.js +52 -0
  246. package/dist/cjs/ion-fab_3.cjs.entry.js +40 -28
  247. package/dist/cjs/ion-gallery-item.cjs.entry.js +59 -0
  248. package/dist/cjs/ion-gallery.cjs.entry.js +608 -0
  249. package/dist/cjs/ion-img.cjs.entry.js +9 -4
  250. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +91 -16
  251. package/dist/cjs/ion-input-otp.cjs.entry.js +75 -10
  252. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +42 -14
  253. package/dist/cjs/ion-input.cjs.entry.js +147 -38
  254. package/dist/cjs/ion-item-option_3.cjs.entry.js +466 -52
  255. package/dist/cjs/ion-item_8.cjs.entry.js +118 -51
  256. package/dist/cjs/ion-loading.cjs.entry.js +33 -28
  257. package/dist/cjs/ion-menu_3.cjs.entry.js +54 -36
  258. package/dist/cjs/ion-modal.cjs.entry.js +304 -155
  259. package/dist/cjs/ion-nav_2.cjs.entry.js +14 -10
  260. package/dist/cjs/ion-picker-column-option.cjs.entry.js +13 -8
  261. package/dist/cjs/ion-picker-column.cjs.entry.js +17 -15
  262. package/dist/cjs/ion-picker.cjs.entry.js +11 -6
  263. package/dist/cjs/ion-popover.cjs.entry.js +33 -28
  264. package/dist/cjs/ion-progress-bar.cjs.entry.js +28 -9
  265. package/dist/cjs/ion-radio_2.cjs.entry.js +37 -18
  266. package/dist/cjs/ion-range.cjs.entry.js +21 -13
  267. package/dist/cjs/ion-refresher_2.cjs.entry.js +45 -20
  268. package/dist/cjs/ion-reorder_2.cjs.entry.js +31 -13
  269. package/dist/cjs/ion-ripple-effect.cjs.entry.js +16 -7
  270. package/dist/cjs/ion-route_4.cjs.entry.js +12 -10
  271. package/dist/cjs/ion-searchbar.cjs.entry.js +118 -32
  272. package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
  273. package/dist/cjs/ion-segment-view.cjs.entry.js +13 -3
  274. package/dist/cjs/ion-segment_2.cjs.entry.js +24 -16
  275. package/dist/cjs/ion-select-modal.cjs.entry.js +54 -25
  276. package/dist/cjs/ion-select_3.cjs.entry.js +203 -81
  277. package/dist/cjs/ion-spinner.cjs.entry.js +31 -8
  278. package/dist/cjs/ion-split-pane.cjs.entry.js +14 -9
  279. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +150 -27
  280. package/dist/cjs/ion-tab_2.cjs.entry.js +9 -7
  281. package/dist/cjs/ion-text.cjs.entry.js +8 -7
  282. package/dist/cjs/ion-textarea.cjs.entry.js +178 -41
  283. package/dist/cjs/ion-toast.cjs.entry.js +86 -57
  284. package/dist/cjs/ion-toggle.cjs.entry.js +67 -25
  285. package/dist/cjs/ionic-global-CZX42KL4.js +551 -0
  286. package/dist/cjs/ionic.cjs.js +5 -4
  287. package/dist/cjs/{ios.transition-CN092Fh6.js → ios.transition-BjOYqzH0.js} +7 -4
  288. package/dist/cjs/{item-multiple-inputs-C-hz7xrh.js → item-multiple-inputs-D0lzjl68.js} +1 -1
  289. package/dist/cjs/{keyboard-4OBzkjOG.js → keyboard-Cix5TVkD.js} +3 -5
  290. package/dist/cjs/{keyboard-BMpscicm.js → keyboard-cHxZlTyz.js} +1 -1
  291. package/dist/cjs/loader.cjs.js +5 -4
  292. package/dist/cjs/{md.transition-B6961Ny9.js → md.transition-C4i7l6ui.js} +6 -4
  293. package/dist/cjs/{overlay-control-label-D2sdL2O8.js → overlay-control-label-DnRLQR1t.js} +13 -11
  294. package/dist/cjs/{overlays-BbVQG3UT.js → overlays-DziOxcCT.js} +314 -176
  295. package/dist/cjs/scroll-hide-controller-BSVBCkbw.js +345 -0
  296. package/dist/cjs/{select-option-render-CzyhrkOu.js → select-option-render-X_iZ-xeh.js} +2 -2
  297. package/dist/cjs/{slot-mutation-controller-CRa_cKOh.js → slot-mutation-controller-BS-L1szN.js} +100 -13
  298. package/dist/cjs/{status-tap-hRIvObiJ.js → status-tap-D5yiKwdj.js} +5 -3
  299. package/dist/cjs/{swipe-back-C-aigThB.js → swipe-back-xM_5R5s-.js} +4 -2
  300. package/dist/cjs/{theme-Bw0rpaNN.js → theme-Cy4joHPt.js} +25 -1
  301. package/dist/cjs/validity-CoPMWggj.js +51 -0
  302. package/dist/collection/collection-manifest.json +8 -0
  303. package/dist/collection/components/accordion/accordion.ionic.css +199 -0
  304. package/dist/collection/components/accordion/accordion.ios.css +73 -58
  305. package/dist/collection/components/accordion/accordion.js +36 -27
  306. package/dist/collection/components/accordion/accordion.md.css +67 -59
  307. package/dist/collection/components/accordion-group/accordion-group.ionic.css +93 -0
  308. package/dist/collection/components/accordion-group/accordion-group.ios.css +16 -4
  309. package/dist/collection/components/accordion-group/accordion-group.js +44 -8
  310. package/dist/collection/components/accordion-group/accordion-group.md.css +22 -4
  311. package/dist/collection/components/action-sheet/action-sheet.ionic.css +490 -0
  312. package/dist/collection/components/action-sheet/action-sheet.ios.css +184 -54
  313. package/dist/collection/components/action-sheet/action-sheet.js +16 -13
  314. package/dist/collection/components/action-sheet/action-sheet.md.css +179 -55
  315. package/dist/collection/components/alert/alert.ionic.css +779 -0
  316. package/dist/collection/components/alert/alert.ios.css +247 -54
  317. package/dist/collection/components/alert/alert.js +22 -19
  318. package/dist/collection/components/alert/alert.md.css +243 -56
  319. package/dist/collection/components/app/app.js +15 -83
  320. package/dist/collection/components/avatar/avatar.ionic.css +379 -0
  321. package/dist/collection/components/avatar/avatar.ios.css +7 -33
  322. package/dist/collection/components/avatar/avatar.js +120 -4
  323. package/dist/collection/components/avatar/avatar.md.css +51 -0
  324. package/dist/collection/components/back-button/back-button.ios.css +60 -48
  325. package/dist/collection/components/back-button/back-button.js +26 -20
  326. package/dist/collection/components/back-button/back-button.md.css +60 -48
  327. package/dist/collection/components/backdrop/backdrop.ionic.css +109 -0
  328. package/dist/collection/components/backdrop/backdrop.ios.css +56 -19
  329. package/dist/collection/components/backdrop/backdrop.js +12 -6
  330. package/dist/collection/components/backdrop/backdrop.md.css +56 -19
  331. package/dist/collection/components/badge/badge.ionic.css +269 -0
  332. package/dist/collection/components/badge/badge.ios.css +137 -12
  333. package/dist/collection/components/badge/badge.js +143 -9
  334. package/dist/collection/components/badge/badge.md.css +122 -12
  335. package/dist/collection/components/breadcrumb/breadcrumb.ios.css +20 -8
  336. package/dist/collection/components/breadcrumb/breadcrumb.js +31 -11
  337. package/dist/collection/components/breadcrumb/breadcrumb.md.css +20 -8
  338. package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +6 -0
  339. package/dist/collection/components/breadcrumbs/breadcrumbs.js +11 -9
  340. package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +6 -0
  341. package/dist/collection/components/button/button.ionic.css +640 -0
  342. package/dist/collection/components/button/button.ios.css +154 -46
  343. package/dist/collection/components/button/button.js +63 -27
  344. package/dist/collection/components/button/button.md.css +150 -50
  345. package/dist/collection/components/buttons/buttons.ionic.css +97 -0
  346. package/dist/collection/components/buttons/buttons.ios.css +59 -7
  347. package/dist/collection/components/buttons/buttons.js +15 -9
  348. package/dist/collection/components/buttons/buttons.md.css +55 -3
  349. package/dist/collection/components/card/card.ionic.css +144 -0
  350. package/dist/collection/components/card/card.ios.css +65 -14
  351. package/dist/collection/components/card/card.js +41 -10
  352. package/dist/collection/components/card/card.md.css +65 -14
  353. package/dist/collection/components/card-content/card-content.ionic.css +88 -0
  354. package/dist/collection/components/card-content/card-content.ios.css +20 -35
  355. package/dist/collection/components/card-content/card-content.js +12 -10
  356. package/dist/collection/components/card-content/card-content.md.css +20 -35
  357. package/dist/collection/components/card-header/card-header.ionic.css +85 -0
  358. package/dist/collection/components/card-header/card-header.ios.css +27 -15
  359. package/dist/collection/components/card-header/card-header.js +13 -10
  360. package/dist/collection/components/card-header/card-header.md.css +27 -15
  361. package/dist/collection/components/card-subtitle/card-subtitle.ionic.css +143 -0
  362. package/dist/collection/components/card-subtitle/card-subtitle.ios.css +12 -0
  363. package/dist/collection/components/card-subtitle/card-subtitle.js +11 -8
  364. package/dist/collection/components/card-subtitle/card-subtitle.md.css +12 -0
  365. package/dist/collection/components/card-title/card-title.ios.css +73 -0
  366. package/dist/collection/components/card-title/card-title.js +11 -8
  367. package/dist/collection/components/card-title/card-title.md.css +73 -0
  368. package/dist/collection/components/checkbox/checkbox.ionic.css +535 -0
  369. package/dist/collection/components/checkbox/checkbox.ios.css +244 -115
  370. package/dist/collection/components/checkbox/checkbox.js +80 -15
  371. package/dist/collection/components/checkbox/checkbox.md.css +245 -116
  372. package/dist/collection/components/chip/chip.ionic.css +216 -0
  373. package/dist/collection/components/chip/chip.ios.css +67 -14
  374. package/dist/collection/components/chip/chip.js +108 -8
  375. package/dist/collection/components/chip/chip.md.css +67 -14
  376. package/dist/collection/components/col/col.css +192 -4
  377. package/dist/collection/components/col/col.js +210 -67
  378. package/dist/collection/components/content/content.css +47 -2
  379. package/dist/collection/components/content/content.js +16 -11
  380. package/dist/collection/components/datetime/datetime.ionic.css +697 -0
  381. package/dist/collection/components/datetime/datetime.ios.css +305 -114
  382. package/dist/collection/components/datetime/datetime.js +61 -20
  383. package/dist/collection/components/datetime/datetime.md.css +295 -103
  384. package/dist/collection/components/datetime/utils/data.js +5 -5
  385. package/dist/collection/components/datetime-button/datetime-button.ios.css +6 -0
  386. package/dist/collection/components/datetime-button/datetime-button.js +11 -8
  387. package/dist/collection/components/datetime-button/datetime-button.md.css +6 -0
  388. package/dist/collection/components/divider/divider.ionic.css +148 -0
  389. package/dist/collection/components/divider/divider.ios.css +87 -0
  390. package/dist/collection/components/divider/divider.js +94 -0
  391. package/dist/collection/components/divider/divider.md.css +87 -0
  392. package/dist/collection/components/fab/fab.css +25 -1
  393. package/dist/collection/components/fab/fab.js +9 -5
  394. package/dist/collection/components/fab-button/fab-button.ios.css +18 -6
  395. package/dist/collection/components/fab-button/fab-button.js +31 -21
  396. package/dist/collection/components/fab-button/fab-button.md.css +20 -8
  397. package/dist/collection/components/fab-list/fab-list.css +12 -0
  398. package/dist/collection/components/fab-list/fab-list.js +9 -5
  399. package/dist/collection/components/footer/footer-interface.js +1 -0
  400. package/dist/collection/components/footer/footer.ios.css +33 -6
  401. package/dist/collection/components/footer/footer.js +117 -25
  402. package/dist/collection/components/footer/footer.md.css +40 -0
  403. package/dist/collection/components/gallery/gallery-constants.js +12 -0
  404. package/dist/collection/components/gallery/gallery-interface.js +1 -0
  405. package/dist/collection/components/gallery/gallery.css +15 -0
  406. package/dist/collection/components/gallery/gallery.js +678 -0
  407. package/dist/collection/components/gallery/test/utils.js +100 -0
  408. package/dist/collection/components/gallery-item/gallery-item.css +49 -0
  409. package/dist/collection/components/gallery-item/gallery-item.js +98 -0
  410. package/dist/collection/components/grid/grid.css +12 -0
  411. package/dist/collection/components/grid/grid.js +9 -5
  412. package/dist/collection/components/header/header-interface.js +1 -0
  413. package/dist/collection/components/header/header.ionic.css +286 -0
  414. package/dist/collection/components/header/header.ios.css +178 -133
  415. package/dist/collection/components/header/header.js +180 -39
  416. package/dist/collection/components/header/header.md.css +199 -9
  417. package/dist/collection/components/header/header.utils.js +5 -13
  418. package/dist/collection/components/img/img.js +7 -2
  419. package/dist/collection/components/infinite-scroll/infinite-scroll.js +99 -5
  420. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +12 -0
  421. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +16 -10
  422. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +12 -0
  423. package/dist/collection/components/input/input.ionic.css +961 -0
  424. package/dist/collection/components/input/input.ios.css +254 -160
  425. package/dist/collection/components/input/input.js +172 -44
  426. package/dist/collection/components/input/input.md.css +224 -232
  427. package/dist/collection/components/input-otp/input-otp.ionic.css +369 -0
  428. package/dist/collection/components/input-otp/input-otp.ios.css +105 -60
  429. package/dist/collection/components/input-otp/input-otp.js +74 -8
  430. package/dist/collection/components/input-otp/input-otp.md.css +105 -60
  431. package/dist/collection/components/input-password-toggle/input-password-toggle.ionic.css +78 -0
  432. package/dist/collection/components/input-password-toggle/input-password-toggle.js +37 -10
  433. package/dist/collection/components/input-password-toggle/input-password-toggle.native.css +61 -0
  434. package/dist/collection/components/item/item.ionic.css +495 -0
  435. package/dist/collection/components/item/item.ios.css +120 -80
  436. package/dist/collection/components/item/item.js +51 -21
  437. package/dist/collection/components/item/item.md.css +131 -79
  438. package/dist/collection/components/item-divider/item-divider.ios.css +18 -0
  439. package/dist/collection/components/item-divider/item-divider.js +11 -8
  440. package/dist/collection/components/item-divider/item-divider.md.css +18 -0
  441. package/dist/collection/components/item-group/item-group.ios.css +12 -0
  442. package/dist/collection/components/item-group/item-group.js +13 -7
  443. package/dist/collection/components/item-group/item-group.md.css +12 -0
  444. package/dist/collection/components/item-option/item-option.ionic.css +276 -0
  445. package/dist/collection/components/item-option/item-option.ios.css +136 -29
  446. package/dist/collection/components/item-option/item-option.js +73 -9
  447. package/dist/collection/components/item-option/item-option.md.css +136 -29
  448. package/dist/collection/components/item-options/item-options.ionic.css +221 -0
  449. package/dist/collection/components/item-options/item-options.ios.css +77 -34
  450. package/dist/collection/components/item-options/item-options.js +13 -7
  451. package/dist/collection/components/item-options/item-options.md.css +77 -34
  452. package/dist/collection/components/item-sliding/item-sliding.ionic.css +211 -0
  453. package/dist/collection/components/item-sliding/item-sliding.js +419 -35
  454. package/dist/collection/components/item-sliding/{item-sliding.css → item-sliding.native.css} +84 -9
  455. package/dist/collection/components/item-sliding/test/test.utils.js +13 -0
  456. package/dist/collection/components/label/label.ios.css +18 -0
  457. package/dist/collection/components/label/label.js +11 -8
  458. package/dist/collection/components/label/label.md.css +18 -0
  459. package/dist/collection/components/list/list.ionic.css +212 -0
  460. package/dist/collection/components/list/list.ios.css +54 -14
  461. package/dist/collection/components/list/list.js +48 -9
  462. package/dist/collection/components/list/list.md.css +56 -16
  463. package/dist/collection/components/list-header/list-header.ionic.css +189 -0
  464. package/dist/collection/components/list-header/list-header.ios.css +82 -38
  465. package/dist/collection/components/list-header/list-header.js +11 -8
  466. package/dist/collection/components/list-header/list-header.md.css +82 -38
  467. package/dist/collection/components/loading/loading.ios.css +13 -1
  468. package/dist/collection/components/loading/loading.js +15 -12
  469. package/dist/collection/components/loading/loading.md.css +13 -1
  470. package/dist/collection/components/menu/menu.ios.css +15 -3
  471. package/dist/collection/components/menu/menu.js +12 -7
  472. package/dist/collection/components/menu/menu.md.css +15 -3
  473. package/dist/collection/components/menu-button/menu-button.ionic.css +236 -0
  474. package/dist/collection/components/menu-button/menu-button.ios.css +48 -14
  475. package/dist/collection/components/menu-button/menu-button.js +23 -10
  476. package/dist/collection/components/menu-button/menu-button.md.css +49 -15
  477. package/dist/collection/components/menu-toggle/menu-toggle.js +8 -5
  478. package/dist/collection/components/modal/animations/ionic.enter.js +40 -0
  479. package/dist/collection/components/modal/animations/ionic.leave.js +28 -0
  480. package/dist/collection/components/modal/animations/sheet.js +8 -2
  481. package/dist/collection/components/modal/gestures/sheet.js +96 -8
  482. package/dist/collection/components/modal/modal.ionic.css +266 -0
  483. package/dist/collection/components/modal/modal.ios.css +178 -70
  484. package/dist/collection/components/modal/modal.js +52 -13
  485. package/dist/collection/components/modal/modal.md.css +178 -70
  486. package/dist/collection/components/nav/nav.css +7 -1
  487. package/dist/collection/components/nav/nav.js +10 -4
  488. package/dist/collection/components/nav-link/nav-link.js +5 -1
  489. package/dist/collection/components/note/note.ios.css +12 -0
  490. package/dist/collection/components/note/note.js +11 -8
  491. package/dist/collection/components/note/note.md.css +12 -0
  492. package/dist/collection/components/picker/picker.ios.css +15 -3
  493. package/dist/collection/components/picker/picker.js +8 -5
  494. package/dist/collection/components/picker/picker.md.css +15 -3
  495. package/dist/collection/components/picker-column/picker-column.css +9 -2
  496. package/dist/collection/components/picker-column/picker-column.js +8 -7
  497. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +6 -0
  498. package/dist/collection/components/picker-column-option/picker-column-option.js +13 -7
  499. package/dist/collection/components/picker-column-option/picker-column-option.md.css +6 -0
  500. package/dist/collection/components/popover/popover.ionic.css +290 -0
  501. package/dist/collection/components/popover/popover.ios.css +13 -1
  502. package/dist/collection/components/popover/popover.js +19 -16
  503. package/dist/collection/components/popover/popover.md.css +13 -1
  504. package/dist/collection/components/progress-bar/progress-bar.ionic.css +287 -0
  505. package/dist/collection/components/progress-bar/progress-bar.ios.css +48 -17
  506. package/dist/collection/components/progress-bar/progress-bar.js +43 -7
  507. package/dist/collection/components/progress-bar/progress-bar.md.css +48 -17
  508. package/dist/collection/components/radio/radio.ionic.css +421 -0
  509. package/dist/collection/components/radio/radio.ios.css +207 -102
  510. package/dist/collection/components/radio/radio.js +14 -9
  511. package/dist/collection/components/radio/radio.md.css +207 -102
  512. package/dist/collection/components/radio-group/radio-group.ionic.css +118 -0
  513. package/dist/collection/components/radio-group/radio-group.ios.css +43 -19
  514. package/dist/collection/components/radio-group/radio-group.js +48 -7
  515. package/dist/collection/components/radio-group/radio-group.md.css +43 -19
  516. package/dist/collection/components/range/range.ionic.css +566 -0
  517. package/dist/collection/components/range/range.ios.css +128 -85
  518. package/dist/collection/components/range/range.js +16 -10
  519. package/dist/collection/components/range/range.md.css +128 -85
  520. package/dist/collection/components/refresher/refresher.ios.css +14 -1
  521. package/dist/collection/components/refresher/refresher.js +11 -8
  522. package/dist/collection/components/refresher/refresher.md.css +15 -2
  523. package/dist/collection/components/refresher-content/refresher-content.js +34 -7
  524. package/dist/collection/components/reorder/reorder.ios.css +6 -0
  525. package/dist/collection/components/reorder/reorder.js +25 -6
  526. package/dist/collection/components/reorder/reorder.md.css +6 -0
  527. package/dist/collection/components/reorder-group/reorder-group.css +6 -0
  528. package/dist/collection/components/reorder-group/reorder-group.js +8 -4
  529. package/dist/collection/components/ripple-effect/{ripple-effect.css → ripple-effect.common.css} +7 -1
  530. package/dist/collection/components/ripple-effect/ripple-effect.ionic.css +215 -0
  531. package/dist/collection/components/ripple-effect/ripple-effect.js +14 -6
  532. package/dist/collection/components/route/route.js +4 -0
  533. package/dist/collection/components/router/router.js +4 -0
  534. package/dist/collection/components/router-link/router-link.css +8 -2
  535. package/dist/collection/components/router-link/router-link.js +9 -5
  536. package/dist/collection/components/router-outlet/router-outlet.css +7 -1
  537. package/dist/collection/components/router-outlet/router-outlet.js +6 -3
  538. package/dist/collection/components/row/row.css +16 -0
  539. package/dist/collection/components/row/row.js +9 -2
  540. package/dist/collection/components/searchbar/searchbar.ionic.css +621 -0
  541. package/dist/collection/components/searchbar/searchbar.ios.css +56 -18
  542. package/dist/collection/components/searchbar/searchbar.js +164 -42
  543. package/dist/collection/components/searchbar/searchbar.md.css +56 -18
  544. package/dist/collection/components/segment/segment.ionic.css +115 -0
  545. package/dist/collection/components/segment/segment.ios.css +45 -2
  546. package/dist/collection/components/segment/segment.js +11 -8
  547. package/dist/collection/components/segment/segment.md.css +45 -2
  548. package/dist/collection/components/segment-button/segment-button.ionic.css +351 -0
  549. package/dist/collection/components/segment-button/segment-button.ios.css +146 -105
  550. package/dist/collection/components/segment-button/segment-button.js +11 -8
  551. package/dist/collection/components/segment-button/segment-button.md.css +148 -107
  552. package/dist/collection/components/segment-content/segment-content.js +1 -1
  553. package/dist/collection/components/segment-view/segment-view.ios.css +6 -0
  554. package/dist/collection/components/segment-view/segment-view.js +13 -4
  555. package/dist/collection/components/segment-view/segment-view.md.css +6 -0
  556. package/dist/collection/components/select/select.ionic.css +976 -0
  557. package/dist/collection/components/select/select.ios.css +304 -148
  558. package/dist/collection/components/select/select.js +232 -82
  559. package/dist/collection/components/select/select.md.css +320 -150
  560. package/dist/collection/components/select-modal/select-modal.ionic.css +254 -0
  561. package/dist/collection/components/select-modal/select-modal.ios.css +293 -45
  562. package/dist/collection/components/select-modal/select-modal.js +63 -15
  563. package/dist/collection/components/select-modal/select-modal.md.css +273 -43
  564. package/dist/collection/components/select-option/select-option.js +8 -4
  565. package/dist/collection/components/select-popover/select-popover.ionic.css +253 -0
  566. package/dist/collection/components/select-popover/select-popover.ios.css +188 -124
  567. package/dist/collection/components/select-popover/select-popover.js +17 -9
  568. package/dist/collection/components/select-popover/select-popover.md.css +228 -47
  569. package/dist/collection/components/skeleton-text/skeleton-text.css +6 -0
  570. package/dist/collection/components/skeleton-text/skeleton-text.js +9 -5
  571. package/dist/collection/components/spinner/{spinner.css → spinner.ionic.css} +78 -10
  572. package/dist/collection/components/spinner/spinner.js +47 -6
  573. package/dist/collection/components/spinner/spinner.native.css +199 -0
  574. package/dist/collection/components/split-pane/split-pane.ios.css +20 -2
  575. package/dist/collection/components/split-pane/split-pane.js +15 -8
  576. package/dist/collection/components/split-pane/split-pane.md.css +20 -2
  577. package/dist/collection/components/tab/tab.js +6 -2
  578. package/dist/collection/components/tab-bar/tab-bar.ionic.css +249 -0
  579. package/dist/collection/components/tab-bar/tab-bar.ios.css +86 -43
  580. package/dist/collection/components/tab-bar/tab-bar.js +178 -15
  581. package/dist/collection/components/tab-bar/tab-bar.md.css +86 -43
  582. package/dist/collection/components/tab-button/tab-button.ionic.css +372 -0
  583. package/dist/collection/components/tab-button/tab-button.ios.css +171 -95
  584. package/dist/collection/components/tab-button/tab-button.js +54 -9
  585. package/dist/collection/components/tab-button/tab-button.md.css +137 -93
  586. package/dist/collection/components/tabs/tabs.css +7 -1
  587. package/dist/collection/components/tabs/tabs.js +4 -1
  588. package/dist/collection/components/text/text.css +6 -0
  589. package/dist/collection/components/text/text.js +7 -6
  590. package/dist/collection/components/textarea/textarea.ionic.css +989 -0
  591. package/dist/collection/components/textarea/textarea.ios.css +322 -174
  592. package/dist/collection/components/textarea/textarea.js +205 -43
  593. package/dist/collection/components/textarea/textarea.md.css +339 -176
  594. package/dist/collection/components/thumbnail/thumbnail.css +6 -0
  595. package/dist/collection/components/thumbnail/thumbnail.js +9 -2
  596. package/dist/collection/components/title/title.ionic.css +125 -0
  597. package/dist/collection/components/title/title.ios.css +32 -4
  598. package/dist/collection/components/title/title.js +13 -7
  599. package/dist/collection/components/title/title.md.css +39 -4
  600. package/dist/collection/components/toast/animations/utils.js +1 -1
  601. package/dist/collection/components/toast/toast.ionic.css +391 -0
  602. package/dist/collection/components/toast/toast.ios.css +84 -45
  603. package/dist/collection/components/toast/toast.js +79 -13
  604. package/dist/collection/components/toast/toast.md.css +84 -45
  605. package/dist/collection/components/toggle/toggle.ionic.css +510 -0
  606. package/dist/collection/components/toggle/toggle.ios.css +247 -127
  607. package/dist/collection/components/toggle/toggle.js +58 -18
  608. package/dist/collection/components/toggle/toggle.md.css +245 -127
  609. package/dist/collection/components/toolbar/test/image.svg +1 -0
  610. package/dist/collection/components/toolbar/toolbar.ionic.css +249 -0
  611. package/dist/collection/components/toolbar/toolbar.ios.css +90 -47
  612. package/dist/collection/components/toolbar/toolbar.js +216 -14
  613. package/dist/collection/components/toolbar/toolbar.md.css +90 -47
  614. package/dist/collection/global/ionic-global.js +239 -13
  615. package/dist/collection/utils/css-value-validation.js +39 -0
  616. package/dist/collection/utils/focus-trap.js +15 -4
  617. package/dist/collection/utils/focus-visible.js +73 -2
  618. package/dist/collection/utils/forms/clear-button-press-controller.js +40 -0
  619. package/dist/collection/utils/forms/click-controller.js +95 -9
  620. package/dist/collection/utils/forms/index.js +1 -0
  621. package/dist/collection/utils/forms/validity.js +31 -0
  622. package/dist/collection/utils/framework-delegate.js +3 -1
  623. package/dist/collection/utils/hardware-back-button.js +15 -0
  624. package/dist/collection/utils/helpers.js +84 -3
  625. package/dist/collection/utils/keyboard/keyboard-controller.js +3 -1
  626. package/dist/collection/utils/media.js +1 -0
  627. package/dist/collection/utils/menu-controller/animations/overlay.js +3 -3
  628. package/dist/collection/utils/menu-controller/animations/push.js +2 -1
  629. package/dist/collection/utils/menu-controller/animations/reveal.js +2 -1
  630. package/dist/collection/utils/overlay-control-label.js +13 -11
  631. package/dist/collection/utils/overlays.js +289 -10
  632. package/dist/collection/utils/scroll-hide-controller.js +178 -0
  633. package/dist/collection/utils/test/playwright/drag-element.js +32 -9
  634. package/dist/collection/utils/test/playwright/field-geometry.js +34 -0
  635. package/dist/collection/utils/test/playwright/generator.js +48 -23
  636. package/dist/collection/utils/test/playwright/index.js +1 -0
  637. package/dist/collection/utils/test/playwright/page/utils/goto.js +10 -1
  638. package/dist/collection/utils/test/playwright/page/utils/set-content.js +26 -3
  639. package/dist/collection/utils/theme.js +25 -1
  640. package/dist/collection/utils/transition/ios.transition.js +1 -0
  641. package/dist/docs.json +8889 -293
  642. package/dist/esm/{animation-C_V9lXzL.js → animation-GasMiLY0.js} +2 -2
  643. package/dist/esm/{app-globals-CNfpAPW6.js → app-globals-DbCTe1Vv.js} +1 -1
  644. package/dist/esm/{attribute-controller-ItNOXNp9.js → attribute-controller-CbJaN4Zr.js} +2 -1
  645. package/dist/esm/{button-active-rB-Ct9KZ.js → button-active-DLOYzeXl.js} +2 -2
  646. package/dist/esm/{capacitor-BY7l8HgR.js → capacitor-CFERIeaU.js} +1 -1
  647. package/dist/esm/clear-button-press-controller-6ph4kKYn.js +43 -0
  648. package/dist/esm/focus-visible-BYk20Mf5.js +146 -0
  649. package/dist/esm/{format-Ck1cw5z7.js → format-NT7iHsbA.js} +1 -1
  650. package/dist/esm/{framework-delegate-CW5_kWfc.js → framework-delegate-99Ms_INy.js} +4 -2
  651. package/dist/esm/{haptic-ES_sSPLn.js → haptic-Cq4UAeka.js} +1 -1
  652. package/dist/esm/{helpers-p94IkmEA.js → helpers-B_F2b1gy.js} +86 -8
  653. package/dist/esm/{index-CK8uF0iB.js → index-BRYliuA-.js} +1 -1
  654. package/dist/esm/{index-CBkVO5D0.js → index-BeR_5uou.js} +2 -2
  655. package/dist/esm/{index-BvabGprD.js → index-BkJpfpXI.js} +2 -1
  656. package/dist/esm/{index-DLDbwWW7.js → index-BoEdvSPU.js} +4 -2
  657. package/dist/esm/{index-vgPixHgF.js → index-D5lNz-tr.js} +4 -4
  658. package/dist/esm/{index-txcXIB3P.js → index-D86Q8ZLS.js} +12 -10
  659. package/dist/esm/index-ZjP4CjeZ.js +7 -0
  660. package/dist/esm/{index-BpRUsN_W.js → index-hR6kxzTq.js} +55 -5
  661. package/dist/esm/index.js +14 -12
  662. package/dist/esm/{input-shims-KNXj3DAv.js → input-shims-CJVi9djP.js} +7 -5
  663. package/dist/esm/{input.utils-DZY_K8Po.js → input.utils-gPgFKve4.js} +1 -1
  664. package/dist/esm/ion-accordion_2.entry.js +57 -29
  665. package/dist/esm/ion-action-sheet.entry.js +27 -22
  666. package/dist/esm/ion-alert.entry.js +34 -29
  667. package/dist/esm/ion-app_8.entry.js +455 -193
  668. package/dist/esm/ion-avatar_3.entry.js +124 -13
  669. package/dist/esm/ion-back-button.entry.js +31 -23
  670. package/dist/esm/ion-backdrop.entry.js +11 -7
  671. package/dist/esm/ion-breadcrumb_2.entry.js +42 -18
  672. package/dist/esm/ion-button_2.entry.js +61 -23
  673. package/dist/esm/ion-card_5.entry.js +57 -34
  674. package/dist/esm/ion-checkbox.entry.js +43 -17
  675. package/dist/esm/ion-chip.entry.js +51 -9
  676. package/dist/esm/ion-col_3.entry.js +56 -63
  677. package/dist/esm/ion-datetime-button.entry.js +14 -9
  678. package/dist/esm/ion-datetime.entry.js +74 -32
  679. package/dist/esm/ion-divider.entry.js +50 -0
  680. package/dist/esm/ion-fab_3.entry.js +40 -28
  681. package/dist/esm/ion-gallery-item.entry.js +57 -0
  682. package/dist/esm/ion-gallery.entry.js +606 -0
  683. package/dist/esm/ion-img.entry.js +9 -4
  684. package/dist/esm/ion-infinite-scroll_2.entry.js +91 -16
  685. package/dist/esm/ion-input-otp.entry.js +75 -10
  686. package/dist/esm/ion-input-password-toggle.entry.js +42 -14
  687. package/dist/esm/ion-input.entry.js +147 -38
  688. package/dist/esm/ion-item-option_3.entry.js +466 -52
  689. package/dist/esm/ion-item_8.entry.js +118 -51
  690. package/dist/esm/ion-loading.entry.js +22 -17
  691. package/dist/esm/ion-menu_3.entry.js +45 -27
  692. package/dist/esm/ion-modal.entry.js +237 -88
  693. package/dist/esm/ion-nav_2.entry.js +14 -10
  694. package/dist/esm/ion-picker-column-option.entry.js +13 -8
  695. package/dist/esm/ion-picker-column.entry.js +14 -12
  696. package/dist/esm/ion-picker.entry.js +11 -6
  697. package/dist/esm/ion-popover.entry.js +23 -18
  698. package/dist/esm/ion-progress-bar.entry.js +28 -9
  699. package/dist/esm/ion-radio_2.entry.js +37 -18
  700. package/dist/esm/ion-range.entry.js +21 -13
  701. package/dist/esm/ion-refresher_2.entry.js +45 -20
  702. package/dist/esm/ion-reorder_2.entry.js +31 -13
  703. package/dist/esm/ion-ripple-effect.entry.js +16 -7
  704. package/dist/esm/ion-route_4.entry.js +12 -10
  705. package/dist/esm/ion-searchbar.entry.js +118 -32
  706. package/dist/esm/ion-segment-content.entry.js +2 -2
  707. package/dist/esm/ion-segment-view.entry.js +13 -3
  708. package/dist/esm/ion-segment_2.entry.js +24 -16
  709. package/dist/esm/ion-select-modal.entry.js +53 -24
  710. package/dist/esm/ion-select_3.entry.js +198 -76
  711. package/dist/esm/ion-spinner.entry.js +31 -8
  712. package/dist/esm/ion-split-pane.entry.js +14 -9
  713. package/dist/esm/ion-tab-bar_2.entry.js +149 -26
  714. package/dist/esm/ion-tab_2.entry.js +9 -7
  715. package/dist/esm/ion-text.entry.js +8 -7
  716. package/dist/esm/ion-textarea.entry.js +178 -41
  717. package/dist/esm/ion-toast.entry.js +48 -19
  718. package/dist/esm/ion-toggle.entry.js +67 -25
  719. package/dist/esm/ionic-global-DSbFWXp3.js +540 -0
  720. package/dist/esm/ionic.js +6 -5
  721. package/dist/esm/{ios.transition-CW92wRDL.js → ios.transition-C9thfQYf.js} +7 -4
  722. package/dist/esm/{item-multiple-inputs-Bd2LO7qK.js → item-multiple-inputs-CSJsB7-I.js} +1 -1
  723. package/dist/esm/{keyboard-BumguZrM.js → keyboard-Cj8mLJeq.js} +3 -5
  724. package/dist/esm/{keyboard-CutS8BPd.js → keyboard-DAF8GNJ9.js} +1 -1
  725. package/dist/esm/loader.js +6 -5
  726. package/dist/esm/{md.transition-yhfkYX1P.js → md.transition-BEhPsy_z.js} +6 -4
  727. package/dist/esm/{overlay-control-label-BSQPZ79H.js → overlay-control-label-CODBQrPj.js} +13 -11
  728. package/dist/esm/{overlays-BBgMM61s.js → overlays-C8sf7PId.js} +307 -164
  729. package/dist/esm/scroll-hide-controller-Chts2wJU.js +342 -0
  730. package/dist/esm/{select-option-render-BSDT9oSA.js → select-option-render-D5kt0cO9.js} +2 -2
  731. package/dist/esm/{slot-mutation-controller-uKdPbY9K.js → slot-mutation-controller-DanfZTCH.js} +97 -10
  732. package/dist/esm/{status-tap-BskkGI4e.js → status-tap-B8UQS38n.js} +5 -3
  733. package/dist/esm/{swipe-back-BZdyM2Q-.js → swipe-back-Bgftkxen.js} +4 -2
  734. package/dist/esm/{theme-byZM6qHV.js → theme-BUF_V-Kg.js} +25 -1
  735. package/dist/esm/validity-NcQUGze-.js +48 -0
  736. package/dist/html.html-data.json +2631 -150
  737. package/dist/ionic/index.esm.js +1 -1
  738. package/dist/ionic/ionic.esm.js +1 -1
  739. package/dist/ionic/p-038465e3.entry.js +4 -0
  740. package/dist/ionic/p-0743a26a.entry.js +4 -0
  741. package/dist/ionic/p-0b453760.entry.js +4 -0
  742. package/dist/ionic/p-0bd5a7c9.entry.js +4 -0
  743. package/dist/ionic/p-188a2e35.entry.js +4 -0
  744. package/dist/ionic/p-1b045882.entry.js +4 -0
  745. package/dist/ionic/p-1b769779.entry.js +4 -0
  746. package/dist/ionic/p-1d735170.entry.js +4 -0
  747. package/dist/ionic/p-1d87b153.entry.js +4 -0
  748. package/dist/ionic/p-2b1e9500.entry.js +4 -0
  749. package/dist/ionic/p-2gcJ-f11.js +4 -0
  750. package/dist/ionic/p-308f9b89.entry.js +4 -0
  751. package/dist/ionic/p-338cb1e7.entry.js +4 -0
  752. package/dist/ionic/p-3a03d05e.entry.js +4 -0
  753. package/dist/ionic/p-3a54495e.entry.js +4 -0
  754. package/dist/ionic/p-3b47fdc7.entry.js +4 -0
  755. package/dist/ionic/p-3be131ed.entry.js +4 -0
  756. package/dist/ionic/p-3ddd32cc.entry.js +4 -0
  757. package/dist/ionic/p-3f15086f.entry.js +4 -0
  758. package/dist/ionic/p-4152cb6a.entry.js +4 -0
  759. package/dist/ionic/p-41680415.entry.js +4 -0
  760. package/dist/ionic/p-49edfb46.entry.js +4 -0
  761. package/dist/ionic/p-522663a4.entry.js +4 -0
  762. package/dist/ionic/p-561cfcc1.entry.js +4 -0
  763. package/dist/ionic/p-6dc9331b.entry.js +4 -0
  764. package/dist/ionic/p-7df4dcb4.entry.js +4 -0
  765. package/dist/ionic/p-8183df6b.entry.js +4 -0
  766. package/dist/ionic/p-8231e914.entry.js +4 -0
  767. package/dist/ionic/p-82efbf09.entry.js +4 -0
  768. package/dist/ionic/p-86bf24f4.entry.js +4 -0
  769. package/dist/ionic/p-8b107444.entry.js +4 -0
  770. package/dist/ionic/p-8ecb459a.entry.js +4 -0
  771. package/dist/ionic/p-8ff4bf6c.entry.js +4 -0
  772. package/dist/ionic/p-905c8b38.entry.js +4 -0
  773. package/dist/ionic/p-9613f2c3.entry.js +4 -0
  774. package/dist/ionic/p-973f8069.entry.js +4 -0
  775. package/dist/ionic/p-9b41acf3.entry.js +4 -0
  776. package/dist/ionic/p-B36ii-hs.js +4 -0
  777. package/{components/p-LkEGRiq0.js → dist/ionic/p-B7XMQegr.js} +1 -1
  778. package/dist/ionic/p-BKwe4f9b.js +4 -0
  779. package/dist/ionic/{p-5a3UxQAh.js → p-BMPN55of.js} +1 -1
  780. package/{components/p-D5_mEbGJ.js → dist/ionic/p-BPA4-c6T.js} +1 -1
  781. package/dist/ionic/p-BUF_V-Kg.js +4 -0
  782. package/dist/ionic/p-BXRdzJMJ.js +4 -0
  783. package/dist/ionic/p-BYk20Mf5.js +4 -0
  784. package/dist/ionic/p-BfDzKnZ-.js +4 -0
  785. package/dist/ionic/p-BfUzA1cP.js +4 -0
  786. package/dist/ionic/{p-DCmOKz8e.js → p-Bjt84heL.js} +1 -1
  787. package/dist/ionic/p-BkJpfpXI.js +4 -0
  788. package/{components/p-CdrNHfZl.js → dist/ionic/p-BtccSO5J.js} +1 -1
  789. package/dist/ionic/p-C3TLUO-J.js +4 -0
  790. package/dist/ionic/p-C4WiowQL.js +4 -0
  791. package/dist/ionic/p-CIGNaXM1.js +4 -0
  792. package/dist/ionic/p-CODBQrPj.js +4 -0
  793. package/dist/ionic/p-CXkgZKSx.js +4 -0
  794. package/dist/ionic/{p-DxftXYZp.js → p-CeHcVwSj.js} +1 -1
  795. package/dist/ionic/p-Co3ilg7B.js +4 -0
  796. package/dist/ionic/p-D5t_-oMk.js +4 -0
  797. package/dist/ionic/p-D7LiFzrm.js +4 -0
  798. package/dist/ionic/p-DOdxt_P_.js +4 -0
  799. package/dist/ionic/p-DRbid4Vh.js +4 -0
  800. package/dist/ionic/p-DsBidY1y.js +4 -0
  801. package/dist/ionic/{p-Cf6KtUnA.js → p-DuxayXEj.js} +1 -1
  802. package/dist/ionic/p-DxPRC9Jk.js +4 -0
  803. package/dist/ionic/p-Hb0L-KUN.js +4 -0
  804. package/dist/ionic/p-NcQUGze-.js +4 -0
  805. package/dist/ionic/{p-BBZQUbCq.js → p-T71k3C35.js} +1 -1
  806. package/dist/ionic/p-WdouEyt8.js +4 -0
  807. package/dist/ionic/p-ZjP4CjeZ.js +4 -0
  808. package/dist/ionic/p-a1555032.entry.js +4 -0
  809. package/dist/ionic/p-a4299509.entry.js +4 -0
  810. package/dist/ionic/p-a52cba2f.entry.js +4 -0
  811. package/dist/ionic/p-ad46d2fd.entry.js +4 -0
  812. package/dist/ionic/p-b076511a.entry.js +4 -0
  813. package/dist/ionic/p-b1cd18f0.entry.js +4 -0
  814. package/dist/ionic/p-b30b468d.entry.js +4 -0
  815. package/dist/ionic/p-b4de840a.entry.js +4 -0
  816. package/dist/ionic/p-b6e633f5.entry.js +4 -0
  817. package/dist/ionic/p-bf40b9eb.entry.js +4 -0
  818. package/dist/ionic/p-c1fc48c7.entry.js +4 -0
  819. package/dist/ionic/p-ce8bea16.entry.js +4 -0
  820. package/dist/ionic/p-dbf53341.entry.js +4 -0
  821. package/dist/ionic/p-de0de6a6.entry.js +4 -0
  822. package/dist/ionic/p-e715a580.entry.js +4 -0
  823. package/dist/ionic/p-f10a94a8.entry.js +4 -0
  824. package/dist/ionic/p-f3057b31.entry.js +4 -0
  825. package/dist/ionic/p-fa74dd94.entry.js +4 -0
  826. package/dist/ionic/p-fd00e28d.entry.js +4 -0
  827. package/dist/ionic/p-hR6kxzTq.js +6 -0
  828. package/dist/ionic/p-pVSZ4TVa.js +4 -0
  829. package/dist/ionic/{p-DfvWlTdB.js → p-rwBGNQHN.js} +1 -1
  830. package/dist/types/components/accordion/accordion.d.ts +12 -3
  831. package/dist/types/components/accordion-group/accordion-group.d.ts +12 -1
  832. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +3 -7
  833. package/dist/types/components/action-sheet/action-sheet.d.ts +3 -2
  834. package/dist/types/components/alert/alert-interface.d.ts +3 -7
  835. package/dist/types/components/alert/alert.d.ts +3 -2
  836. package/dist/types/components/app/app.d.ts +4 -5
  837. package/dist/types/components/avatar/avatar.d.ts +32 -0
  838. package/dist/types/components/back-button/back-button.d.ts +10 -3
  839. package/dist/types/components/backdrop/backdrop.d.ts +4 -0
  840. package/dist/types/components/badge/badge.d.ts +34 -1
  841. package/dist/types/components/breadcrumb/breadcrumb.d.ts +14 -1
  842. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +2 -2
  843. package/dist/types/components/button/button.d.ts +23 -8
  844. package/dist/types/components/buttons/buttons.d.ts +5 -1
  845. package/dist/types/components/card/card.d.ts +8 -1
  846. package/dist/types/components/card-content/card-content.d.ts +2 -1
  847. package/dist/types/components/card-header/card-header.d.ts +3 -2
  848. package/dist/types/components/card-subtitle/card-subtitle.d.ts +2 -1
  849. package/dist/types/components/card-title/card-title.d.ts +2 -1
  850. package/dist/types/components/checkbox/checkbox.d.ts +26 -5
  851. package/dist/types/components/chip/chip.d.ts +26 -1
  852. package/dist/types/components/col/col.d.ts +52 -6
  853. package/dist/types/components/content/content.d.ts +3 -0
  854. package/dist/types/components/datetime/datetime.d.ts +26 -1
  855. package/dist/types/components/datetime/utils/data.d.ts +5 -5
  856. package/dist/types/components/datetime-button/datetime-button.d.ts +2 -1
  857. package/dist/types/components/divider/divider.d.ts +20 -0
  858. package/dist/types/components/fab/fab.d.ts +4 -0
  859. package/dist/types/components/fab-button/fab-button.d.ts +11 -3
  860. package/dist/types/components/fab-list/fab-list.d.ts +4 -0
  861. package/dist/types/components/footer/footer-interface.d.ts +1 -0
  862. package/dist/types/components/footer/footer.d.ts +20 -3
  863. package/dist/types/components/gallery/gallery-constants.d.ts +9 -0
  864. package/dist/types/components/gallery/gallery-interface.d.ts +10 -0
  865. package/dist/types/components/gallery/gallery.d.ts +218 -0
  866. package/dist/types/components/gallery/test/utils.d.ts +3 -0
  867. package/dist/types/components/gallery-item/gallery-item.d.ts +33 -0
  868. package/dist/types/components/grid/grid.d.ts +4 -0
  869. package/dist/types/components/header/header-interface.d.ts +1 -0
  870. package/dist/types/components/header/header.d.ts +26 -3
  871. package/dist/types/components/header/header.utils.d.ts +4 -5
  872. package/dist/types/components/img/img.d.ts +2 -0
  873. package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +21 -0
  874. package/dist/types/components/infinite-scroll-content/infinite-scroll-content.d.ts +4 -0
  875. package/dist/types/components/input/input.d.ts +45 -5
  876. package/dist/types/components/input-otp/input-otp.d.ts +37 -0
  877. package/dist/types/components/input-password-toggle/input-password-toggle.d.ts +14 -0
  878. package/dist/types/components/item/item.d.ts +17 -4
  879. package/dist/types/components/item-divider/item-divider.d.ts +2 -1
  880. package/dist/types/components/item-group/item-group.d.ts +4 -0
  881. package/dist/types/components/item-option/item-option.d.ts +18 -1
  882. package/dist/types/components/item-options/item-options.d.ts +4 -0
  883. package/dist/types/components/item-sliding/item-sliding.d.ts +47 -1
  884. package/dist/types/components/item-sliding/test/test.utils.d.ts +13 -0
  885. package/dist/types/components/label/label.d.ts +2 -1
  886. package/dist/types/components/list/list.d.ts +15 -1
  887. package/dist/types/components/list-header/list-header.d.ts +2 -1
  888. package/dist/types/components/loading/loading-interface.d.ts +2 -7
  889. package/dist/types/components/loading/loading.d.ts +3 -2
  890. package/dist/types/components/menu/menu.d.ts +3 -0
  891. package/dist/types/components/menu-button/menu-button.d.ts +8 -1
  892. package/dist/types/components/menu-toggle/menu-toggle.d.ts +3 -0
  893. package/dist/types/components/modal/animations/ionic.enter.d.ts +6 -0
  894. package/dist/types/components/modal/animations/ionic.leave.d.ts +6 -0
  895. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  896. package/dist/types/components/modal/modal-interface.d.ts +4 -7
  897. package/dist/types/components/modal/modal.d.ts +11 -1
  898. package/dist/types/components/nav/nav-interface.d.ts +9 -1
  899. package/dist/types/components/nav/nav.d.ts +5 -1
  900. package/dist/types/components/nav-link/nav-link.d.ts +4 -0
  901. package/dist/types/components/note/note.d.ts +2 -1
  902. package/dist/types/components/picker/picker.d.ts +2 -1
  903. package/dist/types/components/picker-column/picker-column.d.ts +2 -1
  904. package/dist/types/components/picker-column-option/picker-column-option.d.ts +4 -0
  905. package/dist/types/components/popover/popover-interface.d.ts +3 -6
  906. package/dist/types/components/popover/popover.d.ts +6 -5
  907. package/dist/types/components/progress-bar/progress-bar.d.ts +10 -1
  908. package/dist/types/components/radio/radio.d.ts +2 -1
  909. package/dist/types/components/radio-group/radio-group.d.ts +12 -0
  910. package/dist/types/components/range/range.d.ts +2 -1
  911. package/dist/types/components/refresher/refresher.d.ts +2 -1
  912. package/dist/types/components/refresher-content/refresher-content.d.ts +10 -0
  913. package/dist/types/components/reorder/reorder.d.ts +9 -0
  914. package/dist/types/components/reorder-group/reorder-group.d.ts +4 -0
  915. package/dist/types/components/ripple-effect/ripple-effect.d.ts +4 -0
  916. package/dist/types/components/route/route.d.ts +4 -0
  917. package/dist/types/components/router/router.d.ts +4 -0
  918. package/dist/types/components/router-link/router-link.d.ts +4 -0
  919. package/dist/types/components/router-outlet/router-outlet.d.ts +4 -1
  920. package/dist/types/components/row/row.d.ts +4 -0
  921. package/dist/types/components/searchbar/searchbar.d.ts +56 -10
  922. package/dist/types/components/segment/segment.d.ts +2 -1
  923. package/dist/types/components/segment-button/segment-button.d.ts +2 -1
  924. package/dist/types/components/select/select.d.ts +59 -15
  925. package/dist/types/components/select-modal/select-modal.d.ts +13 -0
  926. package/dist/types/components/select-option/select-option.d.ts +7 -4
  927. package/dist/types/components/select-popover/select-popover.d.ts +3 -0
  928. package/dist/types/components/skeleton-text/skeleton-text.d.ts +4 -0
  929. package/dist/types/components/spinner/spinner.d.ts +15 -0
  930. package/dist/types/components/split-pane/split-pane.d.ts +4 -0
  931. package/dist/types/components/tab/tab.d.ts +4 -0
  932. package/dist/types/components/tab-bar/tab-bar-interface.d.ts +1 -0
  933. package/dist/types/components/tab-bar/tab-bar.d.ts +41 -3
  934. package/dist/types/components/tab-button/tab-button.d.ts +12 -1
  935. package/dist/types/components/tabs/tabs.d.ts +3 -0
  936. package/dist/types/components/text/text.d.ts +2 -1
  937. package/dist/types/components/textarea/textarea.d.ts +75 -17
  938. package/dist/types/components/thumbnail/thumbnail.d.ts +4 -0
  939. package/dist/types/components/title/title.d.ts +4 -0
  940. package/dist/types/components/toast/animations/utils.d.ts +2 -2
  941. package/dist/types/components/toast/toast-interface.d.ts +3 -7
  942. package/dist/types/components/toast/toast.d.ts +19 -2
  943. package/dist/types/components/toggle/toggle.d.ts +18 -1
  944. package/dist/types/components/toolbar/toolbar.d.ts +43 -3
  945. package/dist/types/components.d.ts +1839 -211
  946. package/dist/types/global/ionic-global.d.ts +28 -2
  947. package/dist/types/interface.d.ts +3 -0
  948. package/dist/types/utils/config.d.ts +128 -4
  949. package/dist/types/utils/css-value-validation.d.ts +21 -0
  950. package/dist/types/utils/focus-trap.d.ts +1 -1
  951. package/dist/types/utils/focus-visible.d.ts +33 -0
  952. package/dist/types/utils/forms/clear-button-press-controller.d.ts +20 -0
  953. package/dist/types/utils/forms/click-controller.d.ts +16 -5
  954. package/dist/types/utils/forms/index.d.ts +1 -0
  955. package/dist/types/utils/forms/validity.d.ts +7 -0
  956. package/dist/types/utils/helpers.d.ts +29 -0
  957. package/dist/types/utils/overlay-control-label.d.ts +11 -9
  958. package/dist/types/utils/overlays-interface.d.ts +31 -1
  959. package/dist/types/utils/overlays.d.ts +1 -1
  960. package/dist/types/utils/scroll-hide-controller.d.ts +56 -0
  961. package/dist/types/utils/test/playwright/drag-element.d.ts +16 -3
  962. package/dist/types/utils/test/playwright/field-geometry.d.ts +13 -0
  963. package/dist/types/utils/test/playwright/generator.d.ts +31 -2
  964. package/dist/types/utils/test/playwright/index.d.ts +1 -0
  965. package/dist/types/utils/theme.d.ts +9 -0
  966. package/hydrate/index.js +5465 -1248
  967. package/hydrate/index.mjs +5465 -1248
  968. package/package.json +10 -4
  969. package/components/p-3avHDbEF.js +0 -4
  970. package/components/p-7KepMw9O.js +0 -4
  971. package/components/p-7NbIvzb4.js +0 -4
  972. package/components/p-B3dSuofL.js +0 -4
  973. package/components/p-BBsseItU.js +0 -4
  974. package/components/p-BMHdI-wb.js +0 -4
  975. package/components/p-BSQPZ79H.js +0 -4
  976. package/components/p-BT2InaHz.js +0 -4
  977. package/components/p-BZ1k9WL7.js +0 -4
  978. package/components/p-BhamHSw3.js +0 -4
  979. package/components/p-BmVRXR1y.js +0 -4
  980. package/components/p-BrrMFd9K.js +0 -4
  981. package/components/p-C-SO5kIs.js +0 -4
  982. package/components/p-C0TdbIVo.js +0 -4
  983. package/components/p-C6Y0cCH_.js +0 -4
  984. package/components/p-C8BAigo3.js +0 -4
  985. package/components/p-CRb2xRCz.js +0 -4
  986. package/components/p-CUQjkOdi.js +0 -4
  987. package/components/p-CW84OFQa.js +0 -4
  988. package/components/p-CjPRDxby.js +0 -4
  989. package/components/p-CohRJRIu.js +0 -4
  990. package/components/p-Ct2aBEue.js +0 -4
  991. package/components/p-CvyvLbPe.js +0 -4
  992. package/components/p-D8FyR2IB.js +0 -4
  993. package/components/p-DJztqcrH.js +0 -4
  994. package/components/p-DLEJ61lJ.js +0 -4
  995. package/components/p-DRm4t-by.js +0 -4
  996. package/components/p-DTGCMApY.js +0 -4
  997. package/components/p-D_U0pDe5.js +0 -4
  998. package/components/p-DaW9OZ6S.js +0 -4
  999. package/components/p-Dah8BCNg.js +0 -4
  1000. package/components/p-DaojW_d_.js +0 -4
  1001. package/components/p-DnBabjgY.js +0 -4
  1002. package/components/p-Ds5vN3iu.js +0 -4
  1003. package/components/p-DwTzX8Vi.js +0 -4
  1004. package/components/p-Dy7x-KDF.js +0 -4
  1005. package/components/p-HthJZjZ6.js +0 -4
  1006. package/components/p-KbMCbGRA.js +0 -4
  1007. package/components/p-LpMHEu3v.js +0 -4
  1008. package/components/p-PkD1iLNN.js +0 -4
  1009. package/components/p-R4UxBukQ.js +0 -4
  1010. package/components/p-RhI78AKb.js +0 -4
  1011. package/components/p-byZM6qHV.js +0 -4
  1012. package/components/p-hLu-eIbb.js +0 -4
  1013. package/components/p-kKGBuIkf.js +0 -4
  1014. package/components/p-z-EWo6r-.js +0 -4
  1015. package/dist/cjs/focus-visible-CCvKiLh3.js +0 -77
  1016. package/dist/cjs/ionic-global-48ceLiJ6.js +0 -156
  1017. package/dist/cjs/keyboard-controller-DZE97OtR.js +0 -167
  1018. package/dist/cjs/validity-BpS37YFM.js +0 -19
  1019. package/dist/esm/focus-visible-BmVRXR1y.js +0 -75
  1020. package/dist/esm/ionic-global-Cep6oYzK.js +0 -151
  1021. package/dist/esm/keyboard-controller-DqohyEsZ.js +0 -165
  1022. package/dist/esm/validity-DJztqcrH.js +0 -17
  1023. package/dist/ionic/p-00cd107d.entry.js +0 -4
  1024. package/dist/ionic/p-013b9aba.entry.js +0 -4
  1025. package/dist/ionic/p-014c3633.entry.js +0 -4
  1026. package/dist/ionic/p-0562139b.entry.js +0 -4
  1027. package/dist/ionic/p-0a789930.entry.js +0 -4
  1028. package/dist/ionic/p-0f1613f2.entry.js +0 -4
  1029. package/dist/ionic/p-1252621e.entry.js +0 -4
  1030. package/dist/ionic/p-129f7b95.entry.js +0 -4
  1031. package/dist/ionic/p-16de8fd9.entry.js +0 -4
  1032. package/dist/ionic/p-1bb1be7e.entry.js +0 -4
  1033. package/dist/ionic/p-1f342c2d.entry.js +0 -4
  1034. package/dist/ionic/p-1ffa5577.entry.js +0 -4
  1035. package/dist/ionic/p-210f906e.entry.js +0 -4
  1036. package/dist/ionic/p-27960f65.entry.js +0 -4
  1037. package/dist/ionic/p-3c6fc2e8.entry.js +0 -4
  1038. package/dist/ionic/p-436d4ac8.entry.js +0 -4
  1039. package/dist/ionic/p-43729675.entry.js +0 -4
  1040. package/dist/ionic/p-4468e439.entry.js +0 -4
  1041. package/dist/ionic/p-4e4e5919.entry.js +0 -4
  1042. package/dist/ionic/p-51af4728.entry.js +0 -4
  1043. package/dist/ionic/p-59e4b521.entry.js +0 -4
  1044. package/dist/ionic/p-5b47b8d5.entry.js +0 -4
  1045. package/dist/ionic/p-5dcddfd5.entry.js +0 -4
  1046. package/dist/ionic/p-694f3e78.entry.js +0 -4
  1047. package/dist/ionic/p-76c189e7.entry.js +0 -4
  1048. package/dist/ionic/p-77252596.entry.js +0 -4
  1049. package/dist/ionic/p-77540bcb.entry.js +0 -4
  1050. package/dist/ionic/p-77e7b612.entry.js +0 -4
  1051. package/dist/ionic/p-7868eb92.entry.js +0 -4
  1052. package/dist/ionic/p-800ce1e0.entry.js +0 -4
  1053. package/dist/ionic/p-84470714.entry.js +0 -4
  1054. package/dist/ionic/p-87fb6d59.entry.js +0 -4
  1055. package/dist/ionic/p-8B39TMv-.js +0 -4
  1056. package/dist/ionic/p-8af85fa8.entry.js +0 -4
  1057. package/dist/ionic/p-8c85e250.entry.js +0 -4
  1058. package/dist/ionic/p-8dQB1sG_.js +0 -4
  1059. package/dist/ionic/p-9515f840.entry.js +0 -4
  1060. package/dist/ionic/p-96d040b0.entry.js +0 -4
  1061. package/dist/ionic/p-9d7e5a0b.entry.js +0 -4
  1062. package/dist/ionic/p-B0afqOUt.js +0 -4
  1063. package/dist/ionic/p-B2JD8_LP.js +0 -4
  1064. package/dist/ionic/p-B2y1T0dN.js +0 -4
  1065. package/dist/ionic/p-BHBb21Hp.js +0 -4
  1066. package/dist/ionic/p-BSQPZ79H.js +0 -4
  1067. package/dist/ionic/p-BexAj0yw.js +0 -4
  1068. package/dist/ionic/p-BgkRGRO3.js +0 -4
  1069. package/dist/ionic/p-BmVRXR1y.js +0 -4
  1070. package/dist/ionic/p-BpRUsN_W.js +0 -6
  1071. package/dist/ionic/p-BvabGprD.js +0 -4
  1072. package/dist/ionic/p-C4SpVvhx.js +0 -4
  1073. package/dist/ionic/p-CNdt1FPc.js +0 -4
  1074. package/dist/ionic/p-CfccUand.js +0 -4
  1075. package/dist/ionic/p-DArnNWiu.js +0 -4
  1076. package/dist/ionic/p-DBFcFCH5.js +0 -4
  1077. package/dist/ionic/p-DFPZa_No.js +0 -4
  1078. package/dist/ionic/p-DJztqcrH.js +0 -4
  1079. package/dist/ionic/p-DYKDWM2f.js +0 -4
  1080. package/dist/ionic/p-DriE1ZAo.js +0 -4
  1081. package/dist/ionic/p-DzQk7Lu8.js +0 -4
  1082. package/dist/ionic/p-SEecsUh7.js +0 -4
  1083. package/dist/ionic/p-a45caa30.entry.js +0 -4
  1084. package/dist/ionic/p-af15fc5d.entry.js +0 -4
  1085. package/dist/ionic/p-af4b4719.entry.js +0 -4
  1086. package/dist/ionic/p-b0faaae2.entry.js +0 -4
  1087. package/dist/ionic/p-b3aadfe8.entry.js +0 -4
  1088. package/dist/ionic/p-b5bcbbc1.entry.js +0 -4
  1089. package/dist/ionic/p-byZM6qHV.js +0 -4
  1090. package/dist/ionic/p-c293f854.entry.js +0 -4
  1091. package/dist/ionic/p-c56c23b6.entry.js +0 -4
  1092. package/dist/ionic/p-c7ea2647.entry.js +0 -4
  1093. package/dist/ionic/p-c8c77f7b.entry.js +0 -4
  1094. package/dist/ionic/p-cbc73380.entry.js +0 -4
  1095. package/dist/ionic/p-d58e9da3.entry.js +0 -4
  1096. package/dist/ionic/p-e1haAYzm.js +0 -4
  1097. package/dist/ionic/p-ec08a7e6.entry.js +0 -4
  1098. package/dist/ionic/p-f37e6ed2.entry.js +0 -4
  1099. package/dist/ionic/p-f6a1ab48.entry.js +0 -4
  1100. /package/dist/collection/components/{input-password-toggle/input-password-toggle.css → refresher-content/refresher-content.css} +0 -0
@@ -3,160 +3,13 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var helpers = require('./helpers-BrETKUUX.js');
7
- var index = require('./index-BiQyIvoc.js');
8
- var ionicGlobal = require('./ionic-global-48ceLiJ6.js');
9
- var frameworkDelegate = require('./framework-delegate-hNMKEiQC.js');
6
+ var index$1 = require('./index-DkNv4J_i.js');
7
+ var helpers = require('./helpers-DHNLF4fD.js');
8
+ var ionicGlobal = require('./ionic-global-CZX42KL4.js');
9
+ var index = require('./index-CB1PuDlX.js');
10
+ var frameworkDelegate = require('./framework-delegate-CAdDEnFS.js');
10
11
  var gestureController = require('./gesture-controller-CeJslptU.js');
11
12
 
12
- /**
13
- * CloseWatcher is a newer API that lets
14
- * use detect the hardware back button event
15
- * in a web browser: https://caniuse.com/?search=closewatcher
16
- * However, not every browser supports it yet.
17
- *
18
- * This needs to be a function so that we can
19
- * check the config once it has been set.
20
- * Otherwise, this code would be evaluated the
21
- * moment this file is evaluated which could be
22
- * before the config is set.
23
- */
24
- const shouldUseCloseWatcher = () => index.config.get('experimentalCloseWatcher', false) && helpers.win !== undefined && 'CloseWatcher' in helpers.win;
25
- /**
26
- * When hardwareBackButton: false in config,
27
- * we need to make sure we also block the default
28
- * webview behavior. If we don't then it will be
29
- * possible for users to navigate backward while
30
- * an overlay is still open. Additionally, it will
31
- * give the appearance that the hardwareBackButton
32
- * config is not working as the page transition
33
- * will still happen.
34
- */
35
- const blockHardwareBackButton = () => {
36
- document.addEventListener('backbutton', () => { });
37
- };
38
- const closeWatcherConditions = [];
39
- let syncCloseWatcher;
40
- /**
41
- * Registers a check for whether the back button
42
- * has something to close. The CloseWatcher is only
43
- * active while one of these checks passes.
44
- */
45
- const addCloseWatcherCondition = (condition) => {
46
- closeWatcherConditions.push(condition);
47
- };
48
- /**
49
- * Call this whenever something the back button
50
- * can close opens or closes.
51
- */
52
- const updateCloseWatcher = () => {
53
- syncCloseWatcher?.();
54
- };
55
- const startHardwareBackButton = () => {
56
- const doc = document;
57
- let busy = false;
58
- const backButtonCallback = () => {
59
- if (busy) {
60
- return;
61
- }
62
- let index$1 = 0;
63
- let handlers = [];
64
- const ev = new CustomEvent('ionBackButton', {
65
- bubbles: false,
66
- detail: {
67
- register(priority, handler) {
68
- handlers.push({ priority, handler, id: index$1++ });
69
- },
70
- },
71
- });
72
- doc.dispatchEvent(ev);
73
- const executeAction = async (handlerRegister) => {
74
- try {
75
- if (handlerRegister?.handler) {
76
- const result = handlerRegister.handler(processHandlers);
77
- if (result != null) {
78
- await result;
79
- }
80
- }
81
- }
82
- catch (e) {
83
- index.printIonError('[ion-app] - Exception in startHardwareBackButton:', e);
84
- }
85
- };
86
- const processHandlers = () => {
87
- if (handlers.length > 0) {
88
- let selectedHandler = {
89
- priority: Number.MIN_SAFE_INTEGER,
90
- handler: () => undefined,
91
- id: -1,
92
- };
93
- handlers.forEach((handler) => {
94
- if (handler.priority >= selectedHandler.priority) {
95
- selectedHandler = handler;
96
- }
97
- });
98
- busy = true;
99
- handlers = handlers.filter((handler) => handler.id !== selectedHandler.id);
100
- executeAction(selectedHandler).then(() => (busy = false));
101
- }
102
- };
103
- processHandlers();
104
- };
105
- /**
106
- * Android WebView never sends the hardware back
107
- * button to a CloseWatcher, so hybrid apps still
108
- * need this. Browsers never fire backbutton.
109
- */
110
- doc.addEventListener('backbutton', backButtonCallback);
111
- if (shouldUseCloseWatcher()) {
112
- let watcher;
113
- /**
114
- * An active CloseWatcher stops the back button from
115
- * navigating, so only keep one while there's something to close.
116
- */
117
- syncCloseWatcher = () => {
118
- const canClose = closeWatcherConditions.some((condition) => condition());
119
- if (!canClose) {
120
- watcher?.destroy();
121
- watcher = undefined;
122
- return;
123
- }
124
- if (watcher !== undefined) {
125
- return;
126
- }
127
- watcher = new helpers.win.CloseWatcher();
128
- /**
129
- * Once a close request happens
130
- * the watcher gets destroyed.
131
- * As a result, we need to re-configure
132
- * the watcher so we can respond to other
133
- * close requests, including after one that
134
- * closed nothing, like a modal whose canDismiss
135
- * returned false.
136
- */
137
- watcher.onclose = () => {
138
- watcher = undefined;
139
- backButtonCallback();
140
- syncCloseWatcher?.();
141
- };
142
- };
143
- syncCloseWatcher();
144
- }
145
- };
146
- const OVERLAY_BACK_BUTTON_PRIORITY = 100;
147
- const MENU_BACK_BUTTON_PRIORITY = 99; // 1 less than overlay priority since menu is displayed behind overlays
148
-
149
- var hardwareBackButton = /*#__PURE__*/Object.freeze({
150
- __proto__: null,
151
- MENU_BACK_BUTTON_PRIORITY: MENU_BACK_BUTTON_PRIORITY,
152
- OVERLAY_BACK_BUTTON_PRIORITY: OVERLAY_BACK_BUTTON_PRIORITY,
153
- addCloseWatcherCondition: addCloseWatcherCondition,
154
- blockHardwareBackButton: blockHardwareBackButton,
155
- shouldUseCloseWatcher: shouldUseCloseWatcher,
156
- startHardwareBackButton: startHardwareBackButton,
157
- updateCloseWatcher: updateCloseWatcher
158
- });
159
-
160
13
  /**
161
14
  * This query string selects elements that
162
15
  * are eligible to receive focus. We select
@@ -169,7 +22,7 @@ var hardwareBackButton = /*#__PURE__*/Object.freeze({
169
22
  * Note: We need this distinction because `disabled="false"` is
170
23
  * valid usage for the disabled property on ion-button.
171
24
  */
172
- const focusableQueryString = '[tabindex]:not([tabindex^="-"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^="-"]):not([hidden]):not([disabled]), textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), button:not([tabindex^="-"]):not([hidden]):not([disabled]), select:not([tabindex^="-"]):not([hidden]):not([disabled]), ion-checkbox:not([tabindex^="-"]):not([hidden]):not([disabled]), ion-radio:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable[disabled="false"]:not([tabindex^="-"]):not([hidden])';
25
+ const focusableQueryString = '[tabindex]:not([tabindex^="-"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^="-"]):not([hidden]):not([disabled]), textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), button:not([tabindex^="-"]):not([hidden]):not([disabled]), select:not([tabindex^="-"]):not([hidden]):not([disabled]), ion-checkbox:not([tabindex^="-"]):not([hidden]):not([disabled]), ion-radio:not([tabindex^="-"]):not([hidden]):not([disabled]), ion-textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable[disabled="false"]:not([tabindex^="-"]):not([hidden])';
173
26
  /**
174
27
  * Focuses the first descendant in a context
175
28
  * that can receive focus. If none exists,
@@ -221,7 +74,18 @@ const focusElementInContext = (hostToFocus, fallbackElement) => {
221
74
  const shadowRoot = hostToFocus?.shadowRoot;
222
75
  if (shadowRoot) {
223
76
  // If there are no inner focusable elements, just focus the host element.
224
- elementToFocus = shadowRoot.querySelector(focusableQueryString) || hostToFocus;
77
+ const innerFocusable = shadowRoot.querySelector(focusableQueryString);
78
+ // If the host has a setFocus() method, use it to delegate focus properly.
79
+ // This is needed for shadow DOM components like ion-textarea that override
80
+ // focus() to delegate to their inner native elements.
81
+ const hasSetFocus = typeof hostToFocus.setFocus === 'function';
82
+ if (innerFocusable && hasSetFocus) {
83
+ // Keep the host element so we can call setFocus() on it
84
+ elementToFocus = hostToFocus;
85
+ }
86
+ else {
87
+ elementToFocus = innerFocusable || hostToFocus;
88
+ }
225
89
  }
226
90
  if (elementToFocus) {
227
91
  const radioGroup = elementToFocus.closest('ion-radio-group');
@@ -229,7 +93,7 @@ const focusElementInContext = (hostToFocus, fallbackElement) => {
229
93
  radioGroup.setFocus();
230
94
  }
231
95
  else {
232
- helpers.focusVisibleElement(elementToFocus);
96
+ helpers.focusRedirectedElement(elementToFocus);
233
97
  }
234
98
  }
235
99
  else {
@@ -246,8 +110,114 @@ let lastId = 0;
246
110
  */
247
111
  const NON_TOAST_OVERLAYS = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover';
248
112
  const activeAnimations = new WeakMap();
113
+ const OVERLAY_FOCUS_TRAP_SELECTOR = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover';
114
+ /**
115
+ * The focus trap is generic and knows nothing about which components are
116
+ * inside an overlay. Components mark their elements with these `data-*`
117
+ * attributes, which the trap reads, to control how Tab moves through them.
118
+ * This keeps private component class names (e.g. `.modal-handle`,
119
+ * `.action-sheet-button`) out of the trap, so changing a component does
120
+ * not silently break Tab order.
121
+ *
122
+ * - `data-focus-ignore`: skip this element as a tab stop.
123
+ * - `data-focus-order`: explicit numeric placement in the tab sequence.
124
+ * - `data-roving-focus`: a container whose focusable descendants share a
125
+ * single tab stop via a roving tabindex.
126
+ */
127
+ const FOCUS_IGNORE_SELECTOR = '[data-focus-ignore]';
128
+ const FOCUS_ORDER_SELECTOR = '[data-focus-order]';
129
+ const ROVING_FOCUS_SELECTOR = '[data-roving-focus]';
130
+ /**
131
+ * Returns the roving-focus group an element belongs to, or `null`.
132
+ * A member is a descendant of a `[data-roving-focus]` container. The
133
+ * container itself is not a member. Members share a single tab stop.
134
+ */
135
+ const getRovingFocusGroup = (el) => {
136
+ const group = el.closest(ROVING_FOCUS_SELECTOR);
137
+ return group !== null && group !== el ? group : null;
138
+ };
139
+ /**
140
+ * Whether an element participates in a roving-focus group.
141
+ */
142
+ const isRovingFocusItem = (el) => getRovingFocusGroup(el) !== null;
143
+ /**
144
+ * Returns the currently focused element for keyboard focus checks.
145
+ *
146
+ * Starts from `document.activeElement` (non-shadow / light DOM focus).
147
+ * If focus is inside one or more open shadow roots
148
+ * (e.g. native control inside `ion-radio`), walks through nested
149
+ * `shadowRoot.activeElement` values until the innermost focused node is reached.
150
+ */
151
+ const getActiveElement = (ownerDoc) => {
152
+ let active = ownerDoc.activeElement;
153
+ if (!active) {
154
+ return null;
155
+ }
156
+ while (active.shadowRoot?.activeElement) {
157
+ active = active.shadowRoot.activeElement;
158
+ }
159
+ return active;
160
+ };
249
161
  /**
250
- * Determines if the overlay's backdrop is always blocking (no background interaction).
162
+ * Walks from a focused node (possibly deep inside shadow roots) up to
163
+ * the nearest roving-focus host (e.g. `ion-radio` inside an
164
+ * `ion-radio-group`, or an action sheet `<button role="radio">`).
165
+ */
166
+ const getRovingFocusHost = (active) => {
167
+ let n = active;
168
+ while (n) {
169
+ if (isRovingFocusItem(n)) {
170
+ return n;
171
+ }
172
+ const root = n.getRootNode();
173
+ if (root instanceof ShadowRoot && root.host instanceof HTMLElement) {
174
+ n = root.host;
175
+ }
176
+ else {
177
+ return null;
178
+ }
179
+ }
180
+ return null;
181
+ };
182
+ /**
183
+ * Reorders focusables for components that declare an explicit tab order
184
+ * via `data-focus-order`. Elements without the attribute keep their
185
+ * visual order and are visited first. Elements with it are appended
186
+ * afterwards, sorted by ascending numeric value.
187
+ *
188
+ * Example (sheet modal): the options have no order and are visited
189
+ * first in visual order, then the drag handle (`data-focus-order="1"`),
190
+ * then the header Cancel button (`data-focus-order="2"`).
191
+ */
192
+ const applyFocusOrder = (elements) => {
193
+ const sortByVisualPosition = (els) => [...els].sort((a, b) => {
194
+ const ra = a.getBoundingClientRect();
195
+ const rb = b.getBoundingClientRect();
196
+ const topDiff = ra.top - rb.top;
197
+ if (Math.abs(topDiff) > 1) {
198
+ return topDiff;
199
+ }
200
+ return ra.left - rb.left;
201
+ });
202
+ const unordered = elements.filter((el) => !el.matches(FOCUS_ORDER_SELECTOR));
203
+ const ordered = elements
204
+ .filter((el) => el.matches(FOCUS_ORDER_SELECTOR))
205
+ .sort((a, b) => Number(a.getAttribute('data-focus-order')) - Number(b.getAttribute('data-focus-order')));
206
+ return [...sortByVisualPosition(unordered), ...ordered];
207
+ };
208
+ /**
209
+ * Roving-focus members use a tabindex pattern where only one member is
210
+ * tabbable (`tabIndex="0"`) while the others are not (`tabIndex="-1"`).
211
+ * This returns the index of the current tabbable member.
212
+ */
213
+ const getTabbableRovingFocusIndex = (elements, overlay) => {
214
+ return elements.findIndex((el) => {
215
+ return overlay.contains(el) && isRovingFocusItem(el) && el.tabIndex >= 0;
216
+ });
217
+ };
218
+ /**
219
+ * Determines if the overlay's backdrop is always blocking
220
+ * (no background interaction).
251
221
  * Returns false if showBackdrop=false or backdropBreakpoint > 0.
252
222
  */
253
223
  const isBackdropAlwaysBlocking = (el) => {
@@ -356,7 +326,7 @@ const focusElementInOverlay = (hostToFocus, overlay) => {
356
326
  elementToFocus = shadowRoot.querySelector(focusableQueryString) || hostToFocus;
357
327
  }
358
328
  if (elementToFocus) {
359
- helpers.focusVisibleElement(elementToFocus);
329
+ helpers.focusRedirectedElement(elementToFocus);
360
330
  }
361
331
  else {
362
332
  // Focus overlay instead of letting focus escape
@@ -371,7 +341,7 @@ const focusElementInOverlay = (hostToFocus, overlay) => {
371
341
  * Should NOT include: Toast
372
342
  */
373
343
  const trapKeyboardFocus = (ev, doc) => {
374
- const lastOverlay = getPresentedOverlay(doc, NON_TOAST_OVERLAYS);
344
+ const lastOverlay = getPresentedOverlay(doc, OVERLAY_FOCUS_TRAP_SELECTOR);
375
345
  const target = ev.target;
376
346
  /**
377
347
  * If no active overlay, ignore this event.
@@ -554,16 +524,184 @@ const connectListeners = (doc) => {
554
524
  doc.addEventListener('focus', (ev) => {
555
525
  trapKeyboardFocus(ev, doc);
556
526
  }, true);
527
+ /**
528
+ * Remember which roving-focus member last received focus
529
+ * (arrows, click, or Tab). A roving group keeps `tabIndex=0` on a
530
+ * single member (e.g. the checked/first radio), so the Tab trap
531
+ * uses this when wrapping back into the group or focusing its slot.
532
+ */
533
+ doc.addEventListener('focusin', (ev) => {
534
+ const lastOverlay = getPresentedOverlay(doc, OVERLAY_FOCUS_TRAP_SELECTOR);
535
+ if (!lastOverlay || lastOverlay.classList.contains(FOCUS_TRAP_DISABLE_CLASS)) {
536
+ return;
537
+ }
538
+ const target = ev.target;
539
+ if (!(target instanceof HTMLElement)) {
540
+ return;
541
+ }
542
+ const rovingHost = getRovingFocusHost(target);
543
+ if (rovingHost && lastOverlay.contains(rovingHost)) {
544
+ lastOverlay.trapLastRovingFocus = rovingHost;
545
+ }
546
+ }, true);
547
+ // Listen for keydown events to intercept Tab navigation.
548
+ // This is needed for Safari and Firefox which may skip focusable
549
+ // elements or allow focus to escape the overlay.
550
+ // It also ensures proper focus delegation for shadow DOM elements
551
+ // like ion-textarea.
552
+ doc.addEventListener('keydown', (ev) => {
553
+ if (ev.key !== 'Tab' && ev.key !== 'Alt+Tab')
554
+ return;
555
+ const lastOverlay = getPresentedOverlay(doc, OVERLAY_FOCUS_TRAP_SELECTOR);
556
+ if (!lastOverlay || lastOverlay.classList.contains(FOCUS_TRAP_DISABLE_CLASS))
557
+ return;
558
+ const activeElement = getActiveElement(doc);
559
+ if (activeElement === lastOverlay) {
560
+ ev.preventDefault();
561
+ focusFirstDescendant(lastOverlay);
562
+ return;
563
+ }
564
+ // Check if activeElement is inside the overlay (including shadow DOM)
565
+ const isInsideOverlay = activeElement
566
+ ? lastOverlay.contains(activeElement) ||
567
+ (activeElement.getRootNode() instanceof ShadowRoot &&
568
+ lastOverlay.contains(activeElement.getRootNode().host)) ||
569
+ (lastOverlay.shadowRoot?.contains(activeElement) ?? false)
570
+ : false;
571
+ if (!isInsideOverlay)
572
+ return;
573
+ // Get all focusable elements from both light and shadow DOM
574
+ let allFocusable = [
575
+ ...lastOverlay.querySelectorAll(focusableQueryString),
576
+ ...(lastOverlay.shadowRoot?.querySelectorAll(focusableQueryString) || []),
577
+ ];
578
+ /**
579
+ * Some elements match `focusableQueryString` but are not
580
+ * intended tab stops (e.g. the `ion-item` wrappers a select
581
+ * modal renders around its options). Components opt these out
582
+ * with `data-focus-ignore` so Tab can move between the real
583
+ * controls.
584
+ */
585
+ allFocusable = allFocusable.filter((el) => !el.matches(FOCUS_IGNORE_SELECTOR));
586
+ /**
587
+ * A roving-focus group is a single tab stop: only its currently
588
+ * tabbable member (`tabIndex >= 0`) participates. Other
589
+ * focusables inside the group are not independent tab stops —
590
+ * this includes inactive members and focusable wrappers such as
591
+ * the `ion-item` that carries `ion-focusable` on behalf of a
592
+ * radio. Drop them so Tab moves between the group and the
593
+ * surrounding controls (e.g. the handle), not into the wrappers.
594
+ */
595
+ allFocusable = allFocusable.filter((el) => !isRovingFocusItem(el) || el.tabIndex >= 0);
596
+ /**
597
+ * When a component declares an explicit tab order via
598
+ * `data-focus-order` (e.g. a sheet modal's handle and Cancel
599
+ * button), reorder accordingly. Overlays that declare no order
600
+ * keep their DOM order.
601
+ */
602
+ if (allFocusable.some((el) => el.matches(FOCUS_ORDER_SELECTOR))) {
603
+ allFocusable = applyFocusOrder(allFocusable);
604
+ }
605
+ if (allFocusable.length === 0) {
606
+ ev.preventDefault();
607
+ return;
608
+ }
609
+ // Find current element's index (accounting for shadow DOM)
610
+ let currentIndex = activeElement
611
+ ? allFocusable.findIndex((el) => {
612
+ if (el === activeElement)
613
+ return true;
614
+ if (el.shadowRoot?.contains(activeElement))
615
+ return true;
616
+ const rootNode = activeElement.getRootNode();
617
+ return rootNode instanceof ShadowRoot && rootNode.host === el;
618
+ })
619
+ : -1;
620
+ /**
621
+ * A roving-focus group keeps `tabIndex=0` on a single member
622
+ * while the others are `-1`. Arrow keys can move focus onto a
623
+ * `tabIndex=-1` member, which `focusableQueryString` excludes,
624
+ * so `findIndex` yields -1 and Tab would wrap to
625
+ * `allFocusable[0]`. Treat focus on any group member as the
626
+ * group's tabbable slot so Tab goes to the next control (e.g.
627
+ * handle → Cancel), not back to the first member.
628
+ */
629
+ if (currentIndex < 0 && activeElement) {
630
+ const rovingHost = getRovingFocusHost(activeElement);
631
+ if (rovingHost && lastOverlay.contains(rovingHost)) {
632
+ const directIndex = allFocusable.indexOf(rovingHost);
633
+ if (directIndex >= 0) {
634
+ currentIndex = directIndex;
635
+ }
636
+ else {
637
+ const tabbableIndex = getTabbableRovingFocusIndex(allFocusable, lastOverlay);
638
+ if (tabbableIndex >= 0) {
639
+ currentIndex = tabbableIndex;
640
+ }
641
+ }
642
+ }
643
+ }
644
+ ev.preventDefault();
645
+ // Helper to focus an element, handling shadow DOM properly
646
+ const focusElement = (element) => {
647
+ const shadowRoot = element.shadowRoot;
648
+ if (shadowRoot) {
649
+ const innerFocusable = shadowRoot.querySelector(focusableQueryString);
650
+ if (innerFocusable && typeof element.setFocus !== 'function') {
651
+ helpers.focusVisibleElement(innerFocusable);
652
+ return;
653
+ }
654
+ }
655
+ helpers.focusVisibleElement(element);
656
+ };
657
+ let nextIndex;
658
+ if (ev.shiftKey) {
659
+ // Shift+Tab: previous element, wrap to last if at first
660
+ if (currentIndex <= 0) {
661
+ nextIndex = allFocusable.length - 1;
662
+ }
663
+ else {
664
+ nextIndex = currentIndex - 1;
665
+ }
666
+ }
667
+ else {
668
+ // Tab: next element, wrap to first if at last
669
+ if (currentIndex < 0 || currentIndex >= allFocusable.length - 1) {
670
+ nextIndex = 0;
671
+ }
672
+ else {
673
+ nextIndex = currentIndex + 1;
674
+ }
675
+ }
676
+ const nextEl = allFocusable[nextIndex];
677
+ const overlayTrap = lastOverlay;
678
+ const tabbableRovingIndex = getTabbableRovingFocusIndex(allFocusable, lastOverlay);
679
+ /**
680
+ * The trap list only includes one tabbable member of a roving
681
+ * group (`tabIndex >= 0`), usually the checked/first radio.
682
+ * `focusin` tracks the real last-focused member. Use it whenever
683
+ * Tab would focus that slot (wrap from Cancel, Shift+Tab from
684
+ * handle, etc.).
685
+ */
686
+ let focusTarget = nextEl;
687
+ if (tabbableRovingIndex >= 0 && nextIndex === tabbableRovingIndex) {
688
+ const saved = overlayTrap.trapLastRovingFocus;
689
+ if (saved?.isConnected && lastOverlay.contains(saved) && saved !== nextEl) {
690
+ focusTarget = saved;
691
+ }
692
+ }
693
+ focusElement(focusTarget);
694
+ }, true);
557
695
  /**
558
696
  * Whether the overlay actually dismisses is checked at press time,
559
697
  * since `backdropDismiss` can change while it's open.
560
698
  */
561
- addCloseWatcherCondition(() => getPresentedOverlay(doc, NON_TOAST_OVERLAYS) !== undefined);
699
+ ionicGlobal.addCloseWatcherCondition(() => getPresentedOverlay(doc, NON_TOAST_OVERLAYS) !== undefined);
562
700
  // handle back-button click
563
701
  doc.addEventListener('ionBackButton', (ev) => {
564
702
  const lastOverlay = getPresentedOverlay(doc);
565
703
  if (lastOverlay?.backdropDismiss) {
566
- ev.detail.register(OVERLAY_BACK_BUTTON_PRIORITY, () => {
704
+ ev.detail.register(ionicGlobal.OVERLAY_BACK_BUTTON_PRIORITY, () => {
567
705
  /**
568
706
  * Do not return this promise otherwise
569
707
  * the hardware back button utility will
@@ -586,7 +724,7 @@ const connectListeners = (doc) => {
586
724
  * this behavior will be handled via the ionBackButton
587
725
  * event.
588
726
  */
589
- if (!shouldUseCloseWatcher()) {
727
+ if (!ionicGlobal.shouldUseCloseWatcher()) {
590
728
  doc.addEventListener('keydown', (ev) => {
591
729
  if (ev.key === 'Escape') {
592
730
  const lastOverlay = getPresentedOverlay(doc);
@@ -692,7 +830,7 @@ const cleanupRootFocusTrapAccessibility = () => {
692
830
  if (typeof document === 'undefined') {
693
831
  return;
694
832
  }
695
- updateCloseWatcher();
833
+ ionicGlobal.updateCloseWatcher();
696
834
  const remainingOverlays = getPresentedOverlays(document);
697
835
  const hasRemainingLocking = remainingOverlays.some((o) => locksAppRoot(o));
698
836
  if (!hasRemainingLocking) {
@@ -726,14 +864,14 @@ const restoreRootFocusTrapAccessibility = (overlayEl) => {
726
864
  if (typeof document === 'undefined') {
727
865
  return;
728
866
  }
729
- updateCloseWatcher();
867
+ ionicGlobal.updateCloseWatcher();
730
868
  const el = overlayEl;
731
869
  if (!locksAppRoot(el)) {
732
870
  return;
733
871
  }
734
872
  applyRootLock(el);
735
873
  };
736
- const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts) => {
874
+ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, ionicEnterAnimation, opts) => {
737
875
  if (overlay.presented) {
738
876
  return;
739
877
  }
@@ -765,11 +903,15 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
765
903
  applyRootLock(overlayEl);
766
904
  }
767
905
  overlay.willPresentShorthand?.emit();
906
+ const theme = ionicGlobal.getIonTheme(overlay);
768
907
  const mode = ionicGlobal.getIonMode(overlay);
908
+ const selectedAnimation = mode === 'ios'
909
+ ? iosEnterAnimation
910
+ : theme === 'ionic' && ionicEnterAnimation
911
+ ? ionicEnterAnimation
912
+ : mdEnterAnimation;
769
913
  // get the user's animation fn if one was provided
770
- const animationBuilder = overlay.enterAnimation
771
- ? overlay.enterAnimation
772
- : index.config.get(name, mode === 'ios' ? iosEnterAnimation : mdEnterAnimation);
914
+ const animationBuilder = overlay.enterAnimation ? overlay.enterAnimation : index.config.get(name, selectedAnimation);
773
915
  const completed = await overlayAnimation(overlay, animationBuilder, overlay.el, opts);
774
916
  if (completed) {
775
917
  overlay.didPresent.emit();
@@ -877,7 +1019,7 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
877
1019
  if (!overlay.presented) {
878
1020
  return false;
879
1021
  }
880
- const presentedOverlays = helpers.doc !== undefined ? getPresentedOverlays(helpers.doc) : [];
1022
+ const presentedOverlays = index$1.doc !== undefined ? getPresentedOverlays(index$1.doc) : [];
881
1023
  /**
882
1024
  * For accessibility, toasts lack focus traps and don't receive
883
1025
  * `aria-hidden` on the root element when presented.
@@ -944,11 +1086,12 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
944
1086
  * Release the back button if nothing
945
1087
  * else is left to close.
946
1088
  */
947
- updateCloseWatcher();
1089
+ ionicGlobal.updateCloseWatcher();
948
1090
  return true;
949
1091
  };
950
1092
  const getAppRoot = (doc) => {
951
- return doc.querySelector('ion-app') || doc.body;
1093
+ const appRootSelector = index.config.get('appRootSelector', 'ion-app');
1094
+ return doc.querySelector(appRootSelector) || doc.body;
952
1095
  };
953
1096
  const overlayAnimation = async (overlay, animationBuilder, baseEl, opts) => {
954
1097
  // Make overlay visible in case it's hidden
@@ -958,7 +1101,7 @@ const overlayAnimation = async (overlay, animationBuilder, baseEl, opts) => {
958
1101
  * as presented, so back can dismiss it while it
959
1102
  * animates in.
960
1103
  */
961
- updateCloseWatcher();
1104
+ ionicGlobal.updateCloseWatcher();
962
1105
  const aniRoot = overlay.el;
963
1106
  const animation = animationBuilder(aniRoot, opts);
964
1107
  if (!overlay.animated || !index.config.getBoolean('animated', true)) {
@@ -1185,10 +1328,8 @@ const FOCUS_TRAP_DISABLE_CLASS = 'ion-disable-focus-trap';
1185
1328
  exports.BACKDROP = BACKDROP;
1186
1329
  exports.FOCUS_TRAP_DISABLE_CLASS = FOCUS_TRAP_DISABLE_CLASS;
1187
1330
  exports.GESTURE = GESTURE;
1188
- exports.MENU_BACK_BUTTON_PRIORITY = MENU_BACK_BUTTON_PRIORITY;
1189
1331
  exports.OVERLAY_GESTURE_PRIORITY = OVERLAY_GESTURE_PRIORITY;
1190
1332
  exports.actionSheetController = actionSheetController;
1191
- exports.addCloseWatcherCondition = addCloseWatcherCondition;
1192
1333
  exports.alertController = alertController;
1193
1334
  exports.cleanupRootFocusTrapAccessibility = cleanupRootFocusTrapAccessibility;
1194
1335
  exports.createDelegateController = createDelegateController;
@@ -1199,7 +1340,6 @@ exports.focusFirstDescendant = focusFirstDescendant;
1199
1340
  exports.focusLastDescendant = focusLastDescendant;
1200
1341
  exports.getOverlaySizeType = getOverlaySizeType;
1201
1342
  exports.getPresentedOverlay = getPresentedOverlay;
1202
- exports.hardwareBackButton = hardwareBackButton;
1203
1343
  exports.isCancel = isCancel;
1204
1344
  exports.loadingController = loadingController;
1205
1345
  exports.modalController = modalController;
@@ -1209,6 +1349,4 @@ exports.present = present;
1209
1349
  exports.restoreRootFocusTrapAccessibility = restoreRootFocusTrapAccessibility;
1210
1350
  exports.safeCall = safeCall;
1211
1351
  exports.setOverlayId = setOverlayId;
1212
- exports.shouldUseCloseWatcher = shouldUseCloseWatcher;
1213
1352
  exports.toastController = toastController;
1214
- exports.updateCloseWatcher = updateCloseWatcher;