@ionic/core 8.8.19-dev.11786610762.137bbb21 → 8.8.19-nightly.20260814

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 (1139) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-accordion-group.js +1 -1
  3. package/components/ion-accordion.js +1 -1
  4. package/components/ion-action-sheet.js +1 -1
  5. package/components/ion-alert.js +1 -1
  6. package/components/ion-app.js +1 -1
  7. package/components/ion-avatar.js +1 -1
  8. package/components/ion-back-button.js +1 -1
  9. package/components/ion-backdrop.js +1 -1
  10. package/components/ion-badge.js +1 -1
  11. package/components/ion-breadcrumb.js +1 -1
  12. package/components/ion-breadcrumbs.js +1 -1
  13. package/components/ion-button.js +1 -1
  14. package/components/ion-buttons.js +1 -1
  15. package/components/ion-card-content.js +1 -1
  16. package/components/ion-card-header.js +1 -1
  17. package/components/ion-card-subtitle.js +1 -1
  18. package/components/ion-card-title.js +1 -1
  19. package/components/ion-card.js +1 -1
  20. package/components/ion-checkbox.js +1 -1
  21. package/components/ion-chip.js +1 -1
  22. package/components/ion-col.js +1 -1
  23. package/components/ion-content.js +1 -1
  24. package/components/ion-datetime-button.js +1 -1
  25. package/components/ion-datetime.js +1 -1
  26. package/components/ion-fab-button.js +1 -1
  27. package/components/ion-fab-list.js +1 -1
  28. package/components/ion-fab.js +1 -1
  29. package/components/ion-footer.js +1 -1
  30. package/components/ion-grid.js +1 -1
  31. package/components/ion-header.js +1 -1
  32. package/components/ion-icon.js +1 -1
  33. package/components/ion-img.js +1 -1
  34. package/components/ion-infinite-scroll-content.js +1 -1
  35. package/components/ion-infinite-scroll.js +1 -1
  36. package/components/ion-input-otp.js +1 -1
  37. package/components/ion-input-password-toggle.js +1 -1
  38. package/components/ion-input.js +1 -1
  39. package/components/ion-item-divider.js +1 -1
  40. package/components/ion-item-group.js +1 -1
  41. package/components/ion-item-option.js +1 -1
  42. package/components/ion-item-options.js +1 -1
  43. package/components/ion-item-sliding.js +1 -1
  44. package/components/ion-item.js +1 -1
  45. package/components/ion-label.js +1 -1
  46. package/components/ion-list-header.js +1 -1
  47. package/components/ion-list.js +1 -1
  48. package/components/ion-loading.js +1 -1
  49. package/components/ion-menu-button.js +1 -1
  50. package/components/ion-menu-toggle.js +1 -1
  51. package/components/ion-menu.js +1 -1
  52. package/components/ion-modal.js +1 -1
  53. package/components/ion-nav-link.js +1 -1
  54. package/components/ion-nav.js +1 -1
  55. package/components/ion-note.js +1 -1
  56. package/components/ion-picker-column-option.js +1 -1
  57. package/components/ion-picker-column.js +1 -1
  58. package/components/ion-picker-legacy-column.js +1 -1
  59. package/components/ion-picker-legacy.js +1 -1
  60. package/components/ion-picker.js +1 -1
  61. package/components/ion-popover.js +1 -1
  62. package/components/ion-progress-bar.js +1 -1
  63. package/components/ion-radio-group.js +1 -1
  64. package/components/ion-radio.js +1 -1
  65. package/components/ion-range.js +1 -1
  66. package/components/ion-refresher-content.js +1 -1
  67. package/components/ion-refresher.js +1 -1
  68. package/components/ion-reorder-group.js +1 -1
  69. package/components/ion-reorder.js +1 -1
  70. package/components/ion-ripple-effect.js +1 -1
  71. package/components/ion-route-redirect.js +1 -1
  72. package/components/ion-route.js +1 -1
  73. package/components/ion-router-link.js +1 -1
  74. package/components/ion-router-outlet.js +1 -1
  75. package/components/ion-router.js +1 -1
  76. package/components/ion-row.js +1 -1
  77. package/components/ion-searchbar.js +1 -1
  78. package/components/ion-segment-button.js +1 -1
  79. package/components/ion-segment-content.js +1 -1
  80. package/components/ion-segment-view.js +1 -1
  81. package/components/ion-segment.js +1 -1
  82. package/components/ion-select-modal.js +1 -1
  83. package/components/ion-select-option.js +1 -1
  84. package/components/ion-select-popover.js +1 -1
  85. package/components/ion-select.js +1 -1
  86. package/components/ion-skeleton-text.js +1 -1
  87. package/components/ion-spinner.js +1 -1
  88. package/components/ion-split-pane.js +1 -1
  89. package/components/ion-tab-bar.js +1 -1
  90. package/components/ion-tab-button.js +1 -1
  91. package/components/ion-tab.js +1 -1
  92. package/components/ion-tabs.js +1 -1
  93. package/components/ion-text.js +1 -1
  94. package/components/ion-textarea.js +1 -1
  95. package/components/ion-thumbnail.js +1 -1
  96. package/components/ion-title.js +1 -1
  97. package/components/ion-toast.js +1 -1
  98. package/components/ion-toggle.js +1 -1
  99. package/components/ion-toolbar.js +1 -1
  100. package/components/p--JUspHvy.js +4 -0
  101. package/components/{p-paDbTUL9.js → p-A3O24YmY.js} +1 -1
  102. package/components/p-ABkNVeU9.js +4 -0
  103. package/components/{p-CA4M5WkT.js → p-B-JJgYSG.js} +1 -1
  104. package/components/p-B9jFTlwE.js +4 -0
  105. package/components/p-BLmJ0zRm.js +4 -0
  106. package/components/p-BMI53wYL.js +4 -0
  107. package/components/p-BSEgsdFI.js +4 -0
  108. package/{dist/ionic/p-Cipl19Qe.js → components/p-BkKAANMJ.js} +1 -1
  109. package/components/p-BlIAuGv2.js +4 -0
  110. package/components/p-BmVRXR1y.js +4 -0
  111. package/components/p-Bnsn6KaP.js +4 -0
  112. package/components/p-BsBCoGa-.js +4 -0
  113. package/components/p-Bz0dSlXZ.js +4 -0
  114. package/components/p-CHqRYvYm.js +4 -0
  115. package/components/p-CIGNaXM1.js +4 -0
  116. package/components/p-CO7fmmxt.js +4 -0
  117. package/components/p-CQGnMY3n.js +4 -0
  118. package/components/p-CSZf8_j0.js +4 -0
  119. package/components/{p-CpHPq11n.js → p-C_hpsif8.js} +1 -1
  120. package/components/p-C_xFdyXe.js +4 -0
  121. package/components/{p-BE21dB_a.js → p-Cf2jSDS8.js} +1 -1
  122. package/components/p-Cfx4M1Bn.js +4 -0
  123. package/components/{p-Ch8jco3x.js → p-ChIZKXUu.js} +1 -1
  124. package/components/p-CkMSOsFF.js +4 -0
  125. package/components/p-CmR5uXej.js +4 -0
  126. package/components/p-Cp4GRDqq.js +4 -0
  127. package/components/p-CsNJ1ULL.js +4 -0
  128. package/components/p-CtWGkNnJ.js +4 -0
  129. package/components/p-CzCbeKys.js +4 -0
  130. package/components/p-D-aHdMxW.js +4 -0
  131. package/components/p-D0d8qTwj.js +4 -0
  132. package/components/{p-znZTPd7u.js → p-D13Eaw-8.js} +1 -1
  133. package/components/p-D3xo7hqU.js +4 -0
  134. package/components/p-D6Ynv7Xh.js +4 -0
  135. package/components/{p-CzlL9T_X.js → p-D7uN07a3.js} +1 -1
  136. package/components/p-DCnGU1fF.js +4 -0
  137. package/components/p-DGvrK8dD.js +4 -0
  138. package/components/p-DJztqcrH.js +4 -0
  139. package/components/p-DOFCbuQR.js +4 -0
  140. package/components/p-DRxvM2Ic.js +4 -0
  141. package/components/p-DV5mPYQS.js +4 -0
  142. package/components/p-DWkAgceV.js +4 -0
  143. package/components/p-DiVJyqlX.js +4 -0
  144. package/components/{p-BZwQa9ey.js → p-DqLB8yFQ.js} +1 -1
  145. package/components/p-DqZAXv2t.js +4 -0
  146. package/components/{p-miSYSxcc.js → p-Osve4qkc.js} +1 -1
  147. package/components/p-R8zmRi4c.js +4 -0
  148. package/components/p-SLS1rDZM.js +4 -0
  149. package/components/p-ZjP4CjeZ.js +4 -0
  150. package/components/p-aJ6PBUvj.js +4 -0
  151. package/{dist/ionic/p-C7urd_wE.js → components/p-cyNmxje6.js} +1 -1
  152. package/components/p-gAg0kXZp.js +4 -0
  153. package/components/p-gYiraiT_.js +4 -0
  154. package/components/p-j5IxBIan.js +4 -0
  155. package/components/p-k_E4tX5Z.js +4 -0
  156. package/components/p-oD4kcBRX.js +4 -0
  157. package/components/p-rCa2eL0j.js +4 -0
  158. package/components/p-vRBNsYbs.js +4 -0
  159. package/components/p-yEQxMl70.js +4 -0
  160. package/components/p-yzCsOZE2.js +4 -0
  161. package/css/core.css +1 -1
  162. package/css/core.css.map +1 -1
  163. package/css/display.css +1 -1
  164. package/css/display.css.map +1 -1
  165. package/css/flex-utils.css +1 -1
  166. package/css/flex-utils.css.map +1 -1
  167. package/css/float-elements.css.map +1 -1
  168. package/css/global.bundle.css.map +1 -1
  169. package/css/ionic-swiper.css +1 -1
  170. package/css/ionic-swiper.css.map +1 -1
  171. package/css/ionic.bundle.css +1 -1
  172. package/css/ionic.bundle.css.map +1 -1
  173. package/css/normalize.css.map +1 -1
  174. package/css/padding.css.map +1 -1
  175. package/css/palettes/dark.always.css.map +1 -1
  176. package/css/palettes/dark.class.css.map +1 -1
  177. package/css/palettes/dark.system.css.map +1 -1
  178. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  179. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  180. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  181. package/css/palettes/high-contrast.always.css.map +1 -1
  182. package/css/palettes/high-contrast.class.css.map +1 -1
  183. package/css/palettes/high-contrast.system.css.map +1 -1
  184. package/css/structure.css.map +1 -1
  185. package/css/text-alignment.css.map +1 -1
  186. package/css/text-transformation.css.map +1 -1
  187. package/css/typography.css.map +1 -1
  188. package/css/utils.bundle.css +1 -1
  189. package/css/utils.bundle.css.map +1 -1
  190. package/dist/cjs/{animation-qlGmEn5Y.js → animation-Ch16T-Nb.js} +3 -3
  191. package/dist/cjs/{app-globals-CtK-3pCu.js → app-globals-Dd89e0MR.js} +1 -1
  192. package/dist/cjs/{button-active-CugpWmFI.js → button-active-COnxOe4X.js} +2 -2
  193. package/dist/cjs/{capacitor-BixsAzyb.js → capacitor-DmA66EwP.js} +3 -3
  194. package/dist/cjs/config-D6C-KlA9.js +201 -0
  195. package/dist/{esm/focus-visible-vXpMhGrs.js → cjs/focus-visible-CCvKiLh3.js} +3 -23
  196. package/dist/cjs/{format-COAsdjOc.js → format-BUFWn4Bn.js} +1 -1
  197. package/dist/cjs/{framework-delegate-CJT_QJQI.js → framework-delegate-BgU6U9Ez.js} +2 -4
  198. package/dist/cjs/{haptic-BFgF-QCg.js → haptic-ClPPQ_PS.js} +1 -1
  199. package/dist/cjs/hardware-back-button-CXmUnTJC.js +121 -0
  200. package/dist/cjs/{helpers-Fh1iXsX9.js → helpers-gntk8bfm.js} +4 -71
  201. package/dist/cjs/{index-D94mERjz.js → index-BS2uhvhT.js} +4 -4
  202. package/dist/cjs/{index-C1knGA9x.js → index-BfaXsATC.js} +4 -53
  203. package/dist/cjs/{index-CNicxECl.js → index-BhhuJ1Yx.js} +8 -9
  204. package/dist/cjs/{index-DRFkZu3V.js → index-BiRrzGDi.js} +2 -2
  205. package/dist/cjs/index-DkNv4J_i.js +10 -0
  206. package/dist/cjs/{index-CxDnX7hd.js → index-DqmRDbxg.js} +1 -3
  207. package/dist/cjs/{index-CM8iGvyx.js → index-ooS8B4p9.js} +15 -15
  208. package/dist/cjs/index.cjs.js +16 -16
  209. package/dist/cjs/{input-shims-C8NCYfWv.js → input-shims-Bn1cXfCM.js} +17 -18
  210. package/dist/cjs/{input.utils-CYZZsbdf.js → input.utils-BwhxZooW.js} +5 -5
  211. package/dist/cjs/ion-accordion_2.cjs.entry.js +29 -61
  212. package/dist/cjs/ion-action-sheet.cjs.entry.js +22 -41
  213. package/dist/cjs/ion-alert.cjs.entry.js +41 -78
  214. package/dist/cjs/ion-app_8.cjs.entry.js +194 -458
  215. package/dist/cjs/ion-avatar_3.cjs.entry.js +13 -125
  216. package/dist/cjs/ion-back-button.cjs.entry.js +22 -31
  217. package/dist/cjs/ion-backdrop.cjs.entry.js +7 -10
  218. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +18 -54
  219. package/dist/cjs/ion-button_2.cjs.entry.js +24 -61
  220. package/dist/cjs/ion-card_5.cjs.entry.js +33 -55
  221. package/dist/cjs/ion-checkbox.cjs.entry.js +17 -34
  222. package/dist/cjs/ion-chip.cjs.entry.js +9 -50
  223. package/dist/cjs/ion-col_3.cjs.entry.js +57 -56
  224. package/dist/cjs/ion-datetime-button.cjs.entry.js +9 -13
  225. package/dist/cjs/ion-datetime_3.cjs.entry.js +46 -121
  226. package/dist/cjs/ion-fab_3.cjs.entry.js +28 -44
  227. package/dist/cjs/ion-img.cjs.entry.js +4 -8
  228. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +17 -93
  229. package/dist/cjs/ion-input-otp.cjs.entry.js +9 -74
  230. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +15 -53
  231. package/dist/cjs/ion-input.cjs.entry.js +40 -132
  232. package/dist/cjs/ion-item-option_3.cjs.entry.js +52 -467
  233. package/dist/cjs/ion-item_8.cjs.entry.js +50 -121
  234. package/dist/cjs/ion-loading.cjs.entry.js +19 -22
  235. package/dist/cjs/ion-menu_3.cjs.entry.js +29 -47
  236. package/dist/cjs/ion-modal.cjs.entry.js +138 -262
  237. package/dist/cjs/ion-nav_2.cjs.entry.js +11 -14
  238. package/dist/cjs/ion-picker-column-option.cjs.entry.js +8 -12
  239. package/dist/cjs/ion-picker-column.cjs.entry.js +14 -14
  240. package/dist/cjs/ion-picker.cjs.entry.js +6 -10
  241. package/dist/cjs/ion-popover.cjs.entry.js +19 -21
  242. package/dist/cjs/ion-progress-bar.cjs.entry.js +9 -27
  243. package/dist/cjs/ion-radio_2.cjs.entry.js +18 -36
  244. package/dist/cjs/ion-range.cjs.entry.js +13 -20
  245. package/dist/cjs/ion-refresher_2.cjs.entry.js +23 -42
  246. package/dist/cjs/ion-reorder_2.cjs.entry.js +14 -38
  247. package/dist/cjs/ion-ripple-effect.cjs.entry.js +7 -15
  248. package/dist/cjs/ion-route_4.cjs.entry.js +10 -11
  249. package/dist/cjs/ion-searchbar.cjs.entry.js +32 -146
  250. package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
  251. package/dist/cjs/ion-segment-view.cjs.entry.js +3 -13
  252. package/dist/cjs/ion-segment_2.cjs.entry.js +16 -23
  253. package/dist/cjs/ion-select-modal.cjs.entry.js +38 -114
  254. package/dist/cjs/ion-select_3.cjs.entry.js +108 -557
  255. package/dist/cjs/ion-spinner.cjs.entry.js +8 -30
  256. package/dist/cjs/ion-split-pane.cjs.entry.js +9 -13
  257. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +28 -150
  258. package/dist/cjs/ion-tab_2.cjs.entry.js +7 -8
  259. package/dist/cjs/ion-text.cjs.entry.js +7 -7
  260. package/dist/cjs/ion-textarea.cjs.entry.js +23 -137
  261. package/dist/cjs/ion-toast.cjs.entry.js +46 -70
  262. package/dist/cjs/ion-toggle.cjs.entry.js +26 -82
  263. package/dist/cjs/ionic-global-BerQGEpE.js +151 -0
  264. package/dist/cjs/ionic.cjs.js +4 -4
  265. package/dist/cjs/{ios.transition-BgDCUY4Y.js → ios.transition-IMJRwn29.js} +5 -7
  266. package/dist/cjs/{item-multiple-inputs-DKn76MYO.js → item-multiple-inputs-jOJZE_I0.js} +1 -1
  267. package/dist/cjs/{keyboard-BbZXOwZg.js → keyboard-UuAS4D_9.js} +1 -1
  268. package/dist/cjs/keyboard-controller-GXBiBRKS.js +167 -0
  269. package/dist/cjs/{keyboard-nne7rvBK.js → keyboard-hHzlEQpk.js} +3 -4
  270. package/dist/cjs/loader.cjs.js +4 -4
  271. package/dist/cjs/{md.transition-Debf4tYr.js → md.transition-CgQZxcoT.js} +5 -6
  272. package/dist/cjs/{notch-controller-CFlPw7ER.js → notch-controller-_SwR025y.js} +4 -4
  273. package/dist/cjs/{overlays-DYBUkNQu.js → overlays-DuSEMhIW.js} +18 -309
  274. package/dist/cjs/{status-tap-hwqc0yb_.js → status-tap-CSvBT7FV.js} +3 -4
  275. package/dist/cjs/{swipe-back-DqQx5QCp.js → swipe-back-CuIiziaa.js} +2 -3
  276. package/dist/cjs/{theme-IlOsGAz7.js → theme-CeDs6Hcv.js} +1 -25
  277. package/dist/cjs/validity-BpS37YFM.js +19 -0
  278. package/dist/collection/collection-manifest.json +1 -9
  279. package/dist/collection/components/accordion/accordion.ios.css +58 -73
  280. package/dist/collection/components/accordion/accordion.js +27 -41
  281. package/dist/collection/components/accordion/accordion.md.css +59 -67
  282. package/dist/collection/components/accordion-group/accordion-group.ios.css +4 -16
  283. package/dist/collection/components/accordion-group/accordion-group.js +8 -44
  284. package/dist/collection/components/accordion-group/accordion-group.md.css +4 -22
  285. package/dist/collection/components/action-sheet/action-sheet.ios.css +11 -367
  286. package/dist/collection/components/action-sheet/action-sheet.js +13 -32
  287. package/dist/collection/components/action-sheet/action-sheet.md.css +10 -306
  288. package/dist/collection/components/alert/alert.ios.css +19 -481
  289. package/dist/collection/components/alert/alert.js +30 -67
  290. package/dist/collection/components/alert/alert.md.css +29 -464
  291. package/dist/collection/components/app/app.js +83 -15
  292. package/dist/collection/components/avatar/avatar.ios.css +33 -7
  293. package/dist/collection/components/avatar/avatar.js +4 -120
  294. package/dist/collection/components/avatar/avatar.md.css +0 -51
  295. package/dist/collection/components/back-button/back-button.ios.css +48 -60
  296. package/dist/collection/components/back-button/back-button.js +19 -27
  297. package/dist/collection/components/back-button/back-button.md.css +48 -60
  298. package/dist/collection/components/backdrop/backdrop.ios.css +19 -56
  299. package/dist/collection/components/backdrop/backdrop.js +6 -12
  300. package/dist/collection/components/backdrop/backdrop.md.css +19 -56
  301. package/dist/collection/components/badge/badge.ios.css +12 -137
  302. package/dist/collection/components/badge/badge.js +9 -145
  303. package/dist/collection/components/badge/badge.md.css +12 -122
  304. package/dist/collection/components/breadcrumb/breadcrumb.ios.css +8 -20
  305. package/dist/collection/components/breadcrumb/breadcrumb.js +11 -43
  306. package/dist/collection/components/breadcrumb/breadcrumb.md.css +8 -20
  307. package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +0 -6
  308. package/dist/collection/components/breadcrumbs/breadcrumbs.js +9 -11
  309. package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +0 -6
  310. package/dist/collection/components/button/button.ios.css +46 -154
  311. package/dist/collection/components/button/button.js +27 -63
  312. package/dist/collection/components/button/button.md.css +50 -150
  313. package/dist/collection/components/buttons/buttons.ios.css +7 -59
  314. package/dist/collection/components/buttons/buttons.js +9 -15
  315. package/dist/collection/components/buttons/buttons.md.css +3 -55
  316. package/dist/collection/components/card/card.ios.css +14 -65
  317. package/dist/collection/components/card/card.js +10 -41
  318. package/dist/collection/components/card/card.md.css +14 -65
  319. package/dist/collection/components/card-content/card-content.ios.css +35 -20
  320. package/dist/collection/components/card-content/card-content.js +10 -12
  321. package/dist/collection/components/card-content/card-content.md.css +35 -20
  322. package/dist/collection/components/card-header/card-header.ios.css +15 -27
  323. package/dist/collection/components/card-header/card-header.js +10 -13
  324. package/dist/collection/components/card-header/card-header.md.css +15 -27
  325. package/dist/collection/components/card-subtitle/card-subtitle.ios.css +0 -12
  326. package/dist/collection/components/card-subtitle/card-subtitle.js +8 -11
  327. package/dist/collection/components/card-subtitle/card-subtitle.md.css +0 -12
  328. package/dist/collection/components/card-title/card-title.ios.css +0 -73
  329. package/dist/collection/components/card-title/card-title.js +8 -11
  330. package/dist/collection/components/card-title/card-title.md.css +0 -73
  331. package/dist/collection/components/checkbox/checkbox.ios.css +117 -242
  332. package/dist/collection/components/checkbox/checkbox.js +14 -69
  333. package/dist/collection/components/checkbox/checkbox.md.css +118 -243
  334. package/dist/collection/components/chip/chip.ios.css +14 -67
  335. package/dist/collection/components/chip/chip.js +8 -108
  336. package/dist/collection/components/chip/chip.md.css +14 -67
  337. package/dist/collection/components/col/col.css +4 -192
  338. package/dist/collection/components/col/col.js +61 -211
  339. package/dist/collection/components/content/content.css +2 -47
  340. package/dist/collection/components/content/content.js +11 -16
  341. package/dist/collection/components/datetime/datetime.ios.css +106 -302
  342. package/dist/collection/components/datetime/datetime.js +20 -97
  343. package/dist/collection/components/datetime/datetime.md.css +96 -293
  344. package/dist/collection/components/datetime/utils/data.js +5 -5
  345. package/dist/collection/components/datetime-button/datetime-button.ios.css +0 -6
  346. package/dist/collection/components/datetime-button/datetime-button.js +8 -11
  347. package/dist/collection/components/datetime-button/datetime-button.md.css +0 -6
  348. package/dist/collection/components/fab/fab.css +1 -25
  349. package/dist/collection/components/fab/fab.js +5 -9
  350. package/dist/collection/components/fab-button/fab-button.ios.css +6 -18
  351. package/dist/collection/components/fab-button/fab-button.js +21 -36
  352. package/dist/collection/components/fab-button/fab-button.md.css +8 -20
  353. package/dist/collection/components/fab-list/fab-list.css +0 -12
  354. package/dist/collection/components/fab-list/fab-list.js +5 -9
  355. package/dist/collection/components/footer/footer.ios.css +6 -33
  356. package/dist/collection/components/footer/footer.js +25 -117
  357. package/dist/collection/components/footer/footer.md.css +0 -40
  358. package/dist/collection/components/grid/grid.css +0 -12
  359. package/dist/collection/components/grid/grid.js +5 -9
  360. package/dist/collection/components/header/header.ios.css +133 -178
  361. package/dist/collection/components/header/header.js +39 -181
  362. package/dist/collection/components/header/header.md.css +9 -199
  363. package/dist/collection/components/header/header.utils.js +13 -6
  364. package/dist/collection/components/img/img.js +2 -8
  365. package/dist/collection/components/infinite-scroll/infinite-scroll.js +5 -100
  366. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +0 -12
  367. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +10 -16
  368. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +0 -12
  369. package/dist/collection/components/input/input.ios.css +137 -224
  370. package/dist/collection/components/input/input.js +45 -158
  371. package/dist/collection/components/input/input.md.css +209 -194
  372. package/dist/collection/components/input-otp/input-otp.ios.css +60 -105
  373. package/dist/collection/components/input-otp/input-otp.js +7 -74
  374. package/dist/collection/components/input-otp/input-otp.md.css +60 -105
  375. package/dist/collection/components/input-password-toggle/input-password-toggle.js +12 -48
  376. package/dist/collection/components/item/item.ios.css +80 -120
  377. package/dist/collection/components/item/item.js +21 -56
  378. package/dist/collection/components/item/item.md.css +79 -131
  379. package/dist/collection/components/item-divider/item-divider.ios.css +0 -18
  380. package/dist/collection/components/item-divider/item-divider.js +8 -11
  381. package/dist/collection/components/item-divider/item-divider.md.css +0 -18
  382. package/dist/collection/components/item-group/item-group.ios.css +0 -12
  383. package/dist/collection/components/item-group/item-group.js +7 -13
  384. package/dist/collection/components/item-group/item-group.md.css +0 -12
  385. package/dist/collection/components/item-option/item-option.ios.css +29 -136
  386. package/dist/collection/components/item-option/item-option.js +9 -73
  387. package/dist/collection/components/item-option/item-option.md.css +29 -136
  388. package/dist/collection/components/item-options/item-options.ios.css +34 -77
  389. package/dist/collection/components/item-options/item-options.js +7 -13
  390. package/dist/collection/components/item-options/item-options.md.css +34 -77
  391. package/dist/collection/components/item-sliding/{item-sliding.native.css → item-sliding.css} +9 -84
  392. package/dist/collection/components/item-sliding/item-sliding.js +35 -421
  393. package/dist/collection/components/item-sliding/test/test.utils.js +0 -13
  394. package/dist/collection/components/label/label.ios.css +0 -18
  395. package/dist/collection/components/label/label.js +8 -11
  396. package/dist/collection/components/label/label.md.css +0 -18
  397. package/dist/collection/components/list/list.ios.css +14 -54
  398. package/dist/collection/components/list/list.js +9 -48
  399. package/dist/collection/components/list/list.md.css +16 -56
  400. package/dist/collection/components/list-header/list-header.ios.css +38 -82
  401. package/dist/collection/components/list-header/list-header.js +8 -11
  402. package/dist/collection/components/list-header/list-header.md.css +38 -82
  403. package/dist/collection/components/loading/loading.ios.css +1 -13
  404. package/dist/collection/components/loading/loading.js +11 -14
  405. package/dist/collection/components/loading/loading.md.css +1 -13
  406. package/dist/collection/components/menu/menu.ios.css +3 -15
  407. package/dist/collection/components/menu/menu.js +7 -12
  408. package/dist/collection/components/menu/menu.md.css +3 -15
  409. package/dist/collection/components/menu-button/menu-button.ios.css +14 -48
  410. package/dist/collection/components/menu-button/menu-button.js +10 -26
  411. package/dist/collection/components/menu-button/menu-button.md.css +15 -49
  412. package/dist/collection/components/menu-toggle/menu-toggle.js +5 -8
  413. package/dist/collection/components/modal/animations/sheet.js +2 -8
  414. package/dist/collection/components/modal/gestures/sheet.js +10 -76
  415. package/dist/collection/components/modal/modal.ios.css +70 -178
  416. package/dist/collection/components/modal/modal.js +12 -50
  417. package/dist/collection/components/modal/modal.md.css +70 -178
  418. package/dist/collection/components/nav/nav.css +1 -7
  419. package/dist/collection/components/nav/nav.js +5 -11
  420. package/dist/collection/components/nav-link/nav-link.js +1 -5
  421. package/dist/collection/components/note/note.ios.css +0 -12
  422. package/dist/collection/components/note/note.js +8 -11
  423. package/dist/collection/components/note/note.md.css +0 -12
  424. package/dist/collection/components/picker/picker.ios.css +3 -15
  425. package/dist/collection/components/picker/picker.js +5 -8
  426. package/dist/collection/components/picker/picker.md.css +3 -15
  427. package/dist/collection/components/picker-column/picker-column.css +2 -9
  428. package/dist/collection/components/picker-column/picker-column.js +7 -8
  429. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +0 -6
  430. package/dist/collection/components/picker-column-option/picker-column-option.js +7 -13
  431. package/dist/collection/components/picker-column-option/picker-column-option.md.css +0 -6
  432. package/dist/collection/components/picker-legacy/picker.ios.css +1 -13
  433. package/dist/collection/components/picker-legacy/picker.js +6 -7
  434. package/dist/collection/components/picker-legacy/picker.md.css +1 -13
  435. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -12
  436. package/dist/collection/components/picker-legacy-column/picker-column.js +4 -4
  437. package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -12
  438. package/dist/collection/components/popover/popover.ios.css +1 -29
  439. package/dist/collection/components/popover/popover.js +15 -18
  440. package/dist/collection/components/popover/popover.md.css +1 -29
  441. package/dist/collection/components/progress-bar/progress-bar.ios.css +17 -48
  442. package/dist/collection/components/progress-bar/progress-bar.js +7 -43
  443. package/dist/collection/components/progress-bar/progress-bar.md.css +17 -48
  444. package/dist/collection/components/radio/radio.ios.css +102 -207
  445. package/dist/collection/components/radio/radio.js +9 -14
  446. package/dist/collection/components/radio/radio.md.css +102 -207
  447. package/dist/collection/components/radio-group/radio-group.ios.css +19 -43
  448. package/dist/collection/components/radio-group/radio-group.js +7 -48
  449. package/dist/collection/components/radio-group/radio-group.md.css +19 -43
  450. package/dist/collection/components/range/range.ios.css +85 -128
  451. package/dist/collection/components/range/range.js +10 -16
  452. package/dist/collection/components/range/range.md.css +85 -128
  453. package/dist/collection/components/refresher/refresher.ios.css +1 -14
  454. package/dist/collection/components/refresher/refresher.js +8 -11
  455. package/dist/collection/components/refresher/refresher.md.css +2 -15
  456. package/dist/collection/components/refresher-content/refresher-content.js +7 -28
  457. package/dist/collection/components/reorder/reorder.ios.css +0 -6
  458. package/dist/collection/components/reorder/reorder.js +6 -33
  459. package/dist/collection/components/reorder/reorder.md.css +0 -6
  460. package/dist/collection/components/reorder-group/reorder-group.css +0 -6
  461. package/dist/collection/components/reorder-group/reorder-group.js +4 -8
  462. package/dist/collection/components/ripple-effect/{ripple-effect.common.css → ripple-effect.css} +1 -7
  463. package/dist/collection/components/ripple-effect/ripple-effect.js +6 -14
  464. package/dist/collection/components/route/route.js +0 -4
  465. package/dist/collection/components/router/router.js +0 -4
  466. package/dist/collection/components/router-link/router-link.css +2 -8
  467. package/dist/collection/components/router-link/router-link.js +5 -9
  468. package/dist/collection/components/router-outlet/router-outlet.css +1 -7
  469. package/dist/collection/components/router-outlet/router-outlet.js +3 -6
  470. package/dist/collection/components/row/row.css +0 -16
  471. package/dist/collection/components/row/row.js +2 -9
  472. package/dist/collection/components/searchbar/searchbar.ios.css +18 -56
  473. package/dist/collection/components/searchbar/searchbar.js +42 -191
  474. package/dist/collection/components/searchbar/searchbar.md.css +18 -56
  475. package/dist/collection/components/segment/segment.ios.css +2 -45
  476. package/dist/collection/components/segment/segment.js +8 -11
  477. package/dist/collection/components/segment/segment.md.css +2 -45
  478. package/dist/collection/components/segment-button/segment-button.ios.css +105 -146
  479. package/dist/collection/components/segment-button/segment-button.js +8 -11
  480. package/dist/collection/components/segment-button/segment-button.md.css +107 -148
  481. package/dist/collection/components/segment-content/segment-content.js +1 -1
  482. package/dist/collection/components/segment-view/segment-view.ios.css +0 -6
  483. package/dist/collection/components/segment-view/segment-view.js +4 -13
  484. package/dist/collection/components/segment-view/segment-view.md.css +0 -6
  485. package/dist/collection/components/select/select.ios.css +176 -348
  486. package/dist/collection/components/select/select.js +92 -521
  487. package/dist/collection/components/select/select.md.css +178 -364
  488. package/dist/collection/components/select-modal/select-modal.ios.css +0 -466
  489. package/dist/collection/components/select-modal/select-modal.js +30 -126
  490. package/dist/collection/components/select-modal/select-modal.md.css +0 -394
  491. package/dist/collection/components/select-option/select-option.js +4 -72
  492. package/dist/collection/components/select-popover/select-popover.ios.css +20 -302
  493. package/dist/collection/components/select-popover/select-popover.js +29 -89
  494. package/dist/collection/components/select-popover/select-popover.md.css +0 -345
  495. package/dist/collection/components/skeleton-text/skeleton-text.css +0 -6
  496. package/dist/collection/components/skeleton-text/skeleton-text.js +5 -9
  497. package/dist/collection/components/spinner/{spinner.ionic.css → spinner.css} +10 -78
  498. package/dist/collection/components/spinner/spinner.js +6 -47
  499. package/dist/collection/components/split-pane/split-pane.ios.css +2 -20
  500. package/dist/collection/components/split-pane/split-pane.js +8 -15
  501. package/dist/collection/components/split-pane/split-pane.md.css +2 -20
  502. package/dist/collection/components/tab/tab.js +2 -6
  503. package/dist/collection/components/tab-bar/tab-bar.ios.css +43 -86
  504. package/dist/collection/components/tab-bar/tab-bar.js +15 -179
  505. package/dist/collection/components/tab-bar/tab-bar.md.css +43 -86
  506. package/dist/collection/components/tab-button/tab-button.ios.css +95 -171
  507. package/dist/collection/components/tab-button/tab-button.js +9 -54
  508. package/dist/collection/components/tab-button/tab-button.md.css +93 -137
  509. package/dist/collection/components/tabs/tabs.css +1 -7
  510. package/dist/collection/components/tabs/tabs.js +1 -4
  511. package/dist/collection/components/text/text.css +0 -6
  512. package/dist/collection/components/text/text.js +6 -7
  513. package/dist/collection/components/textarea/textarea.ios.css +158 -298
  514. package/dist/collection/components/textarea/textarea.js +24 -162
  515. package/dist/collection/components/textarea/textarea.md.css +159 -312
  516. package/dist/collection/components/thumbnail/thumbnail.css +0 -6
  517. package/dist/collection/components/thumbnail/thumbnail.js +2 -9
  518. package/dist/collection/components/title/title.ios.css +4 -32
  519. package/dist/collection/components/title/title.js +7 -13
  520. package/dist/collection/components/title/title.md.css +4 -39
  521. package/dist/collection/components/toast/animations/utils.js +1 -1
  522. package/dist/collection/components/toast/toast.ios.css +45 -84
  523. package/dist/collection/components/toast/toast.js +13 -76
  524. package/dist/collection/components/toast/toast.md.css +45 -84
  525. package/dist/collection/components/toggle/toggle.ios.css +127 -247
  526. package/dist/collection/components/toggle/toggle.js +18 -72
  527. package/dist/collection/components/toggle/toggle.md.css +127 -245
  528. package/dist/collection/components/toolbar/toolbar.ios.css +47 -90
  529. package/dist/collection/components/toolbar/toolbar.js +13 -218
  530. package/dist/collection/components/toolbar/toolbar.md.css +47 -90
  531. package/dist/collection/global/ionic-global.js +13 -241
  532. package/dist/collection/utils/focus-trap.js +2 -13
  533. package/dist/collection/utils/focus-visible.js +0 -22
  534. package/dist/collection/utils/forms/index.js +0 -1
  535. package/dist/collection/utils/forms/validity.js +0 -31
  536. package/dist/collection/utils/framework-delegate.js +1 -3
  537. package/dist/collection/utils/hardware-back-button.js +0 -15
  538. package/dist/collection/utils/helpers.js +3 -70
  539. package/dist/collection/utils/keyboard/keyboard-controller.js +1 -3
  540. package/dist/collection/utils/media.js +0 -1
  541. package/dist/collection/utils/menu-controller/animations/overlay.js +3 -3
  542. package/dist/collection/utils/menu-controller/animations/push.js +1 -2
  543. package/dist/collection/utils/menu-controller/animations/reveal.js +1 -2
  544. package/dist/collection/utils/overlays.js +8 -290
  545. package/dist/collection/utils/sanitization/index.js +18 -274
  546. package/dist/collection/utils/test/playwright/drag-element.js +9 -32
  547. package/dist/collection/utils/test/playwright/generator.js +23 -48
  548. package/dist/collection/utils/test/playwright/page/utils/goto.js +5 -14
  549. package/dist/collection/utils/test/playwright/page/utils/set-content.js +3 -26
  550. package/dist/collection/utils/theme.js +1 -25
  551. package/dist/collection/utils/transition/ios.transition.js +0 -1
  552. package/dist/docs.json +286 -9090
  553. package/dist/esm/{animation-ChfHU0RG.js → animation-DLJpuoEz.js} +2 -2
  554. package/dist/esm/{app-globals-D1OOQlqq.js → app-globals-D0C5S4hU.js} +1 -1
  555. package/dist/esm/{button-active-CPYK0dNo.js → button-active-BSpTQmS9.js} +2 -2
  556. package/dist/esm/{capacitor-DG_4yVXz.js → capacitor-CFERIeaU.js} +1 -1
  557. package/dist/esm/config-DQCONYYp.js +195 -0
  558. package/dist/{cjs/focus-visible-BIj-I3-C.js → esm/focus-visible-BmVRXR1y.js} +1 -27
  559. package/dist/esm/{format-2WlZcMvG.js → format-CAmvpAez.js} +1 -1
  560. package/dist/esm/{framework-delegate-DO2QXccA.js → framework-delegate-FnPGymXL.js} +2 -4
  561. package/dist/esm/{haptic-BWlRCqa-.js → haptic-DzAMWJuk.js} +1 -1
  562. package/dist/esm/hardware-back-button-B93Gru0Y.js +115 -0
  563. package/dist/esm/{helpers-DfF5_wJc.js → helpers-HEqiOzXb.js} +5 -71
  564. package/dist/esm/{index-DNY2GOUg.js → index-BRHzoo00.js} +3 -4
  565. package/dist/esm/{index-BSDDOljg.js → index-B_dQk_WE.js} +4 -4
  566. package/dist/esm/{index-B4Kq2YNk.js → index-DV3sJJW8.js} +2 -3
  567. package/dist/esm/{index-taYRjZGp.js → index-Dw-wN0Ja.js} +2 -2
  568. package/dist/esm/{index-7eS8XtuU.js → index-Q6UPU0Ay.js} +11 -11
  569. package/dist/esm/index-ZjP4CjeZ.js +7 -0
  570. package/dist/esm/{index-C0EQceqV.js → index-tcQvqkiX.js} +4 -53
  571. package/dist/esm/index.js +14 -14
  572. package/dist/esm/{input-shims-tZfqB5a5.js → input-shims-LXhI7LEx.js} +6 -7
  573. package/dist/esm/{input.utils-fs4B7WL5.js → input.utils-Y6NgW8bw.js} +3 -3
  574. package/dist/esm/ion-accordion_2.entry.js +29 -61
  575. package/dist/esm/ion-action-sheet.entry.js +22 -41
  576. package/dist/esm/ion-alert.entry.js +40 -77
  577. package/dist/esm/ion-app_8.entry.js +193 -457
  578. package/dist/esm/ion-avatar_3.entry.js +13 -125
  579. package/dist/esm/ion-back-button.entry.js +22 -31
  580. package/dist/esm/ion-backdrop.entry.js +7 -10
  581. package/dist/esm/ion-breadcrumb_2.entry.js +18 -54
  582. package/dist/esm/ion-button_2.entry.js +24 -61
  583. package/dist/esm/ion-card_5.entry.js +33 -55
  584. package/dist/esm/ion-checkbox.entry.js +17 -34
  585. package/dist/esm/ion-chip.entry.js +9 -50
  586. package/dist/esm/ion-col_3.entry.js +57 -56
  587. package/dist/esm/ion-datetime-button.entry.js +9 -13
  588. package/dist/esm/ion-datetime_3.entry.js +46 -121
  589. package/dist/esm/ion-fab_3.entry.js +28 -44
  590. package/dist/esm/ion-img.entry.js +4 -8
  591. package/dist/esm/ion-infinite-scroll_2.entry.js +16 -92
  592. package/dist/esm/ion-input-otp.entry.js +9 -74
  593. package/dist/esm/ion-input-password-toggle.entry.js +15 -53
  594. package/dist/esm/ion-input.entry.js +40 -132
  595. package/dist/esm/ion-item-option_3.entry.js +52 -467
  596. package/dist/esm/ion-item_8.entry.js +50 -121
  597. package/dist/esm/ion-loading.entry.js +18 -21
  598. package/dist/esm/ion-menu_3.entry.js +29 -47
  599. package/dist/esm/ion-modal.entry.js +91 -215
  600. package/dist/esm/ion-nav_2.entry.js +11 -14
  601. package/dist/esm/ion-picker-column-option.entry.js +8 -12
  602. package/dist/esm/ion-picker-column.entry.js +13 -13
  603. package/dist/esm/ion-picker.entry.js +6 -10
  604. package/dist/esm/ion-popover.entry.js +19 -21
  605. package/dist/esm/ion-progress-bar.entry.js +9 -27
  606. package/dist/esm/ion-radio_2.entry.js +18 -36
  607. package/dist/esm/ion-range.entry.js +13 -20
  608. package/dist/esm/ion-refresher_2.entry.js +21 -40
  609. package/dist/esm/ion-reorder_2.entry.js +14 -38
  610. package/dist/esm/ion-ripple-effect.entry.js +7 -15
  611. package/dist/esm/ion-route_4.entry.js +10 -11
  612. package/dist/esm/ion-searchbar.entry.js +32 -146
  613. package/dist/esm/ion-segment-content.entry.js +2 -2
  614. package/dist/esm/ion-segment-view.entry.js +3 -13
  615. package/dist/esm/ion-segment_2.entry.js +16 -23
  616. package/dist/esm/ion-select-modal.entry.js +38 -114
  617. package/dist/esm/ion-select_3.entry.js +108 -557
  618. package/dist/esm/ion-spinner.entry.js +8 -30
  619. package/dist/esm/ion-split-pane.entry.js +9 -13
  620. package/dist/esm/ion-tab-bar_2.entry.js +27 -149
  621. package/dist/esm/ion-tab_2.entry.js +7 -8
  622. package/dist/esm/ion-text.entry.js +7 -7
  623. package/dist/esm/ion-textarea.entry.js +23 -137
  624. package/dist/esm/ion-toast.entry.js +21 -45
  625. package/dist/esm/ion-toggle.entry.js +26 -82
  626. package/dist/esm/ionic-global-Cp_eT4sZ.js +146 -0
  627. package/dist/esm/ionic.js +5 -5
  628. package/dist/esm/{ios.transition-C3r-0w96.js → ios.transition-ClFrsIrS.js} +5 -7
  629. package/dist/esm/{item-multiple-inputs-C6onMFOo.js → item-multiple-inputs-DlNuqNJm.js} +1 -1
  630. package/dist/esm/{keyboard-DYGmALa7.js → keyboard-CUw4ekVy.js} +1 -1
  631. package/dist/esm/keyboard-controller-BaaVITYt.js +165 -0
  632. package/dist/esm/{keyboard-BzbtCDwZ.js → keyboard-ywgs5efA.js} +3 -4
  633. package/dist/esm/loader.js +5 -5
  634. package/dist/esm/{md.transition-CPHOF5T9.js → md.transition-D0msQmzI.js} +5 -6
  635. package/dist/esm/{notch-controller-CsbpmbOz.js → notch-controller-DKDjU_O7.js} +2 -2
  636. package/dist/esm/{overlays-C1NQMs9y.js → overlays-Dg0q2_tJ.js} +15 -306
  637. package/dist/esm/{status-tap-BueE8Coq.js → status-tap-vO-6s4Yp.js} +3 -4
  638. package/dist/esm/{swipe-back-qmvTRnSq.js → swipe-back-DQ1q5MgD.js} +2 -3
  639. package/dist/esm/{theme-DaJxRxSQ.js → theme-DiVJyqlX.js} +1 -25
  640. package/dist/esm/validity-DJztqcrH.js +17 -0
  641. package/dist/html.html-data.json +160 -2699
  642. package/dist/ionic/index.esm.js +1 -1
  643. package/dist/ionic/ionic.esm.js +1 -1
  644. package/dist/ionic/p-01f81ea5.entry.js +4 -0
  645. package/dist/ionic/p-06c232a4.entry.js +4 -0
  646. package/dist/ionic/p-0caa922c.entry.js +4 -0
  647. package/dist/ionic/p-0dc33652.entry.js +4 -0
  648. package/dist/ionic/p-0fa9c382.entry.js +4 -0
  649. package/dist/ionic/p-10e833ef.entry.js +4 -0
  650. package/dist/ionic/p-21eb76d5.entry.js +4 -0
  651. package/dist/ionic/p-27d30585.entry.js +4 -0
  652. package/dist/ionic/p-2a05aa64.entry.js +4 -0
  653. package/dist/ionic/p-2b204c59.entry.js +4 -0
  654. package/dist/ionic/p-2bb2cb18.entry.js +4 -0
  655. package/dist/ionic/p-2fa58e80.entry.js +4 -0
  656. package/dist/ionic/p-3353c229.entry.js +4 -0
  657. package/dist/ionic/p-34586ead.entry.js +4 -0
  658. package/dist/ionic/p-37e720da.entry.js +4 -0
  659. package/dist/ionic/p-390ca786.entry.js +4 -0
  660. package/dist/ionic/p-3ae5f277.entry.js +4 -0
  661. package/dist/ionic/p-4654ae1c.entry.js +4 -0
  662. package/dist/ionic/p-4745f534.entry.js +4 -0
  663. package/dist/ionic/p-4858af1f.entry.js +4 -0
  664. package/dist/ionic/p-4baa5b82.entry.js +4 -0
  665. package/dist/ionic/p-4e92a11f.entry.js +4 -0
  666. package/dist/ionic/p-50e1194a.entry.js +4 -0
  667. package/dist/ionic/p-5334df12.entry.js +4 -0
  668. package/dist/ionic/p-5d1da0a2.entry.js +4 -0
  669. package/dist/ionic/p-5e2f73ee.entry.js +4 -0
  670. package/dist/ionic/p-5eb8e86d.entry.js +4 -0
  671. package/dist/ionic/p-65ebdf1b.entry.js +4 -0
  672. package/dist/ionic/p-746fa988.entry.js +4 -0
  673. package/dist/ionic/p-75dc25ba.entry.js +4 -0
  674. package/dist/ionic/p-7c319341.entry.js +4 -0
  675. package/dist/ionic/p-829367ed.entry.js +4 -0
  676. package/dist/ionic/p-84d5ce05.entry.js +4 -0
  677. package/dist/ionic/p-874b4bd8.entry.js +4 -0
  678. package/dist/ionic/p-8eb8ee76.entry.js +4 -0
  679. package/dist/ionic/p-9eeaBrnk.js +4 -0
  680. package/dist/ionic/p-9f9db3a2.entry.js +4 -0
  681. package/dist/ionic/p-9fa3c405.entry.js +4 -0
  682. package/dist/ionic/p-BGqMS-oh.js +4 -0
  683. package/dist/ionic/p-BUFIpxKM.js +4 -0
  684. package/dist/ionic/p-BmVRXR1y.js +4 -0
  685. package/dist/ionic/{p-7k7Q1A38.js → p-C0eMdTCW.js} +1 -1
  686. package/dist/ionic/p-CFlfIb2g.js +4 -0
  687. package/dist/ionic/p-CIGNaXM1.js +4 -0
  688. package/{components/p-BUNIyvqe.js → dist/ionic/p-CKvCXMs9.js} +1 -1
  689. package/dist/ionic/p-CmcFnK-B.js +4 -0
  690. package/dist/ionic/p-CtWGkNnJ.js +4 -0
  691. package/dist/ionic/p-Cx3IXROA.js +4 -0
  692. package/dist/ionic/p-D-3ycHmd.js +4 -0
  693. package/dist/ionic/{p-CCgRIJJv.js → p-D13Eaw-8.js} +1 -1
  694. package/dist/ionic/p-D4uTWt4-.js +4 -0
  695. package/dist/ionic/{p-CnIzWLAn.js → p-DC3RagnA.js} +1 -1
  696. package/dist/ionic/p-DIuEbVLu.js +4 -0
  697. package/dist/ionic/p-DJztqcrH.js +4 -0
  698. package/dist/ionic/p-DV3sJJW8.js +4 -0
  699. package/dist/ionic/p-DiVJyqlX.js +4 -0
  700. package/dist/ionic/p-DoJvtrbw.js +4 -0
  701. package/dist/ionic/p-DqN5EA2O.js +4 -0
  702. package/dist/ionic/p-DzWaWHGc.js +4 -0
  703. package/dist/ionic/p-KjNvRoEp.js +4 -0
  704. package/dist/ionic/p-Nqf6uvGh.js +4 -0
  705. package/dist/ionic/p-SNAkTDfm.js +4 -0
  706. package/dist/ionic/{p-CYYo93al.js → p-VAemlbDS.js} +1 -1
  707. package/dist/ionic/p-ZjP4CjeZ.js +4 -0
  708. package/dist/ionic/p-a3bdcae6.entry.js +4 -0
  709. package/dist/ionic/p-aaeedb6b.entry.js +4 -0
  710. package/dist/ionic/p-af55a72f.entry.js +4 -0
  711. package/dist/ionic/p-b2020591.entry.js +4 -0
  712. package/dist/ionic/p-b9fadbfe.entry.js +4 -0
  713. package/dist/ionic/p-biz8zWmJ.js +4 -0
  714. package/dist/ionic/p-c0fb8edd.entry.js +4 -0
  715. package/dist/ionic/p-c38b648e.entry.js +4 -0
  716. package/dist/ionic/p-c4d8641b.entry.js +4 -0
  717. package/dist/ionic/p-c6e49f3f.entry.js +4 -0
  718. package/dist/ionic/p-ca2ab74d.entry.js +4 -0
  719. package/dist/ionic/p-d889ff6d.entry.js +4 -0
  720. package/dist/ionic/p-dfa8d673.entry.js +4 -0
  721. package/dist/ionic/p-ea56626d.entry.js +4 -0
  722. package/dist/ionic/p-ef4c3bee.entry.js +4 -0
  723. package/dist/ionic/p-f386f6ae.entry.js +4 -0
  724. package/{components/p-BYoGvMgh.js → dist/ionic/p-mjKAFv89.js} +1 -1
  725. package/dist/ionic/p-tcQvqkiX.js +5 -0
  726. package/dist/ionic/p-uWtqTrG8.js +4 -0
  727. package/dist/ionic/{p-DINFwXlp.js → p-viFHDgRs.js} +1 -1
  728. package/dist/ionic/p-xWb6fgfq.js +4 -0
  729. package/dist/types/components/accordion/accordion.d.ts +3 -6
  730. package/dist/types/components/accordion-group/accordion-group.d.ts +1 -12
  731. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +7 -3
  732. package/dist/types/components/action-sheet/action-sheet.d.ts +2 -3
  733. package/dist/types/components/alert/alert-interface.d.ts +7 -3
  734. package/dist/types/components/alert/alert.d.ts +2 -3
  735. package/dist/types/components/app/app.d.ts +5 -4
  736. package/dist/types/components/avatar/avatar.d.ts +0 -32
  737. package/dist/types/components/back-button/back-button.d.ts +1 -2
  738. package/dist/types/components/backdrop/backdrop.d.ts +0 -4
  739. package/dist/types/components/badge/badge.d.ts +1 -34
  740. package/dist/types/components/breadcrumb/breadcrumb.d.ts +1 -4
  741. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +2 -2
  742. package/dist/types/components/button/button.d.ts +8 -23
  743. package/dist/types/components/buttons/buttons.d.ts +1 -5
  744. package/dist/types/components/card/card.d.ts +1 -8
  745. package/dist/types/components/card-content/card-content.d.ts +1 -2
  746. package/dist/types/components/card-header/card-header.d.ts +2 -3
  747. package/dist/types/components/card-subtitle/card-subtitle.d.ts +1 -2
  748. package/dist/types/components/card-title/card-title.d.ts +1 -2
  749. package/dist/types/components/checkbox/checkbox.d.ts +4 -14
  750. package/dist/types/components/chip/chip.d.ts +1 -26
  751. package/dist/types/components/col/col.d.ts +5 -52
  752. package/dist/types/components/content/content.d.ts +0 -3
  753. package/dist/types/components/datetime/datetime.d.ts +1 -26
  754. package/dist/types/components/datetime/utils/data.d.ts +5 -5
  755. package/dist/types/components/datetime-button/datetime-button.d.ts +1 -2
  756. package/dist/types/components/fab/fab.d.ts +0 -4
  757. package/dist/types/components/fab-button/fab-button.d.ts +3 -5
  758. package/dist/types/components/fab-list/fab-list.d.ts +0 -4
  759. package/dist/types/components/footer/footer.d.ts +3 -20
  760. package/dist/types/components/grid/grid.d.ts +0 -4
  761. package/dist/types/components/header/header.d.ts +3 -26
  762. package/dist/types/components/header/header.utils.d.ts +5 -4
  763. package/dist/types/components/img/img.d.ts +0 -3
  764. package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +0 -21
  765. package/dist/types/components/infinite-scroll-content/infinite-scroll-content.d.ts +0 -4
  766. package/dist/types/components/input/input.d.ts +5 -34
  767. package/dist/types/components/input-otp/input-otp.d.ts +0 -37
  768. package/dist/types/components/input-password-toggle/input-password-toggle.d.ts +0 -2
  769. package/dist/types/components/item/item.d.ts +4 -11
  770. package/dist/types/components/item-divider/item-divider.d.ts +1 -2
  771. package/dist/types/components/item-group/item-group.d.ts +0 -4
  772. package/dist/types/components/item-option/item-option.d.ts +1 -18
  773. package/dist/types/components/item-options/item-options.d.ts +0 -4
  774. package/dist/types/components/item-sliding/item-sliding.d.ts +1 -47
  775. package/dist/types/components/item-sliding/test/test.utils.d.ts +0 -13
  776. package/dist/types/components/label/label.d.ts +1 -2
  777. package/dist/types/components/list/list.d.ts +1 -15
  778. package/dist/types/components/list-header/list-header.d.ts +1 -2
  779. package/dist/types/components/loading/loading-interface.d.ts +7 -2
  780. package/dist/types/components/loading/loading.d.ts +2 -3
  781. package/dist/types/components/menu/menu.d.ts +0 -3
  782. package/dist/types/components/menu-button/menu-button.d.ts +1 -3
  783. package/dist/types/components/menu-toggle/menu-toggle.d.ts +0 -3
  784. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  785. package/dist/types/components/modal/modal-interface.d.ts +7 -4
  786. package/dist/types/components/modal/modal.d.ts +1 -11
  787. package/dist/types/components/nav/nav-interface.d.ts +1 -9
  788. package/dist/types/components/nav/nav.d.ts +1 -5
  789. package/dist/types/components/nav-link/nav-link.d.ts +0 -4
  790. package/dist/types/components/note/note.d.ts +1 -2
  791. package/dist/types/components/picker/picker.d.ts +1 -2
  792. package/dist/types/components/picker-column/picker-column.d.ts +1 -2
  793. package/dist/types/components/picker-column-option/picker-column-option.d.ts +0 -4
  794. package/dist/types/components/picker-legacy/picker.d.ts +1 -2
  795. package/dist/types/components/popover/popover-interface.d.ts +6 -3
  796. package/dist/types/components/popover/popover.d.ts +5 -6
  797. package/dist/types/components/progress-bar/progress-bar.d.ts +1 -10
  798. package/dist/types/components/radio/radio.d.ts +1 -2
  799. package/dist/types/components/radio-group/radio-group.d.ts +0 -12
  800. package/dist/types/components/range/range.d.ts +1 -2
  801. package/dist/types/components/refresher/refresher.d.ts +1 -2
  802. package/dist/types/components/refresher-content/refresher-content.d.ts +0 -4
  803. package/dist/types/components/reorder/reorder.d.ts +0 -9
  804. package/dist/types/components/reorder-group/reorder-group.d.ts +0 -4
  805. package/dist/types/components/ripple-effect/ripple-effect.d.ts +0 -4
  806. package/dist/types/components/route/route.d.ts +0 -4
  807. package/dist/types/components/router/router.d.ts +0 -4
  808. package/dist/types/components/router-link/router-link.d.ts +0 -4
  809. package/dist/types/components/router-outlet/router-outlet.d.ts +1 -4
  810. package/dist/types/components/row/row.d.ts +0 -4
  811. package/dist/types/components/searchbar/searchbar.d.ts +10 -56
  812. package/dist/types/components/segment/segment.d.ts +1 -2
  813. package/dist/types/components/segment-button/segment-button.d.ts +1 -2
  814. package/dist/types/components/select/select-interface.d.ts +0 -31
  815. package/dist/types/components/select/select.d.ts +13 -66
  816. package/dist/types/components/select-modal/select-modal.d.ts +0 -8
  817. package/dist/types/components/select-option/select-option.d.ts +1 -45
  818. package/dist/types/components/select-popover/select-popover.d.ts +0 -3
  819. package/dist/types/components/skeleton-text/skeleton-text.d.ts +0 -4
  820. package/dist/types/components/spinner/spinner.d.ts +0 -15
  821. package/dist/types/components/split-pane/split-pane.d.ts +0 -4
  822. package/dist/types/components/tab/tab.d.ts +0 -4
  823. package/dist/types/components/tab-bar/tab-bar-interface.d.ts +0 -1
  824. package/dist/types/components/tab-bar/tab-bar.d.ts +3 -41
  825. package/dist/types/components/tab-button/tab-button.d.ts +1 -12
  826. package/dist/types/components/tabs/tabs.d.ts +0 -3
  827. package/dist/types/components/text/text.d.ts +1 -2
  828. package/dist/types/components/textarea/textarea.d.ts +4 -53
  829. package/dist/types/components/thumbnail/thumbnail.d.ts +0 -4
  830. package/dist/types/components/title/title.d.ts +0 -4
  831. package/dist/types/components/toast/animations/utils.d.ts +2 -2
  832. package/dist/types/components/toast/toast-interface.d.ts +7 -3
  833. package/dist/types/components/toast/toast.d.ts +2 -19
  834. package/dist/types/components/toggle/toggle.d.ts +1 -15
  835. package/dist/types/components/toolbar/toolbar.d.ts +3 -43
  836. package/dist/types/components.d.ts +211 -1882
  837. package/dist/types/global/ionic-global.d.ts +2 -28
  838. package/dist/types/interface.d.ts +0 -3
  839. package/dist/types/utils/config.d.ts +2 -106
  840. package/dist/types/utils/focus-trap.d.ts +1 -1
  841. package/dist/types/utils/focus-visible.d.ts +0 -13
  842. package/dist/types/utils/forms/index.d.ts +0 -1
  843. package/dist/types/utils/forms/validity.d.ts +0 -7
  844. package/dist/types/utils/helpers.d.ts +0 -22
  845. package/dist/types/utils/overlays-interface.d.ts +1 -31
  846. package/dist/types/utils/overlays.d.ts +1 -1
  847. package/dist/types/utils/sanitization/index.d.ts +2 -58
  848. package/dist/types/utils/test/playwright/drag-element.d.ts +3 -16
  849. package/dist/types/utils/test/playwright/generator.d.ts +2 -31
  850. package/dist/types/utils/theme.d.ts +0 -9
  851. package/hydrate/index.js +1406 -6402
  852. package/hydrate/index.mjs +1406 -6402
  853. package/package.json +5 -9
  854. package/components/ion-divider.d.ts +0 -11
  855. package/components/ion-divider.js +0 -4
  856. package/components/ion-gallery-item.d.ts +0 -11
  857. package/components/ion-gallery-item.js +0 -4
  858. package/components/ion-gallery.d.ts +0 -11
  859. package/components/ion-gallery.js +0 -4
  860. package/components/p-6hUZIMBp.js +0 -4
  861. package/components/p-9mfpAwJh.js +0 -4
  862. package/components/p-B2SvA6NE.js +0 -4
  863. package/components/p-B2aAAEfp.js +0 -4
  864. package/components/p-B2lpqDWK.js +0 -4
  865. package/components/p-BDoEcs72.js +0 -4
  866. package/components/p-BDqjX7Z_.js +0 -4
  867. package/components/p-BFpXpzD-.js +0 -4
  868. package/components/p-BYSs-jZz.js +0 -4
  869. package/components/p-BYrCPOBM.js +0 -4
  870. package/components/p-BbVhJs-a.js +0 -4
  871. package/components/p-BhRXIcSN.js +0 -4
  872. package/components/p-BjW8SOqw.js +0 -4
  873. package/components/p-BsiHrVPa.js +0 -4
  874. package/components/p-BwKpO3Is.js +0 -4
  875. package/components/p-Bz8jnuiy.js +0 -4
  876. package/components/p-C-Ea1l5K.js +0 -4
  877. package/components/p-C3X10Pc6.js +0 -4
  878. package/components/p-CH6jbAEI.js +0 -4
  879. package/components/p-CJE5t2qs.js +0 -4
  880. package/components/p-CODBQrPj.js +0 -4
  881. package/components/p-CUbb1HkU.js +0 -4
  882. package/components/p-CVYFPBs-.js +0 -4
  883. package/components/p-CVoLDZ7z.js +0 -4
  884. package/components/p-CZrORZXS.js +0 -4
  885. package/components/p-Cc3oC60a.js +0 -4
  886. package/components/p-CmoUesXp.js +0 -4
  887. package/components/p-CyNW8ypn.js +0 -4
  888. package/components/p-CzxyxYID.js +0 -4
  889. package/components/p-D0Iqw6OZ.js +0 -4
  890. package/components/p-D0LT3Z3i.js +0 -4
  891. package/components/p-D1t981Ih.js +0 -4
  892. package/components/p-D6tqrIYY.js +0 -4
  893. package/components/p-D9C5yWpF.js +0 -4
  894. package/components/p-DCRXgAoM.js +0 -4
  895. package/components/p-DL5wyRub.js +0 -4
  896. package/components/p-DQlXUUDh.js +0 -4
  897. package/components/p-DRWN7QM2.js +0 -4
  898. package/components/p-DaJxRxSQ.js +0 -4
  899. package/components/p-DbmfFkd1.js +0 -4
  900. package/components/p-Dhi5xtNS.js +0 -4
  901. package/components/p-DnwLgh9U.js +0 -4
  902. package/components/p-DoZB3DcY.js +0 -4
  903. package/components/p-Dovs7FIs.js +0 -4
  904. package/components/p-DrrpZB81.js +0 -4
  905. package/components/p-DrzWRqnG.js +0 -4
  906. package/components/p-DylrHLJF.js +0 -4
  907. package/components/p-Dypq4kXE.js +0 -4
  908. package/components/p-DzeMJvWL.js +0 -4
  909. package/components/p-Dzk4Tr0X.js +0 -4
  910. package/components/p-Rkm2AOZ2.js +0 -4
  911. package/components/p-UYngqo1f.js +0 -4
  912. package/components/p-Va26YR7l.js +0 -4
  913. package/components/p-asUhrzOB.js +0 -4
  914. package/components/p-fIOYmaqA.js +0 -4
  915. package/components/p-jlwpz7Ms.js +0 -4
  916. package/components/p-kInyVu79.js +0 -4
  917. package/components/p-vXpMhGrs.js +0 -4
  918. package/css/ionic/bundle.ionic.css +0 -1
  919. package/css/ionic/bundle.ionic.css.map +0 -1
  920. package/css/ionic/core.ionic.css +0 -1
  921. package/css/ionic/core.ionic.css.map +0 -1
  922. package/css/ionic/global.bundle.ionic.css +0 -1
  923. package/css/ionic/global.bundle.ionic.css.map +0 -1
  924. package/css/ionic/ionic-swiper.ionic.css +0 -1
  925. package/css/ionic/ionic-swiper.ionic.css.map +0 -1
  926. package/css/ionic/link.ionic.css +0 -1
  927. package/css/ionic/link.ionic.css.map +0 -1
  928. package/css/ionic/structure.ionic.css +0 -1
  929. package/css/ionic/structure.ionic.css.map +0 -1
  930. package/css/ionic/typography.ionic.css +0 -1
  931. package/css/ionic/typography.ionic.css.map +0 -1
  932. package/css/ionic/utils.bundle.ionic.css +0 -1
  933. package/css/ionic/utils.bundle.ionic.css.map +0 -1
  934. package/dist/cjs/caret-down-vtVgfXIs.js +0 -8
  935. package/dist/cjs/caret-left-CxZXLRv5.js +0 -8
  936. package/dist/cjs/caret-right-CRCgv98E.js +0 -8
  937. package/dist/cjs/clear-button-press-controller-2hAy_qdm.js +0 -45
  938. package/dist/cjs/config-DWdFbSNK.js +0 -35
  939. package/dist/cjs/index-YYUVCfP-.js +0 -429
  940. package/dist/cjs/ion-divider.cjs.entry.js +0 -51
  941. package/dist/cjs/ion-gallery-item.cjs.entry.js +0 -59
  942. package/dist/cjs/ion-gallery.cjs.entry.js +0 -607
  943. package/dist/cjs/ionic-global-DvEcO0tQ.js +0 -519
  944. package/dist/cjs/list-a-7GSA6K.js +0 -8
  945. package/dist/cjs/overlay-control-label-DnRLQR1t.js +0 -52
  946. package/dist/cjs/scroll-hide-controller-DAf_DwKc.js +0 -345
  947. package/dist/cjs/select-option-render-BqJEK1N1.js +0 -124
  948. package/dist/cjs/validity-QmuwEptc.js +0 -51
  949. package/dist/cjs/x-BTF99yFH.js +0 -8
  950. package/dist/collection/components/accordion/accordion.ionic.css +0 -201
  951. package/dist/collection/components/accordion-group/accordion-group.ionic.css +0 -93
  952. package/dist/collection/components/action-sheet/action-sheet.ionic.css +0 -494
  953. package/dist/collection/components/alert/alert.ionic.css +0 -787
  954. package/dist/collection/components/avatar/avatar.ionic.css +0 -385
  955. package/dist/collection/components/backdrop/backdrop.ionic.css +0 -109
  956. package/dist/collection/components/badge/badge.ionic.css +0 -272
  957. package/dist/collection/components/button/button.ionic.css +0 -644
  958. package/dist/collection/components/buttons/buttons.ionic.css +0 -97
  959. package/dist/collection/components/card/card.ionic.css +0 -144
  960. package/dist/collection/components/card-content/card-content.ionic.css +0 -89
  961. package/dist/collection/components/card-header/card-header.ionic.css +0 -85
  962. package/dist/collection/components/card-subtitle/card-subtitle.ionic.css +0 -144
  963. package/dist/collection/components/checkbox/checkbox.ionic.css +0 -543
  964. package/dist/collection/components/chip/chip.ionic.css +0 -217
  965. package/dist/collection/components/datetime/datetime.ionic.css +0 -703
  966. package/dist/collection/components/divider/divider.ionic.css +0 -148
  967. package/dist/collection/components/divider/divider.ios.css +0 -87
  968. package/dist/collection/components/divider/divider.js +0 -94
  969. package/dist/collection/components/divider/divider.md.css +0 -87
  970. package/dist/collection/components/footer/footer-interface.js +0 -1
  971. package/dist/collection/components/gallery/gallery-constants.js +0 -12
  972. package/dist/collection/components/gallery/gallery-interface.js +0 -1
  973. package/dist/collection/components/gallery/gallery.css +0 -15
  974. package/dist/collection/components/gallery/gallery.js +0 -679
  975. package/dist/collection/components/gallery/test/utils.js +0 -100
  976. package/dist/collection/components/gallery-item/gallery-item.css +0 -49
  977. package/dist/collection/components/gallery-item/gallery-item.js +0 -99
  978. package/dist/collection/components/header/header-interface.js +0 -1
  979. package/dist/collection/components/header/header.ionic.css +0 -250
  980. package/dist/collection/components/input/input.ionic.css +0 -891
  981. package/dist/collection/components/input-otp/input-otp.ionic.css +0 -371
  982. package/dist/collection/components/input-password-toggle/input-password-toggle.ionic.css +0 -78
  983. package/dist/collection/components/input-password-toggle/input-password-toggle.native.css +0 -61
  984. package/dist/collection/components/item/item.ionic.css +0 -496
  985. package/dist/collection/components/item-option/item-option.ionic.css +0 -277
  986. package/dist/collection/components/item-options/item-options.ionic.css +0 -221
  987. package/dist/collection/components/item-sliding/item-sliding.ionic.css +0 -211
  988. package/dist/collection/components/list/list.ionic.css +0 -212
  989. package/dist/collection/components/list-header/list-header.ionic.css +0 -190
  990. package/dist/collection/components/menu-button/menu-button.ionic.css +0 -236
  991. package/dist/collection/components/modal/animations/ionic.enter.js +0 -40
  992. package/dist/collection/components/modal/animations/ionic.leave.js +0 -28
  993. package/dist/collection/components/modal/modal.ionic.css +0 -255
  994. package/dist/collection/components/popover/popover.ionic.css +0 -290
  995. package/dist/collection/components/progress-bar/progress-bar.ionic.css +0 -287
  996. package/dist/collection/components/radio/radio.ionic.css +0 -422
  997. package/dist/collection/components/radio-group/radio-group.ionic.css +0 -119
  998. package/dist/collection/components/range/range.ionic.css +0 -567
  999. package/dist/collection/components/ripple-effect/ripple-effect.ionic.css +0 -215
  1000. package/dist/collection/components/searchbar/searchbar.ionic.css +0 -622
  1001. package/dist/collection/components/segment/segment.ionic.css +0 -115
  1002. package/dist/collection/components/segment-button/segment-button.ionic.css +0 -352
  1003. package/dist/collection/components/select/select.ionic.css +0 -809
  1004. package/dist/collection/components/select-modal/select-modal.ionic.css +0 -257
  1005. package/dist/collection/components/select-popover/select-popover.ionic.css +0 -255
  1006. package/dist/collection/components/spinner/spinner.native.css +0 -199
  1007. package/dist/collection/components/tab-bar/tab-bar.ionic.css +0 -249
  1008. package/dist/collection/components/tab-button/tab-button.ionic.css +0 -373
  1009. package/dist/collection/components/textarea/textarea.ionic.css +0 -898
  1010. package/dist/collection/components/title/title.ionic.css +0 -127
  1011. package/dist/collection/components/toast/toast.ionic.css +0 -394
  1012. package/dist/collection/components/toggle/toggle.ionic.css +0 -512
  1013. package/dist/collection/components/toolbar/test/image.svg +0 -1
  1014. package/dist/collection/components/toolbar/toolbar.ionic.css +0 -249
  1015. package/dist/collection/utils/css-value-validation.js +0 -39
  1016. package/dist/collection/utils/forms/clear-button-press-controller.js +0 -40
  1017. package/dist/collection/utils/overlay-control-label.js +0 -47
  1018. package/dist/collection/utils/scroll-hide-controller.js +0 -178
  1019. package/dist/collection/utils/select-option-render.js +0 -119
  1020. package/dist/esm/caret-down-D1t981Ih.js +0 -6
  1021. package/dist/esm/caret-left-fIOYmaqA.js +0 -6
  1022. package/dist/esm/caret-right-BYSs-jZz.js +0 -6
  1023. package/dist/esm/clear-button-press-controller-C79TPm5p.js +0 -43
  1024. package/dist/esm/config-BwKpO3Is.js +0 -31
  1025. package/dist/esm/index-Mq5pCWmZ.js +0 -424
  1026. package/dist/esm/ion-divider.entry.js +0 -49
  1027. package/dist/esm/ion-gallery-item.entry.js +0 -57
  1028. package/dist/esm/ion-gallery.entry.js +0 -605
  1029. package/dist/esm/ionic-global-CEwbmRLz.js +0 -508
  1030. package/dist/esm/list-Dhi5xtNS.js +0 -6
  1031. package/dist/esm/overlay-control-label-CODBQrPj.js +0 -49
  1032. package/dist/esm/scroll-hide-controller-CfbtPBWv.js +0 -342
  1033. package/dist/esm/select-option-render-BlKZ2H83.js +0 -122
  1034. package/dist/esm/validity-BjW8SOqw.js +0 -48
  1035. package/dist/esm/x-BDqjX7Z_.js +0 -6
  1036. package/dist/ionic/p--sroV-k-.js +0 -4
  1037. package/dist/ionic/p-00731d20.entry.js +0 -4
  1038. package/dist/ionic/p-03c20a50.entry.js +0 -4
  1039. package/dist/ionic/p-03ec6673.entry.js +0 -4
  1040. package/dist/ionic/p-0405ec57.entry.js +0 -4
  1041. package/dist/ionic/p-04f16322.entry.js +0 -4
  1042. package/dist/ionic/p-09123f89.entry.js +0 -4
  1043. package/dist/ionic/p-15028853.entry.js +0 -4
  1044. package/dist/ionic/p-16c5db90.entry.js +0 -4
  1045. package/dist/ionic/p-1d1dfb68.entry.js +0 -4
  1046. package/dist/ionic/p-231572a0.entry.js +0 -4
  1047. package/dist/ionic/p-2740db6e.entry.js +0 -4
  1048. package/dist/ionic/p-2a6d4601.entry.js +0 -4
  1049. package/dist/ionic/p-2d8fe33c.entry.js +0 -4
  1050. package/dist/ionic/p-2dbc50d9.entry.js +0 -4
  1051. package/dist/ionic/p-32d3095c.entry.js +0 -4
  1052. package/dist/ionic/p-356cd619.entry.js +0 -4
  1053. package/dist/ionic/p-391bdb60.entry.js +0 -4
  1054. package/dist/ionic/p-3b2ab5b4.entry.js +0 -4
  1055. package/dist/ionic/p-4e3e750a.entry.js +0 -4
  1056. package/dist/ionic/p-4fee0df6.entry.js +0 -4
  1057. package/dist/ionic/p-547d010c.entry.js +0 -4
  1058. package/dist/ionic/p-54895118.entry.js +0 -4
  1059. package/dist/ionic/p-6163d04d.entry.js +0 -4
  1060. package/dist/ionic/p-679c1448.entry.js +0 -4
  1061. package/dist/ionic/p-6de524e5.entry.js +0 -4
  1062. package/dist/ionic/p-764d7ea2.entry.js +0 -4
  1063. package/dist/ionic/p-81BMEE8Q.js +0 -4
  1064. package/dist/ionic/p-8d6d7acb.entry.js +0 -4
  1065. package/dist/ionic/p-96732fe2.entry.js +0 -4
  1066. package/dist/ionic/p-96c4c1b9.entry.js +0 -4
  1067. package/dist/ionic/p-9745f518.entry.js +0 -4
  1068. package/dist/ionic/p-9a40af3c.entry.js +0 -4
  1069. package/dist/ionic/p-9e725104.entry.js +0 -4
  1070. package/dist/ionic/p-B4Kq2YNk.js +0 -4
  1071. package/dist/ionic/p-BDqjX7Z_.js +0 -4
  1072. package/dist/ionic/p-BYSs-jZz.js +0 -4
  1073. package/dist/ionic/p-BbWo-T8F.js +0 -4
  1074. package/dist/ionic/p-BjW8SOqw.js +0 -4
  1075. package/dist/ionic/p-Bvz8PHo5.js +0 -4
  1076. package/dist/ionic/p-BwKpO3Is.js +0 -4
  1077. package/dist/ionic/p-C0EQceqV.js +0 -5
  1078. package/dist/ionic/p-C1_a9uRb.js +0 -4
  1079. package/dist/ionic/p-C6WD6qSF.js +0 -4
  1080. package/dist/ionic/p-CEkwLb3L.js +0 -4
  1081. package/dist/ionic/p-CGFf6My7.js +0 -4
  1082. package/dist/ionic/p-CLUwRxij.js +0 -4
  1083. package/dist/ionic/p-CODBQrPj.js +0 -4
  1084. package/dist/ionic/p-CP_sVwEm.js +0 -4
  1085. package/dist/ionic/p-CSMWpRc0.js +0 -4
  1086. package/dist/ionic/p-Cvvva6Z7.js +0 -4
  1087. package/dist/ionic/p-D1t981Ih.js +0 -4
  1088. package/dist/ionic/p-DIvCXVmD.js +0 -4
  1089. package/dist/ionic/p-DTsDGZPd.js +0 -4
  1090. package/dist/ionic/p-DaJxRxSQ.js +0 -4
  1091. package/dist/ionic/p-Dhi5xtNS.js +0 -4
  1092. package/dist/ionic/p-DtQgCTtW.js +0 -4
  1093. package/dist/ionic/p-DuRx6DeQ.js +0 -4
  1094. package/dist/ionic/p-YGLqXqFd.js +0 -4
  1095. package/dist/ionic/p-YIsE5bNG.js +0 -4
  1096. package/dist/ionic/p-a61c2ace.entry.js +0 -4
  1097. package/dist/ionic/p-abb516e3.entry.js +0 -4
  1098. package/dist/ionic/p-b54edee6.entry.js +0 -4
  1099. package/dist/ionic/p-c076ac5c.entry.js +0 -4
  1100. package/dist/ionic/p-c4ff25cb.entry.js +0 -4
  1101. package/dist/ionic/p-c7279756.entry.js +0 -4
  1102. package/dist/ionic/p-c7ebed50.entry.js +0 -4
  1103. package/dist/ionic/p-cd0037e4.entry.js +0 -4
  1104. package/dist/ionic/p-d261938d.entry.js +0 -4
  1105. package/dist/ionic/p-d33dfc12.entry.js +0 -4
  1106. package/dist/ionic/p-d7764330.entry.js +0 -4
  1107. package/dist/ionic/p-defb23a2.entry.js +0 -4
  1108. package/dist/ionic/p-df642ef5.entry.js +0 -4
  1109. package/dist/ionic/p-e2a35249.entry.js +0 -4
  1110. package/dist/ionic/p-e2b952ef.entry.js +0 -4
  1111. package/dist/ionic/p-e77cfd1e.entry.js +0 -4
  1112. package/dist/ionic/p-ecb9d3d3.entry.js +0 -4
  1113. package/dist/ionic/p-efd13adf.entry.js +0 -4
  1114. package/dist/ionic/p-f0904c1d.entry.js +0 -4
  1115. package/dist/ionic/p-f33689f7.entry.js +0 -4
  1116. package/dist/ionic/p-f693efe9.entry.js +0 -4
  1117. package/dist/ionic/p-f788396b.entry.js +0 -4
  1118. package/dist/ionic/p-fIOYmaqA.js +0 -4
  1119. package/dist/ionic/p-fa16fad8.entry.js +0 -4
  1120. package/dist/ionic/p-lMb_45ax.js +0 -4
  1121. package/dist/ionic/p-oadJNPuo.js +0 -4
  1122. package/dist/ionic/p-vXpMhGrs.js +0 -4
  1123. package/dist/ionic/p-wNjWCZVO.js +0 -4
  1124. package/dist/types/components/divider/divider.d.ts +0 -20
  1125. package/dist/types/components/footer/footer-interface.d.ts +0 -1
  1126. package/dist/types/components/gallery/gallery-constants.d.ts +0 -9
  1127. package/dist/types/components/gallery/gallery-interface.d.ts +0 -10
  1128. package/dist/types/components/gallery/gallery.d.ts +0 -218
  1129. package/dist/types/components/gallery/test/utils.d.ts +0 -3
  1130. package/dist/types/components/gallery-item/gallery-item.d.ts +0 -33
  1131. package/dist/types/components/header/header-interface.d.ts +0 -1
  1132. package/dist/types/components/modal/animations/ionic.enter.d.ts +0 -6
  1133. package/dist/types/components/modal/animations/ionic.leave.d.ts +0 -6
  1134. package/dist/types/utils/css-value-validation.d.ts +0 -21
  1135. package/dist/types/utils/forms/clear-button-press-controller.d.ts +0 -20
  1136. package/dist/types/utils/overlay-control-label.d.ts +0 -34
  1137. package/dist/types/utils/scroll-hide-controller.d.ts +0 -56
  1138. package/dist/types/utils/select-option-render.d.ts +0 -53
  1139. /package/dist/collection/components/{refresher-content/refresher-content.css → input-password-toggle/input-password-toggle.css} +0 -0
