@ionic/core 8.8.16-dev.11784913436.1a334b43 → 8.8.16-dev.11784914346.10d0804c

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 (1134) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-accordion-group.js +1 -1
  3. package/components/ion-accordion.js +1 -1
  4. package/components/ion-action-sheet.js +1 -1
  5. package/components/ion-alert.js +1 -1
  6. package/components/ion-app.js +1 -1
  7. package/components/ion-avatar.js +1 -1
  8. package/components/ion-back-button.js +1 -1
  9. package/components/ion-backdrop.js +1 -1
  10. package/components/ion-badge.js +1 -1
  11. package/components/ion-breadcrumb.js +1 -1
  12. package/components/ion-breadcrumbs.js +1 -1
  13. package/components/ion-button.js +1 -1
  14. package/components/ion-buttons.js +1 -1
  15. package/components/ion-card-content.js +1 -1
  16. package/components/ion-card-header.js +1 -1
  17. package/components/ion-card-subtitle.js +1 -1
  18. package/components/ion-card-title.js +1 -1
  19. package/components/ion-card.js +1 -1
  20. package/components/ion-checkbox.js +1 -1
  21. package/components/ion-chip.js +1 -1
  22. package/components/ion-col.js +1 -1
  23. package/components/ion-content.js +1 -1
  24. package/components/ion-datetime-button.js +1 -1
  25. package/components/ion-datetime.js +1 -1
  26. package/components/ion-divider.d.ts +11 -0
  27. package/components/ion-divider.js +4 -0
  28. package/components/ion-fab-button.js +1 -1
  29. package/components/ion-fab-list.js +1 -1
  30. package/components/ion-fab.js +1 -1
  31. package/components/ion-footer.js +1 -1
  32. package/components/ion-gallery-item.d.ts +11 -0
  33. package/components/ion-gallery-item.js +4 -0
  34. package/components/ion-gallery.d.ts +11 -0
  35. package/components/ion-gallery.js +4 -0
  36. package/components/ion-grid.js +1 -1
  37. package/components/ion-header.js +1 -1
  38. package/components/ion-icon.js +1 -1
  39. package/components/ion-img.js +1 -1
  40. package/components/ion-infinite-scroll-content.js +1 -1
  41. package/components/ion-infinite-scroll.js +1 -1
  42. package/components/ion-input-otp.js +1 -1
  43. package/components/ion-input-password-toggle.js +1 -1
  44. package/components/ion-input.js +1 -1
  45. package/components/ion-item-divider.js +1 -1
  46. package/components/ion-item-group.js +1 -1
  47. package/components/ion-item-option.js +1 -1
  48. package/components/ion-item-options.js +1 -1
  49. package/components/ion-item-sliding.js +1 -1
  50. package/components/ion-item.js +1 -1
  51. package/components/ion-label.js +1 -1
  52. package/components/ion-list-header.js +1 -1
  53. package/components/ion-list.js +1 -1
  54. package/components/ion-loading.js +1 -1
  55. package/components/ion-menu-button.js +1 -1
  56. package/components/ion-menu-toggle.js +1 -1
  57. package/components/ion-menu.js +1 -1
  58. package/components/ion-modal.js +1 -1
  59. package/components/ion-nav-link.js +1 -1
  60. package/components/ion-nav.js +1 -1
  61. package/components/ion-note.js +1 -1
  62. package/components/ion-picker-column-option.js +1 -1
  63. package/components/ion-picker-column.js +1 -1
  64. package/components/ion-picker-legacy-column.d.ts +11 -0
  65. package/components/ion-picker-legacy-column.js +4 -0
  66. package/components/ion-picker-legacy.d.ts +11 -0
  67. package/components/ion-picker-legacy.js +4 -0
  68. package/components/ion-picker.js +1 -1
  69. package/components/ion-popover.js +1 -1
  70. package/components/ion-progress-bar.js +1 -1
  71. package/components/ion-radio-group.js +1 -1
  72. package/components/ion-radio.js +1 -1
  73. package/components/ion-range.js +1 -1
  74. package/components/ion-refresher-content.js +1 -1
  75. package/components/ion-refresher.js +1 -1
  76. package/components/ion-reorder-group.js +1 -1
  77. package/components/ion-reorder.js +1 -1
  78. package/components/ion-ripple-effect.js +1 -1
  79. package/components/ion-route-redirect.js +1 -1
  80. package/components/ion-route.js +1 -1
  81. package/components/ion-router-link.js +1 -1
  82. package/components/ion-router-outlet.js +1 -1
  83. package/components/ion-router.js +1 -1
  84. package/components/ion-row.js +1 -1
  85. package/components/ion-searchbar.js +1 -1
  86. package/components/ion-segment-button.js +1 -1
  87. package/components/ion-segment-content.js +1 -1
  88. package/components/ion-segment-view.js +1 -1
  89. package/components/ion-segment.js +1 -1
  90. package/components/ion-select-modal.js +1 -1
  91. package/components/ion-select-option.js +1 -1
  92. package/components/ion-select-popover.js +1 -1
  93. package/components/ion-select.js +1 -1
  94. package/components/ion-skeleton-text.js +1 -1
  95. package/components/ion-spinner.js +1 -1
  96. package/components/ion-split-pane.js +1 -1
  97. package/components/ion-tab-bar.js +1 -1
  98. package/components/ion-tab-button.js +1 -1
  99. package/components/ion-tab.js +1 -1
  100. package/components/ion-tabs.js +1 -1
  101. package/components/ion-text.js +1 -1
  102. package/components/ion-textarea.js +1 -1
  103. package/components/ion-thumbnail.js +1 -1
  104. package/components/ion-title.js +1 -1
  105. package/components/ion-toast.js +1 -1
  106. package/components/ion-toggle.js +1 -1
  107. package/components/ion-toolbar.js +1 -1
  108. package/components/p-0RwSa3tV.js +4 -0
  109. package/components/p-4u9RNymb.js +4 -0
  110. package/components/p-B8xhFBOE.js +4 -0
  111. package/components/p-BAnNwWMA.js +4 -0
  112. package/components/p-BDqjX7Z_.js +4 -0
  113. package/components/{p-Cf2jSDS8.js → p-BE21dB_a.js} +1 -1
  114. package/components/p-BI03N_8J.js +4 -0
  115. package/components/p-BISCDmUD.js +4 -0
  116. package/components/{p-C4t5ymfq.js → p-BKSylJVh.js} +1 -1
  117. package/components/p-BLlJA2Q9.js +4 -0
  118. package/components/p-BYSs-jZz.js +4 -0
  119. package/components/p-BYZR_5L4.js +4 -0
  120. package/components/p-B_zaqq5F.js +4 -0
  121. package/components/p-BaPtaYEC.js +4 -0
  122. package/components/p-BiG3Zevl.js +4 -0
  123. package/components/p-BjW8SOqw.js +4 -0
  124. package/components/p-BoWc8hp0.js +4 -0
  125. package/components/p-BqRIq3ti.js +4 -0
  126. package/components/p-BskJOMNV.js +4 -0
  127. package/components/p-C4q_m_U_.js +4 -0
  128. package/components/p-C9QYu-sR.js +4 -0
  129. package/components/p-CEbQglhY.js +4 -0
  130. package/components/p-CGwI_XL6.js +4 -0
  131. package/components/p-CIdlZzoM.js +4 -0
  132. package/components/p-CO9VfZyc.js +4 -0
  133. package/components/p-CODBQrPj.js +4 -0
  134. package/components/{p-LMGfIvTf.js → p-CVYFPBs-.js} +1 -1
  135. package/components/p-CWq1hA4y.js +4 -0
  136. package/components/p-CeL9Glto.js +4 -0
  137. package/components/p-Cjx0xPoU.js +4 -0
  138. package/components/p-Cl94E1nn.js +4 -0
  139. package/components/p-Cog60JgJ.js +4 -0
  140. package/components/p-CyGaZ-Qb.js +4 -0
  141. package/components/p-CyWeCU8e.js +4 -0
  142. package/components/p-CzFNvOq3.js +4 -0
  143. package/components/p-Czw29-II.js +4 -0
  144. package/components/p-D0Iqw6OZ.js +4 -0
  145. package/components/p-D1t981Ih.js +4 -0
  146. package/components/p-D4UIY4kz.js +4 -0
  147. package/components/p-D6un2jDV.js +4 -0
  148. package/components/p-D9583Eo8.js +4 -0
  149. package/components/p-DABI8XVx.js +4 -0
  150. package/components/p-DEZQwbtZ.js +4 -0
  151. package/components/p-DEnOtJ3m.js +4 -0
  152. package/components/p-DJw3WM2A.js +4 -0
  153. package/{dist/ionic/p-D13Eaw-8.js → components/p-DP96lPOT.js} +1 -1
  154. package/components/{p-DqLB8yFQ.js → p-DRnK3A-V.js} +1 -1
  155. package/components/p-DS1w_1X1.js +4 -0
  156. package/components/p-DaJxRxSQ.js +4 -0
  157. package/components/p-Daj5LWIm.js +4 -0
  158. package/components/p-DcVqGRkT.js +4 -0
  159. package/components/p-Dg8OSVcP.js +4 -0
  160. package/components/p-Dght1fh7.js +4 -0
  161. package/components/p-Dhi5xtNS.js +4 -0
  162. package/{dist/ionic/p-VAemlbDS.js → components/p-DmVUl5t4.js} +1 -1
  163. package/components/p-Dn77l_LX.js +4 -0
  164. package/components/{p-D5Ubpm7D.js → p-Dqgyr3aJ.js} +1 -1
  165. package/components/{p-jOtMJMv8.js → p-DylrHLJF.js} +1 -1
  166. package/components/{p-cyNmxje6.js → p-Fagxa-Vi.js} +1 -1
  167. package/components/p-GpxJMpJu.js +4 -0
  168. package/components/p-I0lsm6wZ.js +4 -0
  169. package/components/p-TaMIMwf5.js +4 -0
  170. package/components/p-ZWbVyMi6.js +4 -0
  171. package/components/p-_rgGxkzx.js +4 -0
  172. package/components/p-fIOYmaqA.js +4 -0
  173. package/components/p-vXpMhGrs.js +4 -0
  174. package/css/core.css +1 -1
  175. package/css/core.css.map +1 -1
  176. package/css/display.css +1 -1
  177. package/css/display.css.map +1 -1
  178. package/css/flex-utils.css +1 -1
  179. package/css/flex-utils.css.map +1 -1
  180. package/css/float-elements.css.map +1 -1
  181. package/css/global.bundle.css.map +1 -1
  182. package/css/ionic/bundle.ionic.css +1 -0
  183. package/css/ionic/bundle.ionic.css.map +1 -0
  184. package/css/ionic/core.ionic.css +1 -0
  185. package/css/ionic/core.ionic.css.map +1 -0
  186. package/css/ionic/global.bundle.ionic.css +1 -0
  187. package/css/ionic/global.bundle.ionic.css.map +1 -0
  188. package/css/ionic/ionic-swiper.ionic.css +1 -0
  189. package/css/ionic/ionic-swiper.ionic.css.map +1 -0
  190. package/css/ionic/link.ionic.css +1 -0
  191. package/css/ionic/link.ionic.css.map +1 -0
  192. package/css/ionic/structure.ionic.css +1 -0
  193. package/css/ionic/structure.ionic.css.map +1 -0
  194. package/css/ionic/typography.ionic.css +1 -0
  195. package/css/ionic/typography.ionic.css.map +1 -0
  196. package/css/ionic/utils.bundle.ionic.css +1 -0
  197. package/css/ionic/utils.bundle.ionic.css.map +1 -0
  198. package/css/ionic-swiper.css +1 -1
  199. package/css/ionic-swiper.css.map +1 -1
  200. package/css/ionic.bundle.css +1 -1
  201. package/css/ionic.bundle.css.map +1 -1
  202. package/css/normalize.css.map +1 -1
  203. package/css/padding.css.map +1 -1
  204. package/css/palettes/dark.always.css.map +1 -1
  205. package/css/palettes/dark.class.css.map +1 -1
  206. package/css/palettes/dark.system.css.map +1 -1
  207. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  208. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  209. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  210. package/css/palettes/high-contrast.always.css.map +1 -1
  211. package/css/palettes/high-contrast.class.css.map +1 -1
  212. package/css/palettes/high-contrast.system.css.map +1 -1
  213. package/css/structure.css.map +1 -1
  214. package/css/text-alignment.css.map +1 -1
  215. package/css/text-transformation.css.map +1 -1
  216. package/css/typography.css.map +1 -1
  217. package/css/utils.bundle.css +1 -1
  218. package/css/utils.bundle.css.map +1 -1
  219. package/dist/cjs/{animation-BJq0kcy2.js → animation-B3xfVcDO.js} +3 -3
  220. package/dist/cjs/{app-globals-7VMuu6PT.js → app-globals-3ZoCVkn-.js} +1 -1
  221. package/dist/cjs/{button-active-0mPOKmV2.js → button-active-3tZKuPbT.js} +2 -2
  222. package/dist/cjs/{capacitor-DmA66EwP.js → capacitor-CQSg1uCo.js} +3 -3
  223. package/dist/cjs/caret-down-vtVgfXIs.js +8 -0
  224. package/dist/cjs/caret-left-CxZXLRv5.js +8 -0
  225. package/dist/cjs/caret-right-CRCgv98E.js +8 -0
  226. package/dist/cjs/{focus-visible-CCvKiLh3.js → focus-visible-BIj-I3-C.js} +24 -0
  227. package/dist/cjs/{format-PxvGiOik.js → format-BCIkDef_.js} +1 -1
  228. package/dist/cjs/{framework-delegate-BtICZDHr.js → framework-delegate-DC5nq_NN.js} +4 -2
  229. package/dist/cjs/{haptic-ClPPQ_PS.js → haptic-eix26ESE.js} +1 -1
  230. package/dist/cjs/{helpers-Cv23MFHM.js → helpers-DiOgV5hw.js} +71 -4
  231. package/dist/cjs/{index-BERfRao3.js → index-BaJ7_YbC.js} +4 -4
  232. package/dist/cjs/{index-Cueg3U4w.js → index-Bj07IRTB.js} +1 -1
  233. package/dist/cjs/{index-CIrkNXqJ.js → index-BxEZd5IE.js} +2 -2
  234. package/dist/cjs/{index-DqmRDbxg.js → index-CgAbCW6L.js} +2 -0
  235. package/dist/cjs/{index-IPWmFzOn.js → index-DYRcC3bw.js} +15 -15
  236. package/dist/cjs/{index-Ct7gcRif.js → index-GZU9YrFc.js} +41 -4
  237. package/dist/cjs/{index-D81eLYUM.js → index-bX3nz2vw.js} +9 -8
  238. package/dist/cjs/index.cjs.js +14 -14
  239. package/dist/cjs/{input-shims-CFLg7uzj.js → input-shims-BSEBw22J.js} +18 -17
  240. package/dist/cjs/{input.utils-DetjmtH2.js → input.utils-D68wgI2Y.js} +5 -5
  241. package/dist/cjs/ion-accordion_2.cjs.entry.js +61 -29
  242. package/dist/cjs/ion-action-sheet.cjs.entry.js +27 -28
  243. package/dist/cjs/ion-alert.cjs.entry.js +32 -34
  244. package/dist/cjs/ion-app_8.cjs.entry.js +462 -212
  245. package/dist/cjs/ion-avatar_3.cjs.entry.js +125 -13
  246. package/dist/cjs/ion-back-button.cjs.entry.js +31 -22
  247. package/dist/cjs/ion-backdrop.cjs.entry.js +10 -7
  248. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +54 -18
  249. package/dist/cjs/ion-button_2.cjs.entry.js +59 -22
  250. package/dist/cjs/ion-card_5.cjs.entry.js +55 -33
  251. package/dist/cjs/ion-checkbox.cjs.entry.js +37 -17
  252. package/dist/cjs/ion-chip.cjs.entry.js +50 -9
  253. package/dist/cjs/ion-col_3.cjs.entry.js +56 -57
  254. package/dist/cjs/ion-datetime-button.cjs.entry.js +21 -11
  255. package/dist/cjs/{ion-datetime.cjs.entry.js → ion-datetime_3.cjs.entry.js} +760 -41
  256. package/dist/cjs/ion-divider.cjs.entry.js +51 -0
  257. package/dist/cjs/ion-fab_3.cjs.entry.js +44 -28
  258. package/dist/cjs/ion-gallery-item.cjs.entry.js +59 -0
  259. package/dist/cjs/ion-gallery.cjs.entry.js +607 -0
  260. package/dist/cjs/ion-img.cjs.entry.js +8 -6
  261. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +91 -16
  262. package/dist/cjs/ion-input-otp.cjs.entry.js +74 -9
  263. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +53 -15
  264. package/dist/cjs/ion-input.cjs.entry.js +125 -35
  265. package/dist/cjs/ion-item-option_3.cjs.entry.js +467 -52
  266. package/dist/cjs/ion-item_8.cjs.entry.js +121 -50
  267. package/dist/cjs/ion-loading.cjs.entry.js +20 -22
  268. package/dist/cjs/ion-menu_3.cjs.entry.js +47 -29
  269. package/dist/cjs/ion-modal.cjs.entry.js +269 -165
  270. package/dist/cjs/ion-nav_2.cjs.entry.js +128 -12
  271. package/dist/cjs/ion-picker-column-option.cjs.entry.js +19 -9
  272. package/dist/cjs/ion-picker-column.cjs.entry.js +20 -14
  273. package/dist/cjs/ion-picker.cjs.entry.js +10 -6
  274. package/dist/cjs/ion-popover.cjs.entry.js +21 -23
  275. package/dist/cjs/ion-progress-bar.cjs.entry.js +27 -9
  276. package/dist/cjs/ion-radio_2.cjs.entry.js +35 -17
  277. package/dist/cjs/ion-range.cjs.entry.js +20 -13
  278. package/dist/cjs/ion-refresher_2.cjs.entry.js +39 -21
  279. package/dist/cjs/ion-reorder_2.cjs.entry.js +38 -14
  280. package/dist/cjs/ion-ripple-effect.cjs.entry.js +15 -7
  281. package/dist/cjs/ion-route_4.cjs.entry.js +13 -26
  282. package/dist/cjs/ion-searchbar.cjs.entry.js +138 -25
  283. package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
  284. package/dist/cjs/ion-segment-view.cjs.entry.js +13 -3
  285. package/dist/cjs/ion-segment_2.cjs.entry.js +23 -16
  286. package/dist/cjs/ion-select-modal.cjs.entry.js +48 -26
  287. package/dist/cjs/ion-select_3.cjs.entry.js +199 -108
  288. package/dist/cjs/ion-spinner.cjs.entry.js +30 -8
  289. package/dist/cjs/ion-split-pane.cjs.entry.js +13 -9
  290. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +150 -28
  291. package/dist/cjs/ion-tab_2.cjs.entry.js +8 -7
  292. package/dist/cjs/ion-text.cjs.entry.js +7 -7
  293. package/dist/cjs/ion-textarea.cjs.entry.js +137 -23
  294. package/dist/cjs/ion-toast.cjs.entry.js +69 -46
  295. package/dist/cjs/ion-toggle.cjs.entry.js +82 -25
  296. package/dist/cjs/ionic-global-QoUqobrQ.js +519 -0
  297. package/dist/cjs/ionic.cjs.js +4 -4
  298. package/dist/cjs/{ios.transition-BOSWOaiK.js → ios.transition-DpFQfFfT.js} +7 -5
  299. package/dist/cjs/{keyboard-UuAS4D_9.js → keyboard-Bn0Ppim6.js} +1 -1
  300. package/dist/cjs/{keyboard-hHzlEQpk.js → keyboard-faZBQysj.js} +4 -3
  301. package/dist/cjs/list-a-7GSA6K.js +8 -0
  302. package/dist/cjs/loader.cjs.js +4 -4
  303. package/dist/cjs/{md.transition-B8-wBZqt.js → md.transition-ChJcoZUH.js} +6 -5
  304. package/dist/cjs/{notch-controller-18PzRGXd.js → notch-controller-BO0UGB4F.js} +4 -4
  305. package/dist/cjs/{overlay-control-label-D2sdL2O8.js → overlay-control-label-DnRLQR1t.js} +13 -11
  306. package/dist/cjs/{overlays-DJVbo1cW.js → overlays-CFGbPUmE.js} +315 -43
  307. package/dist/cjs/scroll-hide-controller-G9HOmmhN.js +345 -0
  308. package/dist/cjs/{select-option-render-DTF50t5r.js → select-option-render-DqBHEjDn.js} +2 -2
  309. package/dist/cjs/{status-tap-BXX8H8_Y.js → status-tap-x2qDo5QR.js} +4 -3
  310. package/dist/cjs/{swipe-back-C0GCB18x.js → swipe-back-CvZt_4YX.js} +3 -2
  311. package/dist/cjs/{theme-CeDs6Hcv.js → theme-IlOsGAz7.js} +25 -1
  312. package/dist/cjs/validity-QmuwEptc.js +51 -0
  313. package/dist/cjs/x-BTF99yFH.js +8 -0
  314. package/dist/collection/collection-manifest.json +13 -1
  315. package/dist/collection/components/accordion/accordion.ionic.css +201 -0
  316. package/dist/collection/components/accordion/accordion.ios.css +73 -58
  317. package/dist/collection/components/accordion/accordion.js +41 -27
  318. package/dist/collection/components/accordion/accordion.md.css +67 -59
  319. package/dist/collection/components/accordion-group/accordion-group.ionic.css +93 -0
  320. package/dist/collection/components/accordion-group/accordion-group.ios.css +16 -4
  321. package/dist/collection/components/accordion-group/accordion-group.js +44 -8
  322. package/dist/collection/components/accordion-group/accordion-group.md.css +22 -4
  323. package/dist/collection/components/action-sheet/action-sheet.ionic.css +491 -0
  324. package/dist/collection/components/action-sheet/action-sheet.ios.css +184 -54
  325. package/dist/collection/components/action-sheet/action-sheet.js +18 -18
  326. package/dist/collection/components/action-sheet/action-sheet.md.css +179 -55
  327. package/dist/collection/components/alert/alert.ionic.css +784 -0
  328. package/dist/collection/components/alert/alert.ios.css +247 -54
  329. package/dist/collection/components/alert/alert.js +22 -23
  330. package/dist/collection/components/alert/alert.md.css +243 -56
  331. package/dist/collection/components/app/app.js +15 -83
  332. package/dist/collection/components/avatar/avatar.ionic.css +391 -0
  333. package/dist/collection/components/avatar/avatar.ios.css +7 -33
  334. package/dist/collection/components/avatar/avatar.js +120 -4
  335. package/dist/collection/components/avatar/avatar.md.css +51 -0
  336. package/dist/collection/components/back-button/back-button.ios.css +60 -48
  337. package/dist/collection/components/back-button/back-button.js +27 -19
  338. package/dist/collection/components/back-button/back-button.md.css +60 -48
  339. package/dist/collection/components/backdrop/backdrop.ionic.css +109 -0
  340. package/dist/collection/components/backdrop/backdrop.ios.css +56 -19
  341. package/dist/collection/components/backdrop/backdrop.js +12 -6
  342. package/dist/collection/components/backdrop/backdrop.md.css +56 -19
  343. package/dist/collection/components/badge/badge.ionic.css +275 -0
  344. package/dist/collection/components/badge/badge.ios.css +139 -12
  345. package/dist/collection/components/badge/badge.js +145 -9
  346. package/dist/collection/components/badge/badge.md.css +123 -12
  347. package/dist/collection/components/breadcrumb/breadcrumb.ios.css +20 -8
  348. package/dist/collection/components/breadcrumb/breadcrumb.js +43 -11
  349. package/dist/collection/components/breadcrumb/breadcrumb.md.css +20 -8
  350. package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +6 -0
  351. package/dist/collection/components/breadcrumbs/breadcrumbs.js +11 -9
  352. package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +6 -0
  353. package/dist/collection/components/button/button.ionic.css +646 -0
  354. package/dist/collection/components/button/button.ios.css +154 -46
  355. package/dist/collection/components/button/button.js +63 -27
  356. package/dist/collection/components/button/button.md.css +150 -50
  357. package/dist/collection/components/buttons/buttons.ionic.css +97 -0
  358. package/dist/collection/components/buttons/buttons.ios.css +59 -7
  359. package/dist/collection/components/buttons/buttons.js +15 -9
  360. package/dist/collection/components/buttons/buttons.md.css +55 -3
  361. package/dist/collection/components/card/card.ionic.css +144 -0
  362. package/dist/collection/components/card/card.ios.css +65 -14
  363. package/dist/collection/components/card/card.js +41 -10
  364. package/dist/collection/components/card/card.md.css +65 -14
  365. package/dist/collection/components/card-content/card-content.ionic.css +89 -0
  366. package/dist/collection/components/card-content/card-content.ios.css +20 -35
  367. package/dist/collection/components/card-content/card-content.js +12 -10
  368. package/dist/collection/components/card-content/card-content.md.css +20 -35
  369. package/dist/collection/components/card-header/card-header.ionic.css +85 -0
  370. package/dist/collection/components/card-header/card-header.ios.css +27 -15
  371. package/dist/collection/components/card-header/card-header.js +13 -10
  372. package/dist/collection/components/card-header/card-header.md.css +27 -15
  373. package/dist/collection/components/card-subtitle/card-subtitle.ionic.css +144 -0
  374. package/dist/collection/components/card-subtitle/card-subtitle.ios.css +12 -0
  375. package/dist/collection/components/card-subtitle/card-subtitle.js +11 -8
  376. package/dist/collection/components/card-subtitle/card-subtitle.md.css +12 -0
  377. package/dist/collection/components/card-title/card-title.ios.css +73 -0
  378. package/dist/collection/components/card-title/card-title.js +11 -8
  379. package/dist/collection/components/card-title/card-title.md.css +73 -0
  380. package/dist/collection/components/checkbox/checkbox.ionic.css +543 -0
  381. package/dist/collection/components/checkbox/checkbox.ios.css +163 -99
  382. package/dist/collection/components/checkbox/checkbox.js +73 -15
  383. package/dist/collection/components/checkbox/checkbox.md.css +164 -100
  384. package/dist/collection/components/chip/chip.ionic.css +217 -0
  385. package/dist/collection/components/chip/chip.ios.css +67 -14
  386. package/dist/collection/components/chip/chip.js +108 -8
  387. package/dist/collection/components/chip/chip.md.css +67 -14
  388. package/dist/collection/components/col/col.css +192 -4
  389. package/dist/collection/components/col/col.js +211 -61
  390. package/dist/collection/components/content/content.css +47 -2
  391. package/dist/collection/components/content/content.js +16 -11
  392. package/dist/collection/components/datetime/datetime.ionic.css +703 -0
  393. package/dist/collection/components/datetime/datetime.ios.css +304 -148
  394. package/dist/collection/components/datetime/datetime.js +112 -28
  395. package/dist/collection/components/datetime/datetime.md.css +294 -138
  396. package/dist/collection/components/datetime/utils/data.js +5 -5
  397. package/dist/collection/components/datetime-button/datetime-button.ios.css +6 -5
  398. package/dist/collection/components/datetime-button/datetime-button.js +19 -9
  399. package/dist/collection/components/datetime-button/datetime-button.md.css +6 -5
  400. package/dist/collection/components/divider/divider.ionic.css +148 -0
  401. package/dist/collection/components/divider/divider.ios.css +87 -0
  402. package/dist/collection/components/divider/divider.js +94 -0
  403. package/dist/collection/components/divider/divider.md.css +87 -0
  404. package/dist/collection/components/fab/fab.css +25 -1
  405. package/dist/collection/components/fab/fab.js +9 -5
  406. package/dist/collection/components/fab-button/fab-button.ios.css +18 -6
  407. package/dist/collection/components/fab-button/fab-button.js +36 -21
  408. package/dist/collection/components/fab-button/fab-button.md.css +20 -8
  409. package/dist/collection/components/fab-list/fab-list.css +12 -0
  410. package/dist/collection/components/fab-list/fab-list.js +9 -5
  411. package/dist/collection/components/footer/footer-interface.js +1 -0
  412. package/dist/collection/components/footer/footer.ios.css +33 -6
  413. package/dist/collection/components/footer/footer.js +117 -25
  414. package/dist/collection/components/footer/footer.md.css +40 -0
  415. package/dist/collection/components/gallery/gallery-constants.js +12 -0
  416. package/dist/collection/components/gallery/gallery-interface.js +1 -0
  417. package/dist/collection/components/gallery/gallery.css +15 -0
  418. package/dist/collection/components/gallery/gallery.js +679 -0
  419. package/dist/collection/components/gallery/test/utils.js +100 -0
  420. package/dist/collection/components/gallery-item/gallery-item.css +49 -0
  421. package/dist/collection/components/gallery-item/gallery-item.js +99 -0
  422. package/dist/collection/components/grid/grid.css +12 -0
  423. package/dist/collection/components/grid/grid.js +9 -5
  424. package/dist/collection/components/header/header-interface.js +1 -0
  425. package/dist/collection/components/header/header.ionic.css +250 -0
  426. package/dist/collection/components/header/header.ios.css +178 -133
  427. package/dist/collection/components/header/header.js +181 -39
  428. package/dist/collection/components/header/header.md.css +199 -9
  429. package/dist/collection/components/header/header.utils.js +6 -13
  430. package/dist/collection/components/img/img.js +7 -6
  431. package/dist/collection/components/infinite-scroll/infinite-scroll.js +100 -5
  432. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +12 -0
  433. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +16 -10
  434. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +12 -0
  435. package/dist/collection/components/input/input.ionic.css +889 -0
  436. package/dist/collection/components/input/input.ios.css +223 -135
  437. package/dist/collection/components/input/input.js +153 -42
  438. package/dist/collection/components/input/input.md.css +193 -207
  439. package/dist/collection/components/input-otp/input-otp.ionic.css +371 -0
  440. package/dist/collection/components/input-otp/input-otp.ios.css +105 -60
  441. package/dist/collection/components/input-otp/input-otp.js +74 -7
  442. package/dist/collection/components/input-otp/input-otp.md.css +105 -60
  443. package/dist/collection/components/input-password-toggle/input-password-toggle.ionic.css +78 -0
  444. package/dist/collection/components/input-password-toggle/input-password-toggle.js +48 -12
  445. package/dist/collection/components/input-password-toggle/input-password-toggle.native.css +61 -0
  446. package/dist/collection/components/item/item.ionic.css +496 -0
  447. package/dist/collection/components/item/item.ios.css +109 -69
  448. package/dist/collection/components/item/item.js +56 -21
  449. package/dist/collection/components/item/item.md.css +120 -68
  450. package/dist/collection/components/item-divider/item-divider.ios.css +18 -0
  451. package/dist/collection/components/item-divider/item-divider.js +11 -8
  452. package/dist/collection/components/item-divider/item-divider.md.css +18 -0
  453. package/dist/collection/components/item-group/item-group.ios.css +12 -0
  454. package/dist/collection/components/item-group/item-group.js +13 -7
  455. package/dist/collection/components/item-group/item-group.md.css +12 -0
  456. package/dist/collection/components/item-option/item-option.ionic.css +278 -0
  457. package/dist/collection/components/item-option/item-option.ios.css +136 -29
  458. package/dist/collection/components/item-option/item-option.js +73 -9
  459. package/dist/collection/components/item-option/item-option.md.css +136 -29
  460. package/dist/collection/components/item-options/item-options.ionic.css +221 -0
  461. package/dist/collection/components/item-options/item-options.ios.css +77 -34
  462. package/dist/collection/components/item-options/item-options.js +13 -7
  463. package/dist/collection/components/item-options/item-options.md.css +77 -34
  464. package/dist/collection/components/item-sliding/item-sliding.ionic.css +211 -0
  465. package/dist/collection/components/item-sliding/item-sliding.js +421 -35
  466. package/dist/collection/components/item-sliding/{item-sliding.css → item-sliding.native.css} +84 -9
  467. package/dist/collection/components/item-sliding/test/test.utils.js +13 -0
  468. package/dist/collection/components/label/label.ios.css +18 -0
  469. package/dist/collection/components/label/label.js +11 -8
  470. package/dist/collection/components/label/label.md.css +18 -0
  471. package/dist/collection/components/list/list.ionic.css +212 -0
  472. package/dist/collection/components/list/list.ios.css +54 -14
  473. package/dist/collection/components/list/list.js +48 -9
  474. package/dist/collection/components/list/list.md.css +56 -16
  475. package/dist/collection/components/list-header/list-header.ionic.css +190 -0
  476. package/dist/collection/components/list-header/list-header.ios.css +82 -38
  477. package/dist/collection/components/list-header/list-header.js +11 -8
  478. package/dist/collection/components/list-header/list-header.md.css +82 -38
  479. package/dist/collection/components/loading/loading.ios.css +13 -1
  480. package/dist/collection/components/loading/loading.js +15 -16
  481. package/dist/collection/components/loading/loading.md.css +13 -1
  482. package/dist/collection/components/menu/menu.ios.css +15 -3
  483. package/dist/collection/components/menu/menu.js +12 -7
  484. package/dist/collection/components/menu/menu.md.css +15 -3
  485. package/dist/collection/components/menu-button/menu-button.ionic.css +236 -0
  486. package/dist/collection/components/menu-button/menu-button.ios.css +48 -14
  487. package/dist/collection/components/menu-button/menu-button.js +26 -10
  488. package/dist/collection/components/menu-button/menu-button.md.css +49 -15
  489. package/dist/collection/components/menu-toggle/menu-toggle.js +8 -5
  490. package/dist/collection/components/modal/animations/ionic.enter.js +40 -0
  491. package/dist/collection/components/modal/animations/ionic.leave.js +28 -0
  492. package/dist/collection/components/modal/animations/sheet.js +8 -2
  493. package/dist/collection/components/modal/gestures/sheet.js +76 -10
  494. package/dist/collection/components/modal/modal.ionic.css +255 -0
  495. package/dist/collection/components/modal/modal.ios.css +178 -70
  496. package/dist/collection/components/modal/modal.js +60 -42
  497. package/dist/collection/components/modal/modal.md.css +178 -70
  498. package/dist/collection/components/nav/nav.css +7 -1
  499. package/dist/collection/components/nav/nav.js +229 -8
  500. package/dist/collection/components/nav-link/nav-link.js +5 -1
  501. package/dist/collection/components/note/note.ios.css +12 -0
  502. package/dist/collection/components/note/note.js +11 -8
  503. package/dist/collection/components/note/note.md.css +12 -0
  504. package/dist/collection/components/picker/picker.ios.css +15 -3
  505. package/dist/collection/components/picker/picker.js +8 -5
  506. package/dist/collection/components/picker/picker.md.css +15 -3
  507. package/dist/collection/components/picker-column/picker-column.css +9 -5
  508. package/dist/collection/components/picker-column/picker-column.js +16 -8
  509. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +6 -0
  510. package/dist/collection/components/picker-column-option/picker-column-option.js +21 -8
  511. package/dist/collection/components/picker-column-option/picker-column-option.md.css +7 -6
  512. package/dist/collection/components/picker-legacy/animations/ios.enter.js +27 -0
  513. package/dist/collection/components/picker-legacy/animations/ios.leave.js +23 -0
  514. package/dist/collection/components/picker-legacy/picker-interface.js +1 -0
  515. package/dist/collection/components/picker-legacy/picker.ios.css +312 -0
  516. package/dist/collection/components/picker-legacy/picker.js +891 -0
  517. package/dist/collection/components/picker-legacy/picker.md.css +299 -0
  518. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +243 -0
  519. package/dist/collection/components/picker-legacy-column/picker-column.js +422 -0
  520. package/dist/collection/components/picker-legacy-column/picker-column.md.css +234 -0
  521. package/dist/collection/components/picker-legacy-column/test/test.utils.js +43 -0
  522. package/dist/collection/components/popover/popover.ionic.css +290 -0
  523. package/dist/collection/components/popover/popover.ios.css +15 -2
  524. package/dist/collection/components/popover/popover.js +19 -20
  525. package/dist/collection/components/popover/popover.md.css +15 -2
  526. package/dist/collection/components/progress-bar/progress-bar.ionic.css +287 -0
  527. package/dist/collection/components/progress-bar/progress-bar.ios.css +48 -17
  528. package/dist/collection/components/progress-bar/progress-bar.js +43 -7
  529. package/dist/collection/components/progress-bar/progress-bar.md.css +48 -17
  530. package/dist/collection/components/radio/radio.ionic.css +422 -0
  531. package/dist/collection/components/radio/radio.ios.css +134 -91
  532. package/dist/collection/components/radio/radio.js +15 -10
  533. package/dist/collection/components/radio/radio.md.css +134 -91
  534. package/dist/collection/components/radio-group/radio-group.ionic.css +119 -0
  535. package/dist/collection/components/radio-group/radio-group.ios.css +43 -19
  536. package/dist/collection/components/radio-group/radio-group.js +48 -7
  537. package/dist/collection/components/radio-group/radio-group.md.css +43 -19
  538. package/dist/collection/components/range/range.ionic.css +567 -0
  539. package/dist/collection/components/range/range.ios.css +128 -85
  540. package/dist/collection/components/range/range.js +16 -10
  541. package/dist/collection/components/range/range.md.css +128 -85
  542. package/dist/collection/components/refresher/refresher.ios.css +14 -1
  543. package/dist/collection/components/refresher/refresher.js +11 -8
  544. package/dist/collection/components/refresher/refresher.md.css +15 -2
  545. package/dist/collection/components/refresher-content/refresher-content.js +28 -7
  546. package/dist/collection/components/reorder/reorder.ios.css +6 -0
  547. package/dist/collection/components/reorder/reorder.js +33 -6
  548. package/dist/collection/components/reorder/reorder.md.css +6 -0
  549. package/dist/collection/components/reorder-group/reorder-group.css +6 -0
  550. package/dist/collection/components/reorder-group/reorder-group.js +8 -4
  551. package/dist/collection/components/ripple-effect/{ripple-effect.css → ripple-effect.common.css} +7 -1
  552. package/dist/collection/components/ripple-effect/ripple-effect.ionic.css +215 -0
  553. package/dist/collection/components/ripple-effect/ripple-effect.js +14 -6
  554. package/dist/collection/components/route/route.js +5 -1
  555. package/dist/collection/components/router/router.js +4 -0
  556. package/dist/collection/components/router/utils/dom.js +3 -22
  557. package/dist/collection/components/router-link/router-link.css +8 -2
  558. package/dist/collection/components/router-link/router-link.js +9 -5
  559. package/dist/collection/components/router-outlet/router-outlet.css +7 -1
  560. package/dist/collection/components/router-outlet/router-outlet.js +10 -40
  561. package/dist/collection/components/row/row.css +16 -0
  562. package/dist/collection/components/row/row.js +9 -2
  563. package/dist/collection/components/searchbar/searchbar.ionic.css +626 -0
  564. package/dist/collection/components/searchbar/searchbar.ios.css +56 -18
  565. package/dist/collection/components/searchbar/searchbar.js +185 -38
  566. package/dist/collection/components/searchbar/searchbar.md.css +56 -18
  567. package/dist/collection/components/segment/segment.ionic.css +115 -0
  568. package/dist/collection/components/segment/segment.ios.css +45 -2
  569. package/dist/collection/components/segment/segment.js +11 -8
  570. package/dist/collection/components/segment/segment.md.css +45 -2
  571. package/dist/collection/components/segment-button/segment-button.ionic.css +353 -0
  572. package/dist/collection/components/segment-button/segment-button.ios.css +146 -105
  573. package/dist/collection/components/segment-button/segment-button.js +11 -8
  574. package/dist/collection/components/segment-button/segment-button.md.css +148 -107
  575. package/dist/collection/components/segment-content/segment-content.js +1 -1
  576. package/dist/collection/components/segment-view/segment-view.ios.css +6 -0
  577. package/dist/collection/components/segment-view/segment-view.js +13 -4
  578. package/dist/collection/components/segment-view/segment-view.md.css +6 -0
  579. package/dist/collection/components/select/select.ionic.css +810 -0
  580. package/dist/collection/components/select/select.ios.css +316 -177
  581. package/dist/collection/components/select/select.js +232 -110
  582. package/dist/collection/components/select/select.md.css +332 -179
  583. package/dist/collection/components/select-modal/select-modal.ionic.css +254 -0
  584. package/dist/collection/components/select-modal/select-modal.ios.css +293 -45
  585. package/dist/collection/components/select-modal/select-modal.js +58 -15
  586. package/dist/collection/components/select-modal/select-modal.md.css +274 -44
  587. package/dist/collection/components/select-option/select-option.js +8 -4
  588. package/dist/collection/components/select-popover/select-popover.ionic.css +252 -0
  589. package/dist/collection/components/select-popover/select-popover.ios.css +188 -124
  590. package/dist/collection/components/select-popover/select-popover.js +17 -9
  591. package/dist/collection/components/select-popover/select-popover.md.css +228 -47
  592. package/dist/collection/components/skeleton-text/skeleton-text.css +6 -0
  593. package/dist/collection/components/skeleton-text/skeleton-text.js +9 -5
  594. package/dist/collection/components/spinner/{spinner.css → spinner.ionic.css} +78 -10
  595. package/dist/collection/components/spinner/spinner.js +47 -6
  596. package/dist/collection/components/spinner/spinner.native.css +199 -0
  597. package/dist/collection/components/split-pane/split-pane.ios.css +20 -2
  598. package/dist/collection/components/split-pane/split-pane.js +15 -8
  599. package/dist/collection/components/split-pane/split-pane.md.css +20 -2
  600. package/dist/collection/components/tab/tab.js +6 -2
  601. package/dist/collection/components/tab-bar/tab-bar.ionic.css +249 -0
  602. package/dist/collection/components/tab-bar/tab-bar.ios.css +86 -43
  603. package/dist/collection/components/tab-bar/tab-bar.js +179 -15
  604. package/dist/collection/components/tab-bar/tab-bar.md.css +86 -43
  605. package/dist/collection/components/tab-button/tab-button.ionic.css +374 -0
  606. package/dist/collection/components/tab-button/tab-button.ios.css +171 -95
  607. package/dist/collection/components/tab-button/tab-button.js +54 -9
  608. package/dist/collection/components/tab-button/tab-button.md.css +137 -93
  609. package/dist/collection/components/tabs/tabs.css +7 -1
  610. package/dist/collection/components/tabs/tabs.js +4 -1
  611. package/dist/collection/components/text/text.css +6 -0
  612. package/dist/collection/components/text/text.js +7 -6
  613. package/dist/collection/components/textarea/textarea.ionic.css +898 -0
  614. package/dist/collection/components/textarea/textarea.ios.css +298 -158
  615. package/dist/collection/components/textarea/textarea.js +162 -24
  616. package/dist/collection/components/textarea/textarea.md.css +312 -159
  617. package/dist/collection/components/thumbnail/thumbnail.css +6 -0
  618. package/dist/collection/components/thumbnail/thumbnail.js +9 -2
  619. package/dist/collection/components/title/title.ionic.css +127 -0
  620. package/dist/collection/components/title/title.ios.css +32 -4
  621. package/dist/collection/components/title/title.js +13 -7
  622. package/dist/collection/components/title/title.md.css +39 -4
  623. package/dist/collection/components/toast/animations/utils.js +1 -1
  624. package/dist/collection/components/toast/toast.ionic.css +394 -0
  625. package/dist/collection/components/toast/toast.ios.css +84 -45
  626. package/dist/collection/components/toast/toast.js +76 -13
  627. package/dist/collection/components/toast/toast.md.css +84 -45
  628. package/dist/collection/components/toggle/toggle.ionic.css +508 -0
  629. package/dist/collection/components/toggle/toggle.ios.css +247 -131
  630. package/dist/collection/components/toggle/toggle.js +73 -18
  631. package/dist/collection/components/toggle/toggle.md.css +244 -131
  632. package/dist/collection/components/toolbar/test/image.svg +1 -0
  633. package/dist/collection/components/toolbar/toolbar.ionic.css +249 -0
  634. package/dist/collection/components/toolbar/toolbar.ios.css +90 -47
  635. package/dist/collection/components/toolbar/toolbar.js +218 -13
  636. package/dist/collection/components/toolbar/toolbar.md.css +90 -47
  637. package/dist/collection/global/ionic-global.js +241 -13
  638. package/dist/collection/index.js +1 -1
  639. package/dist/collection/utils/css-value-validation.js +39 -0
  640. package/dist/collection/utils/focus-trap.js +13 -2
  641. package/dist/collection/utils/focus-visible.js +22 -0
  642. package/dist/collection/utils/forms/validity.js +31 -0
  643. package/dist/collection/utils/framework-delegate.js +3 -1
  644. package/dist/collection/utils/hardware-back-button.js +15 -0
  645. package/dist/collection/utils/helpers.js +70 -3
  646. package/dist/collection/utils/keyboard/keyboard-controller.js +3 -1
  647. package/dist/collection/utils/media.js +1 -0
  648. package/dist/collection/utils/menu-controller/animations/overlay.js +3 -3
  649. package/dist/collection/utils/menu-controller/animations/push.js +2 -1
  650. package/dist/collection/utils/menu-controller/animations/reveal.js +2 -1
  651. package/dist/collection/utils/overlay-control-label.js +13 -11
  652. package/dist/collection/utils/overlays.js +295 -32
  653. package/dist/collection/utils/platform.js +2 -2
  654. package/dist/collection/utils/scroll-hide-controller.js +178 -0
  655. package/dist/collection/utils/test/playwright/drag-element.js +32 -9
  656. package/dist/collection/utils/test/playwright/generator.js +48 -23
  657. package/dist/collection/utils/test/playwright/page/utils/goto.js +14 -5
  658. package/dist/collection/utils/test/playwright/page/utils/set-content.js +26 -3
  659. package/dist/collection/utils/theme.js +25 -1
  660. package/dist/collection/utils/transition/ios.transition.js +1 -0
  661. package/dist/docs.json +10032 -512
  662. package/dist/esm/{animation-DLJpuoEz.js → animation-B2qdQ_ou.js} +2 -2
  663. package/dist/esm/{app-globals-DNgPBV1i.js → app-globals-DZ-iIjxA.js} +1 -1
  664. package/dist/esm/{button-active-BSpTQmS9.js → button-active-BmajAby6.js} +2 -2
  665. package/dist/esm/{capacitor-CFERIeaU.js → capacitor-CtQSWUU0.js} +1 -1
  666. package/dist/esm/caret-down-D1t981Ih.js +6 -0
  667. package/dist/esm/caret-left-fIOYmaqA.js +6 -0
  668. package/dist/esm/caret-right-BYSs-jZz.js +6 -0
  669. package/dist/esm/{focus-visible-BmVRXR1y.js → focus-visible-vXpMhGrs.js} +23 -1
  670. package/dist/esm/{format-CAmvpAez.js → format-2WlZcMvG.js} +1 -1
  671. package/dist/esm/{framework-delegate-FnPGymXL.js → framework-delegate-DO2QXccA.js} +4 -2
  672. package/dist/esm/{haptic-DzAMWJuk.js → haptic-DFgKNCce.js} +1 -1
  673. package/dist/esm/{helpers-HEqiOzXb.js → helpers-DfF5_wJc.js} +71 -5
  674. package/dist/esm/{index-B_dQk_WE.js → index-BIUWGRUl.js} +4 -4
  675. package/dist/esm/{index-BRHzoo00.js → index-BjaaZqVY.js} +4 -3
  676. package/dist/esm/{index-tcQvqkiX.js → index-C0EQceqV.js} +41 -4
  677. package/dist/esm/{index-AlrZKoWR.js → index-D2tu5BUg.js} +2 -1
  678. package/dist/esm/{index-0f4UTH6Z.js → index-Di034G4O.js} +11 -11
  679. package/dist/esm/{index-MEDq2S8l.js → index-KxK0gcRp.js} +2 -2
  680. package/dist/esm/{index-DQSkZyOJ.js → index-Mq5pCWmZ.js} +1 -1
  681. package/dist/esm/index.js +13 -14
  682. package/dist/esm/{input-shims-D10mwcw1.js → input-shims-DvNNw70a.js} +7 -6
  683. package/dist/esm/{input.utils-Y6NgW8bw.js → input.utils-_LkBfBWt.js} +3 -3
  684. package/dist/esm/ion-accordion_2.entry.js +61 -29
  685. package/dist/esm/ion-action-sheet.entry.js +27 -28
  686. package/dist/esm/ion-alert.entry.js +32 -34
  687. package/dist/esm/ion-app_8.entry.js +461 -211
  688. package/dist/esm/ion-avatar_3.entry.js +125 -13
  689. package/dist/esm/ion-back-button.entry.js +31 -22
  690. package/dist/esm/ion-backdrop.entry.js +10 -7
  691. package/dist/esm/ion-breadcrumb_2.entry.js +54 -18
  692. package/dist/esm/ion-button_2.entry.js +59 -22
  693. package/dist/esm/ion-card_5.entry.js +55 -33
  694. package/dist/esm/ion-checkbox.entry.js +37 -17
  695. package/dist/esm/ion-chip.entry.js +50 -9
  696. package/dist/esm/ion-col_3.entry.js +56 -57
  697. package/dist/esm/ion-datetime-button.entry.js +21 -11
  698. package/dist/esm/{ion-datetime.entry.js → ion-datetime_3.entry.js} +759 -42
  699. package/dist/esm/ion-divider.entry.js +49 -0
  700. package/dist/esm/ion-fab_3.entry.js +44 -28
  701. package/dist/esm/ion-gallery-item.entry.js +57 -0
  702. package/dist/esm/ion-gallery.entry.js +605 -0
  703. package/dist/esm/ion-img.entry.js +8 -6
  704. package/dist/esm/ion-infinite-scroll_2.entry.js +91 -16
  705. package/dist/esm/ion-input-otp.entry.js +74 -9
  706. package/dist/esm/ion-input-password-toggle.entry.js +53 -15
  707. package/dist/esm/ion-input.entry.js +125 -35
  708. package/dist/esm/ion-item-option_3.entry.js +467 -52
  709. package/dist/esm/ion-item_8.entry.js +121 -50
  710. package/dist/esm/ion-loading.entry.js +20 -22
  711. package/dist/esm/ion-menu_3.entry.js +47 -29
  712. package/dist/esm/ion-modal.entry.js +222 -118
  713. package/dist/esm/ion-nav_2.entry.js +128 -12
  714. package/dist/esm/ion-picker-column-option.entry.js +19 -9
  715. package/dist/esm/ion-picker-column.entry.js +19 -13
  716. package/dist/esm/ion-picker.entry.js +10 -6
  717. package/dist/esm/ion-popover.entry.js +21 -23
  718. package/dist/esm/ion-progress-bar.entry.js +27 -9
  719. package/dist/esm/ion-radio_2.entry.js +35 -17
  720. package/dist/esm/ion-range.entry.js +20 -13
  721. package/dist/esm/ion-refresher_2.entry.js +39 -21
  722. package/dist/esm/ion-reorder_2.entry.js +38 -14
  723. package/dist/esm/ion-ripple-effect.entry.js +15 -7
  724. package/dist/esm/ion-route_4.entry.js +13 -26
  725. package/dist/esm/ion-searchbar.entry.js +138 -25
  726. package/dist/esm/ion-segment-content.entry.js +2 -2
  727. package/dist/esm/ion-segment-view.entry.js +13 -3
  728. package/dist/esm/ion-segment_2.entry.js +23 -16
  729. package/dist/esm/ion-select-modal.entry.js +48 -26
  730. package/dist/esm/ion-select_3.entry.js +200 -109
  731. package/dist/esm/ion-spinner.entry.js +30 -8
  732. package/dist/esm/ion-split-pane.entry.js +13 -9
  733. package/dist/esm/ion-tab-bar_2.entry.js +149 -27
  734. package/dist/esm/ion-tab_2.entry.js +8 -7
  735. package/dist/esm/ion-text.entry.js +7 -7
  736. package/dist/esm/ion-textarea.entry.js +137 -23
  737. package/dist/esm/ion-toast.entry.js +44 -21
  738. package/dist/esm/ion-toggle.entry.js +82 -25
  739. package/dist/esm/ionic-global-BpkTponr.js +508 -0
  740. package/dist/esm/ionic.js +5 -5
  741. package/dist/esm/{ios.transition-ClFrsIrS.js → ios.transition-CgScDbsb.js} +7 -5
  742. package/dist/esm/{keyboard-CUw4ekVy.js → keyboard-CyyguLDw.js} +1 -1
  743. package/dist/esm/{keyboard-ywgs5efA.js → keyboard-WJix-wcz.js} +4 -3
  744. package/dist/esm/list-Dhi5xtNS.js +6 -0
  745. package/dist/esm/loader.js +5 -5
  746. package/dist/esm/{md.transition-D0msQmzI.js → md.transition-DThqYazt.js} +6 -5
  747. package/dist/esm/{notch-controller-DKDjU_O7.js → notch-controller-MTblRxjD.js} +2 -2
  748. package/dist/esm/{overlay-control-label-BSQPZ79H.js → overlay-control-label-CODBQrPj.js} +13 -11
  749. package/dist/esm/{overlays-Cx65ihix.js → overlays-tv6nLsmk.js} +312 -40
  750. package/dist/esm/scroll-hide-controller-CUNW7EpD.js +342 -0
  751. package/dist/esm/{select-option-render-B8nWZRnd.js → select-option-render-BlKZ2H83.js} +2 -2
  752. package/dist/esm/{status-tap-Kan2W7sh.js → status-tap-CoPI1M2q.js} +4 -3
  753. package/dist/esm/{swipe-back-DQ1q5MgD.js → swipe-back-qmvTRnSq.js} +3 -2
  754. package/dist/esm/{theme-DiVJyqlX.js → theme-DaJxRxSQ.js} +25 -1
  755. package/dist/esm/validity-BjW8SOqw.js +48 -0
  756. package/dist/esm/x-BDqjX7Z_.js +6 -0
  757. package/dist/html.html-data.json +2690 -123
  758. package/dist/ionic/index.esm.js +1 -1
  759. package/dist/ionic/ionic.esm.js +1 -1
  760. package/dist/ionic/{p-BDtODLZ4.js → p--sroV-k-.js} +1 -1
  761. package/dist/ionic/p-05ce9821.entry.js +4 -0
  762. package/dist/ionic/p-07bd8446.entry.js +4 -0
  763. package/dist/ionic/p-085b8cdf.entry.js +4 -0
  764. package/dist/ionic/p-0ef6bfc4.entry.js +4 -0
  765. package/dist/ionic/p-103e1d9f.entry.js +4 -0
  766. package/dist/ionic/p-18bc4f2d.entry.js +4 -0
  767. package/dist/ionic/p-1b6e3914.entry.js +4 -0
  768. package/dist/ionic/p-248265c2.entry.js +4 -0
  769. package/dist/ionic/p-25b51635.entry.js +4 -0
  770. package/dist/ionic/p-2740db6e.entry.js +4 -0
  771. package/dist/ionic/p-274a829d.entry.js +4 -0
  772. package/dist/ionic/p-2a1abbb1.entry.js +4 -0
  773. package/dist/ionic/p-3b4c5cb5.entry.js +4 -0
  774. package/dist/ionic/p-3bc5b5e9.entry.js +4 -0
  775. package/dist/ionic/p-3cfb4ff2.entry.js +4 -0
  776. package/dist/ionic/p-41afaf15.entry.js +4 -0
  777. package/dist/ionic/p-43b00c5b.entry.js +4 -0
  778. package/dist/ionic/p-507dbb1c.entry.js +4 -0
  779. package/dist/ionic/p-56224b93.entry.js +4 -0
  780. package/dist/ionic/p-5732396e.entry.js +4 -0
  781. package/dist/ionic/p-58d8877d.entry.js +4 -0
  782. package/dist/ionic/p-5d079dc1.entry.js +4 -0
  783. package/dist/ionic/p-5e9665dd.entry.js +4 -0
  784. package/dist/ionic/p-5fee5cc1.entry.js +4 -0
  785. package/dist/ionic/p-602cf876.entry.js +4 -0
  786. package/dist/ionic/p-64734604.entry.js +4 -0
  787. package/dist/ionic/p-678ee14a.entry.js +4 -0
  788. package/dist/ionic/p-68ea8ed1.entry.js +4 -0
  789. package/dist/ionic/p-69feeff9.entry.js +4 -0
  790. package/dist/ionic/p-6e1ec775.entry.js +4 -0
  791. package/dist/ionic/p-745d6b2b.entry.js +4 -0
  792. package/dist/ionic/{p-C0eMdTCW.js → p-7k7Q1A38.js} +1 -1
  793. package/dist/ionic/p-83acfa2d.entry.js +4 -0
  794. package/dist/ionic/p-849b1759.entry.js +4 -0
  795. package/dist/ionic/p-86f040e0.entry.js +4 -0
  796. package/dist/ionic/p-89fedfda.entry.js +4 -0
  797. package/dist/ionic/p-8cb23f27.entry.js +4 -0
  798. package/dist/ionic/p-8d5fd199.entry.js +4 -0
  799. package/dist/ionic/p-BDSH5ckF.js +4 -0
  800. package/dist/ionic/p-BDqjX7Z_.js +4 -0
  801. package/dist/ionic/p-BFy_BK46.js +4 -0
  802. package/dist/ionic/p-BYSs-jZz.js +4 -0
  803. package/dist/ionic/p-BjW8SOqw.js +4 -0
  804. package/{components/p-CtukzcyX.js → dist/ionic/p-BlZo7Gy-.js} +1 -1
  805. package/dist/ionic/p-Bq8S4vhI.js +4 -0
  806. package/dist/ionic/p-C0EQceqV.js +5 -0
  807. package/dist/ionic/p-C1I_d964.js +4 -0
  808. package/dist/ionic/p-CB91Gr9M.js +4 -0
  809. package/dist/ionic/p-CEkwLb3L.js +4 -0
  810. package/dist/ionic/p-CJsJQPQD.js +4 -0
  811. package/dist/ionic/p-CODBQrPj.js +4 -0
  812. package/dist/ionic/p-Ch7MBNn_.js +4 -0
  813. package/{components/p-BT_5jSqG.js → dist/ionic/p-Cm20lBQw.js} +1 -1
  814. package/dist/ionic/p-CnAWnbNK.js +4 -0
  815. package/dist/ionic/p-D1t981Ih.js +4 -0
  816. package/dist/ionic/p-D2tu5BUg.js +4 -0
  817. package/dist/ionic/p-D4MT1z4_.js +4 -0
  818. package/dist/ionic/p-D4veLKCq.js +4 -0
  819. package/dist/ionic/p-DF7ubVci.js +4 -0
  820. package/dist/ionic/p-DMaSfupH.js +4 -0
  821. package/{components/p-D13Eaw-8.js → dist/ionic/p-DQDmksdT.js} +1 -1
  822. package/dist/ionic/p-DTsDGZPd.js +4 -0
  823. package/dist/ionic/p-DaJxRxSQ.js +4 -0
  824. package/dist/ionic/p-DdCaKRle.js +4 -0
  825. package/dist/ionic/p-Dhi5xtNS.js +4 -0
  826. package/dist/ionic/p-Dy243NXW.js +4 -0
  827. package/dist/ionic/{p-CKvCXMs9.js → p-OkgYzj-7.js} +1 -1
  828. package/dist/ionic/p-YIsE5bNG.js +4 -0
  829. package/dist/ionic/p-b97778f5.entry.js +4 -0
  830. package/dist/ionic/p-be9db7e8.entry.js +4 -0
  831. package/dist/ionic/p-c04429f2.entry.js +4 -0
  832. package/dist/ionic/p-c25a2a9b.entry.js +4 -0
  833. package/dist/ionic/p-c76d57fb.entry.js +4 -0
  834. package/dist/ionic/p-ca3a07b5.entry.js +4 -0
  835. package/dist/ionic/p-ced3cda1.entry.js +4 -0
  836. package/dist/ionic/p-cf22e991.entry.js +4 -0
  837. package/dist/ionic/p-d0c1d21d.entry.js +4 -0
  838. package/dist/ionic/p-d0d42da6.entry.js +4 -0
  839. package/dist/ionic/p-d272ff4f.entry.js +4 -0
  840. package/dist/ionic/p-d33dfc12.entry.js +4 -0
  841. package/dist/ionic/p-d34bfb61.entry.js +4 -0
  842. package/dist/ionic/p-ddde8df3.entry.js +4 -0
  843. package/dist/ionic/p-df642ef5.entry.js +4 -0
  844. package/dist/ionic/p-e04d63e1.entry.js +4 -0
  845. package/dist/ionic/p-f8001f8f.entry.js +4 -0
  846. package/dist/ionic/p-fIOYmaqA.js +4 -0
  847. package/dist/ionic/p-fc6d26ff.entry.js +4 -0
  848. package/dist/ionic/p-im8OkZlj.js +4 -0
  849. package/dist/ionic/p-lMb_45ax.js +4 -0
  850. package/dist/ionic/{p-Wk5HzclC.js → p-oUgyLDGL.js} +1 -1
  851. package/dist/ionic/p-vXpMhGrs.js +4 -0
  852. package/dist/types/components/accordion/accordion.d.ts +6 -3
  853. package/dist/types/components/accordion-group/accordion-group.d.ts +12 -1
  854. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +3 -7
  855. package/dist/types/components/action-sheet/action-sheet.d.ts +3 -2
  856. package/dist/types/components/alert/alert-interface.d.ts +3 -7
  857. package/dist/types/components/alert/alert.d.ts +3 -2
  858. package/dist/types/components/app/app.d.ts +4 -5
  859. package/dist/types/components/avatar/avatar.d.ts +32 -0
  860. package/dist/types/components/back-button/back-button.d.ts +2 -1
  861. package/dist/types/components/backdrop/backdrop.d.ts +4 -0
  862. package/dist/types/components/badge/badge.d.ts +34 -1
  863. package/dist/types/components/breadcrumb/breadcrumb.d.ts +4 -1
  864. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +2 -2
  865. package/dist/types/components/button/button.d.ts +23 -8
  866. package/dist/types/components/buttons/buttons.d.ts +5 -1
  867. package/dist/types/components/card/card.d.ts +8 -1
  868. package/dist/types/components/card-content/card-content.d.ts +2 -1
  869. package/dist/types/components/card-header/card-header.d.ts +3 -2
  870. package/dist/types/components/card-subtitle/card-subtitle.d.ts +2 -1
  871. package/dist/types/components/card-title/card-title.d.ts +2 -1
  872. package/dist/types/components/checkbox/checkbox.d.ts +14 -4
  873. package/dist/types/components/chip/chip.d.ts +26 -1
  874. package/dist/types/components/col/col.d.ts +52 -5
  875. package/dist/types/components/content/content.d.ts +3 -0
  876. package/dist/types/components/datetime/datetime.d.ts +26 -1
  877. package/dist/types/components/datetime/utils/data.d.ts +5 -5
  878. package/dist/types/components/datetime-button/datetime-button.d.ts +2 -1
  879. package/dist/types/components/divider/divider.d.ts +20 -0
  880. package/dist/types/components/fab/fab.d.ts +4 -0
  881. package/dist/types/components/fab-button/fab-button.d.ts +5 -3
  882. package/dist/types/components/fab-list/fab-list.d.ts +4 -0
  883. package/dist/types/components/footer/footer-interface.d.ts +1 -0
  884. package/dist/types/components/footer/footer.d.ts +20 -3
  885. package/dist/types/components/gallery/gallery-constants.d.ts +9 -0
  886. package/dist/types/components/gallery/gallery-interface.d.ts +10 -0
  887. package/dist/types/components/gallery/gallery.d.ts +218 -0
  888. package/dist/types/components/gallery/test/utils.d.ts +3 -0
  889. package/dist/types/components/gallery-item/gallery-item.d.ts +33 -0
  890. package/dist/types/components/grid/grid.d.ts +4 -0
  891. package/dist/types/components/header/header-interface.d.ts +1 -0
  892. package/dist/types/components/header/header.d.ts +26 -3
  893. package/dist/types/components/header/header.utils.d.ts +4 -5
  894. package/dist/types/components/img/img.d.ts +2 -1
  895. package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +21 -0
  896. package/dist/types/components/infinite-scroll-content/infinite-scroll-content.d.ts +4 -0
  897. package/dist/types/components/input/input.d.ts +32 -6
  898. package/dist/types/components/input-otp/input-otp.d.ts +37 -0
  899. package/dist/types/components/input-password-toggle/input-password-toggle.d.ts +2 -0
  900. package/dist/types/components/item/item.d.ts +11 -4
  901. package/dist/types/components/item-divider/item-divider.d.ts +2 -1
  902. package/dist/types/components/item-group/item-group.d.ts +4 -0
  903. package/dist/types/components/item-option/item-option.d.ts +18 -1
  904. package/dist/types/components/item-options/item-options.d.ts +4 -0
  905. package/dist/types/components/item-sliding/item-sliding.d.ts +47 -1
  906. package/dist/types/components/item-sliding/test/test.utils.d.ts +13 -0
  907. package/dist/types/components/label/label.d.ts +2 -1
  908. package/dist/types/components/list/list.d.ts +15 -1
  909. package/dist/types/components/list-header/list-header.d.ts +2 -1
  910. package/dist/types/components/loading/loading-interface.d.ts +2 -7
  911. package/dist/types/components/loading/loading.d.ts +3 -2
  912. package/dist/types/components/menu/menu.d.ts +3 -0
  913. package/dist/types/components/menu-button/menu-button.d.ts +3 -1
  914. package/dist/types/components/menu-toggle/menu-toggle.d.ts +3 -0
  915. package/dist/types/components/modal/animations/ionic.enter.d.ts +6 -0
  916. package/dist/types/components/modal/animations/ionic.leave.d.ts +6 -0
  917. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  918. package/dist/types/components/modal/modal-interface.d.ts +4 -7
  919. package/dist/types/components/modal/modal.d.ts +15 -12
  920. package/dist/types/components/nav/nav-interface.d.ts +10 -1
  921. package/dist/types/components/nav/nav.d.ts +27 -3
  922. package/dist/types/components/nav-link/nav-link.d.ts +4 -0
  923. package/dist/types/components/note/note.d.ts +2 -1
  924. package/dist/types/components/picker/picker.d.ts +2 -1
  925. package/dist/types/components/picker-column/picker-column.d.ts +2 -1
  926. package/dist/types/components/picker-column-option/picker-column-option.d.ts +4 -0
  927. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +5 -0
  928. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +5 -0
  929. package/dist/types/components/picker-legacy/picker-interface.d.ts +52 -0
  930. package/dist/types/components/picker-legacy/picker.d.ts +159 -0
  931. package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
  932. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +9 -0
  933. package/dist/types/components/popover/popover-interface.d.ts +3 -6
  934. package/dist/types/components/popover/popover.d.ts +6 -5
  935. package/dist/types/components/progress-bar/progress-bar.d.ts +10 -1
  936. package/dist/types/components/radio/radio.d.ts +2 -1
  937. package/dist/types/components/radio-group/radio-group.d.ts +12 -0
  938. package/dist/types/components/range/range.d.ts +2 -1
  939. package/dist/types/components/refresher/refresher.d.ts +2 -1
  940. package/dist/types/components/refresher-content/refresher-content.d.ts +4 -0
  941. package/dist/types/components/reorder/reorder.d.ts +9 -0
  942. package/dist/types/components/reorder-group/reorder-group.d.ts +4 -0
  943. package/dist/types/components/ripple-effect/ripple-effect.d.ts +4 -0
  944. package/dist/types/components/route/route.d.ts +5 -1
  945. package/dist/types/components/router/router.d.ts +4 -0
  946. package/dist/types/components/router-link/router-link.d.ts +4 -0
  947. package/dist/types/components/router-outlet/router-outlet.d.ts +4 -8
  948. package/dist/types/components/row/row.d.ts +4 -0
  949. package/dist/types/components/searchbar/searchbar.d.ts +52 -10
  950. package/dist/types/components/segment/segment.d.ts +2 -1
  951. package/dist/types/components/segment-button/segment-button.d.ts +2 -1
  952. package/dist/types/components/select/select.d.ts +49 -14
  953. package/dist/types/components/select-modal/select-modal.d.ts +8 -0
  954. package/dist/types/components/select-option/select-option.d.ts +7 -4
  955. package/dist/types/components/select-popover/select-popover.d.ts +3 -0
  956. package/dist/types/components/skeleton-text/skeleton-text.d.ts +4 -0
  957. package/dist/types/components/spinner/spinner.d.ts +15 -0
  958. package/dist/types/components/split-pane/split-pane.d.ts +4 -0
  959. package/dist/types/components/tab/tab.d.ts +4 -0
  960. package/dist/types/components/tab-bar/tab-bar-interface.d.ts +1 -0
  961. package/dist/types/components/tab-bar/tab-bar.d.ts +41 -3
  962. package/dist/types/components/tab-button/tab-button.d.ts +12 -1
  963. package/dist/types/components/tabs/tabs.d.ts +3 -0
  964. package/dist/types/components/text/text.d.ts +2 -1
  965. package/dist/types/components/textarea/textarea.d.ts +53 -4
  966. package/dist/types/components/thumbnail/thumbnail.d.ts +4 -0
  967. package/dist/types/components/title/title.d.ts +4 -0
  968. package/dist/types/components/toast/animations/utils.d.ts +2 -2
  969. package/dist/types/components/toast/toast-interface.d.ts +3 -7
  970. package/dist/types/components/toast/toast.d.ts +19 -2
  971. package/dist/types/components/toggle/toggle.d.ts +15 -1
  972. package/dist/types/components/toolbar/toolbar.d.ts +43 -3
  973. package/dist/types/components.d.ts +2171 -263
  974. package/dist/types/global/ionic-global.d.ts +28 -2
  975. package/dist/types/index.d.ts +1 -1
  976. package/dist/types/interface.d.ts +4 -0
  977. package/dist/types/utils/config.d.ts +114 -2
  978. package/dist/types/utils/css-value-validation.d.ts +21 -0
  979. package/dist/types/utils/focus-trap.d.ts +1 -1
  980. package/dist/types/utils/focus-visible.d.ts +13 -0
  981. package/dist/types/utils/forms/validity.d.ts +7 -0
  982. package/dist/types/utils/helpers.d.ts +22 -0
  983. package/dist/types/utils/overlay-control-label.d.ts +11 -9
  984. package/dist/types/utils/overlays-interface.d.ts +31 -1
  985. package/dist/types/utils/overlays.d.ts +10 -12
  986. package/dist/types/utils/scroll-hide-controller.d.ts +56 -0
  987. package/dist/types/utils/test/playwright/drag-element.d.ts +16 -3
  988. package/dist/types/utils/test/playwright/generator.d.ts +31 -2
  989. package/dist/types/utils/theme.d.ts +9 -0
  990. package/hydrate/index.js +6183 -1369
  991. package/hydrate/index.mjs +6183 -1369
  992. package/package.json +12 -40
  993. package/components/p-8cRBED2y.js +0 -4
  994. package/components/p-B--DzMaF.js +0 -4
  995. package/components/p-B5Ia5kbJ.js +0 -4
  996. package/components/p-B9A9IVnF.js +0 -4
  997. package/components/p-BRF87FDL.js +0 -4
  998. package/components/p-BSQPZ79H.js +0 -4
  999. package/components/p-BTPfOxsU.js +0 -4
  1000. package/components/p-Baq1XyAy.js +0 -4
  1001. package/components/p-BmVRXR1y.js +0 -4
  1002. package/components/p-BnTB62Lu.js +0 -4
  1003. package/components/p-Bz0dSlXZ.js +0 -4
  1004. package/components/p-C1aScSTo.js +0 -4
  1005. package/components/p-CHdYfvVx.js +0 -4
  1006. package/components/p-CHqRYvYm.js +0 -4
  1007. package/components/p-CIGNaXM1.js +0 -4
  1008. package/components/p-CLw68uAe.js +0 -4
  1009. package/components/p-CO7fmmxt.js +0 -4
  1010. package/components/p-CPa2WmW7.js +0 -4
  1011. package/components/p-CXuUa8q_.js +0 -4
  1012. package/components/p-CYdwJYjZ.js +0 -4
  1013. package/components/p-CYhGN6l4.js +0 -4
  1014. package/components/p-C_xFdyXe.js +0 -4
  1015. package/components/p-CbJDPICP.js +0 -4
  1016. package/components/p-Ciz1-FuE.js +0 -4
  1017. package/components/p-CmR5uXej.js +0 -4
  1018. package/components/p-CmZ8uO0W.js +0 -4
  1019. package/components/p-CtQ-1ZRt.js +0 -4
  1020. package/components/p-CtWGkNnJ.js +0 -4
  1021. package/components/p-CwcD5kE9.js +0 -4
  1022. package/components/p-CyFtf1Mm.js +0 -4
  1023. package/components/p-CzuRCorP.js +0 -4
  1024. package/components/p-D-lHU3L1.js +0 -4
  1025. package/components/p-D1-tlI3U.js +0 -4
  1026. package/components/p-D355UF9s.js +0 -4
  1027. package/components/p-D6Ynv7Xh.js +0 -4
  1028. package/components/p-D7bSXQD3.js +0 -4
  1029. package/components/p-DEI720fP.js +0 -4
  1030. package/components/p-DIE4pXMl.js +0 -4
  1031. package/components/p-DJztqcrH.js +0 -4
  1032. package/components/p-DK0D_QD_.js +0 -4
  1033. package/components/p-DNQI6d-L.js +0 -4
  1034. package/components/p-DfjhtfFw.js +0 -4
  1035. package/components/p-Dg1a5T1q.js +0 -4
  1036. package/components/p-DiVJyqlX.js +0 -4
  1037. package/components/p-DnL1c9_X.js +0 -4
  1038. package/components/p-Ds1Brlka.js +0 -4
  1039. package/components/p-Dy5czMtc.js +0 -4
  1040. package/components/p-Sh0ICmPV.js +0 -4
  1041. package/components/p-XX59Wsi5.js +0 -4
  1042. package/components/p-ZjP4CjeZ.js +0 -4
  1043. package/components/p-ijF0iCrA.js +0 -4
  1044. package/dist/cjs/hardware-back-button-iUuF_76h.js +0 -121
  1045. package/dist/cjs/index-DkNv4J_i.js +0 -10
  1046. package/dist/cjs/ionic-global-CbxQmwkf.js +0 -151
  1047. package/dist/cjs/keyboard-controller-GXBiBRKS.js +0 -167
  1048. package/dist/cjs/validity-BpS37YFM.js +0 -19
  1049. package/dist/esm/hardware-back-button-B93Gru0Y.js +0 -115
  1050. package/dist/esm/index-ZjP4CjeZ.js +0 -7
  1051. package/dist/esm/ionic-global-pMW1XhFZ.js +0 -146
  1052. package/dist/esm/keyboard-controller-BaaVITYt.js +0 -165
  1053. package/dist/esm/validity-DJztqcrH.js +0 -17
  1054. package/dist/ionic/p-06cef0c6.entry.js +0 -4
  1055. package/dist/ionic/p-086cf9d8.entry.js +0 -4
  1056. package/dist/ionic/p-0be097d7.entry.js +0 -4
  1057. package/dist/ionic/p-0e7de053.entry.js +0 -4
  1058. package/dist/ionic/p-2ad3a055.entry.js +0 -4
  1059. package/dist/ionic/p-2b3a2a38.entry.js +0 -4
  1060. package/dist/ionic/p-306b2e91.entry.js +0 -4
  1061. package/dist/ionic/p-341032b3.entry.js +0 -4
  1062. package/dist/ionic/p-34c8f2dc.entry.js +0 -4
  1063. package/dist/ionic/p-3558c8d2.entry.js +0 -4
  1064. package/dist/ionic/p-3ce3a59d.entry.js +0 -4
  1065. package/dist/ionic/p-408afa6d.entry.js +0 -4
  1066. package/dist/ionic/p-426130ad.entry.js +0 -4
  1067. package/dist/ionic/p-4d03a05d.entry.js +0 -4
  1068. package/dist/ionic/p-4e92a11f.entry.js +0 -4
  1069. package/dist/ionic/p-5599e1e1.entry.js +0 -4
  1070. package/dist/ionic/p-567b25e9.entry.js +0 -4
  1071. package/dist/ionic/p-570a212e.entry.js +0 -4
  1072. package/dist/ionic/p-656e8181.entry.js +0 -4
  1073. package/dist/ionic/p-694aa5fc.entry.js +0 -4
  1074. package/dist/ionic/p-73d06afe.entry.js +0 -4
  1075. package/dist/ionic/p-79b2abe6.entry.js +0 -4
  1076. package/dist/ionic/p-7cb5cf53.entry.js +0 -4
  1077. package/dist/ionic/p-80b44b3c.entry.js +0 -4
  1078. package/dist/ionic/p-89c9c057.entry.js +0 -4
  1079. package/dist/ionic/p-8c4bdd70.entry.js +0 -4
  1080. package/dist/ionic/p-8c898f59.entry.js +0 -4
  1081. package/dist/ionic/p-8cde6208.entry.js +0 -4
  1082. package/dist/ionic/p-8d6cca7b.entry.js +0 -4
  1083. package/dist/ionic/p-9366f06d.entry.js +0 -4
  1084. package/dist/ionic/p-9a29ba8c.entry.js +0 -4
  1085. package/dist/ionic/p-9eeaBrnk.js +0 -4
  1086. package/dist/ionic/p-AlrZKoWR.js +0 -4
  1087. package/dist/ionic/p-BGqMS-oh.js +0 -4
  1088. package/dist/ionic/p-BSQPZ79H.js +0 -4
  1089. package/dist/ionic/p-BUFIpxKM.js +0 -4
  1090. package/dist/ionic/p-BmVRXR1y.js +0 -4
  1091. package/dist/ionic/p-CFlfIb2g.js +0 -4
  1092. package/dist/ionic/p-CGqbOURp.js +0 -4
  1093. package/dist/ionic/p-CIGNaXM1.js +0 -4
  1094. package/dist/ionic/p-CtWGkNnJ.js +0 -4
  1095. package/dist/ionic/p-Cx3IXROA.js +0 -4
  1096. package/dist/ionic/p-D4uTWt4-.js +0 -4
  1097. package/dist/ionic/p-D9iu80E_.js +0 -4
  1098. package/dist/ionic/p-DC3RagnA.js +0 -4
  1099. package/dist/ionic/p-DCOvXkOm.js +0 -4
  1100. package/dist/ionic/p-DIuEbVLu.js +0 -4
  1101. package/dist/ionic/p-DJztqcrH.js +0 -4
  1102. package/dist/ionic/p-DSG2s2Eb.js +0 -4
  1103. package/dist/ionic/p-DeSfrUWZ.js +0 -4
  1104. package/dist/ionic/p-Dfbt-q2k.js +0 -4
  1105. package/dist/ionic/p-DiVJyqlX.js +0 -4
  1106. package/dist/ionic/p-DoJvtrbw.js +0 -4
  1107. package/dist/ionic/p-DzTgLDb_.js +0 -4
  1108. package/dist/ionic/p-ZjP4CjeZ.js +0 -4
  1109. package/dist/ionic/p-a1448991.entry.js +0 -4
  1110. package/dist/ionic/p-a256aeb6.entry.js +0 -4
  1111. package/dist/ionic/p-aeff523a.entry.js +0 -4
  1112. package/dist/ionic/p-b2f15bd0.entry.js +0 -4
  1113. package/dist/ionic/p-b7737b44.entry.js +0 -4
  1114. package/dist/ionic/p-ba99d16b.entry.js +0 -4
  1115. package/dist/ionic/p-cdfe2531.entry.js +0 -4
  1116. package/dist/ionic/p-cf1fb54f.entry.js +0 -4
  1117. package/dist/ionic/p-d183a4ba.entry.js +0 -4
  1118. package/dist/ionic/p-d3089de6.entry.js +0 -4
  1119. package/dist/ionic/p-d57560ff.entry.js +0 -4
  1120. package/dist/ionic/p-d6d91a44.entry.js +0 -4
  1121. package/dist/ionic/p-dd992df7.entry.js +0 -4
  1122. package/dist/ionic/p-e2756327.entry.js +0 -4
  1123. package/dist/ionic/p-e3842b54.entry.js +0 -4
  1124. package/dist/ionic/p-e56b1836.entry.js +0 -4
  1125. package/dist/ionic/p-f09f9642.entry.js +0 -4
  1126. package/dist/ionic/p-f5b104d9.entry.js +0 -4
  1127. package/dist/ionic/p-f5b1f739.entry.js +0 -4
  1128. package/dist/ionic/p-f88310b9.entry.js +0 -4
  1129. package/dist/ionic/p-fd4e56cd.entry.js +0 -4
  1130. package/dist/ionic/p-mjKAFv89.js +0 -4
  1131. package/dist/ionic/p-tcQvqkiX.js +0 -5
  1132. package/dist/ionic/p-viFHDgRs.js +0 -4
  1133. package/dist/ionic/p-xWb6fgfq.js +0 -4
  1134. /package/dist/collection/components/{input-password-toggle/input-password-toggle.css → refresher-content/refresher-content.css} +0 -0
