@ionic/core 8.8.7-dev.11779467048.1641d05e → 8.8.7-dev.11779921691.1777274a

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 (889) 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.js +1 -1
  27. package/components/ion-fab-button.js +1 -1
  28. package/components/ion-fab-list.js +1 -1
  29. package/components/ion-fab.js +1 -1
  30. package/components/ion-footer.js +1 -1
  31. package/components/ion-grid.js +1 -1
  32. package/components/ion-header.js +1 -1
  33. package/components/ion-icon.js +1 -1
  34. package/components/ion-img.js +1 -1
  35. package/components/ion-infinite-scroll-content.js +1 -1
  36. package/components/ion-infinite-scroll.js +1 -1
  37. package/components/ion-input-otp.js +1 -1
  38. package/components/ion-input-password-toggle.js +1 -1
  39. package/components/ion-input.js +1 -1
  40. package/components/ion-item-divider.js +1 -1
  41. package/components/ion-item-group.js +1 -1
  42. package/components/ion-item-option.js +1 -1
  43. package/components/ion-item-options.js +1 -1
  44. package/components/ion-item-sliding.js +1 -1
  45. package/components/ion-item.js +1 -1
  46. package/components/ion-label.js +1 -1
  47. package/components/ion-list-header.js +1 -1
  48. package/components/ion-list.js +1 -1
  49. package/components/ion-loading.js +1 -1
  50. package/components/ion-menu-button.js +1 -1
  51. package/components/ion-menu-toggle.js +1 -1
  52. package/components/ion-menu.js +1 -1
  53. package/components/ion-modal.js +1 -1
  54. package/components/ion-nav-link.js +1 -1
  55. package/components/ion-nav.js +1 -1
  56. package/components/ion-note.js +1 -1
  57. package/components/ion-picker-column-option.js +1 -1
  58. package/components/ion-picker-column.js +1 -1
  59. package/components/ion-picker-legacy-column.js +1 -1
  60. package/components/ion-picker-legacy.js +1 -1
  61. package/components/ion-picker.js +1 -1
  62. package/components/ion-popover.js +1 -1
  63. package/components/ion-progress-bar.js +1 -1
  64. package/components/ion-radio-group.js +1 -1
  65. package/components/ion-radio.js +1 -1
  66. package/components/ion-range.js +1 -1
  67. package/components/ion-refresher-content.js +1 -1
  68. package/components/ion-refresher.js +1 -1
  69. package/components/ion-reorder-group.js +1 -1
  70. package/components/ion-reorder.js +1 -1
  71. package/components/ion-ripple-effect.js +1 -1
  72. package/components/ion-route-redirect.js +1 -1
  73. package/components/ion-route.js +1 -1
  74. package/components/ion-router-link.js +1 -1
  75. package/components/ion-router-outlet.js +1 -1
  76. package/components/ion-router.js +1 -1
  77. package/components/ion-row.js +1 -1
  78. package/components/ion-searchbar.js +1 -1
  79. package/components/ion-segment-button.js +1 -1
  80. package/components/ion-segment-content.js +1 -1
  81. package/components/ion-segment-view.js +1 -1
  82. package/components/ion-segment.js +1 -1
  83. package/components/ion-select-modal.js +1 -1
  84. package/components/ion-select-option.js +1 -1
  85. package/components/ion-select-popover.js +1 -1
  86. package/components/ion-select.js +1 -1
  87. package/components/ion-skeleton-text.js +1 -1
  88. package/components/ion-spinner.js +1 -1
  89. package/components/ion-split-pane.js +1 -1
  90. package/components/ion-tab-bar.js +1 -1
  91. package/components/ion-tab-button.js +1 -1
  92. package/components/ion-tab.js +1 -1
  93. package/components/ion-tabs.js +1 -1
  94. package/components/ion-text.js +1 -1
  95. package/components/ion-textarea.js +1 -1
  96. package/components/ion-thumbnail.js +1 -1
  97. package/components/ion-title.js +1 -1
  98. package/components/ion-toast.js +1 -1
  99. package/components/ion-toggle.js +1 -1
  100. package/components/ion-toolbar.js +1 -1
  101. package/components/p-0sJvNkUu.js +4 -0
  102. package/components/{p-BcbmT6b3.js → p-7nmSk-Eb.js} +1 -1
  103. package/components/p-B1O3xdmF.js +4 -0
  104. package/components/p-BBB8g5Ql.js +4 -0
  105. package/components/p-BF7rwwG7.js +4 -0
  106. package/components/p-BHffbls9.js +4 -0
  107. package/components/p-BKBdJW0R.js +4 -0
  108. package/components/p-BKGLpdvY.js +4 -0
  109. package/components/p-BRrh2GWk.js +4 -0
  110. package/components/{p-BFCM_1oE.js → p-BTWFHAhB.js} +1 -1
  111. package/components/p-BVOTx9Tr.js +4 -0
  112. package/components/p-BVbPiSCE.js +4 -0
  113. package/components/p-BVgmZpV7.js +4 -0
  114. package/components/{p-CIoAIKEr.js → p-B_4LVR66.js} +1 -1
  115. package/components/p-BbwW7nXw.js +4 -0
  116. package/components/p-BePFSJjb.js +4 -0
  117. package/components/{p-zWP0sUV_.js → p-BilWM2xi.js} +1 -1
  118. package/components/p-Bnkcvm0_.js +4 -0
  119. package/components/p-Bp4m7lZT.js +4 -0
  120. package/components/p-BuQDh8MN.js +4 -0
  121. package/components/p-C4Uuc-Js.js +4 -0
  122. package/components/p-CF0UKsA-.js +4 -0
  123. package/components/p-CMETcSJz.js +4 -0
  124. package/components/p-CTDfzuym.js +4 -0
  125. package/components/p-CZwQlWO7.js +4 -0
  126. package/components/p-CkS5LcG3.js +4 -0
  127. package/components/p-CrC3J6IY.js +4 -0
  128. package/components/p-D9SzdDbV.js +4 -0
  129. package/components/p-DCoLfY48.js +4 -0
  130. package/components/p-DGHsHldT.js +4 -0
  131. package/components/p-DK2cppki.js +4 -0
  132. package/components/p-DMwGijtW.js +4 -0
  133. package/components/p-DPLIhs_Y.js +4 -0
  134. package/components/p-DRj_omR8.js +4 -0
  135. package/components/p-DWBdx_rf.js +4 -0
  136. package/{dist/ionic/p-CbkICFBN.js → components/p-DXBx6hf_.js} +1 -1
  137. package/components/p-DZwp0os_.js +4 -0
  138. package/components/{p-BErKjY03.js → p-DbQt4Kex.js} +1 -1
  139. package/components/p-DbrEqORq.js +4 -0
  140. package/{dist/ionic/p-C8IHbcuP.js → components/p-Dh41Mgrr.js} +1 -1
  141. package/components/p-Dh8YROlw.js +4 -0
  142. package/components/{p-lIOqnNXn.js → p-Dmd-3R4x.js} +1 -1
  143. package/components/p-DqL8Jl6C.js +4 -0
  144. package/components/p-DuOk1CH-.js +4 -0
  145. package/components/p-Op_wuLsj.js +4 -0
  146. package/components/p-SikZM1Bp.js +4 -0
  147. package/components/p-f1voQRQ1.js +4 -0
  148. package/components/p-fkeHL2Sd.js +4 -0
  149. package/components/p-gKV0T98m.js +4 -0
  150. package/components/{p-C8ktKu9j.js → p-jgONJj5a.js} +1 -1
  151. package/components/p-k6-su0sW.js +4 -0
  152. package/components/p-l7FroJh2.js +4 -0
  153. package/components/p-nFFDLHOE.js +4 -0
  154. package/components/p-pdE-O9G9.js +4 -0
  155. package/{dist/ionic/p-CWJdc8f_.js → components/p-u-SCu4et.js} +1 -1
  156. package/css/core.css +1 -1
  157. package/css/core.css.map +1 -1
  158. package/css/display.css.map +1 -1
  159. package/css/flex-utils.css.map +1 -1
  160. package/css/float-elements.css.map +1 -1
  161. package/css/global.bundle.css +1 -1
  162. package/css/global.bundle.css.map +1 -1
  163. package/css/ionic/bundle.ionic.css +1 -1
  164. package/css/ionic/bundle.ionic.css.map +1 -1
  165. package/css/ionic/core.ionic.css +1 -1
  166. package/css/ionic/core.ionic.css.map +1 -1
  167. package/css/ionic/global.bundle.ionic.css +1 -1
  168. package/css/ionic/global.bundle.ionic.css.map +1 -1
  169. package/css/ionic/link.ionic.css.map +1 -1
  170. package/css/ionic/structure.ionic.css.map +1 -1
  171. package/css/ionic/typography.ionic.css +1 -1
  172. package/css/ionic/typography.ionic.css.map +1 -1
  173. package/css/ionic/utils.bundle.ionic.css.map +1 -1
  174. package/css/ionic.bundle.css +1 -1
  175. package/css/ionic.bundle.css.map +1 -1
  176. package/css/padding.css.map +1 -1
  177. package/css/palettes/dark.always.css +1 -1
  178. package/css/palettes/dark.always.css.map +1 -1
  179. package/css/palettes/dark.class.css +1 -1
  180. package/css/palettes/dark.class.css.map +1 -1
  181. package/css/palettes/dark.system.css +1 -1
  182. package/css/palettes/dark.system.css.map +1 -1
  183. package/css/palettes/high-contrast-dark.always.css +1 -1
  184. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  185. package/css/palettes/high-contrast-dark.class.css +1 -1
  186. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  187. package/css/palettes/high-contrast-dark.system.css +1 -1
  188. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  189. package/css/palettes/high-contrast.always.css +1 -1
  190. package/css/palettes/high-contrast.always.css.map +1 -1
  191. package/css/palettes/high-contrast.class.css +1 -1
  192. package/css/palettes/high-contrast.class.css.map +1 -1
  193. package/css/palettes/high-contrast.system.css +1 -1
  194. package/css/palettes/high-contrast.system.css.map +1 -1
  195. package/css/structure.css.map +1 -1
  196. package/css/text-alignment.css.map +1 -1
  197. package/css/text-transformation.css.map +1 -1
  198. package/css/typography.css +1 -1
  199. package/css/typography.css.map +1 -1
  200. package/css/utils.bundle.css.map +1 -1
  201. package/dist/cjs/{animation-DknMeJ3x.js → animation-CoqRs93a.js} +3 -3
  202. package/dist/cjs/{app-globals-DtAeky3x.js → app-globals-CzPyigGz.js} +1 -1
  203. package/dist/cjs/badge-position-DFPHXWP9.js +176 -0
  204. package/dist/cjs/{button-active-JoIWyYri.js → button-active-lwEZiey1.js} +4 -4
  205. package/dist/cjs/{capacitor-BnRBm_ys.js → capacitor-F7SUc7Ly.js} +1 -1
  206. package/dist/cjs/{data-DuOuKG7I.js → data-BsQBKyvn.js} +3 -3
  207. package/dist/cjs/{framework-delegate-Dx9FrqAC.js → framework-delegate-C1LqXDzY.js} +4 -5
  208. package/dist/cjs/{haptic-D3Ay9mmg.js → haptic-CBZc4WH_.js} +1 -1
  209. package/dist/cjs/{index-CzcLEdQ5.js → index-BDthk8R7.js} +1885 -0
  210. package/dist/cjs/{index-BJlwOs11.js → index-BbhXd9Zs.js} +2 -2
  211. package/dist/cjs/{index-DMJjUhXH.js → index-Cbme57mm.js} +3 -5
  212. package/dist/cjs/{index-BJrpF9T3.js → index-DhXmkpe3.js} +3 -4
  213. package/dist/cjs/{index-Cer2Qy4I.js → index-HkS255C9.js} +6 -7
  214. package/dist/cjs/{index-D_mPAIqF.js → index-cV9SaEZV.js} +11 -12
  215. package/dist/cjs/index.cjs.js +15 -18
  216. package/dist/cjs/{input-shims-Dn33gFln.js → input-shims-eCRI_jn9.js} +15 -17
  217. package/dist/cjs/{input.utils-DnVnhWEF.js → input.utils-CvLAucXh.js} +4 -5
  218. package/dist/cjs/ion-accordion_2.cjs.entry.js +31 -34
  219. package/dist/cjs/ion-action-sheet.cjs.entry.js +34 -37
  220. package/dist/cjs/ion-alert.cjs.entry.js +44 -47
  221. package/dist/cjs/ion-app_8.cjs.entry.js +115 -116
  222. package/dist/cjs/ion-avatar_3.cjs.entry.js +66 -86
  223. package/dist/cjs/ion-back-button.cjs.entry.js +19 -22
  224. package/dist/cjs/ion-backdrop.cjs.entry.js +5 -5
  225. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +36 -39
  226. package/dist/cjs/ion-button_2.cjs.entry.js +54 -34
  227. package/dist/cjs/ion-card_5.cjs.entry.js +36 -39
  228. package/dist/cjs/ion-checkbox.cjs.entry.js +23 -26
  229. package/dist/cjs/ion-chip.cjs.entry.js +51 -51
  230. package/dist/cjs/ion-col_3.cjs.entry.js +14 -16
  231. package/dist/cjs/ion-datetime-button.cjs.entry.js +19 -22
  232. package/dist/cjs/ion-datetime_3.cjs.entry.js +123 -126
  233. package/dist/cjs/ion-divider.cjs.entry.js +5 -5
  234. package/dist/cjs/ion-fab_3.cjs.entry.js +27 -30
  235. package/dist/cjs/ion-img.cjs.entry.js +10 -12
  236. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +25 -27
  237. package/dist/cjs/ion-input-otp.cjs.entry.js +19 -22
  238. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +16 -17
  239. package/dist/cjs/ion-input.cjs.entry.js +42 -45
  240. package/dist/cjs/ion-item-option_3.cjs.entry.js +66 -319
  241. package/dist/cjs/ion-item_8.cjs.entry.js +71 -83
  242. package/dist/cjs/ion-loading.cjs.entry.js +27 -30
  243. package/dist/cjs/ion-menu_3.cjs.entry.js +55 -58
  244. package/dist/cjs/ion-modal.cjs.entry.js +71 -74
  245. package/dist/cjs/ion-nav_2.cjs.entry.js +41 -43
  246. package/dist/cjs/ion-picker-column-option.cjs.entry.js +9 -12
  247. package/dist/cjs/ion-picker-column.cjs.entry.js +14 -17
  248. package/dist/cjs/ion-picker.cjs.entry.js +9 -11
  249. package/dist/cjs/ion-popover.cjs.entry.js +36 -39
  250. package/dist/cjs/ion-progress-bar.cjs.entry.js +28 -41
  251. package/dist/cjs/ion-radio_2.cjs.entry.js +31 -34
  252. package/dist/cjs/ion-range.cjs.entry.js +50 -53
  253. package/dist/cjs/ion-refresher_2.cjs.entry.js +65 -67
  254. package/dist/cjs/ion-reorder_2.cjs.entry.js +23 -25
  255. package/dist/cjs/ion-ripple-effect.cjs.entry.js +7 -7
  256. package/dist/cjs/ion-route_4.cjs.entry.js +36 -39
  257. package/dist/cjs/ion-searchbar.cjs.entry.js +38 -41
  258. package/dist/cjs/ion-segment-content.cjs.entry.js +3 -3
  259. package/dist/cjs/ion-segment-view.cjs.entry.js +6 -6
  260. package/dist/cjs/ion-segment_2.cjs.entry.js +35 -38
  261. package/dist/cjs/ion-select-modal.cjs.entry.js +26 -29
  262. package/dist/cjs/ion-select_3.cjs.entry.js +74 -77
  263. package/dist/cjs/ion-spinner.cjs.entry.js +26 -41
  264. package/dist/cjs/ion-split-pane.cjs.entry.js +12 -13
  265. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +90 -34
  266. package/dist/cjs/ion-tab_2.cjs.entry.js +27 -27
  267. package/dist/cjs/ion-text.cjs.entry.js +7 -8
  268. package/dist/cjs/ion-textarea.cjs.entry.js +35 -38
  269. package/dist/cjs/ion-toast.cjs.entry.js +41 -44
  270. package/dist/cjs/ion-toggle.cjs.entry.js +33 -36
  271. package/dist/cjs/{ionic-global-CSEbHD_F.js → ionic-global-DMWqcBn0.js} +240 -108
  272. package/dist/cjs/ionic.cjs.js +7 -7
  273. package/dist/cjs/{ios.transition-UCjoxA3D.js → ios.transition-DcJ6Bw2k.js} +4 -6
  274. package/dist/cjs/{keyboard-Bhav6x-R.js → keyboard-BCj7bSvQ.js} +4 -4
  275. package/dist/cjs/{keyboard-Dsczf-iT.js → keyboard-Jy7okGc5.js} +1 -1
  276. package/dist/cjs/{keyboard-controller-tqGDP9SU.js → keyboard-controller-CPJ4vSr0.js} +4 -4
  277. package/dist/cjs/loader.cjs.js +5 -5
  278. package/dist/cjs/{md.transition-CNwlchQn.js → md.transition-DAjf1hlJ.js} +4 -6
  279. package/dist/cjs/{notch-controller-CgtkBzy0.js → notch-controller-gGuWI1C7.js} +3 -3
  280. package/dist/cjs/{overlays-C54DhaTC.js → overlays-H4z8xPi9.js} +28 -206
  281. package/dist/cjs/{select-option-render-C7klBX2H.js → select-option-render-CZtiyFs7.js} +8 -8
  282. package/dist/cjs/{status-tap-CTY2dMsZ.js → status-tap-CPZvSRKr.js} +7 -9
  283. package/dist/cjs/{swipe-back-jJFi5KCB.js → swipe-back-CMubrxt-.js} +2 -4
  284. package/dist/collection/collection-manifest.json +0 -6
  285. package/dist/collection/components/action-sheet/action-sheet.ionic.css +2 -4
  286. package/dist/collection/components/action-sheet/action-sheet.ios.css +9 -10
  287. package/dist/collection/components/action-sheet/action-sheet.md.css +2 -3
  288. package/dist/collection/components/alert/alert.ionic.css +20 -22
  289. package/dist/collection/components/alert/alert.ios.css +13 -15
  290. package/dist/collection/components/alert/alert.md.css +19 -20
  291. package/dist/collection/components/avatar/avatar.ionic.css +0 -94
  292. package/dist/collection/components/avatar/avatar.js +22 -7
  293. package/dist/collection/components/avatar/avatar.md.css +0 -16
  294. package/dist/collection/components/back-button/back-button.ios.css +1 -1
  295. package/dist/collection/components/back-button/back-button.js +2 -2
  296. package/dist/collection/components/badge/badge.css +256 -0
  297. package/dist/collection/components/badge/badge.interfaces.js +7 -0
  298. package/dist/collection/components/badge/badge.js +72 -76
  299. package/dist/collection/components/breadcrumb/breadcrumb.ios.css +9 -9
  300. package/dist/collection/components/breadcrumb/breadcrumb.js +2 -2
  301. package/dist/collection/components/breadcrumb/breadcrumb.md.css +9 -9
  302. package/dist/collection/components/button/button.ionic.css +18 -68
  303. package/dist/collection/components/button/button.ios.css +17 -32
  304. package/dist/collection/components/button/button.js +27 -5
  305. package/dist/collection/components/button/button.md.css +16 -31
  306. package/dist/collection/components/card/card.ios.css +1 -1
  307. package/dist/collection/components/card/card.js +2 -2
  308. package/dist/collection/components/card/card.md.css +1 -1
  309. package/dist/collection/components/card-subtitle/card-subtitle.ios.css +1 -1
  310. package/dist/collection/components/card-subtitle/card-subtitle.md.css +1 -1
  311. package/dist/collection/components/card-title/card-title.md.css +1 -1
  312. package/dist/collection/components/checkbox/checkbox.ios.css +5 -5
  313. package/dist/collection/components/checkbox/checkbox.md.css +5 -5
  314. package/dist/collection/components/chip/chip.css +406 -0
  315. package/dist/collection/components/chip/chip.js +111 -57
  316. package/dist/collection/components/col/col.js +2 -3
  317. package/dist/collection/components/content/content.css +66 -126
  318. package/dist/collection/components/content/content.js +25 -24
  319. package/dist/collection/components/datetime/datetime.ios.css +8 -8
  320. package/dist/collection/components/datetime/datetime.md.css +7 -7
  321. package/dist/collection/components/datetime-button/datetime-button.ios.css +2 -2
  322. package/dist/collection/components/datetime-button/datetime-button.md.css +1 -1
  323. package/dist/collection/components/fab-button/fab-button.ios.css +17 -17
  324. package/dist/collection/components/fab-button/fab-button.js +2 -2
  325. package/dist/collection/components/fab-button/fab-button.md.css +6 -6
  326. package/dist/collection/components/grid/grid.js +2 -2
  327. package/dist/collection/components/header/header.js +2 -2
  328. package/dist/collection/components/img/img.js +2 -2
  329. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  330. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +3 -3
  331. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  332. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +3 -3
  333. package/dist/collection/components/input/input.ios.css +7 -7
  334. package/dist/collection/components/input/input.js +6 -6
  335. package/dist/collection/components/input/input.md.css +15 -15
  336. package/dist/collection/components/input-otp/input-otp.ionic.css +2 -2
  337. package/dist/collection/components/input-otp/input-otp.ios.css +16 -16
  338. package/dist/collection/components/input-otp/input-otp.js +3 -3
  339. package/dist/collection/components/input-otp/input-otp.md.css +16 -16
  340. package/dist/collection/components/input-password-toggle/input-password-toggle.js +3 -3
  341. package/dist/collection/components/item/item.ios.css +1 -1
  342. package/dist/collection/components/item/item.js +2 -2
  343. package/dist/collection/components/item/item.md.css +2 -2
  344. package/dist/collection/components/item-divider/item-divider.css +351 -0
  345. package/dist/collection/components/item-divider/item-divider.js +6 -13
  346. package/dist/collection/components/item-group/item-group.js +1 -1
  347. package/dist/collection/components/item-option/item-option.ionic.css +8 -8
  348. package/dist/collection/components/item-option/item-option.ios.css +3 -3
  349. package/dist/collection/components/item-option/item-option.js +2 -2
  350. package/dist/collection/components/item-option/item-option.md.css +2 -2
  351. package/dist/collection/components/item-options/item-options.ios.css +1 -1
  352. package/dist/collection/components/item-options/item-options.js +1 -1
  353. package/dist/collection/components/item-options/item-options.md.css +1 -1
  354. package/dist/collection/components/item-sliding/{item-sliding.native.css → item-sliding.css} +9 -78
  355. package/dist/collection/components/item-sliding/item-sliding.js +38 -284
  356. package/dist/collection/components/label/label.ios.css +1 -1
  357. package/dist/collection/components/label/label.js +2 -2
  358. package/dist/collection/components/label/label.md.css +2 -2
  359. package/dist/collection/components/list/list.js +1 -1
  360. package/dist/collection/components/list-header/list-header.ios.css +2 -2
  361. package/dist/collection/components/list-header/list-header.js +2 -2
  362. package/dist/collection/components/list-header/list-header.md.css +1 -1
  363. package/dist/collection/components/loading/loading.ios.css +2 -2
  364. package/dist/collection/components/loading/loading.js +2 -2
  365. package/dist/collection/components/loading/loading.md.css +3 -3
  366. package/dist/collection/components/menu/menu.js +2 -2
  367. package/dist/collection/components/menu-button/menu-button.ios.css +1 -1
  368. package/dist/collection/components/menu-button/menu-button.js +2 -2
  369. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  370. package/dist/collection/components/modal/modal.ios.css +1 -1
  371. package/dist/collection/components/modal/modal.js +4 -4
  372. package/dist/collection/components/modal/modal.md.css +1 -1
  373. package/dist/collection/components/nav/nav.js +3 -3
  374. package/dist/collection/components/nav-link/nav-link.js +1 -1
  375. package/dist/collection/components/note/note.ios.css +1 -1
  376. package/dist/collection/components/note/note.js +2 -2
  377. package/dist/collection/components/note/note.md.css +1 -1
  378. package/dist/collection/components/picker/picker.ios.css +1 -1
  379. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  380. package/dist/collection/components/picker-legacy/picker.ios.css +2 -2
  381. package/dist/collection/components/picker-legacy/picker.js +2 -2
  382. package/dist/collection/components/picker-legacy/picker.md.css +4 -4
  383. package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
  384. package/dist/collection/components/picker-legacy-column/picker-column.md.css +1 -1
  385. package/dist/collection/components/popover/popover.ios.css +1 -1
  386. package/dist/collection/components/popover/popover.js +2 -2
  387. package/dist/collection/components/progress-bar/progress-bar.css +281 -0
  388. package/dist/collection/components/progress-bar/progress-bar.interfaces.js +4 -0
  389. package/dist/collection/components/progress-bar/progress-bar.js +30 -30
  390. package/dist/collection/components/radio/radio.ios.css +2 -2
  391. package/dist/collection/components/radio/radio.js +3 -3
  392. package/dist/collection/components/radio/radio.md.css +2 -2
  393. package/dist/collection/components/radio-group/radio-group.ios.css +2 -2
  394. package/dist/collection/components/radio-group/radio-group.js +2 -2
  395. package/dist/collection/components/radio-group/radio-group.md.css +2 -2
  396. package/dist/collection/components/range/range.ionic.css +1 -1
  397. package/dist/collection/components/range/range.ios.css +3 -3
  398. package/dist/collection/components/range/range.js +3 -3
  399. package/dist/collection/components/range/range.md.css +6 -6
  400. package/dist/collection/components/refresher/refresher.ios.css +1 -1
  401. package/dist/collection/components/refresher/refresher.js +3 -3
  402. package/dist/collection/components/refresher/refresher.md.css +4 -4
  403. package/dist/collection/components/refresher/refresher.utils.js +2 -2
  404. package/dist/collection/components/refresher-content/refresher-content.js +2 -2
  405. package/dist/collection/components/reorder/reorder.js +2 -2
  406. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  407. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  408. package/dist/collection/components/router/router.js +2 -2
  409. package/dist/collection/components/router/utils/dom.js +2 -2
  410. package/dist/collection/components/router-link/router-link.css +1 -1
  411. package/dist/collection/components/router-link/router-link.js +4 -3
  412. package/dist/collection/components/router-outlet/router-outlet.js +2 -2
  413. package/dist/collection/components/row/row.js +2 -2
  414. package/dist/collection/components/searchbar/searchbar.ios.css +3 -3
  415. package/dist/collection/components/searchbar/searchbar.js +6 -6
  416. package/dist/collection/components/searchbar/searchbar.md.css +3 -3
  417. package/dist/collection/components/segment/segment.js +2 -2
  418. package/dist/collection/components/segment-button/segment-button.ios.css +3 -3
  419. package/dist/collection/components/segment-button/segment-button.js +2 -2
  420. package/dist/collection/components/segment-button/segment-button.md.css +2 -2
  421. package/dist/collection/components/segment-content/segment-content.js +1 -1
  422. package/dist/collection/components/segment-view/segment-view.js +2 -2
  423. package/dist/collection/components/select/select.ios.css +6 -6
  424. package/dist/collection/components/select/select.js +3 -3
  425. package/dist/collection/components/select/select.md.css +14 -14
  426. package/dist/collection/components/select-modal/select-modal.ionic.css +3 -3
  427. package/dist/collection/components/select-modal/select-modal.ios.css +2 -2
  428. package/dist/collection/components/select-modal/select-modal.js +1 -1
  429. package/dist/collection/components/select-modal/select-modal.md.css +5 -5
  430. package/dist/collection/components/select-option/select-option.js +1 -1
  431. package/dist/collection/components/select-popover/select-popover.ionic.css +5 -5
  432. package/dist/collection/components/select-popover/select-popover.ios.css +1 -1
  433. package/dist/collection/components/select-popover/select-popover.js +2 -2
  434. package/dist/collection/components/select-popover/select-popover.md.css +5 -5
  435. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  436. package/dist/collection/components/spinner/spinner.css +248 -0
  437. package/dist/collection/components/spinner/spinner.js +27 -31
  438. package/dist/collection/components/split-pane/split-pane.ios.css +1 -1
  439. package/dist/collection/components/split-pane/split-pane.js +2 -3
  440. package/dist/collection/components/split-pane/split-pane.md.css +1 -1
  441. package/dist/collection/components/tab/tab.js +3 -3
  442. package/dist/collection/components/tab-bar/tab-bar.ios.css +4 -4
  443. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  444. package/dist/collection/components/tab-bar/tab-bar.md.css +3 -3
  445. package/dist/collection/components/tab-button/tab-button.ionic.css +0 -61
  446. package/dist/collection/components/tab-button/tab-button.ios.css +0 -105
  447. package/dist/collection/components/tab-button/tab-button.js +62 -3
  448. package/dist/collection/components/tab-button/tab-button.md.css +0 -88
  449. package/dist/collection/components/tabs/tabs.css +0 -39
  450. package/dist/collection/components/tabs/tabs.interfaces.js +1 -0
  451. package/dist/collection/components/tabs/tabs.js +14 -14
  452. package/dist/collection/components/text/text.js +2 -2
  453. package/dist/collection/components/textarea/textarea.ionic.css +1 -1
  454. package/dist/collection/components/textarea/textarea.ios.css +6 -6
  455. package/dist/collection/components/textarea/textarea.js +5 -5
  456. package/dist/collection/components/textarea/textarea.md.css +14 -14
  457. package/dist/collection/components/thumbnail/thumbnail.css +2 -2
  458. package/dist/collection/components/thumbnail/thumbnail.js +2 -2
  459. package/dist/collection/components/title/title.js +2 -2
  460. package/dist/collection/components/toast/toast.ios.css +3 -3
  461. package/dist/collection/components/toast/toast.js +2 -2
  462. package/dist/collection/components/toast/toast.md.css +5 -5
  463. package/dist/collection/components/toggle/toggle.ionic.css +1 -1
  464. package/dist/collection/components/toggle/toggle.ios.css +4 -4
  465. package/dist/collection/components/toggle/toggle.js +3 -3
  466. package/dist/collection/components/toggle/toggle.md.css +4 -4
  467. package/dist/collection/components/toolbar/toolbar.ios.css +2 -2
  468. package/dist/collection/components/toolbar/toolbar.js +2 -2
  469. package/dist/collection/components/toolbar/toolbar.md.css +1 -1
  470. package/dist/collection/global/config.js +27 -0
  471. package/dist/collection/global/ionic-global.js +59 -76
  472. package/dist/collection/index.js +1 -2
  473. package/dist/collection/themes/base/dark.tokens.js +218 -0
  474. package/dist/collection/themes/base/default.tokens.js +157 -0
  475. package/dist/collection/themes/base/high-contrast-dark.tokens.js +210 -0
  476. package/dist/collection/themes/base/high-contrast.tokens.js +169 -0
  477. package/dist/collection/themes/base/light.tokens.js +163 -0
  478. package/dist/collection/themes/base/shared.tokens.js +15 -0
  479. package/dist/collection/themes/ionic/dark.tokens.js +5 -0
  480. package/dist/collection/themes/ionic/default.tokens.js +700 -0
  481. package/dist/collection/themes/ionic/light.tokens.js +25 -0
  482. package/dist/collection/themes/ionic/shared.tokens.js +122 -0
  483. package/dist/collection/themes/ios/dark.tokens.js +18 -0
  484. package/dist/collection/themes/ios/default.tokens.js +711 -0
  485. package/dist/collection/themes/ios/high-contrast-dark.tokens.js +6 -0
  486. package/dist/collection/themes/ios/high-contrast.tokens.js +5 -0
  487. package/dist/collection/themes/ios/light.tokens.js +4 -0
  488. package/dist/collection/themes/ios/shared.tokens.js +63 -0
  489. package/dist/collection/themes/md/dark.tokens.js +23 -0
  490. package/dist/collection/themes/md/default.tokens.js +819 -0
  491. package/dist/collection/themes/md/high-contrast-dark.tokens.js +10 -0
  492. package/dist/collection/themes/md/high-contrast.tokens.js +5 -0
  493. package/dist/collection/themes/md/light.tokens.js +4 -0
  494. package/dist/collection/themes/md/shared.tokens.js +127 -0
  495. package/dist/collection/themes/themes.interfaces.js +1 -0
  496. package/dist/collection/utils/badge-position.js +171 -0
  497. package/dist/collection/utils/content/index.js +2 -2
  498. package/dist/collection/utils/framework-delegate.js +3 -3
  499. package/dist/collection/utils/helpers.js +40 -0
  500. package/dist/collection/utils/input-shims/hacks/scroll-padding.js +2 -2
  501. package/dist/collection/utils/input-shims/input-shims.js +2 -2
  502. package/dist/collection/utils/media.js +0 -1
  503. package/dist/collection/utils/menu-controller/index.js +2 -2
  504. package/dist/collection/utils/overlays.js +12 -189
  505. package/dist/collection/utils/status-tap.js +2 -2
  506. package/dist/collection/utils/test/playwright/page/utils/set-content.js +36 -2
  507. package/dist/collection/utils/theme.js +611 -9
  508. package/dist/docs.json +1501 -858
  509. package/dist/esm/{animation-Cqe2x-Pt.js → animation-pTY9wqHp.js} +2 -2
  510. package/dist/esm/{app-globals-Dk1rB3aE.js → app-globals-BDyWBDAh.js} +1 -1
  511. package/dist/esm/badge-position-C1Q3qPZy.js +174 -0
  512. package/dist/esm/{button-active-g6ZnZzDZ.js → button-active-Ca3reU6j.js} +2 -2
  513. package/dist/esm/{capacitor-C4lYa1nV.js → capacitor-isspMXyk.js} +1 -1
  514. package/dist/esm/{data-BNKYavC3.js → data-CAYLUmgh.js} +1 -1
  515. package/dist/esm/{framework-delegate-CjVwn_KZ.js → framework-delegate-reUSF3oT.js} +3 -4
  516. package/dist/esm/{haptic-_88k1V5U.js → haptic-FwCam9_Q.js} +1 -1
  517. package/dist/esm/{index-BmkLokUL.js → index-6QFmgmEW.js} +2 -3
  518. package/dist/esm/{index-Omi_TcwW.js → index-BrrkdT9L.js} +1851 -1
  519. package/dist/esm/{index-hpH08p5s.js → index-CEhdLZKQ.js} +4 -5
  520. package/dist/esm/{index-C5t9-ciC.js → index-CQnGY3Fp.js} +2 -4
  521. package/dist/esm/{index-CGthURny.js → index-DUAoXzCH.js} +3 -4
  522. package/dist/esm/{index-D4ugF_sT.js → index-V2HKYEdd.js} +1 -1
  523. package/dist/esm/index.js +10 -13
  524. package/dist/esm/{input-shims-vDjCsx95.js → input-shims-Cuw1QMqP.js} +8 -10
  525. package/dist/esm/{input.utils-B9Q5xHp6.js → input.utils-BiYknr4n.js} +2 -3
  526. package/dist/esm/ion-accordion_2.entry.js +2 -5
  527. package/dist/esm/ion-action-sheet.entry.js +13 -16
  528. package/dist/esm/ion-alert.entry.js +13 -16
  529. package/dist/esm/ion-app_8.entry.js +36 -37
  530. package/dist/esm/ion-avatar_3.entry.js +60 -80
  531. package/dist/esm/ion-back-button.entry.js +3 -6
  532. package/dist/esm/ion-backdrop.entry.js +2 -2
  533. package/dist/esm/ion-breadcrumb_2.entry.js +5 -8
  534. package/dist/esm/ion-button_2.entry.js +31 -11
  535. package/dist/esm/ion-card_5.entry.js +8 -11
  536. package/dist/esm/ion-checkbox.entry.js +4 -7
  537. package/dist/esm/ion-chip.entry.js +50 -50
  538. package/dist/esm/ion-col_3.entry.js +8 -10
  539. package/dist/esm/ion-datetime-button.entry.js +6 -9
  540. package/dist/esm/ion-datetime_3.entry.js +17 -20
  541. package/dist/esm/ion-divider.entry.js +2 -2
  542. package/dist/esm/ion-fab_3.entry.js +5 -8
  543. package/dist/esm/ion-img.entry.js +4 -6
  544. package/dist/esm/ion-infinite-scroll_2.entry.js +10 -12
  545. package/dist/esm/ion-input-otp.entry.js +8 -11
  546. package/dist/esm/ion-input-password-toggle.entry.js +5 -6
  547. package/dist/esm/ion-input.entry.js +11 -14
  548. package/dist/esm/ion-item-option_3.entry.js +49 -302
  549. package/dist/esm/ion-item_8.entry.js +28 -40
  550. package/dist/esm/ion-loading.entry.js +11 -14
  551. package/dist/esm/ion-menu_3.entry.js +13 -16
  552. package/dist/esm/ion-modal.entry.js +16 -19
  553. package/dist/esm/ion-nav_2.entry.js +8 -10
  554. package/dist/esm/ion-picker-column-option.entry.js +4 -7
  555. package/dist/esm/ion-picker-column.entry.js +4 -7
  556. package/dist/esm/ion-picker.entry.js +2 -4
  557. package/dist/esm/ion-popover.entry.js +9 -12
  558. package/dist/esm/ion-progress-bar.entry.js +21 -34
  559. package/dist/esm/ion-radio_2.entry.js +11 -14
  560. package/dist/esm/ion-range.entry.js +9 -12
  561. package/dist/esm/ion-refresher_2.entry.js +16 -18
  562. package/dist/esm/ion-reorder_2.entry.js +8 -10
  563. package/dist/esm/ion-ripple-effect.entry.js +3 -3
  564. package/dist/esm/ion-route_4.entry.js +6 -9
  565. package/dist/esm/ion-searchbar.entry.js +9 -12
  566. package/dist/esm/ion-segment-content.entry.js +2 -2
  567. package/dist/esm/ion-segment-view.entry.js +3 -3
  568. package/dist/esm/ion-segment_2.entry.js +8 -11
  569. package/dist/esm/ion-select-modal.entry.js +10 -13
  570. package/dist/esm/ion-select_3.entry.js +18 -21
  571. package/dist/esm/ion-spinner.entry.js +18 -33
  572. package/dist/esm/ion-split-pane.entry.js +7 -8
  573. package/dist/esm/ion-tab-bar_2.entry.js +75 -19
  574. package/dist/esm/ion-tab_2.entry.js +19 -19
  575. package/dist/esm/ion-text.entry.js +4 -5
  576. package/dist/esm/ion-textarea.entry.js +11 -14
  577. package/dist/esm/ion-toast.entry.js +10 -13
  578. package/dist/esm/ion-toggle.entry.js +10 -13
  579. package/dist/esm/{ionic-global-CAZb-5i-.js → ionic-global-CYPOXYV9.js} +214 -82
  580. package/dist/esm/ionic.js +5 -5
  581. package/dist/esm/{ios.transition-CzSncKQg.js → ios.transition-Udz14cFX.js} +4 -6
  582. package/dist/esm/{keyboard-Cpw6xVLJ.js → keyboard-BJeLQuaz.js} +1 -1
  583. package/dist/esm/{keyboard-controller-CAc33ylR.js → keyboard-controller-DtjExoRO.js} +3 -3
  584. package/dist/esm/{keyboard-DJpS2IGK.js → keyboard-uAtaO52Q.js} +4 -4
  585. package/dist/esm/loader.js +5 -5
  586. package/dist/esm/{md.transition-DIsWqYBZ.js → md.transition-BjHXd0f9.js} +4 -6
  587. package/dist/esm/{notch-controller-DiBq57w8.js → notch-controller-oUerJ6nV.js} +2 -2
  588. package/dist/esm/{overlays-ttYCMKRp.js → overlays-CSQv-GZq.js} +14 -192
  589. package/dist/esm/{select-option-render-B2qc5ZP7.js → select-option-render-DmisODWi.js} +2 -2
  590. package/dist/esm/{status-tap-fYFdZg6z.js → status-tap-DRMNWPiL.js} +3 -5
  591. package/dist/esm/{swipe-back-BzGqTrrq.js → swipe-back-D8jSdnGS.js} +1 -3
  592. package/dist/html.html-data.json +29 -202
  593. package/dist/ionic/index.esm.js +1 -1
  594. package/dist/ionic/ionic.esm.js +1 -1
  595. package/dist/ionic/p-01aa6153.entry.js +4 -0
  596. package/dist/ionic/p-07a3d959.entry.js +4 -0
  597. package/dist/ionic/p-0b68c8a9.entry.js +4 -0
  598. package/dist/ionic/p-0d50e1d3.entry.js +4 -0
  599. package/dist/ionic/p-124bb083.entry.js +4 -0
  600. package/dist/ionic/p-1f8298b3.entry.js +4 -0
  601. package/dist/ionic/p-1yGxS_yC.js +4 -0
  602. package/dist/ionic/p-29273c47.entry.js +4 -0
  603. package/dist/ionic/p-340449bb.entry.js +4 -0
  604. package/dist/ionic/p-39a55f1c.entry.js +4 -0
  605. package/dist/ionic/p-3a362e49.entry.js +4 -0
  606. package/dist/ionic/p-3a85e733.entry.js +4 -0
  607. package/dist/ionic/p-3b3dee19.entry.js +4 -0
  608. package/dist/ionic/p-485c13f3.entry.js +4 -0
  609. package/dist/ionic/p-4a63756e.entry.js +4 -0
  610. package/dist/ionic/p-4a6c21f5.entry.js +4 -0
  611. package/dist/ionic/p-4e8b3cd6.entry.js +4 -0
  612. package/dist/ionic/p-4f332976.entry.js +4 -0
  613. package/dist/ionic/{p-9d789053.entry.js → p-576b4ff1.entry.js} +1 -1
  614. package/dist/ionic/p-62a1e227.entry.js +4 -0
  615. package/dist/ionic/p-64877060.entry.js +4 -0
  616. package/dist/ionic/p-678f1511.entry.js +4 -0
  617. package/dist/ionic/p-6a0b6306.entry.js +4 -0
  618. package/dist/ionic/p-6c9228d4.entry.js +4 -0
  619. package/dist/ionic/p-70ab2edf.entry.js +4 -0
  620. package/dist/ionic/p-74d05699.entry.js +4 -0
  621. package/dist/ionic/p-77aa1e90.entry.js +4 -0
  622. package/dist/ionic/p-79be145b.entry.js +4 -0
  623. package/dist/ionic/p-7ba7526a.entry.js +4 -0
  624. package/dist/ionic/p-7cffb312.entry.js +4 -0
  625. package/dist/ionic/p-7e44a4c5.entry.js +4 -0
  626. package/dist/ionic/{p-45825c2c.entry.js → p-88717a4c.entry.js} +1 -1
  627. package/dist/ionic/p-918cf662.entry.js +4 -0
  628. package/dist/ionic/p-9476775d.entry.js +4 -0
  629. package/dist/ionic/p-9b05cd45.entry.js +4 -0
  630. package/dist/ionic/p-9b75925d.entry.js +4 -0
  631. package/dist/ionic/p-9c849562.entry.js +4 -0
  632. package/dist/ionic/p-9e74defe.entry.js +4 -0
  633. package/{components/p-oF-CwZ0b.js → dist/ionic/p-B7D6IyeU.js} +1 -1
  634. package/dist/ionic/p-BQZlX_QW.js +4 -0
  635. package/dist/ionic/p-BiY-3g9k.js +4 -0
  636. package/dist/ionic/p-BrrkdT9L.js +5 -0
  637. package/dist/ionic/p-BzLJp2YK.js +4 -0
  638. package/dist/ionic/{p-ZqkJDyhe.js → p-CAUIo7pE.js} +1 -1
  639. package/dist/ionic/p-CQA3_fVT.js +4 -0
  640. package/dist/ionic/{p-SJmaFQ0H.js → p-CTDx2dNQ.js} +1 -1
  641. package/dist/ionic/p-CWcwW_B7.js +4 -0
  642. package/dist/ionic/p-CYLLjyEJ.js +4 -0
  643. package/dist/ionic/p-Cd5dRcMd.js +4 -0
  644. package/dist/ionic/p-CeizwFUQ.js +4 -0
  645. package/{components/p-Cmql_g3_.js → dist/ionic/p-Chp7Hiov.js} +1 -1
  646. package/{components/p-sK-FK9CT.js → dist/ionic/p-Ckv4csSE.js} +1 -1
  647. package/dist/ionic/p-CnLgxV__.js +4 -0
  648. package/dist/ionic/p-CrC3J6IY.js +4 -0
  649. package/dist/ionic/p-D6sRRFCv.js +4 -0
  650. package/dist/ionic/p-DBv6epu_.js +4 -0
  651. package/dist/ionic/p-Dl7gXMai.js +4 -0
  652. package/dist/ionic/p-Dxq4Ulb1.js +4 -0
  653. package/dist/ionic/p-YuNpC3uG.js +4 -0
  654. package/{components/p-BLysWQA1.js → dist/ionic/p-ZdzrkYIV.js} +1 -1
  655. package/dist/ionic/p-a6c90dec.entry.js +4 -0
  656. package/dist/ionic/{p-8537b2fb.entry.js → p-a71389be.entry.js} +1 -1
  657. package/dist/ionic/p-a714ca93.entry.js +4 -0
  658. package/dist/ionic/p-bcaba3e0.entry.js +4 -0
  659. package/dist/ionic/p-bd44b49f.entry.js +4 -0
  660. package/dist/ionic/{p-7d267dc6.entry.js → p-c636b0d3.entry.js} +1 -1
  661. package/dist/ionic/p-cdc18886.entry.js +4 -0
  662. package/dist/ionic/p-ce6acd14.entry.js +4 -0
  663. package/dist/ionic/p-d7b2d59f.entry.js +4 -0
  664. package/dist/ionic/p-dc2812ee.entry.js +4 -0
  665. package/dist/ionic/p-de74cc27.entry.js +4 -0
  666. package/dist/ionic/p-ef1330ac.entry.js +4 -0
  667. package/dist/ionic/p-f57fea97.entry.js +4 -0
  668. package/dist/ionic/p-f840d58e.entry.js +4 -0
  669. package/dist/ionic/p-fK-AnPaq.js +4 -0
  670. package/dist/ionic/p-fce34e31.entry.js +4 -0
  671. package/dist/ionic/p-fd014d35.entry.js +4 -0
  672. package/dist/ionic/p-gBNkhCZy.js +4 -0
  673. package/dist/ionic/p-gYuHMhs-.js +4 -0
  674. package/dist/ionic/p-nMHpWRBR.js +4 -0
  675. package/dist/types/components/avatar/avatar.d.ts +6 -0
  676. package/dist/types/components/badge/badge.d.ts +30 -17
  677. package/dist/types/components/badge/badge.interfaces.d.ts +73 -0
  678. package/dist/types/components/button/button.d.ts +7 -1
  679. package/dist/types/components/chip/chip.d.ts +45 -14
  680. package/dist/types/components/chip/chip.interfaces.d.ts +97 -0
  681. package/dist/types/components/content/content.d.ts +1 -2
  682. package/dist/types/components/content/{content-interface.d.ts → content.interfaces.d.ts} +18 -0
  683. package/dist/types/components/item-divider/item-divider.d.ts +0 -1
  684. package/dist/types/components/item-divider/item-divider.interfaces.d.ts +132 -0
  685. package/dist/types/components/item-sliding/item-sliding.d.ts +2 -17
  686. package/dist/types/components/progress-bar/progress-bar.d.ts +9 -4
  687. package/dist/types/components/progress-bar/progress-bar.interfaces.d.ts +90 -0
  688. package/dist/types/components/spinner/spinner-configs.d.ts +2 -2
  689. package/dist/types/components/spinner/spinner.d.ts +8 -4
  690. package/dist/types/components/spinner/spinner.interfaces.d.ts +72 -0
  691. package/dist/types/components/tab/tab.d.ts +0 -1
  692. package/dist/types/components/tab-button/tab-button.d.ts +7 -0
  693. package/dist/types/components/tabs/tabs.d.ts +1 -1
  694. package/dist/types/components.d.ts +64 -186
  695. package/dist/types/global/config.d.ts +9 -1
  696. package/dist/types/global/ionic-global.d.ts +3 -10
  697. package/dist/types/index.d.ts +1 -2
  698. package/dist/types/interface.d.ts +2 -2
  699. package/dist/types/themes/base/dark.tokens.d.ts +2 -0
  700. package/dist/types/themes/base/default.tokens.d.ts +2 -0
  701. package/dist/types/themes/base/high-contrast-dark.tokens.d.ts +2 -0
  702. package/dist/types/themes/base/high-contrast.tokens.d.ts +2 -0
  703. package/dist/types/themes/base/light.tokens.d.ts +2 -0
  704. package/dist/types/themes/base/shared.tokens.d.ts +11 -0
  705. package/dist/types/themes/ionic/dark.tokens.d.ts +2 -0
  706. package/dist/types/themes/ionic/default.tokens.d.ts +2 -0
  707. package/dist/types/themes/ionic/light.tokens.d.ts +2 -0
  708. package/dist/types/themes/ionic/shared.tokens.d.ts +112 -0
  709. package/dist/types/themes/ios/dark.tokens.d.ts +2 -0
  710. package/dist/types/themes/ios/default.tokens.d.ts +2 -0
  711. package/dist/types/themes/ios/high-contrast-dark.tokens.d.ts +2 -0
  712. package/dist/types/themes/ios/high-contrast.tokens.d.ts +2 -0
  713. package/dist/types/themes/ios/light.tokens.d.ts +2 -0
  714. package/dist/types/themes/ios/shared.tokens.d.ts +56 -0
  715. package/dist/types/themes/md/dark.tokens.d.ts +2 -0
  716. package/dist/types/themes/md/default.tokens.d.ts +2 -0
  717. package/dist/types/themes/md/high-contrast-dark.tokens.d.ts +2 -0
  718. package/dist/types/themes/md/high-contrast.tokens.d.ts +2 -0
  719. package/dist/types/themes/md/light.tokens.d.ts +2 -0
  720. package/dist/types/themes/md/shared.tokens.d.ts +117 -0
  721. package/dist/types/themes/themes.interfaces.d.ts +278 -0
  722. package/dist/types/utils/badge-position.d.ts +106 -0
  723. package/dist/types/utils/config.d.ts +6 -0
  724. package/dist/types/utils/helpers.d.ts +16 -0
  725. package/dist/types/utils/platform.d.ts +2 -2
  726. package/dist/types/utils/theme.d.ts +198 -3
  727. package/hydrate/index.js +7551 -6874
  728. package/hydrate/index.mjs +7551 -6874
  729. package/package.json +6 -4
  730. package/components/ion-gallery.d.ts +0 -11
  731. package/components/ion-gallery.js +0 -4
  732. package/components/p-0sa2JgYA.js +0 -4
  733. package/components/p-3Ni1Z654.js +0 -4
  734. package/components/p-9gxM3tAr.js +0 -4
  735. package/components/p-B636tzQ7.js +0 -4
  736. package/components/p-B8Oa6a_k.js +0 -4
  737. package/components/p-BCDEEm9n.js +0 -4
  738. package/components/p-BDndEqui.js +0 -4
  739. package/components/p-BFbsici0.js +0 -4
  740. package/components/p-BLCuPAtN.js +0 -4
  741. package/components/p-BO4aickU.js +0 -4
  742. package/components/p-BRWWcnBq.js +0 -4
  743. package/components/p-BXcCGjEc.js +0 -4
  744. package/components/p-BbQGmZyu.js +0 -4
  745. package/components/p-BeVlsaLA.js +0 -4
  746. package/components/p-Bp__mr16.js +0 -4
  747. package/components/p-BqDiJgC_.js +0 -4
  748. package/components/p-BqImG3uk.js +0 -4
  749. package/components/p-C00Y_WJv.js +0 -4
  750. package/components/p-C0U8YqYW.js +0 -4
  751. package/components/p-C38HUpU5.js +0 -4
  752. package/components/p-C4G6C9fP.js +0 -4
  753. package/components/p-CKfNwyAb.js +0 -4
  754. package/components/p-CN-WzkJE.js +0 -4
  755. package/components/p-CVBkx7m1.js +0 -4
  756. package/components/p-CVRxImH6.js +0 -4
  757. package/components/p-Cb9imMZh.js +0 -4
  758. package/components/p-Cf9-xP7P.js +0 -4
  759. package/components/p-CjSx8W-k.js +0 -4
  760. package/components/p-CoFDGTFO.js +0 -4
  761. package/components/p-CoFqDNc5.js +0 -4
  762. package/components/p-CykCvfXQ.js +0 -4
  763. package/components/p-DDw-NYxz.js +0 -4
  764. package/components/p-DHTe6lDL.js +0 -4
  765. package/components/p-DH_9VCbD.js +0 -4
  766. package/components/p-DTtRWhIZ.js +0 -4
  767. package/components/p-DVcs-2q3.js +0 -4
  768. package/components/p-DXUyXgVL.js +0 -4
  769. package/components/p-DaJxRxSQ.js +0 -4
  770. package/components/p-IMXp2Inn.js +0 -4
  771. package/components/p-TR4ubkPu.js +0 -4
  772. package/components/p-XegQjlzJ.js +0 -4
  773. package/components/p-qZr7hBPz.js +0 -4
  774. package/components/p-t98_NeNv.js +0 -4
  775. package/components/p-vCpF32Z7.js +0 -4
  776. package/components/p-vXpMhGrs.js +0 -4
  777. package/components/p-wCDzv5Q8.js +0 -4
  778. package/dist/cjs/focus-visible-BIj-I3-C.js +0 -101
  779. package/dist/cjs/helpers-DJYxKN5U.js +0 -413
  780. package/dist/cjs/ion-gallery.cjs.entry.js +0 -510
  781. package/dist/cjs/theme-IlOsGAz7.js +0 -72
  782. package/dist/collection/components/badge/badge.ionic.css +0 -275
  783. package/dist/collection/components/badge/badge.ios.css +0 -295
  784. package/dist/collection/components/badge/badge.md.css +0 -275
  785. package/dist/collection/components/chip/chip.ionic.css +0 -217
  786. package/dist/collection/components/chip/chip.ios.css +0 -265
  787. package/dist/collection/components/chip/chip.md.css +0 -260
  788. package/dist/collection/components/gallery/gallery-constants.js +0 -12
  789. package/dist/collection/components/gallery/gallery.css +0 -100
  790. package/dist/collection/components/gallery/gallery.js +0 -595
  791. package/dist/collection/components/gallery/test/utils.js +0 -100
  792. package/dist/collection/components/item-divider/item-divider.ios.css +0 -369
  793. package/dist/collection/components/item-divider/item-divider.md.css +0 -425
  794. package/dist/collection/components/item-sliding/item-sliding.ionic.css +0 -211
  795. package/dist/collection/components/progress-bar/progress-bar.ionic.css +0 -287
  796. package/dist/collection/components/progress-bar/progress-bar.ios.css +0 -298
  797. package/dist/collection/components/progress-bar/progress-bar.md.css +0 -290
  798. package/dist/collection/components/spinner/spinner.ionic.css +0 -300
  799. package/dist/collection/components/spinner/spinner.native.css +0 -199
  800. package/dist/collection/utils/css-value-validation.js +0 -25
  801. package/dist/esm/focus-visible-vXpMhGrs.js +0 -97
  802. package/dist/esm/helpers-Do7zwvM1.js +0 -392
  803. package/dist/esm/ion-gallery.entry.js +0 -508
  804. package/dist/esm/theme-DaJxRxSQ.js +0 -67
  805. package/dist/ionic/p-00c0bd38.entry.js +0 -4
  806. package/dist/ionic/p-06bd033b.entry.js +0 -4
  807. package/dist/ionic/p-07d3388f.entry.js +0 -4
  808. package/dist/ionic/p-11nqcMM3.js +0 -4
  809. package/dist/ionic/p-139d02eb.entry.js +0 -4
  810. package/dist/ionic/p-1709b0aa.entry.js +0 -4
  811. package/dist/ionic/p-1c2c1869.entry.js +0 -4
  812. package/dist/ionic/p-1c4de46b.entry.js +0 -4
  813. package/dist/ionic/p-1e1c8d61.entry.js +0 -4
  814. package/dist/ionic/p-1f74b8d4.entry.js +0 -4
  815. package/dist/ionic/p-2311e660.entry.js +0 -4
  816. package/dist/ionic/p-2aa7567e.entry.js +0 -4
  817. package/dist/ionic/p-2ad79c23.entry.js +0 -4
  818. package/dist/ionic/p-2f8aa0ac.entry.js +0 -4
  819. package/dist/ionic/p-3331cfa9.entry.js +0 -4
  820. package/dist/ionic/p-33c34361.entry.js +0 -4
  821. package/dist/ionic/p-37ccbee4.entry.js +0 -4
  822. package/dist/ionic/p-3aba19e2.entry.js +0 -4
  823. package/dist/ionic/p-3f79f594.entry.js +0 -4
  824. package/dist/ionic/p-48026d15.entry.js +0 -4
  825. package/dist/ionic/p-488992b6.entry.js +0 -4
  826. package/dist/ionic/p-5061a8d4.entry.js +0 -4
  827. package/dist/ionic/p-50b61fab.entry.js +0 -4
  828. package/dist/ionic/p-50cd2d57.entry.js +0 -4
  829. package/dist/ionic/p-5274f999.entry.js +0 -4
  830. package/dist/ionic/p-586d4270.entry.js +0 -4
  831. package/dist/ionic/p-68c21b2a.entry.js +0 -4
  832. package/dist/ionic/p-6fbead83.entry.js +0 -4
  833. package/dist/ionic/p-7054a1b9.entry.js +0 -4
  834. package/dist/ionic/p-7194f6fa.entry.js +0 -4
  835. package/dist/ionic/p-72491468.entry.js +0 -4
  836. package/dist/ionic/p-76307d10.entry.js +0 -4
  837. package/dist/ionic/p-7d5057c4.entry.js +0 -4
  838. package/dist/ionic/p-83c693c4.entry.js +0 -4
  839. package/dist/ionic/p-8f04bd89.entry.js +0 -4
  840. package/dist/ionic/p-8uDL7fql.js +0 -4
  841. package/dist/ionic/p-90e653e3.entry.js +0 -4
  842. package/dist/ionic/p-967576f8.entry.js +0 -4
  843. package/dist/ionic/p-BsfuYVMP.js +0 -4
  844. package/dist/ionic/p-Bx0bt2Ar.js +0 -4
  845. package/dist/ionic/p-C2mpVKI1.js +0 -4
  846. package/dist/ionic/p-C5zxLmJ_.js +0 -4
  847. package/dist/ionic/p-CBV-BGvD.js +0 -4
  848. package/dist/ionic/p-CDn0uNJA.js +0 -4
  849. package/dist/ionic/p-CFjI63GE.js +0 -4
  850. package/dist/ionic/p-CHE1xWbg.js +0 -4
  851. package/dist/ionic/p-CIk5QtPm.js +0 -4
  852. package/dist/ionic/p-CQKe4n56.js +0 -4
  853. package/dist/ionic/p-CVp2D--1.js +0 -4
  854. package/dist/ionic/p-CXqdKf1K.js +0 -4
  855. package/dist/ionic/p-Cb-0O4h8.js +0 -4
  856. package/dist/ionic/p-DKWXAwlR.js +0 -4
  857. package/dist/ionic/p-DaJxRxSQ.js +0 -4
  858. package/dist/ionic/p-DdyNaGpi.js +0 -4
  859. package/dist/ionic/p-DoyDJ2X5.js +0 -4
  860. package/dist/ionic/p-FvDKM4Ax.js +0 -4
  861. package/dist/ionic/p-Omi_TcwW.js +0 -5
  862. package/dist/ionic/p-SOASChNu.js +0 -4
  863. package/dist/ionic/p-acdc21a6.entry.js +0 -4
  864. package/dist/ionic/p-ae667493.entry.js +0 -4
  865. package/dist/ionic/p-b2fe6c1c.entry.js +0 -4
  866. package/dist/ionic/p-b3c9f19c.entry.js +0 -4
  867. package/dist/ionic/p-b653f4c2.entry.js +0 -4
  868. package/dist/ionic/p-bb898d47.entry.js +0 -4
  869. package/dist/ionic/p-bd71a4a7.entry.js +0 -4
  870. package/dist/ionic/p-d4ed5710.entry.js +0 -4
  871. package/dist/ionic/p-d6299c37.entry.js +0 -4
  872. package/dist/ionic/p-dea52cb3.entry.js +0 -4
  873. package/dist/ionic/p-e18d3fdb.entry.js +0 -4
  874. package/dist/ionic/p-f02ba305.entry.js +0 -4
  875. package/dist/ionic/p-fad05840.entry.js +0 -4
  876. package/dist/ionic/p-fc796d48.entry.js +0 -4
  877. package/dist/ionic/p-qETiT38a.js +0 -4
  878. package/dist/ionic/p-vXpMhGrs.js +0 -4
  879. package/dist/types/components/gallery/gallery-constants.d.ts +0 -9
  880. package/dist/types/components/gallery/gallery-interface.d.ts +0 -10
  881. package/dist/types/components/gallery/gallery.d.ts +0 -183
  882. package/dist/types/components/gallery/test/utils.d.ts +0 -2
  883. package/dist/types/components/spinner/spinner-interface.d.ts +0 -22
  884. package/dist/types/utils/css-value-validation.d.ts +0 -12
  885. /package/dist/collection/components/{content/content-interface.js → chip/chip.interfaces.js} +0 -0
  886. /package/dist/collection/components/{gallery/gallery-interface.js → content/content.interfaces.js} +0 -0
  887. /package/dist/collection/components/{spinner/spinner-interface.js → item-divider/item-divider.interfaces.js} +0 -0
  888. /package/dist/collection/components/{tabs/tabs-interface.js → spinner/spinner.interfaces.js} +0 -0
  889. /package/dist/types/components/tabs/{tabs-interface.d.ts → tabs.interfaces.d.ts} +0 -0