@@ -1,24 +1,19 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import caretDownRegular from "@phosphor-icons/core/assets/regular/caret-down.svg";
5
4
  import { Build, Host, h, forceUpdate } from "@stencil/core";
6
- import { ENABLE_HTML_CONTENT_DEFAULT } from "../../utils/config";
7
5
  import { compareOptions, createNotchController, isOptionSelected, checkInvalidState } from "../../utils/forms/index";
8
- import { suppressFocusVisible, renderHiddenInput, inheritAttributes } from "../../utils/helpers";
6
+ import { focusVisibleElement, renderHiddenInput, inheritAttributes } from "../../utils/helpers";
9
7
  import { printIonWarning } from "../../utils/logging/index";
10
8
  import { actionSheetController, alertController, popoverController, modalController } from "../../utils/overlays";
11
9
  import { isRTL } from "../../utils/rtl/index";
12
- import { reflectPropertiesToAttributes, sanitizeDOMTree } from "../../utils/sanitization/index";
13
10
  import { createColorClasses, hostContext } from "../../utils/theme";
14
11
  import { watchForOptions } from "../../utils/watch-options";
15
12
  import { caretDownSharp, chevronExpand } from "ionicons/icons";
16
- import { config } from "../../global/config";
17
- import { getIonTheme } from "../../global/ionic-global";
13
+ import { getIonMode } from "../../global/ionic-global";
18
14
  // TODO(FW-2832): types