@@ -1,10 +1,11 @@
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";
4
5
  import { Build, Host, h, forceUpdate } from "@stencil/core";
5
6
  import { ENABLE_HTML_CONTENT_DEFAULT } from "../../utils/config";
6
7
  import { compareOptions, createNotchController, isOptionSelected, checkInvalidState } from "../../utils/forms/index";
7
- import { focusVisibleElement, renderHiddenInput, inheritAttributes } from "../../utils/helpers";
8
+ import { suppressFocusVisible, renderHiddenInput, inheritAttributes } from "../../utils/helpers";
8
9
  import { printIonWarning } from "../../utils/logging/index";
9
10
  import { actionSheetController, alertController, popoverController, modalController } from "../../utils/overlays";
10
11
  import { isRTL } from "../../utils/rtl/index";
@@ -13,10 +14,11 @@ import { createColorClasses, hostContext } from "../../utils/theme";
13
14
  import { watchForOptions } from "../../utils/watch-options";
14
15
  import { caretDownSharp, chevronExpand } from "ionicons/icons";
15
16
  import { config } from "../../global/config";
16
- import { getIonMode } from "../../global/ionic-global";
17
+ import { getIonTheme } from "../../global/ionic-global";
17
18
  // TODO(FW-2832): types
18
19
  /**
19
- * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
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.
20
22
  *
21
23
  * @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.
22
24
  * @slot start - Content to display at the leading edge of the select.
@@ -59,6 +61,14 @@ export class Select {
59
61
  * The text to display on the cancel button.
60
62
  */