@@ -3,10 +3,9 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var ionicGlobal = require('./ionic-global-CSEbHD_F.js');
7
- var helpers = require('./helpers-DJYxKN5U.js');
8
- var index = require('./index-CzcLEdQ5.js');
9
- var frameworkDelegate = require('./framework-delegate-Dx9FrqAC.js');
6
+ var ionicGlobal = require('./ionic-global-DMWqcBn0.js');
7
+ var focusVisible = require('./index-BDthk8R7.js');
8
+ var frameworkDelegate = require('./framework-delegate-C1LqXDzY.js');
10
9
  var gestureController = require('./gesture-controller-dtqlP_q4.js');
11
10
 
12
11
  /**
@@ -92,7 +91,7 @@ const focusElementInContext = (hostToFocus, fallbackElement) => {
92
91
  radioGroup.setFocus();
93
92
  }
94
93
  else {
95
- helpers.focusVisibleElement(elementToFocus);
94
+ focusVisible.focusVisibleElement(elementToFocus);
96
95
  }
97
96
  }
98
97
  else {
@@ -104,101 +103,8 @@ const focusElementInContext = (hostToFocus, fallbackElement) => {
104
103
  let lastOverlayIndex = 0;
105
104
  let lastId = 0;
106
105
  const activeAnimations = new WeakMap();
107
- const OVERLAY_FOCUS_TRAP_SELECTOR = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover';
108
- const ION_SELECT_MODAL_SELECTOR = 'ion-select-modal';
109
- const isSelectModalOptionControl = (el) => el.tagName === 'ION-RADIO' || el.tagName === 'ION-CHECKBOX';
110
106
  /**
111
- * Returns the currently focused element for keyboard focus checks.
112
- *
113
- * Starts from `document.activeElement` (non-shadow / light DOM focus).
114
- * If focus is inside one or more open shadow roots
115
- * (e.g. native control inside `ion-radio`), walks through nested
116
- * `shadowRoot.activeElement` values until the innermost focused node is reached.
117
- */
118
- const getActiveElement = (ownerDoc) => {
119
- var _a;
120
- let active = ownerDoc.activeElement;
121
- if (!active) {
122
- return null;
123
- }
124
- while ((_a = active.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement) {
125
- active = active.shadowRoot.activeElement;
126
- }
127
- return active;
128
- };
129
- /**
130
- * Walks from a focused node (possibly deep inside shadow roots)
131
- * up to the nearest `ion-radio` / `ion-checkbox` host.
132
- */
133
- const getOptionControlHost = (active) => {
134
- let n = active;
135
- while (n) {
136
- if (isSelectModalOptionControl(n)) {
137
- return n;
138
- }
139
- const root = n.getRootNode();
140
- if (root instanceof ShadowRoot && root.host instanceof HTMLElement) {
141
- n = root.host;
142
- }
143
- else {
144
- return null;
145
- }
146
- }
147
- return null;
148
- };
149
- /**
150
- * Sheet modals can have visual order that differs from DOM order.
151
- * Without sorting, Tab can skip the handle after option traversal.
152
- *
153
- * Order: option controls (radio/checkbox) → sheet handle → end-slot
154
- * header button. Any other focusables are appended after.
155
- */
156
- const sortSheetModalFocusables = (overlay, elements) => {
157
- const optionControls = elements.filter((el) => {
158
- return overlay.contains(el) && isSelectModalOptionControl(el) && el.tabIndex >= 0;
159
- });
160
- const cancelControl = elements.find((el) => overlay.contains(el) &&
161
- el.tagName === 'ION-BUTTON' &&
162
- el.closest('ion-header ion-buttons[slot="end"]') !== null);
163
- const handleControl = elements.find((el) => el.classList.contains('modal-handle'));
164
- const sortByGeometry = (els) => [...els].sort((a, b) => {
165
- const ra = a.getBoundingClientRect();
166
- const rb = b.getBoundingClientRect();
167
- const topDiff = ra.top - rb.top;
168
- if (Math.abs(topDiff) > 1) {
169
- return topDiff;
170
- }
171
- return ra.left - rb.left;
172
- });
173
- const ordered = [];
174
- ordered.push(...sortByGeometry(optionControls));
175
- if (handleControl) {
176
- ordered.push(handleControl);
177
- }
178
- if (cancelControl) {
179
- ordered.push(cancelControl);
180
- }
181
- const used = new Set(ordered);
182
- for (const el of elements) {
183
- if (!used.has(el)) {
184
- ordered.push(el);
185
- }
186
- }
187
- return ordered;
188
- };
189
- /**
190
- * Option controls in groups use a tabindex pattern where only one
191
- * option is tabbable (`tabIndex="0"`) while the others are `-1`.
192
- * This returns the index of that current tabbable option.
193
- */
194
- const getTabbableOptionControlIndex = (elements, overlay) => {
195
- return elements.findIndex((el) => {
196
- return overlay.contains(el) && isSelectModalOptionControl(el) && el.tabIndex >= 0;
197
- });
198
- };
199
- /**
200
- * Determines if the overlay's backdrop is always blocking
201
- * (no background interaction).
107
+ * Determines if the overlay's backdrop is always blocking (no background interaction).
202
108
  * Returns false if showBackdrop=false or backdropBreakpoint > 0.
203
109
  */
204
110
  const isBackdropAlwaysBlocking = (el) => {
@@ -277,7 +183,7 @@ const createOverlay = (tagName, opts) => {
277
183
  Object.assign(element, Object.assign(Object.assign({}, opts), { hasController: true }));
278
184
  // append the overlay element to the document body
279
185
  getAppRoot(document).appendChild(element);
280
- return new Promise((resolve) => helpers.componentOnReady(element, resolve));
186
+ return focusVisible.waitForComponentReady(element);
281
187
  });
282
188
  }