19
15
  /**
20
- * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
21
- * @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
16
+ * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
22
17
  *
23
18
  * @slot label - The label text to associate with the select. Use the `labelPlacement` property to control where the label is placed relative to the select. Use this if you need to render a label with custom HTML.
24
19
  * @slot start - Content to display at the leading edge of the select.
@@ -42,7 +37,6 @@ export class Select {
42
37
  this.helperTextId = `${this.inputId}-helper-text`;
43
38
  this.errorTextId = `${this.inputId}-error-text`;
44
39
  this.inheritedAttributes = {};
45
- this.customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
46
40
  this.isExpanded = false;
47
41
  /**
48
42
  * The `hasFocus` state ensures the focus class is
@@ -61,14 +55,6 @@ export class Select {
61
55
  * The text to display on the cancel button.
62
56
  */
63
57
  this.cancelText = 'Cancel';
64
- /**
65
- * If `true`, the cancel button will display an icon instead of the `cancelText`.
66
- * Only applies when `interface` is set to `"modal"`. Has no effect on `"action-sheet"`,
67
- * `"alert"`, or `"popover"` interfaces.
68
- * When `cancelIcon` is `true`, the `cancelText` property is ignored for display
69
- * but is used as the accessible label for the icon button.
70
- */
71
- this.cancelIcon = false;
72
58
  /**
73
59
  * If `true`, the user cannot interact with the select.
74
60
  */