61
63
  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;
62
72
  /**
63
73
  * If `true`, the user cannot interact with the select.
64
74
  */
@@ -166,40 +176,9 @@ export class Select {
166
176
  this.emitStyle();
167
177
  }
168
178
  setValue(value) {
169
- if (this.isValueEqual(this.value, value)) {
170
- return;
171
- }
172
179
  this.value = value;
173
180
  this.ionChange.emit({ value });
174
181
  }
175
- isValueEqual(currentValue, newValue) {
176
- if (this.multiple) {
177
- const currentArr = Array.isArray(currentValue) ? currentValue : [];
178
- const newArr = Array.isArray(newValue) ? newValue : [];
179
- if (currentArr.length !== newArr.length) {
180
- return false;
181
- }
182
- // Multiset compare: each new value must match a distinct current value.
183
- // A plain `every(isOptionSelected)` would accept ['a','a'] as equal to
184
- // ['a','b'] when both 'a' and 'b' map to options whose values overlap.
185
- const remaining = currentArr.slice();
186
- return newArr.every((val) => {
187
- const idx = remaining.findIndex((c) => compareOptions(c, val, this.compareWith));
188
- if (idx === -1) {
189
- return false;
190
- }
191
- remaining.splice(idx, 1);
192
- return true;
193
- });
194
- }
195
- if (currentValue == null && newValue == null) {
196
- return true;
197
- }
198
- if (currentValue == null || newValue == null) {
199
- return false;
200
- }
201
- return compareOptions(currentValue, newValue, this.compareWith);
202
- }
203
182
  async connectedCallback() {
204
183
  const { el } = this;
205
184
  this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
@@ -299,44 +278,65 @@ export class Select {
299
278
  // Add logic to scroll selected item into view before presenting
300
279
  const scrollSelectedIntoView = () => {
301
280
  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;
302
286
  if (indexOfSelected > -1) {
303
287
  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
+ */
304
296
  if (selectedItem) {
305
- /**
306
- * Browsers such as Firefox do not
307
- * correctly delegate focus when manually
308
- * focusing an element with delegatesFocus.
309
- * We work around this by manually focusing
310
- * the interactive element.
311
- * ion-radio and ion-checkbox are the only
312
- * elements that ion-select-popover uses, so
313
- * we only need to worry about those two components
314
- * when focusing.
315
- */
316
297
  const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
317
298
  if (interactiveEl) {
318
299
  selectedItem.scrollIntoView({ block: 'nearest' });
319
- // Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
320
- // and removing `ion-focused` style
321
- interactiveEl.setFocus();
322
300
  }
323
- focusVisibleElement(selectedItem);
301
+ optionToFocus = interactiveEl !== null && interactiveEl !== void 0 ? interactiveEl : selectedItem;
324
302
  }
325
303
  }
326
304
  else {
327
305
  /**
328
306
  * If no value is set then focus the first enabled option.
329
307
  */
330
- const firstEnabledOption = overlay.querySelector('ion-radio:not(.radio-disabled), ion-checkbox:not(.checkbox-disabled)');
331
- if (firstEnabledOption) {
332
- /**
333
- * Focus the option for the same reason as we do above.
334
- *
335
- * Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
336
- * and removing `ion-focused` style
337
- */
338
- firstEnabledOption.setFocus();
339
- focusVisibleElement(firstEnabledOption.closest('ion-item'));
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();
340
340
  }
341
341
  }
342
342
  };
@@ -436,6 +436,7 @@ export class Select {
436
436
  const isSelected = isOptionSelected(selectValue, value, this.compareWith);
437
437
  const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
438
438
  return {
439
+ role: isSelected ? 'selected' : '',
439
440
  text: content !== null && content !== void 0 ? content : '',
440
441
  cssClass: optClass,
441
442
  disabled: option.disabled,
@@ -519,8 +520,8 @@ export class Select {
519
520
  async openPopover(ev) {
520
521
  const { fill, labelPlacement } = this;
521
522
  const interfaceOptions = this.interfaceOptions;
522
- const mode = getIonMode(this);
523
- const showBackdrop = mode === 'md' ? false : true;
523
+ const theme = getIonTheme(this);
524
+ const showBackdrop = theme === 'md' ? false : true;
524
525
  const multiple = this.multiple;
525
526
  const value = this.value;
526
527
  let event = ev;
@@ -531,7 +532,7 @@ export class Select {
531
532
  * when using a fill in MD mode or if the
532
533
  * label is floating/stacked.
533
534
  */
534
- if (hasFloatingOrStackedLabel || (mode === 'md' && fill !== undefined)) {
535
+ if (hasFloatingOrStackedLabel || (theme === 'md' && fill !== undefined)) {
535
536
  size = 'cover';
536
537
  /**
537
538
  * Otherwise the popover
@@ -546,7 +547,7 @@ export class Select {
546
547
  }
547
548
  const options = this.createOverlaySelectOptions(this.childOpts, value);
548
549
  const hasRichContent = options.some((opt) => opt.startContent || opt.endContent || opt.description);
549
- const popoverOpts = Object.assign(Object.assign({ mode,
550
+ const popoverOpts = Object.assign(Object.assign({ theme,
550
551
  event, alignment: 'center', size,
551
552
  showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: [
552
553
  'select-popover',
@@ -575,9 +576,9 @@ export class Select {
575
576
  return popoverController.create(popoverOpts);
576
577
  }
577
578
  async openActionSheet() {
578
- const mode = getIonMode(this);
579
+ const theme = getIonTheme(this);
579
580
  const interfaceOptions = this.interfaceOptions;
580
- const actionSheetOpts = Object.assign(Object.assign({ mode }, interfaceOptions), { buttons: this.createActionSheetButtons(this.childOpts, this.value), cssClass: ['select-action-sheet', interfaceOptions.cssClass] });
581
+ const actionSheetOpts = Object.assign(Object.assign({ theme }, interfaceOptions), { buttons: this.createActionSheetButtons(this.childOpts, this.value), cssClass: ['select-action-sheet', interfaceOptions.cssClass] });
581
582
  /**
582
583
  * Workaround for Stencil to autodefine
583
584
  * ion-action-sheet when
@@ -594,8 +595,8 @@ export class Select {
594
595
  async openAlert() {
595
596
  const interfaceOptions = this.interfaceOptions;
596
597
  const inputType = this.multiple ? 'checkbox' : 'radio';
597
- const mode = getIonMode(this);
598
- const alertOpts = Object.assign(Object.assign({ mode }, interfaceOptions), { header: interfaceOptions.header ? interfaceOptions.header : this.labelText, inputs: this.createAlertInputs(this.childOpts, inputType, this.value), buttons: [
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: [
599
600
  {
600
601
  text: this.cancelText,
601
602
  role: 'cancel',
@@ -629,10 +630,11 @@ export class Select {
629
630
  }
630
631
  openModal() {
631
632
  const { multiple, value, interfaceOptions } = this;
632
- const mode = getIonMode(this);
633
- const modalOpts = Object.assign(Object.assign({}, interfaceOptions), { mode, cssClass: ['select-modal', interfaceOptions.cssClass], component: 'ion-select-modal', componentProps: {
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: {
634
635
  header: interfaceOptions.header,
635
636
  cancelText: this.cancelText,
637
+ cancelIcon: this.cancelIcon,
636
638
  multiple,
637
639
  value,
638
640
  options: this.createOverlaySelectOptions(this.childOpts, value),
@@ -710,6 +712,18 @@ export class Select {
710
712
  };
711
713
  this.ionStyle.emit(style);
712
714
  }
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
+ }
713
727
  renderLabel() {
714
728
  const { label } = this;
715
729
  return (h("div", { class: {
@@ -742,8 +756,8 @@ export class Select {
742
756
  * when fill="outline".
743
757
  */
744
758
  renderLabelContainer() {
745
- const mode = getIonMode(this);
746
- const hasOutlineFill = mode === 'md' && this.fill === 'outline';
759
+ const theme = getIonTheme(this);
760
+ const hasOutlineFill = theme === 'md' && this.fill === 'outline';
747
761
  if (hasOutlineFill) {
748
762
  /**
749
763
  * The outline fill has a special outline
@@ -837,15 +851,10 @@ export class Select {
837
851
  * next to the select text.
838
852
  */
839
853
  renderSelectIcon() {
840
- const mode = getIonMode(this);
841
- const { isExpanded, toggleIcon, expandedIcon } = this;
842
- let icon;
843
- if (isExpanded && expandedIcon !== undefined) {
844
- icon = expandedIcon;
845
- }
846
- else {
847
- const defaultIcon = mode === 'ios' ? chevronExpand : caretDownSharp;
848
- icon = toggleIcon !== null && toggleIcon !== void 0 ? toggleIcon : defaultIcon;
854
+ const { isExpanded, selectExpandedIcon, selectCollapsedIcon } = this;
855
+ let icon = selectCollapsedIcon;
856
+ if (isExpanded) {
857
+ icon = selectExpandedIcon;
849
858
  }
850
859
  return h("ion-icon", { class: "select-icon", part: "icon", "aria-hidden": "true", icon: icon });
851
860
  }
@@ -881,6 +890,63 @@ export class Select {
881
890
  const { disabled, inputId, isExpanded, required } = this;
882
891
  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) }));
883
892
  }
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
+ }
884
950
  getHintTextId() {
885
951
  const { helperText, errorText, helperTextId, errorTextId, isInvalid } = this;
886
952
  if (isInvalid && errorText) {
@@ -918,13 +984,17 @@ export class Select {
918
984
  return (h("div", { class: "select-bottom", part: "bottom" }, this.renderHintText()));
919
985
  }
920
986
  render() {
921
- const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value, hasFocus, } = this;
922
- const mode = getIonMode(this);
987
+ const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, name, value, hasFocus, } = this;
988
+ const theme = getIonTheme(this);
989
+ const shape = this.getShape();
923
990
  const hasFloatingOrStackedLabel = labelPlacement === 'floating' || labelPlacement === 'stacked';
991
+ const shouldRenderOuterIcon = theme !== 'ionic' && hasFloatingOrStackedLabel;
992
+ const shouldRenderInnerIcon = theme === 'ionic' || !hasFloatingOrStackedLabel;
924
993
  const justifyEnabled = !hasFloatingOrStackedLabel && justify !== undefined;
925
994
  const rtl = isRTL(el) ? 'rtl' : 'ltr';
926
995
  const inItem = hostContext('ion-item', this.el);
927
- const shouldRenderHighlight = mode === 'md' && fill !== 'outline' && !inItem;
996
+ const size = this.getSize();
997
+ const shouldRenderHighlight = theme === 'md' && fill !== 'outline' && !inItem;
928
998
  const hasValue = this.hasValue();
929
999
  const hasStartEndSlots = el.querySelector('[slot="start"], [slot="end"]') !== null;
930
1000
  renderHiddenInput(true, el, name, parseValue(value), disabled);
@@ -946,8 +1016,8 @@ export class Select {
946
1016
  * TODO(FW-5592): Remove hasStartEndSlots condition
947
1017
  */
948
1018
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
949
- return (h(Host, { key: 'a3036d51e0db13332641e9523264ddd1ab031912', onClick: this.onClick, class: createColorClasses(this.color, {
950
- [mode]: true,
1019
+ return (h(Host, { key: 'cabce5ba3159dc09313bd687b67a8dd0e9f257d2', onClick: this.onClick, class: createColorClasses(this.color, {
1020
+ [theme]: true,
951
1021
  'in-item': inItem,
952
1022
  'in-item-color': hostContext('ion-item.ion-color', el),
953
1023
  'select-disabled': disabled,
@@ -964,20 +1034,33 @@ export class Select {
964
1034
  [`select-justify-${justify}`]: justifyEnabled,
965
1035
  [`select-shape-${shape}`]: shape !== undefined,
966
1036
  [`select-label-placement-${labelPlacement}`]: true,
967
- }) }, h("label", { key: '58b77f683499b958840721bdb59a9bf822c7f218', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: '9e68d96524c1b87d6cb1bdce79fa86f2022be04a', class: "select-wrapper-inner", part: "inner" }, h("slot", { key: 'c9bcc5d684d2cefadff6ad3ec91498d5b405afc5', name: "start" }), h("div", { key: '5405bc15ffb3437ca00c64fbbc83d8eb2631c4ea', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '95e2f041c8517afb1cc6bddb2c3c38cf41f2376e', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: 'f3d2410f678ea22a107121aea1bbda197a618ed6', class: "select-highlight" })), this.renderBottomContent()));
1037
+ [`select-size-${size}`]: size !== undefined,
1038
+ }) }, h("label", { key: '427f7b6d6d0ea092e09908a29a572350177c1534', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: '68a008bef050d74f84edf6eedf2e34351bb2cd71', class: "select-wrapper-inner", part: "inner" },
1039
+ /**
1040
+ * For the ionic theme, we render the outline container here
1041
+ * instead of higher up, so it can be positioned relative to
1042
+ * the native wrapper instead of the <label> element or the
1043
+ * entire component. This allows the label text to be positioned
1044
+ * above the outline, while staying within the bounds of the
1045
+ * <label> element, ensuring that clicking the label text
1046
+ * focuses the select.
1047
+ */
1048
+ theme === 'ionic' && fill === 'outline' && h("div", { key: 'b980208894d2ab9da9f79747dc64df09df2c860b', class: "select-outline" }), h("slot", { key: '3c70c38cc8c4b3bd85ef69bf736dd194342a26e1', name: "start" }), h("div", { key: 'b6e6378c150eaf64e5767907636ee4e117296a58', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: 'c57b4e3386d23f72c691fd1859593e0c9adfb47b', name: "end" }), shouldRenderInnerIcon && this.renderSelectIcon()), shouldRenderOuterIcon && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: '75ad1882ef2372b12ca4013d72d16bd7576b7437', class: "select-highlight" })), this.renderBottomContent()));
968
1049
  }
969
1050
  static get is() { return "ion-select"; }
970
1051
  static get encapsulation() { return "shadow"; }
971
1052
  static get originalStyleUrls() {
972
1053
  return {
973
1054
  "ios": ["select.ios.scss"],
974
- "md": ["select.md.scss"]
1055
+ "md": ["select.md.scss"],
1056
+ "ionic": ["select.ionic.scss"]
975
1057
  };
976
1058
  }
977
1059
  static get styleUrls() {
978
1060
  return {
979
1061
  "ios": ["select.ios.css"],
980
- "md": ["select.md.css"]
1062
+ "md": ["select.md.css"],
1063
+ "ionic": ["select.ionic.css"]
981
1064
  };
982
1065
  }
983
1066
  static get properties() {
@@ -1002,6 +1085,26 @@ export class Select {
1002
1085
  "attribute": "cancel-text",
1003
1086
  "defaultValue": "'Cancel'"
1004
1087
  },
1088
+ "cancelIcon": {
1089
+ "type": "boolean",
1090
+ "mutable": false,
1091
+ "complexType": {
1092
+ "original": "boolean",
1093
+ "resolved": "boolean",
1094
+ "references": {}
1095
+ },
1096
+ "required": false,
1097
+ "optional": false,
1098
+ "docs": {
1099
+ "tags": [],
1100
+ "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."
1101
+ },
1102
+ "getter": false,
1103
+ "setter": false,
1104
+ "reflect": false,
1105
+ "attribute": "cancel-icon",
1106
+ "defaultValue": "false"
1107
+ },
1005
1108
  "color": {
1006
1109
  "type": "string",
1007
1110
  "mutable": false,
@@ -1086,7 +1189,7 @@ export class Select {
1086
1189
  "optional": true,
1087
1190
  "docs": {
1088
1191
  "tags": [],
1089
- "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."
1192
+ "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."
1090
1193
  },
1091
1194
  "getter": false,
1092
1195
  "setter": false,
@@ -1346,7 +1449,7 @@ export class Select {
1346
1449
  "optional": true,
1347
1450
  "docs": {
1348
1451
  "tags": [],
1349
- "text": "The toggle icon to use. Defaults to `chevronExpand` for `ios` mode,\nor `caretDownSharp` for `md` mode."
1452
+ "text": "The toggle icon to use. Defaults to `\"chevronExpand\"` for the `\"ios\"` theme,\nor `\"caretDownSharp\"` for the `\"md\"` and `\"ionic\"` themes."
1350
1453
  },
1351
1454
  "getter": false,
1352
1455
  "setter": false,
@@ -1365,70 +1468,89 @@ export class Select {
1365
1468
  "optional": true,
1366
1469
  "docs": {
1367
1470
  "tags": [],
1368
- "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."
1471
+ "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."
1369
1472
  },
1370
1473
  "getter": false,
1371
1474
  "setter": false,
1372
1475
  "reflect": false,
1373
1476
  "attribute": "expanded-icon"
1374
1477
  },
1478
+ "required": {
1479
+ "type": "boolean",
1480
+ "mutable": false,
1481
+ "complexType": {
1482
+ "original": "boolean",
1483
+ "resolved": "boolean",
1484
+ "references": {}
1485
+ },
1486
+ "required": false,
1487
+ "optional": false,
1488
+ "docs": {
1489
+ "tags": [],
1490
+ "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."
1491
+ },
1492
+ "getter": false,
1493
+ "setter": false,
1494
+ "reflect": false,
1495
+ "attribute": "required",
1496
+ "defaultValue": "false"
1497
+ },
1375
1498
  "shape": {
1376
1499
  "type": "string",
1377
1500
  "mutable": false,
1378
1501
  "complexType": {
1379
- "original": "'round'",
1380
- "resolved": "\"round\" | undefined",
1502
+ "original": "'soft' | 'round' | 'rectangular'",
1503
+ "resolved": "\"rectangular\" | \"round\" | \"soft\" | undefined",
1381
1504
  "references": {}
1382
1505
  },
1383
1506
  "required": false,
1384
1507
  "optional": true,
1385
1508
  "docs": {
1386
1509
  "tags": [],
1387
- "text": "The shape of the select. If \"round\" it will have an increased border radius."
1510
+ "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."
1388
1511
  },
1389
1512
  "getter": false,
1390
1513
  "setter": false,
1391
1514
  "reflect": false,
1392
1515
  "attribute": "shape"
1393
1516
  },
1394
- "value": {
1395
- "type": "any",
1396
- "mutable": true,
1517
+ "size": {
1518
+ "type": "string",
1519
+ "mutable": false,
1397
1520
  "complexType": {
1398
- "original": "any | null",
1399
- "resolved": "any",
1521
+ "original": "'small' | 'medium' | 'large'",
1522
+ "resolved": "\"large\" | \"medium\" | \"small\" | undefined",
1400
1523
  "references": {}
1401
1524
  },
1402
1525
  "required": false,
1403
1526
  "optional": true,
1404
1527
  "docs": {
1405
1528
  "tags": [],
1406
- "text": "The value of the select."
1529
+ "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."
1407
1530
  },
1408
1531
  "getter": false,
1409
1532
  "setter": false,
1410
1533
  "reflect": false,
1411
- "attribute": "value"
1534
+ "attribute": "size"
1412
1535
  },
1413
- "required": {
1414
- "type": "boolean",
1415
- "mutable": false,
1536
+ "value": {
1537
+ "type": "any",
1538
+ "mutable": true,
1416
1539
  "complexType": {
1417
- "original": "boolean",
1418
- "resolved": "boolean",
1540
+ "original": "any | null",
1541
+ "resolved": "any",
1419
1542
  "references": {}
1420
1543
  },
1421
1544
  "required": false,
1422
- "optional": false,
1545
+ "optional": true,
1423
1546
  "docs": {
1424
1547
  "tags": [],
1425
- "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."
1548
+ "text": "The value of the select."
1426
1549
  },
1427
1550
  "getter": false,
1428
1551
  "setter": false,
1429
1552
  "reflect": false,
1430
- "attribute": "required",
1431
- "defaultValue": "false"
1553
+ "attribute": "value"
1432
1554
  }
1433
1555
  };
1434
1556
  }