283
189
  return Promise.resolve();
@@ -304,7 +210,7 @@ const focusElementInOverlay = (hostToFocus, overlay) => {
304
210
  elementToFocus = shadowRoot.querySelector(focusableQueryString) || hostToFocus;
305
211
  }
306
212
  if (elementToFocus) {
307
- helpers.focusVisibleElement(elementToFocus);
213
+ focusVisible.focusVisibleElement(elementToFocus);
308
214
  }
309
215
  else {
310
216
  // Focus overlay instead of letting focus escape
@@ -319,7 +225,7 @@ const focusElementInOverlay = (hostToFocus, overlay) => {
319
225
  * Should NOT include: Toast
320
226
  */
321
227
  const trapKeyboardFocus = (ev, doc) => {
322
- const lastOverlay = getPresentedOverlay(doc, OVERLAY_FOCUS_TRAP_SELECTOR);
228
+ const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover');
323
229
  const target = ev.target;
324
230
  /**
325
231
  * If no active overlay, ignore this event.
@@ -384,7 +290,7 @@ const trapKeyboardFocus = (ev, doc) => {
384
290
  * We do not want to focus the traps, so get the overlay
385
291
  * wrapper element as the traps live outside of the wrapper.
386
292
  */
387
- const overlayRoot = helpers.getElementRoot(lastOverlay);
293
+ const overlayRoot = focusVisible.getElementRoot(lastOverlay);
388
294
  if (!overlayRoot.contains(target)) {
389
295
  return;
390
296
  }
@@ -502,30 +408,6 @@ const connectListeners = (doc) => {
502
408
  doc.addEventListener('focus', (ev) => {
503
409
  trapKeyboardFocus(ev, doc);
504
410
  }, true);
505
- /**
506
- * Remember which option control last received focus
507
- * (arrows, click, or Tab). This pattern keeps `tabIndex=0` on the
508
- * checked/first radio, so the Tab trap uses this when wrapping back
509
- * into the list or focusing the option-group slot.
510
- */
511
- doc.addEventListener('focusin', (ev) => {
512
- const lastOverlay = getPresentedOverlay(doc, OVERLAY_FOCUS_TRAP_SELECTOR);
513
- if (!lastOverlay || lastOverlay.classList.contains(FOCUS_TRAP_DISABLE_CLASS)) {
514
- return;
515
- }
516
- const isSheetModal = lastOverlay.classList.contains('modal-sheet');
517
- if (!isSheetModal) {
518
- return;
519
- }
520
- const target = ev.target;
521
- if (!(target instanceof HTMLElement)) {
522
- return;
523
- }
524
- const optionHost = getOptionControlHost(target);
525
- if (optionHost && lastOverlay.contains(optionHost)) {
526
- lastOverlay.trapLastSheetOptionControl = optionHost;
527
- }
528
- }, true);
529
411
  // Listen for keydown events to intercept Tab navigation.
530
412
  // This is needed for Safari and Firefox which may skip focusable
531
413
  // elements or allow focus to escape the overlay.
@@ -535,10 +417,10 @@ const connectListeners = (doc) => {
535
417
  var _a, _b, _c;
536
418
  if (ev.key !== 'Tab' && ev.key !== 'Alt+Tab')
537
419
  return;
538
- const lastOverlay = getPresentedOverlay(doc, OVERLAY_FOCUS_TRAP_SELECTOR);
420
+ const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover');
539
421
  if (!lastOverlay || lastOverlay.classList.contains(FOCUS_TRAP_DISABLE_CLASS))
540
422
  return;
541
- const activeElement = getActiveElement(doc);
423
+ const activeElement = doc.activeElement;
542
424
  if (activeElement === lastOverlay) {
543
425
  ev.preventDefault();
544
426
  focusFirstDescendant(lastOverlay);
@@ -554,32 +436,16 @@ const connectListeners = (doc) => {
554
436
  if (!isInsideOverlay)
555
437
  return;
556
438
  // Get all focusable elements from both light and shadow DOM
557
- let allFocusable = [
439
+ const allFocusable = [
558
440
  ...lastOverlay.querySelectorAll(focusableQueryString),
559
441
  ...(((_c = lastOverlay.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelectorAll(focusableQueryString)) || []),
560
442
  ];
561
- const selectModalEl = lastOverlay.querySelector(ION_SELECT_MODAL_SELECTOR);
562
- const isSheetModal = lastOverlay.classList.contains('modal-sheet');
563
- /**
564
- * Some sheet modal content, including ion-select-modal,
565
- * renders option containers as `ion-item.select-interface-option`.
566
- * These can match focusable selectors in some builds but
567
- * are not intended tab stops. Keep only true interactive
568
- * controls so Tab can move from options to header
569
- * controls/handle.
570
- */
571
- if (selectModalEl) {
572
- allFocusable = allFocusable.filter((el) => !el.matches('ion-item.select-interface-option'));
573
- }
574
- if (isSheetModal) {
575
- allFocusable = sortSheetModalFocusables(lastOverlay, allFocusable);
576
- }
577
443
  if (allFocusable.length === 0) {
578
444
  ev.preventDefault();
579
445
  return;
580
446
  }
581
447
  // Find current element's index (accounting for shadow DOM)
582
- let currentIndex = activeElement
448
+ const currentIndex = activeElement
583
449
  ? allFocusable.findIndex((el) => {
584
450
  var _a;
585
451
  if (el === activeElement)
@@ -590,31 +456,6 @@ const connectListeners = (doc) => {
590
456
  return rootNode instanceof ShadowRoot && rootNode.host === el;
591
457
  })
592
458
  : -1;
593
- /**
594
- * Radio/checkbox groups can move focus onto an option with
595
- * `tabIndex=-1`, while another option still has `tabIndex=0`
596
- * in the list. `findIndex` then yields -1 and Tab incorrectly
597
- * wraps to `allFocusable[0]`.
598
- * Treat focus on any option control inside the sheet modal
599
- * as the same trap slot as the listed tabbable option
600
- * (`tabIndex >= 0`) so Tab goes handle → Cancel, not back
601
- * to the first radio.
602
- */
603
- if (currentIndex < 0 && isSheetModal && activeElement) {
604
- const optionHost = getOptionControlHost(activeElement);
605
- if (optionHost && lastOverlay.contains(optionHost)) {
606
- const directIndex = allFocusable.indexOf(optionHost);
607
- if (directIndex >= 0) {
608
- currentIndex = directIndex;
609
- }
610
- else {
611
- const tabbableOptionIndex = getTabbableOptionControlIndex(allFocusable, lastOverlay);
612
- if (tabbableOptionIndex >= 0) {
613
- currentIndex = tabbableOptionIndex;
614
- }
615
- }
616
- }
617
- }
618
459
  ev.preventDefault();
619
460
  // Helper to focus an element, handling shadow DOM properly
620
461
  const focusElement = (element) => {
@@ -622,49 +463,30 @@ const connectListeners = (doc) => {
622
463
  if (shadowRoot) {
623
464
  const innerFocusable = shadowRoot.querySelector(focusableQueryString);
624
465
  if (innerFocusable && typeof element.setFocus !== 'function') {
625
- helpers.focusVisibleElement(innerFocusable);
466
+ focusVisible.focusVisibleElement(innerFocusable);
626
467
  return;
627
468
  }
628
469
  }
629
- helpers.focusVisibleElement(element);
470
+ focusVisible.focusVisibleElement(element);
630
471
  };
631
- let nextIndex;
632
472
  if (ev.shiftKey) {
633
473
  // Shift+Tab: previous element, wrap to last if at first
634
474
  if (currentIndex <= 0) {
635
- nextIndex = allFocusable.length - 1;
475
+ focusLastDescendant(lastOverlay);
636
476
  }
637
477
  else {
638
- nextIndex = currentIndex - 1;
478
+ focusElement(allFocusable[currentIndex - 1]);
639
479
  }
640
480
  }
641
481
  else {
642
482
  // Tab: next element, wrap to first if at last
643
483
  if (currentIndex < 0 || currentIndex >= allFocusable.length - 1) {
644
- nextIndex = 0;
484
+ focusFirstDescendant(lastOverlay);
645
485
  }
646
486
  else {
647
- nextIndex = currentIndex + 1;
648
- }
649
- }
650
- const nextEl = allFocusable[nextIndex];
651
- const overlayTrap = lastOverlay;
652
- const tabbableOptionIndex = isSheetModal ? getTabbableOptionControlIndex(allFocusable, lastOverlay) : -1;
653
- /**
654
- * The trap list only includes one tabbable option host
655
- * (`tabIndex >= 0`), usually the checked/first radio.
656
- * `focusin` tracks the real last-focused option; use it
657
- * whenever Tab would focus that slot (wrap from Cancel,
658
- * Shift+Tab from handle, etc.).
659
- */
660
- let focusTarget = nextEl;
661
- if (isSheetModal && tabbableOptionIndex >= 0 && nextIndex === tabbableOptionIndex) {
662
- const saved = overlayTrap.trapLastSheetOptionControl;
663
- if ((saved === null || saved === void 0 ? void 0 : saved.isConnected) && lastOverlay.contains(saved) && saved !== nextEl) {
664
- focusTarget = saved;
487
+ focusElement(allFocusable[currentIndex + 1]);
665
488
  }
666
489
  }
667
- focusElement(focusTarget);
668
490
  }, true);
669
491
  // handle back-button click
670
492
  doc.addEventListener('ionBackButton', (ev) => {
@@ -835,7 +657,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, ionic
835
657
  ? ionicEnterAnimation
836
658
  : mdEnterAnimation;
837
659
  // get the user's animation fn if one was provided
838
- const animationBuilder = overlay.enterAnimation ? overlay.enterAnimation : index.config.get(name, selectedAnimation);
660
+ const animationBuilder = overlay.enterAnimation ? overlay.enterAnimation : focusVisible.config.get(name, selectedAnimation);
839
661
  const completed = await overlayAnimation(overlay, animationBuilder, overlay.el, opts);
840
662
  if (completed) {
841
663
  overlay.didPresent.emit();
@@ -956,7 +778,7 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
956
778
  const mode = ionicGlobal.getIonMode(overlay);
957
779
  const animationBuilder = overlay.leaveAnimation
958
780
  ? overlay.leaveAnimation
959
- : index.config.get(name, mode === 'ios' ? iosLeaveAnimation : mdLeaveAnimation);
781
+ : focusVisible.config.get(name, mode === 'ios' ? iosLeaveAnimation : mdLeaveAnimation);
960
782
  // If dismissed via gesture, no need to play leaving animation again
961
783
  if (role !== GESTURE) {
962
784
  await overlayAnimation(overlay, animationBuilder, overlay.el, opts);
@@ -984,13 +806,13 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
984
806
  }
985
807
  }
986
808
  catch (err) {
987
- index.printIonError(`[${overlay.el.tagName.toLowerCase()}] - `, err);
809
+ focusVisible.printIonError(`[${overlay.el.tagName.toLowerCase()}] - `, err);
988
810
  }
989
811
  overlay.el.remove();
990
812
  return true;
991
813
  };
992
814
  const getAppRoot = (doc) => {
993
- const appRootSelector = index.config.get('appRootSelector', 'ion-app');
815
+ const appRootSelector = focusVisible.config.get('appRootSelector', 'ion-app');
994
816
  return doc.querySelector(appRootSelector) || doc.body;
995
817
  };
996
818
  const overlayAnimation = async (overlay, animationBuilder, baseEl, opts) => {
@@ -998,7 +820,7 @@ const overlayAnimation = async (overlay, animationBuilder, baseEl, opts) => {
998
820
  baseEl.classList.remove('overlay-hidden');
999
821
  const aniRoot = overlay.el;
1000
822
  const animation = animationBuilder(aniRoot, opts);
1001
- if (!overlay.animated || !index.config.getBoolean('animated', true)) {
823
+ if (!overlay.animated || !focusVisible.config.getBoolean('animated', true)) {
1002
824
  animation.duration(0);
1003
825
  }
1004
826
  if (overlay.keyboardClose) {
@@ -1024,10 +846,10 @@ const eventMethod = (element, eventName) => {
1024
846
  };
1025
847
  const onceEvent = (element, eventName, callback) => {
1026
848
  const handler = (ev) => {
1027
- helpers.removeEventListener(element, eventName, handler);
849
+ focusVisible.removeEventListener(element, eventName, handler);
1028
850
  callback(ev);
1029
851
  };
1030
- helpers.addEventListener(element, eventName, handler);
852
+ focusVisible.addEventListener(element, eventName, handler);
1031
853
  };
1032
854
  const isCancel = (role) => {
1033
855
  return role === 'cancel' || role === BACKDROP;
@@ -1042,7 +864,7 @@ const defaultGate = (h) => h();
1042
864
  */
1043
865
  const safeCall = (handler, arg) => {
1044
866
  if (typeof handler === 'function') {
1045
- const jmp = index.config.get('_zoneGate', defaultGate);
867
+ const jmp = focusVisible.config.get('_zoneGate', defaultGate);
1046
868
  return jmp(() => {
1047
869
  try {
1048
870
  return handler(arg);
@@ -1164,7 +986,7 @@ const createTriggerController = () => {
1164
986
  removeClickListener();
1165
987
  const triggerEl = trigger !== undefined ? document.getElementById(trigger) : null;
1166
988
  if (!triggerEl) {
1167
- index.printIonWarning(`[${el.tagName.toLowerCase()}] - A trigger element with the ID "${trigger}" was not found in the DOM. The trigger element must be in the DOM when the "trigger" property is set on an overlay component.`, el);
989
+ focusVisible.printIonWarning(`[${el.tagName.toLowerCase()}] - A trigger element with the ID "${trigger}" was not found in the DOM. The trigger element must be in the DOM when the "trigger" property is set on an overlay component.`, el);
1168
990
  return;
1169
991
  }
1170
992
  const configureTriggerInteraction = (targetEl, overlayEl) => {
@@ -3,8 +3,8 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-CzcLEdQ5.js');
7
- var index$1 = require('./index-BJlwOs11.js');
6
+ var focusVisible = require('./index-BDthk8R7.js');
7
+ var index = require('./index-BbhXd9Zs.js');
8
8
 
9
9
  /**
10
10
  * Cache that maps rendered span elements to the source HTMLElement
@@ -30,14 +30,14 @@ const contentCache = new WeakMap();
30
30
  */
31
31
  const renderClonedContent = (id, content, className, useSpan = false) => {
32
32
  const Tag = useSpan ? 'span' : 'div';
33
- return (index.h(Tag, { class: className, key: `${className}-${id}`, ref: (el) => {
33
+ return (focusVisible.h(Tag, { class: className, key: `${className}-${id}`, ref: (el) => {
34
34
  if (el) {
35
35
  const cached = contentCache.get(el);
36
36
  // Skip if this element already has clones from the same source
37
37
  if (cached === content) {
38
38
  return;
39
39
  }
40
- const sanitized = index$1.sanitizeDOMString(content.innerHTML);
40
+ const sanitized = index.sanitizeDOMString(content.innerHTML);
41
41
  el.innerHTML = sanitized !== null && sanitized !== void 0 ? sanitized : '';
42
42
  contentCache.set(el, content);
43
43
  }
@@ -62,20 +62,20 @@ const renderOptionLabel = (option, className, useSpan = false) => {
62
62
  const Tag = useSpan ? 'span' : 'div';
63
63
  // Render simple string label if there is no rich content to display
64
64
  if (!hasRichContent && (typeof label === 'string' || !label)) {
65
- return (index.h(Tag, { class: className, key: `${className}-${id}` }, label));
65
+ return (focusVisible.h(Tag, { class: className, key: `${className}-${id}` }, label));
66
66
  }
67
67
  // Render the main label
68
68
  const labelEl = typeof label === 'string' || !label ? (
69
69
  // Label is a simple string or undefined
70
- index.h(Tag, { key: `${className}-label-${id}` }, label)) : (
70
+ focusVisible.h(Tag, { key: `${className}-label-${id}` }, label)) : (
71
71
  // Label is an HTMLElement with potential rich content
72
72
  renderClonedContent(id, label, `${className}-text`, useSpan));
73
73
  // No rich content, render just the label
74
74
  if (!hasRichContent) {
75
- return (index.h(Tag, { class: className, key: `${className}-${id}` }, labelEl));
75
+ return (focusVisible.h(Tag, { class: className, key: `${className}-${id}` }, labelEl));
76
76
  }
77
77
  // Render label with rich content (start, end, description)
78
- return (index.h(Tag, { class: className, key: `${className}-${id}` }, startContent && renderClonedContent(id, startContent, 'select-option-start', useSpan), index.h(Tag, { class: "select-option-content", key: `${className}-content-${id}` }, labelEl, description && (index.h(Tag, { class: "select-option-description", key: `${className}-desc-${id}` }, description))), endContent && renderClonedContent(id, endContent, 'select-option-end', useSpan)));
78
+ return (focusVisible.h(Tag, { class: className, key: `${className}-${id}` }, startContent && renderClonedContent(id, startContent, 'select-option-start', useSpan), focusVisible.h(Tag, { class: "select-option-content", key: `${className}-content-${id}` }, labelEl, description && (focusVisible.h(Tag, { class: "select-option-description", key: `${className}-desc-${id}` }, description))), endContent && renderClonedContent(id, endContent, 'select-option-end', useSpan)));
79
79
  };
80
80
 
81
81
  exports.renderOptionLabel = renderOptionLabel;
@@ -3,25 +3,23 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-CzcLEdQ5.js');
7
- var index$1 = require('./index-BJrpF9T3.js');
8
- var helpers = require('./helpers-DJYxKN5U.js');
9
- require('./focus-visible-BIj-I3-C.js');
6
+ var focusVisible = require('./index-BDthk8R7.js');
7
+ var index = require('./index-DhXmkpe3.js');
10
8
 
11
9
  const startStatusTap = () => {
12
10
  const win = window;
13
11
  win.addEventListener('statusTap', () => {
14
- index.readTask(() => {
12
+ focusVisible.readTask(() => {
15
13
  const width = win.innerWidth;
16
14
  const height = win.innerHeight;
17
15
  const el = document.elementFromPoint(width / 2, height / 2);
18
16
  if (!el) {
19
17
  return;
20
18
  }
21
- const contentEl = index$1.findClosestIonContent(el);
19
+ const contentEl = index.findClosestIonContent(el);
22
20
  if (contentEl) {
23
- new Promise((resolve) => helpers.componentOnReady(contentEl, resolve)).then(() => {
24
- index.writeTask(async () => {
21
+ focusVisible.waitForComponentReady(contentEl).then(() => {
22
+ focusVisible.writeTask(async () => {
25
23
  /**
26
24
  * If scrolling and user taps status bar,
27
25
  * only calling scrollToTop is not enough
@@ -30,7 +28,7 @@ const startStatusTap = () => {
30
28
  * any in-progress momentum scrolling.
31
29
  */
32
30
  contentEl.style.setProperty('--overflow', 'hidden');
33
- await index$1.scrollToTop(contentEl, 300);
31
+ await index.scrollToTop(contentEl, 300);
34
32
  contentEl.style.removeProperty('--overflow');
35
33
  });
36
34
  });
@@ -3,11 +3,9 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var helpers = require('./helpers-DJYxKN5U.js');
6
+ var focusVisible = require('./index-BDthk8R7.js');
7
7
  var dir = require('./dir-Cn0z1rJH.js');
8
8
  var index = require('./index-CAvQ7Tka.js');
9
- require('./focus-visible-BIj-I3-C.js');
10
- require('./index-CzcLEdQ5.js');
11
9
  require('./gesture-controller-dtqlP_q4.js');
12
10
 
13
11
  const createSwipeBackGesture = (el, canStartHandler, onStartHandler, onMoveHandler, onEndHandler) => {
@@ -62,7 +60,7 @@ const createSwipeBackGesture = (el, canStartHandler, onStartHandler, onMoveHandl
62
60
  const dur = missingDistance / Math.abs(velocity);
63
61
  realDur = Math.min(dur, 540);
64
62
  }
65
- onEndHandler(shouldComplete, stepValue <= 0 ? 0.01 : helpers.clamp(0, stepValue, 0.9999), realDur);
63
+ onEndHandler(shouldComplete, stepValue <= 0 ? 0.01 : focusVisible.clamp(0, stepValue, 0.9999), realDur);
66
64
  };
67
65
  return index.createGesture({
68
66
  el,
@@ -32,7 +32,6 @@
32
32
  "components/fab-button/fab-button.js",
33
33
  "components/fab-list/fab-list.js",
34
34
  "components/footer/footer.js",
35
- "components/gallery/gallery.js",
36
35
  "components/grid/grid.js",
37
36
  "components/header/header.js",
38
37
  "components/img/img.js",
@@ -144,11 +143,6 @@
144
143
  "ion-chip"
145
144
  ]
146
145
  },
147
- {
148
- "components": [
149
- "ion-gallery"
150
- ]
151
- },
152
146
  {
153
147
  "components": [
154
148
  "ion-input"
@@ -243,7 +243,6 @@
243
243
  flex-shrink: 2;
244
244
  overscroll-behavior-y: contain;
245
245
  overflow-y: auto;
246
- -webkit-overflow-scrolling: touch;
247
246
  pointer-events: all;
248
247
  background: var(--background);
249
248
  }
@@ -565,7 +564,6 @@
565
564
  flex-shrink: 2;
566
565
  overscroll-behavior-y: contain;
567
566
  overflow-y: auto;
568
- -webkit-overflow-scrolling: touch;
569
567
  pointer-events: all;
570
568
  background: var(--background);
571
569
  }
@@ -660,7 +658,7 @@
660
658
  padding-right: 0;
661
659
  padding-top: 5px;
662
660
  padding-bottom: 0;
663
- color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
661
+ color: var(--ion-text-color-step-300, #4d4d4d);
664
662
  font-size: 0.75rem;
665
663
  }
666
664
 
@@ -737,7 +735,7 @@
737
735
  --button-background-hover-opacity: 0.04;
738
736
  --button-background-focused: currentColor;
739
737
  --button-background-focused-opacity: 0.12;
740
- --button-color: var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));
738
+ --button-color: var(--ion-text-color-step-150, #262626);
741
739
  --button-color-disabled: var(--button-color);
742
740
  --color: rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54);
743
741
  }
@@ -237,7 +237,6 @@
237
237
  flex-shrink: 2;
238
238
  overscroll-behavior-y: contain;
239
239
  overflow-y: auto;
240
- -webkit-overflow-scrolling: touch;
241
240
  pointer-events: all;
242
241
  background: var(--background);
243
242
  }
@@ -332,7 +331,7 @@
332
331
  padding-right: 0;
333
332
  padding-top: 5px;
334
333
  padding-bottom: 0;
335
- color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
334
+ color: var(--ion-text-color-step-300, #4d4d4d);
336
335
  font-size: 0.75rem;
337
336
  }
338
337
 
@@ -398,7 +397,7 @@
398
397
  * }
399
398
  */
400
399
  :host {
401
- --background: var(--ion-overlay-background-color, var(--ion-color-step-100, var(--ion-background-color-step-100, #f9f9f9)));
400
+ --background: var(--ion-overlay-background-color, var(--ion-background-color-step-100, #f9f9f9));
402
401
  --backdrop-opacity: var(--ion-backdrop-opacity, 0.4);
403
402
  --button-background: linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent;
404
403
  --button-background-activated: var(--ion-text-color, #000);
@@ -407,11 +406,11 @@
407
406
  --button-background-hover-opacity: 0.04;
408
407
  --button-background-focused: currentColor;
409
408
  --button-background-focused-opacity: 0.12;
410
- --button-background-selected: var(--ion-color-step-150, var(--ion-background-color-step-150, var(--ion-background-color, #fff)));
409
+ --button-background-selected: var(--ion-background-color-step-150, var(--ion-background-color, #fff));
411
410
  --button-background-selected-opacity: 1;
412
- --button-color: var(--ion-color-primary, #0054e9);
413
- --button-color-disabled: var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));
414
- --color: var(--ion-color-step-400, var(--ion-text-color-step-600, #999999));
411
+ --button-color: var(--ion-color-primary, var(--ion-color-primary-bold));
412
+ --button-color-disabled: var(--ion-text-color-step-150, #262626);
413
+ --color: var(--ion-text-color-step-600, #999999);
415
414
  text-align: center;
416
415
  }
417
416
 
@@ -492,7 +491,7 @@
492
491
  padding-inline-end: 10px;
493
492
  padding-top: 14px;
494
493
  padding-bottom: 13px;
495
- color: var(--color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));
494
+ color: var(--color, var(--ion-text-color-step-600, #999999));
496
495
  font-size: max(13px, 0.8125rem);
497
496
  font-weight: 400;
498
497
  text-align: center;
@@ -549,11 +548,11 @@
549
548
  .action-sheet-destructive,
550
549
  .action-sheet-destructive.ion-activated,
551
550
  .action-sheet-destructive.ion-focused {
552
- color: var(--ion-color-danger, #c5000f);
551
+ color: var(--ion-color-danger, var(--ion-color-danger-bold));
553
552
  }
554
553
 
555
554
  @media (any-hover: hover) {
556
555
  .action-sheet-destructive:hover {
557
- color: var(--ion-color-danger, #c5000f);
556
+ color: var(--ion-color-danger, var(--ion-color-danger-bold));
558
557
  }
559
558
  }
@@ -237,7 +237,6 @@
237
237
  flex-shrink: 2;
238
238
  overscroll-behavior-y: contain;
239
239
  overflow-y: auto;
240
- -webkit-overflow-scrolling: touch;
241
240
  pointer-events: all;
242
241
  background: var(--background);
243
242
  }
@@ -332,7 +331,7 @@
332
331
  padding-right: 0;
333
332
  padding-top: 5px;
334
333
  padding-bottom: 0;
335
- color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
334
+ color: var(--ion-text-color-step-300, #4d4d4d);
336
335
  font-size: 0.75rem;
337
336
  }
338
337
 
@@ -409,7 +408,7 @@
409
408
  --button-background-hover-opacity: 0.04;
410
409
  --button-background-focused: currentColor;
411
410
  --button-background-focused-opacity: 0.12;
412
- --button-color: var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));
411
+ --button-color: var(--ion-text-color-step-150, #262626);
413
412
  --button-color-disabled: var(--button-color);
414
413
  --color: rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54);
415
414
  }