@@ -278,65 +264,44 @@ export class Select {
278
264
  // Add logic to scroll selected item into view before presenting
279
265
  const scrollSelectedIntoView = () => {
280
266
  const indexOfSelected = this.childOpts.findIndex((o) => o.value === this.value);
281
- /**
282
- * Determine which option to focus when the overlay opens: the selected
283
- * option if the select has a value, otherwise the first enabled option.
284
- */
285
- let optionToFocus = null;
286
267
  if (indexOfSelected > -1) {
287
268
  const selectedItem = overlay.querySelector(`.select-interface-option:nth-of-type(${indexOfSelected + 1})`);
288
- /**
289
- * If the option contains an `ion-radio` or `ion-checkbox`, focus
290
- * that instead of the option element itself. This ensures that
291
- * screen readers will announce the role and state of the element
292
- * (e.g. "radio button, checked") rather than only the option text.
293
- * Alert and action sheet options are plain buttons, so fall back to
294
- * focusing the option element itself in those cases.
295
- */
296
269
  if (selectedItem) {
270
+ /**
271
+ * Browsers such as Firefox do not
272
+ * correctly delegate focus when manually
273
+ * focusing an element with delegatesFocus.
274
+ * We work around this by manually focusing
275
+ * the interactive element.
276
+ * ion-radio and ion-checkbox are the only
277
+ * elements that ion-select-popover uses, so
278
+ * we only need to worry about those two components
279
+ * when focusing.
280
+ */
297
281
  const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
298
282
  if (interactiveEl) {
299
283
  selectedItem.scrollIntoView({ block: 'nearest' });
284
+ // Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
285
+ // and removing `ion-focused` style
286
+ interactiveEl.setFocus();
300
287
  }
301
- optionToFocus = interactiveEl !== null && interactiveEl !== void 0 ? interactiveEl : selectedItem;
288
+ focusVisibleElement(selectedItem);
302
289
  }
303
290
  }
304
291
  else {
305
292
  /**
306
293
  * If no value is set then focus the first enabled option.
307
294
  */
308
- optionToFocus = overlay.querySelector('ion-radio:not(.radio-disabled), ion-checkbox:not(.checkbox-disabled)');
309
- }
310
- if (optionToFocus) {
311
- /**
312
- * Focus the option directly (`setFocus()`/`focus()`) rather than
313
- * with `focusVisibleElement()`. `focusVisibleElement()` forces the
314
- * `ion-focused` focus ring on regardless of how the overlay was
315
- * opened, whereas a plain focus lets the focus-visible utility
316
- * decide: it shows the ring only when the overlay was opened with
317
- * the keyboard and hides it for pointer opens.
318
- *
319
- * `ion-radio` and `ion-checkbox` expose `setFocus`, which correctly
320
- * delegates focus to their inner focusable element. This is needed
321
- * because browsers such as Firefox do not delegate focus correctly
322
- * when focusing an element with delegatesFocus. When the option is
323
- * a plain button it can be focused directly.
324
- */
325
- if (optionToFocus.matches('ion-radio, ion-checkbox')) {
326
- optionToFocus.setFocus();
327
- }
328
- else {
329
- optionToFocus.focus();
330
- }
331
- /**
332
- * In the alert interface, when tabbing and pressing enter to open
333
- * the select, the value that is currently selected flashes the
334
- * focused state briefly before moving to its wrapper. This suppresses
335
- * the focus visible state, so that the option will only show as
336
- * focused when navigating with the keyboard.
337
- */
338
- if (this.interface === 'alert') {
339
- suppressFocusVisible();
295
+ const firstEnabledOption = overlay.querySelector('ion-radio:not(.radio-disabled), ion-checkbox:not(.checkbox-disabled)');
296
+ if (firstEnabledOption) {
297
+ /**
298
+ * Focus the option for the same reason as we do above.
299
+ *
300
+ * Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
301
+ * and removing `ion-focused` style
302
+ */
303
+ firstEnabledOption.setFocus();
304
+ focusVisibleElement(firstEnabledOption.closest('ion-item'));
340
305
  }
341
306
  }
342
307
  };
@@ -434,12 +399,10 @@ export class Select {
434
399
  .join(' ');
435
400
  const optClass = `${OPTION_CLASS} ${copyClasses}`;
436
401
  const isSelected = isOptionSelected(selectValue, value, this.compareWith);
437
- const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
438
402
  return {
439
403
  role: isSelected ? 'selected' : '',
440
- text: content !== null && content !== void 0 ? content : '',
404
+ text: option.textContent,
441
405
  cssClass: optClass,
442
- disabled: option.disabled,
443
406
  handler: () => {
444
407
  this.setValue(value);
445
408
  },
@@ -447,9 +410,6 @@ export class Select {
447
410
  'aria-checked': isSelected ? 'true' : 'false',
448
411
  role: 'radio',
449
412
  },
450
- startContent,
451
- endContent,
452
- description: option.description,
453
413
  };
454
414
  });
455
415
  // Add "cancel" button
@@ -470,19 +430,13 @@ export class Select {
470
430
  .filter((cls) => cls !== 'hydrated')
471
431
  .join(' ');
472
432
  const optClass = `${OPTION_CLASS} ${copyClasses}`;
473
- const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
474
433
  return {
475
434
  type: inputType,
476
435
  cssClass: optClass,
477
- label: content !== null && content !== void 0 ? content : '',
436
+ label: option.textContent || '',
478
437
  value,
479
438
  checked: isOptionSelected(selectValue, value, this.compareWith),
480
439
  disabled: option.disabled,
481
- startContent,
482
- endContent,
483
- description: option.description,
484
- labelPlacement: option.labelPlacement,
485
- justify: option.justify,
486
440
  };
487
441
  });
488
442
  return alertInputs;
@@ -495,9 +449,8 @@ export class Select {
495
449
  .filter((cls) => cls !== 'hydrated')
496
450
  .join(' ');
497
451
  const optClass = `${OPTION_CLASS} ${copyClasses}`;
498
- const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
499
452
  return {
500
- text: content !== null && content !== void 0 ? content : '',
453
+ text: option.textContent || '',
501
454
  cssClass: optClass,
502
455
  value,
503
456
  checked: isOptionSelected(selectValue, value, this.compareWith),
@@ -508,11 +461,6 @@ export class Select {
508
461
  this.close();
509
462
  }
510
463
  },
511
- startContent,
512
- endContent,
513
- description: option.description,
514
- labelPlacement: option.labelPlacement,
515
- justify: option.justify,
516
464
  };
517
465
  });
518
466
  return popoverOptions;
@@ -520,8 +468,8 @@ export class Select {
520
468
  async openPopover(ev) {
521
469
  const { fill, labelPlacement } = this;
522
470
  const interfaceOptions = this.interfaceOptions;
523
- const theme = getIonTheme(this);
524
- const showBackdrop = theme === 'md' ? false : true;
471
+ const mode = getIonMode(this);
472
+ const showBackdrop = mode === 'md' ? false : true;
525
473
  const multiple = this.multiple;
526
474
  const value = this.value;
527
475
  let event = ev;
@@ -532,7 +480,7 @@ export class Select {
532
480
  * when using a fill in MD mode or if the
533
481
  * label is floating/stacked.
534
482
  */
535
- if (hasFloatingOrStackedLabel || (theme === 'md' && fill !== undefined)) {
483
+ if (hasFloatingOrStackedLabel || (mode === 'md' && fill !== undefined)) {
536
484
  size = 'cover';
537
485
  /**
538
486
  * Otherwise the popover
@@ -545,21 +493,15 @@ export class Select {
545
493
  ionShadowTarget: this.nativeWrapperEl,
546
494
  } });
547
495
  }
548
- const options = this.createOverlaySelectOptions(this.childOpts, value);
549
- const hasRichContent = options.some((opt) => opt.startContent || opt.endContent || opt.description);
550
- const popoverOpts = Object.assign(Object.assign({ theme,
496
+ const popoverOpts = Object.assign(Object.assign({ mode,
551
497
  event, alignment: 'center', size,
552
- showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: [
553
- 'select-popover',
554
- hasRichContent ? 'select-popover-rich-content' : undefined,
555
- interfaceOptions.cssClass,
556
- ], componentProps: {
498
+ showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: ['select-popover', interfaceOptions.cssClass], componentProps: {
557
499
  header: interfaceOptions.header,
558
500
  subHeader: interfaceOptions.subHeader,
559
501
  message: interfaceOptions.message,
560
502
  multiple,
561
503
  value,
562
- options,
504
+ options: this.createOverlaySelectOptions(this.childOpts, value),
563
505
  } });
564
506
  /**
565
507
  * Workaround for Stencil to autodefine
@@ -576,9 +518,9 @@ export class Select {
576
518
  return popoverController.create(popoverOpts);
577
519
  }
578
520
  async openActionSheet() {
579
- const theme = getIonTheme(this);
521
+ const mode = getIonMode(this);
580
522
  const interfaceOptions = this.interfaceOptions;
581
- const actionSheetOpts = Object.assign(Object.assign({ theme }, interfaceOptions), { buttons: this.createActionSheetButtons(this.childOpts, this.value), cssClass: ['select-action-sheet', interfaceOptions.cssClass] });
523
+ const actionSheetOpts = Object.assign(Object.assign({ mode }, interfaceOptions), { buttons: this.createActionSheetButtons(this.childOpts, this.value), cssClass: ['select-action-sheet', interfaceOptions.cssClass] });
582
524
  /**
583
525
  * Workaround for Stencil to autodefine
584
526
  * ion-action-sheet when
@@ -595,8 +537,8 @@ export class Select {
595
537
  async openAlert() {
596
538
  const interfaceOptions = this.interfaceOptions;
597
539
  const inputType = this.multiple ? 'checkbox' : 'radio';
598
- const theme = getIonTheme(this);
599
- const alertOpts = Object.assign(Object.assign({ theme }, interfaceOptions), { header: interfaceOptions.header ? interfaceOptions.header : this.labelText, inputs: this.createAlertInputs(this.childOpts, inputType, this.value), buttons: [
540
+ const mode = getIonMode(this);
541
+ const alertOpts = Object.assign(Object.assign({ mode }, interfaceOptions), { header: interfaceOptions.header ? interfaceOptions.header : this.labelText, inputs: this.createAlertInputs(this.childOpts, inputType, this.value), buttons: [
600
542
  {
601
543
  text: this.cancelText,
602
544
  role: 'cancel',
@@ -630,11 +572,10 @@ export class Select {
630
572
  }
631
573
  openModal() {
632
574
  const { multiple, value, interfaceOptions } = this;
633
- const theme = getIonTheme(this);
634
- const modalOpts = Object.assign(Object.assign({}, interfaceOptions), { mode: theme, cssClass: ['select-modal', interfaceOptions.cssClass], component: 'ion-select-modal', componentProps: {
575
+ const mode = getIonMode(this);
576
+ const modalOpts = Object.assign(Object.assign({}, interfaceOptions), { mode, cssClass: ['select-modal', interfaceOptions.cssClass], component: 'ion-select-modal', componentProps: {
635
577
  header: interfaceOptions.header,
636
578
  cancelText: this.cancelText,
637
- cancelIcon: this.cancelIcon,
638
579
  multiple,
639
580
  value,
640
581
  options: this.createOverlaySelectOptions(this.childOpts, value),
@@ -687,18 +628,12 @@ export class Select {
687
628
  }
688
629
  return;
689
630
  }
690
- /**
691
- * Returns the text to display in the select based on the selected value.
692
- *
693
- * @param useHTML If `true`, the returned text will include any custom HTML content from the selected option. If `false`, the returned text will be plain text without any HTML. Defaults to `false`.
694
- * @returns The text to display in the select, either with or without HTML based on the `useHTML` parameter.
695
- */
696
- getText(useHTML = false) {
631
+ getText() {
697
632
  const selectedText = this.selectedText;
698
633
  if (selectedText != null && selectedText !== '') {
699
634
  return selectedText;
700
635
  }
701
- return generateText(this.childOpts, this.value, this.compareWith, useHTML);
636
+ return generateText(this.childOpts, this.value, this.compareWith);
702
637
  }
703
638
  setFocus() {
704
639
  if (this.focusEl) {
@@ -712,18 +647,6 @@ export class Select {
712
647
  };
713
648
  this.ionStyle.emit(style);
714
649
  }
715
- getSize() {
716
- const theme = getIonTheme(this);
717
- const { size } = this;
718
- // TODO(ROU-11370): Remove theme check when sizes are defined for all themes.
719
- if (theme !== 'ionic') {
720
- return undefined;
721
- }
722
- if (size === undefined) {
723
- return 'medium';
724
- }
725
- return size;
726
- }
727
650
  renderLabel() {
728
651
  const { label } = this;
729
652
  return (h("div", { class: {
@@ -756,8 +679,8 @@ export class Select {
756
679
  * when fill="outline".
757
680
  */
758
681
  renderLabelContainer() {
759
- const theme = getIonTheme(this);
760
- const hasOutlineFill = theme === 'md' && this.fill === 'outline';
682
+ const mode = getIonMode(this);
683
+ const hasOutlineFill = mode === 'md' && this.fill === 'outline';
761
684
  if (hasOutlineFill) {
762
685
  /**
763
686
  * The outline fill has a special outline
@@ -780,47 +703,6 @@ export class Select {
780
703
  */
781
704
  return this.renderLabel();
782
705
  }
783
- /**
784
- * Wraps text nodes in the select text with span elements
785
- * so spacing can be added between elements without
786
- * changing the display to prevent losing the ellipses
787
- * behavior.
788
- *
789
- * Only wraps when the string contains HTML elements
790
- * alongside text.
791
- */
792
- wrapSelectTextNodes(html) {
793
- const temp = document.createElement('div');
794
- temp.innerHTML = html;
795
- const hasElements = Array.from(temp.childNodes).some((n) => n.nodeType === Node.ELEMENT_NODE);
796
- // Return the plain text
797
- if (!hasElements) {
798
- return html;
799
- }
800
- Array.from(temp.childNodes).forEach((node) => {
801
- var _a, _b, _c, _d;
802
- if (node.nodeType === Node.TEXT_NODE && ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim())) {
803
- const text = node.textContent;
804
- /**
805
- * Split comma separator from the text content
806
- * e.g., ", Bacon" becomes ", " text node + <span>Bacon</span>.
807
- */
808
- const commaMatch = text.match(/^(,\s*)(.*)/);
809
- if (commaMatch) {
810
- const commaNode = document.createTextNode(commaMatch[1]);
811
- const wrapper = document.createElement('span');
812
- wrapper.textContent = commaMatch[2];
813
- (_b = node.parentNode) === null || _b === void 0 ? void 0 : _b.replaceChild(wrapper, node);
814
- (_c = wrapper.parentNode) === null || _c === void 0 ? void 0 : _c.insertBefore(commaNode, wrapper);
815
- return;
816
- }
817
- const wrapper = document.createElement('span');
818
- (_d = node.parentNode) === null || _d === void 0 ? void 0 : _d.replaceChild(wrapper, node);
819
- wrapper.appendChild(node);
820
- }
821
- });
822
- return temp.innerHTML;
823
- }
824
706
  /**
825
707
  * Renders either the placeholder
826
708
  * or the selected values based on
@@ -828,7 +710,7 @@ export class Select {
828
710
  */
829
711
  renderSelectText() {
830
712
  const { placeholder } = this;
831
- const displayValue = this.getText(true);
713
+ const displayValue = this.getText();
832
714
  let addPlaceholderClass = false;
833
715
  let selectText = displayValue;
834
716
  if (selectText === '' && placeholder !== undefined) {
@@ -840,10 +722,6 @@ export class Select {
840
722
  'select-placeholder': addPlaceholderClass,
841
723
  };
842
724
  const textPart = addPlaceholderClass ? 'placeholder' : 'text';
843
- if (this.customHTMLEnabled) {
844
- const wrapped = this.wrapSelectTextNodes(selectText);
845
- return h("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart, innerHTML: wrapped });
846
- }
847
725
  return (h("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart }, selectText));
848
726
  }
849
727
  /**
@@ -851,17 +729,21 @@ export class Select {
851
729
  * next to the select text.
852
730
  */
853
731
  renderSelectIcon() {
854
- const { isExpanded, selectExpandedIcon, selectCollapsedIcon } = this;
855
- let icon = selectCollapsedIcon;
856
- if (isExpanded) {
857
- icon = selectExpandedIcon;
732
+ const mode = getIonMode(this);
733
+ const { isExpanded, toggleIcon, expandedIcon } = this;
734
+ let icon;
735
+ if (isExpanded && expandedIcon !== undefined) {
736
+ icon = expandedIcon;
737
+ }
738
+ else {
739
+ const defaultIcon = mode === 'ios' ? chevronExpand : caretDownSharp;
740
+ icon = toggleIcon !== null && toggleIcon !== void 0 ? toggleIcon : defaultIcon;
858
741
  }
859
742
  return h("ion-icon", { class: "select-icon", part: "icon", "aria-hidden": "true", icon: icon });
860
743
  }
861
744
  get ariaLabel() {
862
745
  var _a;
863
746
  const { placeholder, inheritedAttributes } = this;
864
- // Get the plain text from the selected text
865
747
  const displayValue = this.getText();
866
748
  // The aria label should be preferred over visible text if both are specified
867
749
  const definedLabel = (_a = inheritedAttributes['aria-label']) !== null && _a !== void 0 ? _a : this.labelText;
@@ -890,63 +772,6 @@ export class Select {
890
772
  const { disabled, inputId, isExpanded, required } = this;
891
773
  return (h("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-required": `${required}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
892
774
  }
893
- getShape() {
894
- const theme = getIonTheme(this);
895
- const { shape } = this;
896
- // TODO(ROU-11366): Remove theme check when shapes are defined for all themes.
897
- if (theme === 'ionic' && shape === undefined) {
898
- return 'round';
899
- }
900
- return shape;
901
- }
902
- /**
903
- * Get the icon to use for the expand icon.
904
- * If an icon is set on the component, use that.
905
- * Otherwise, use the icon set in the config.
906
- * If no icon is set in the config, use the default icon.
907
- */
908
- get selectExpandedIcon() {
909
- // Return the expandedIcon or toggleIcon if either is explicitly set
910
- if (this.expandedIcon != null) {
911
- return this.expandedIcon;
912
- }
913
- else if (this.toggleIcon != null) {
914
- return this.toggleIcon;
915
- }
916
- // Determine the theme and map to default icons
917
- const theme = getIonTheme(this);
918
- const defaultIcons = {
919
- ios: chevronExpand,
920
- ionic: caretDownRegular,
921
- md: caretDownSharp,
922
- };
923
- // Get the default icon based on the theme, falling back to 'md' icon if necessary
924
- const defaultIcon = defaultIcons[theme] || defaultIcons.md;
925
- // Return the configured select expanded icon or the default icon
926
- return config.get('selectExpandedIcon', defaultIcon);
927
- }
928
- /**
929
- * Get the icon to use for the collapsed icon.
930
- * If an icon is set on the component, use that.
931
- * Otherwise, use the icon set in the config.
932
- * If no icon is set in the config, use the default icon.
933
- */
934
- get selectCollapsedIcon() {
935
- // Return the toggleIcon if it is explicitly set
936
- if (this.toggleIcon) {
937
- return this.toggleIcon;
938
- }
939
- // Determine the theme and map to default icons
940
- const theme = getIonTheme(this);
941
- const defaultIcons = {
942
- ios: chevronExpand,
943
- ionic: caretDownRegular,
944
- md: caretDownSharp,
945
- };
946
- // Get the default icon based on the theme, falling back to 'md' icon if necessary
947
- const defaultIcon = defaultIcons[theme] || defaultIcons.md;
948
- return config.get('selectCollapsedIcon', defaultIcon);
949
- }
950
775
  getHintTextId() {
951
776
  const { helperText, errorText, helperTextId, errorTextId, isInvalid } = this;
952
777
  if (isInvalid && errorText) {
@@ -984,17 +809,13 @@ export class Select {
984
809
  return (h("div", { class: "select-bottom", part: "bottom" }, this.renderHintText()));
985
810
  }
986
811
  render() {
987
- const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, name, value, hasFocus, } = this;
988
- const theme = getIonTheme(this);
989
- const shape = this.getShape();
812
+ const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value, hasFocus, } = this;
813
+ const mode = getIonMode(this);
990
814
  const hasFloatingOrStackedLabel = labelPlacement === 'floating' || labelPlacement === 'stacked';
991
- const shouldRenderOuterIcon = theme !== 'ionic' && hasFloatingOrStackedLabel;
992
- const shouldRenderInnerIcon = theme === 'ionic' || !hasFloatingOrStackedLabel;
993
815
  const justifyEnabled = !hasFloatingOrStackedLabel && justify !== undefined;
994
816
  const rtl = isRTL(el) ? 'rtl' : 'ltr';
995
817
  const inItem = hostContext('ion-item', this.el);
996
- const size = this.getSize();
997
- const shouldRenderHighlight = theme === 'md' && fill !== 'outline' && !inItem;
818
+ const shouldRenderHighlight = mode === 'md' && fill !== 'outline' && !inItem;
998
819
  const hasValue = this.hasValue();
999
820
  const hasStartEndSlots = el.querySelector('[slot="start"], [slot="end"]') !== null;
1000
821
  renderHiddenInput(true, el, name, parseValue(value), disabled);
@@ -1017,8 +838,8 @@ export class Select {
1017
838
  */
1018
839
  const labelShouldFloat = labelPlacement === 'stacked' ||
1019
840
  (labelPlacement === 'floating' && (hasValue || hasFocus || isExpanded || hasStartEndSlots));
1020
- return (h(Host, { key: '9339cb236070c47333154d96c336dc1df9a11e1c', onClick: this.onClick, class: createColorClasses(this.color, {
1021
- [theme]: true,
841
+ return (h(Host, { key: 'f16327d6866ffee76e1618fcd3281590ca0fd56d', onClick: this.onClick, class: createColorClasses(this.color, {
842
+ [mode]: true,
1022
843
  'in-item': inItem,
1023
844
  'in-item-color': hostContext('ion-item.ion-color', el),
1024
845
  'select-disabled': disabled,
@@ -1035,33 +856,20 @@ export class Select {
1035
856
  [`select-justify-${justify}`]: justifyEnabled,
1036
857
  [`select-shape-${shape}`]: shape !== undefined,
1037
858
  [`select-label-placement-${labelPlacement}`]: true,
1038
- [`select-size-${size}`]: size !== undefined,
1039
- }) }, h("label", { key: 'db8f0b67592f4b99f5e16d06ee8120852a60f4d1', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: '30313c0f3034be59605b368d15af4ba00202a5f4', class: "select-wrapper-inner", part: "inner" },
1040
- /**
1041
- * For the ionic theme, we render the outline container here
1042
- * instead of higher up, so it can be positioned relative to
1043
- * the native wrapper instead of the <label> element or the
1044
- * entire component. This allows the label text to be positioned
1045
- * above the outline, while staying within the bounds of the
1046
- * <label> element, ensuring that clicking the label text
1047
- * focuses the select.
1048
- */
1049
- theme === 'ionic' && fill === 'outline' && h("div", { key: '78bba2953ba88efd1189afa31e8229a8972175e5', class: "select-outline" }), h("slot", { key: '086505d193a19677d33e26a5a116783d999c6861', name: "start" }), h("div", { key: '5bb7863236596cad5c1118be1ae54898b638b760', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '38744ee0cc6750f84d11470c09a4e950d73f1e44', name: "end" }), shouldRenderInnerIcon && this.renderSelectIcon()), shouldRenderOuterIcon && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: '4eecb0df50800d16bea58c5649e68e06b122e472', class: "select-highlight" })), this.renderBottomContent()));
859
+ }) }, h("label", { key: 'db13f76b384a7a7461c1ad752108eadf9c0213be', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: '2fb0e57bd596c0f525be79293b7da4aca55a9385', class: "select-wrapper-inner", part: "inner" }, h("slot", { key: 'cd694c36242789a89461ed3412af9891ad68411b', name: "start" }), h("div", { key: 'fdf62911be54f4ab29eb3c2eb153f082e76a8f49', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: 'a32f5c4b101d4d6ad45870f4c4446960009377f5', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: '61f792024a5f221ef4f28a3c249bd3a0de5edeab', class: "select-highlight" })), this.renderBottomContent()));
1050
860
  }
1051
861
  static get is() { return "ion-select"; }
1052
862
  static get encapsulation() { return "shadow"; }
1053
863
  static get originalStyleUrls() {
1054
864
  return {
1055
865
  "ios": ["select.ios.scss"],
1056
- "md": ["select.md.scss"],
1057
- "ionic": ["select.ionic.scss"]
866
+ "md": ["select.md.scss"]
1058
867
  };
1059
868
  }
1060
869
  static get styleUrls() {
1061
870
  return {
1062
871
  "ios": ["select.ios.css"],
1063
- "md": ["select.md.css"],
1064
- "ionic": ["select.ionic.css"]
872
+ "md": ["select.md.css"]
1065
873
  };
1066
874
  }
1067
875
  static get properties() {
@@ -1086,26 +894,6 @@ export class Select {
1086
894
  "attribute": "cancel-text",
1087
895
  "defaultValue": "'Cancel'"
1088
896
  },
1089
- "cancelIcon": {
1090
- "type": "boolean",
1091
- "mutable": false,
1092
- "complexType": {
1093
- "original": "boolean",
1094
- "resolved": "boolean",
1095
- "references": {}
1096
- },
1097
- "required": false,
1098
- "optional": false,
1099
- "docs": {
1100
- "tags": [],
1101
- "text": "If `true`, the cancel button will display an icon instead of the `cancelText`.\nOnly applies when `interface` is set to `\"modal\"`. Has no effect on `\"action-sheet\"`,\n`\"alert\"`, or `\"popover\"` interfaces.\nWhen `cancelIcon` is `true`, the `cancelText` property is ignored for display\nbut is used as the accessible label for the icon button."
1102
- },
1103
- "getter": false,
1104
- "setter": false,
1105
- "reflect": false,
1106
- "attribute": "cancel-icon",
1107
- "defaultValue": "false"
1108
- },
1109
897
  "color": {
1110
898
  "type": "string",
1111
899
  "mutable": false,
@@ -1190,7 +978,7 @@ export class Select {
1190
978
  "optional": true,
1191
979
  "docs": {
1192
980
  "tags": [],
1193
- "text": "The fill for the item. If `\"solid\"` the item will have a background. If\n`\"outline\"` the item will be transparent with a border. Only available in the `\"md\"` theme."
981
+ "text": "The fill for the item. If `\"solid\"` the item will have a background. If\n`\"outline\"` the item will be transparent with a border. Only available in `md` mode."
1194
982
  },
1195
983
  "getter": false,
1196
984
  "setter": false,
@@ -1450,7 +1238,7 @@ export class Select {
1450
1238
  "optional": true,
1451
1239
  "docs": {
1452
1240
  "tags": [],
1453
- "text": "The toggle icon to use. Defaults to `\"chevronExpand\"` for the `\"ios\"` theme,\nor `\"caretDownSharp\"` for the `\"md\"` and `\"ionic\"` themes."
1241
+ "text": "The toggle icon to use. Defaults to `chevronExpand` for `ios` mode,\nor `caretDownSharp` for `md` mode."
1454
1242
  },
1455
1243
  "getter": false,
1456
1244
  "setter": false,
@@ -1469,89 +1257,70 @@ export class Select {
1469
1257
  "optional": true,
1470
1258
  "docs": {
1471
1259
  "tags": [],
1472
- "text": "The toggle icon to show when the select is open. If defined, the icon\nrotation behavior in `\"md\"` theme will be disabled. If undefined, `toggleIcon`\nwill be used for when the select is both open and closed."
1260
+ "text": "The toggle icon to show when the select is open. If defined, the icon\nrotation behavior in `md` mode will be disabled. If undefined, `toggleIcon`\nwill be used for when the select is both open and closed."
1473
1261
  },
1474
1262
  "getter": false,
1475
1263
  "setter": false,
1476
1264
  "reflect": false,
1477
1265
  "attribute": "expanded-icon"
1478
1266
  },
1479
- "required": {
1480
- "type": "boolean",
1481
- "mutable": false,
1482
- "complexType": {
1483
- "original": "boolean",
1484
- "resolved": "boolean",
1485
- "references": {}
1486
- },
1487
- "required": false,
1488
- "optional": false,
1489
- "docs": {
1490
- "tags": [],
1491
- "text": "If true, screen readers will announce it as a required field. This property\nworks only for accessibility purposes, it will not prevent the form from\nsubmitting if the value is invalid."
1492
- },
1493
- "getter": false,
1494
- "setter": false,
1495
- "reflect": false,
1496
- "attribute": "required",
1497
- "defaultValue": "false"
1498
- },
1499
1267
  "shape": {
1500
1268
  "type": "string",
1501
1269
  "mutable": false,
1502
1270
  "complexType": {
1503
- "original": "'soft' | 'round' | 'rectangular'",
1504
- "resolved": "\"rectangular\" | \"round\" | \"soft\" | undefined",
1271
+ "original": "'round'",
1272
+ "resolved": "\"round\" | undefined",
1505
1273
  "references": {}
1506
1274
  },
1507
1275
  "required": false,
1508
1276
  "optional": true,
1509
1277
  "docs": {
1510
1278
  "tags": [],
1511
- "text": "Set to `\"soft\"` for a select with slightly rounded corners,\n`\"round\"` for a select with fully rounded corners,\nor `\"rectangular\"` for a select without rounded corners.\n\nDefaults to `\"round\"` for the `\"ionic\"` theme, undefined for all other themes."
1279
+ "text": "The shape of the select. If \"round\" it will have an increased border radius."
1512
1280
  },
1513
1281
  "getter": false,
1514
1282
  "setter": false,
1515
1283
  "reflect": false,
1516
1284
  "attribute": "shape"
1517
1285
  },
1518
- "size": {
1519
- "type": "string",
1520
- "mutable": false,
1286
+ "value": {
1287
+ "type": "any",
1288
+ "mutable": true,
1521
1289
  "complexType": {
1522
- "original": "'small' | 'medium' | 'large'",
1523
- "resolved": "\"large\" | \"medium\" | \"small\" | undefined",
1290
+ "original": "any | null",
1291
+ "resolved": "any",
1524
1292
  "references": {}
1525
1293
  },
1526
1294
  "required": false,
1527
1295
  "optional": true,
1528
1296
  "docs": {
1529
1297
  "tags": [],
1530
- "text": "The size of the select. If \"large\" it will increase the height of the select, while\n\"small\" and \"medium\" provide progressively smaller heights.\n\nDefaults to `\"medium\"` for the ionic theme, and undefined for all other themes."
1298
+ "text": "The value of the select."
1531
1299
  },
1532
1300
  "getter": false,
1533
1301
  "setter": false,
1534
1302
  "reflect": false,
1535
- "attribute": "size"
1303
+ "attribute": "value"
1536
1304
  },
1537
- "value": {
1538
- "type": "any",
1539
- "mutable": true,
1305
+ "required": {
1306
+ "type": "boolean",
1307
+ "mutable": false,
1540
1308
  "complexType": {
1541
- "original": "any | null",
1542
- "resolved": "any",
1309
+ "original": "boolean",
1310
+ "resolved": "boolean",
1543
1311
  "references": {}
1544
1312
  },
1545
1313
  "required": false,
1546
- "optional": true,
1314
+ "optional": false,
1547
1315
  "docs": {
1548
1316
  "tags": [],
1549
- "text": "The value of the select."
1317
+ "text": "If true, screen readers will announce it as a required field. This property\nworks only for accessibility purposes, it will not prevent the form from\nsubmitting if the value is invalid."
1550
1318
  },
1551
1319
  "getter": false,
1552
1320
  "setter": false,
1553
1321
  "reflect": false,
1554
- "attribute": "value"
1322
+ "attribute": "required",
1323
+ "defaultValue": "false"
1555
1324
  }
1556
1325
  };
1557
1326
  }
@@ -1747,223 +1516,25 @@ const parseValue = (value) => {
1747
1516
  }
1748
1517
  return value.toString();
1749
1518
  };
1750
- const generateText = (opts, value, compareWith, useHTML = false) => {
1519
+ const generateText = (opts, value, compareWith) => {
1751
1520
  if (value === undefined) {
1752
1521
  return '';
1753
1522
  }
1754
1523
  if (Array.isArray(value)) {
1755
1524
  return value
1756
- .map((v) => textForValue(opts, v, compareWith, useHTML))
1525
+ .map((v) => textForValue(opts, v, compareWith))
1757
1526
  .filter((opt) => opt !== null)
1758
1527
  .join(', ');
1759
1528
  }
1760
1529
  else {
1761
- return textForValue(opts, value, compareWith, useHTML) || '';
1530
+ return textForValue(opts, value, compareWith) || '';
1762
1531
  }
1763
1532
  };
1764
- /**
1765
- * Returns the display text for a given value from the list of options.
1766
- * When `useHTML` is true, returns sanitized HTML for the select text.
1767
- * When `useHTML` is false, returns plain text for aria-label and other
1768
- * text-only contexts.
1769
- *
1770
- * @param opts - The list of ion-select-option elements.
1771
- * @param value - The value to find the matching option for.
1772
- * @param compareWith - Custom comparison function or property name.
1773
- * @param useHTML - If true, returns HTML string. If false, returns plain text.
1774
- */
1775
- const textForValue = (opts, value, compareWith, useHTML = false) => {
1533
+ const textForValue = (opts, value, compareWith) => {
1776
1534
  const selectOpt = opts.find((opt) => {
1777
1535
  return compareOptions(value, getOptionValue(opt), compareWith);
1778
1536
  });
1779
- const customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
1780
- if (!selectOpt) {
1781
- return null;
1782
- }
1783
- // Return sanitized HTML for the select text
1784
- if (customHTMLEnabled && useHTML) {
1785
- return getOptionContent(selectOpt, undefined, true);
1786
- }
1787
- /**
1788
- * When custom HTML is enabled, extract only the default slot content.
1789
- * This ensures aria-label and other text-only contexts read only
1790
- * the relevant option text.
1791
- */
1792
- if (customHTMLEnabled) {
1793
- const content = getOptionContent(selectOpt);
1794
- if (typeof content === 'string') {
1795
- return content;
1796
- }
1797
- /**
1798
- * Elements were found in the default slot, extract and concatenate
1799
- * their text content while trimming whitespace.
1800
- */
1801
- if (content) {
1802
- const texts = Array.from(content.childNodes)
1803
- .map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
1804
- .filter((t) => t);
1805
- return texts.join(' ') || null;
1806
- }
1807
- // Empty option
1808
- return null;
1809
- }
1810
- return getDefaultSlotPlainText(selectOpt);
1811
- };
1812
- /**
1813
- * Trims whitespace from all text nodes within a DOM tree.
1814
- * This prevents invisible layout shifts and unwanted gaps between
1815
- * elements when HTML content is injected via innerHTML or cloneNode,
1816
- * as browsers preserve whitespace (tabs, newlines, spaces) from
1817
- * the original source markup.
1818
- *
1819
- * @param node The root node to start trimming text nodes from.
1820
- */
1821
- const trimTextNodes = (node) => {
1822
- node.childNodes.forEach((child) => {
1823
- var _a;
1824
- if (child.nodeType === Node.TEXT_NODE) {
1825
- child.textContent = ((_a = child.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
1826
- }
1827
- else if (child.nodeType === Node.ELEMENT_NODE) {
1828
- trimTextNodes(child);
1829
- }
1830
- });
1831
- };
1832
- /**
1833
- * Extracts and clones content from an `ion-select-option` element
1834
- * for rendering within overlay interfaces or the select text when `customHTMLEnabled` is `true`.
1835
- *
1836
- * @param option - The `ion-select-option` element to extract content from.
1837
- * @param slotName - Optional slot name to extract. If omitted, extracts the default slot content.
1838
- * @param useHTML - If `true`, the returned string will include any custom HTML content. If `false`, the returned string will be plain text without any HTML.
1839
- * @returns When `useHTML` is `true`, a sanitized HTML string. When `false`, a
1840
- * div element containing cloned child nodes. Returns `null` if no matching
1841
- * content is found.
1842
- */
1843
- const getOptionContent = (option, slotName, useHTML = false) => {
1844
- let nodes;
1845
- if (slotName) {
1846
- // Named slot: get elements with matching slot attribute
1847
- nodes = Array.from(option.children).filter((el) => el.getAttribute('slot') === slotName);
1848
- }
1849
- else {
1850
- // Default slot: get nodes without a slot attribute
1851
- const defaultSlot = getOptionDefaultSlot(option) || [];
1852
- nodes = defaultSlot.filter((node) => {
1853
- var _a;
1854
- /**
1855
- * Exclude whitespace-only text nodes (newline noise between
1856
- * markup elements). Element nodes are always kept, even when
1857
- * their textContent is empty (e.g. <svg>, <img>).
1858
- */
1859
- if (node.nodeType === Node.TEXT_NODE) {
1860
- return ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim().length) !== 0;
1861
- }
1862
- return true;
1863
- });
1864
- }
1865
- if (nodes.length === 0) {
1866
- return null;
1867
- }
1868
- // Return plain text if no elements are found
1869
- if (!slotName && nodes.every((n) => n.nodeType === Node.TEXT_NODE)) {
1870
- return nodes.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); }).join(' ') || null;
1871
- }
1872
- /**
1873
- * Mirror known custom-element properties (e.g. ion-icon's `icon`)
1874
- * onto attributes before cloning. Frameworks like Vue set these as
1875
- * DOM properties, which `cloneNode` doesn't copy, so without this
1876
- * step the cloned overlay copy renders without the prop's value.
1877
- */
1878
- nodes.forEach((n) => {
1879
- if (n.nodeType === Node.ELEMENT_NODE) {
1880
- reflectPropertiesToAttributes(n);
1881
- }
1882
- });
1883
- // Clone each node into a temporary container
1884
- const container = document.createElement('div');
1885
- nodes.forEach((n) => {
1886
- var _a;
1887
- const clone = n.cloneNode(true);
1888
- if (clone.nodeType === Node.TEXT_NODE) {
1889
- clone.textContent = ((_a = clone.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
1890
- }
1891
- else {
1892
- trimTextNodes(clone);
1893
- }
1894
- container.appendChild(clone);
1895
- });
1896
- /**
1897
- * Sanitize the cloned DOM in place. Trusted attributes (size, color,
1898
- * shape, etc.) are preserved; event handlers, javascript: URLs, and
1899
- * blocked tags are stripped.
1900
- */
1901
- sanitizeDOMTree(container);
1902
- if (useHTML) {
1903
- return container.innerHTML.trim() || null;
1904
- }
1905
- return container;
1906
- };
1907
- /**
1908
- * Returns the child nodes that belong to the default slot of an
1909
- * option element, excluding any nodes that are assigned to named
1910
- * slots.
1911
- *
1912
- * @param option - The `ion-select-option` element to extract default-slot nodes from.
1913
- * @returns An array of default slot nodes, or `null` if none are found.
1914
- */
1915
- const getOptionDefaultSlot = (option) => {
1916
- const defaultSlotNodes = Array.from(option.childNodes).filter((node) => {
1917
- if (node.nodeType === Node.ELEMENT_NODE) {
1918
- return !node.hasAttribute('slot');
1919
- }
1920
- return node.nodeType === Node.TEXT_NODE;
1921
- });
1922
- if (defaultSlotNodes.length === 0) {
1923
- return null;
1924
- }
1925
- return defaultSlotNodes;
1926
- };
1927
- /**
1928
- * Extracts plain text from only the default slot of an option,
1929
- * excluding content assigned to named slots (start/end).
1930
- */
1931
- const getDefaultSlotPlainText = (option) => {
1932
- const texts = Array.from(option.childNodes)
1933
- .filter((node) => {
1934
- if (node.nodeType === Node.ELEMENT_NODE) {
1935
- return !node.hasAttribute('slot');
1936
- }
1937
- return node.nodeType === Node.TEXT_NODE;
1938
- })
1939
- .filter((node) => node.nodeType === Node.TEXT_NODE)
1940
- .map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
1941
- .filter((t) => t);
1942
- return texts.join(' ');
1943
- };
1944
- /**
1945
- * Extracts the rich content from an `ion-select-option`.
1946
- * When `customHTMLEnabled` is `false`, only the plain text from the
1947
- * default slot is read and the start and end slots are skipped.
1948
- *
1949
- * @param option - The `ion-select-option` element to extract content from.
1950
- * @param customHTMLEnabled - Whether custom HTML rendering is enabled
1951
- * via the `innerHTMLTemplatesEnabled` config.
1952
- */
1953
- const extractOptionContent = (option, customHTMLEnabled) => {
1954
- var _a, _b;
1955
- if (!customHTMLEnabled) {
1956
- return {
1957
- content: getDefaultSlotPlainText(option),
1958
- startContent: undefined,
1959
- endContent: undefined,
1960
- };
1961
- }
1962
- return {
1963
- content: getOptionContent(option),
1964
- startContent: (_a = getOptionContent(option, 'start')) !== null && _a !== void 0 ? _a : undefined,
1965
- endContent: (_b = getOptionContent(option, 'end')) !== null && _b !== void 0 ? _b : undefined,
1966
- };
1537
+ return selectOpt ? selectOpt.textContent : null;
1967
1538
  };
1968
1539
  let selectIds = 0;
1969
1540
  const OPTION_CLASS = 'select-interface-option';