@ionic/core 9.0.3-dev.11788456135.1ab1d6cd → 9.0.3-dev.11790116791.11c9cd1e

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 (591) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-accordion-group.js +1 -1
  3. package/components/ion-accordion.js +1 -1
  4. package/components/ion-action-sheet.js +1 -1
  5. package/components/ion-alert.js +1 -1
  6. package/components/ion-app.js +1 -1
  7. package/components/ion-avatar.js +1 -1
  8. package/components/ion-back-button.js +1 -1
  9. package/components/ion-backdrop.js +1 -1
  10. package/components/ion-badge.js +1 -1
  11. package/components/ion-breadcrumb.js +1 -1
  12. package/components/ion-breadcrumbs.js +1 -1
  13. package/components/ion-button.js +1 -1
  14. package/components/ion-buttons.js +1 -1
  15. package/components/ion-card-content.js +1 -1
  16. package/components/ion-card-header.js +1 -1
  17. package/components/ion-card-subtitle.js +1 -1
  18. package/components/ion-card-title.js +1 -1
  19. package/components/ion-card.js +1 -1
  20. package/components/ion-checkbox.js +1 -1
  21. package/components/ion-chip.js +1 -1
  22. package/components/ion-col.js +1 -1
  23. package/components/ion-content.js +1 -1
  24. package/components/ion-datetime-button.js +1 -1
  25. package/components/ion-datetime.js +1 -1
  26. package/components/ion-divider.js +1 -1
  27. package/components/ion-fab-button.js +1 -1
  28. package/components/ion-fab-list.js +1 -1
  29. package/components/ion-fab.js +1 -1
  30. package/components/ion-footer.js +1 -1
  31. package/components/ion-gallery-item.js +1 -1
  32. package/components/ion-gallery.js +1 -1
  33. package/components/ion-grid.js +1 -1
  34. package/components/ion-header.js +1 -1
  35. package/components/ion-img.js +1 -1
  36. package/components/ion-infinite-scroll-content.js +1 -1
  37. package/components/ion-infinite-scroll.js +1 -1
  38. package/components/ion-input-otp.js +1 -1
  39. package/components/ion-input-password-toggle.js +1 -1
  40. package/components/ion-input.js +1 -1
  41. package/components/ion-item-divider.js +1 -1
  42. package/components/ion-item-group.js +1 -1
  43. package/components/ion-item-option.js +1 -1
  44. package/components/ion-item-options.js +1 -1
  45. package/components/ion-item-sliding.js +1 -1
  46. package/components/ion-item.js +1 -1
  47. package/components/ion-label.js +1 -1
  48. package/components/ion-list-header.js +1 -1
  49. package/components/ion-list.js +1 -1
  50. package/components/ion-loading.js +1 -1
  51. package/components/ion-menu-button.js +1 -1
  52. package/components/ion-menu-toggle.js +1 -1
  53. package/components/ion-menu.js +1 -1
  54. package/components/ion-modal.js +1 -1
  55. package/components/ion-nav.js +1 -1
  56. package/components/ion-note.js +1 -1
  57. package/components/ion-picker-column-option.js +1 -1
  58. package/components/ion-picker-column.js +1 -1
  59. package/components/ion-picker.js +1 -1
  60. package/components/ion-popover.js +1 -1
  61. package/components/ion-progress-bar.js +1 -1
  62. package/components/ion-radio-group.js +1 -1
  63. package/components/ion-radio.js +1 -1
  64. package/components/ion-range.js +1 -1
  65. package/components/ion-refresher-content.js +1 -1
  66. package/components/ion-refresher.js +1 -1
  67. package/components/ion-reorder-group.js +1 -1
  68. package/components/ion-reorder.js +1 -1
  69. package/components/ion-ripple-effect.js +1 -1
  70. package/components/ion-router-link.js +1 -1
  71. package/components/ion-router-outlet.js +1 -1
  72. package/components/ion-router.js +1 -1
  73. package/components/ion-row.js +1 -1
  74. package/components/ion-searchbar.js +1 -1
  75. package/components/ion-segment-button.js +1 -1
  76. package/components/ion-segment.js +1 -1
  77. package/components/ion-select-modal.js +1 -1
  78. package/components/ion-select-option.js +1 -1
  79. package/components/ion-select-popover.js +1 -1
  80. package/components/ion-select.js +1 -1
  81. package/components/ion-skeleton-text.js +1 -1
  82. package/components/ion-spinner.js +1 -1
  83. package/components/ion-split-pane.js +1 -1
  84. package/components/ion-tab-bar.js +1 -1
  85. package/components/ion-tab-button.js +1 -1
  86. package/components/ion-tab.js +1 -1
  87. package/components/ion-text.js +1 -1
  88. package/components/ion-textarea.js +1 -1
  89. package/components/ion-thumbnail.js +1 -1
  90. package/components/ion-title.js +1 -1
  91. package/components/ion-toast.js +1 -1
  92. package/components/ion-toggle.js +1 -1
  93. package/components/ion-toolbar.js +1 -1
  94. package/components/p-0Zqw1uai.js +4 -0
  95. package/{dist/ionic/p-BqQ15K9a.js → components/p-0rXxxCTt.js} +1 -1
  96. package/components/{p-CTTmpA7l.js → p-3cjGQppH.js} +1 -1
  97. package/components/{p-W8Yq_OMR.js → p-B5AgguuG.js} +1 -1
  98. package/components/{p-BZmR0M4X.js → p-BNEGSmbp.js} +1 -1
  99. package/components/p-BSIw8XlU.js +4 -0
  100. package/components/{p-ZxET9sbA.js → p-BW5EN2Xi.js} +1 -1
  101. package/components/p-BYk20Mf5.js +4 -0
  102. package/components/p-BYnI-EJn.js +4 -0
  103. package/components/p-B_aT3oAQ.js +4 -0
  104. package/components/{p-CPXKIYkL.js → p-BkZBiLB3.js} +1 -1
  105. package/components/p-BouoWyEU.js +4 -0
  106. package/components/p-BqvZYIdI.js +4 -0
  107. package/components/p-BrRaGlll.js +4 -0
  108. package/components/{p-BBz0jPCg.js → p-C2CD_fhN.js} +1 -1
  109. package/components/{p-CsQsFkwO.js → p-C4xXkVID.js} +1 -1
  110. package/components/{p-VLn2Ytmp.js → p-CEKVY_H-.js} +1 -1
  111. package/components/{p-DkQNAyg8.js → p-CGj2vPt5.js} +1 -1
  112. package/components/{p-DgIAZUGe.js → p-CJp2AnUY.js} +1 -1
  113. package/components/p-CO6vPcgh.js +4 -0
  114. package/components/{p-DhBOoebx.js → p-Ce2nAsLZ.js} +1 -1
  115. package/components/{p-JAFy4ZHv.js → p-Cf8Sc9qN.js} +1 -1
  116. package/components/p-Cfk7czUn.js +4 -0
  117. package/components/{p-DNrr6r3I.js → p-CiRvXVG4.js} +1 -1
  118. package/components/p-Cl4FcpPX.js +4 -0
  119. package/components/{p-CtLeQL1G.js → p-CmZn5IDl.js} +1 -1
  120. package/components/p-D8HKWBJm.js +4 -0
  121. package/components/{p-EayFnjkU.js → p-D9UifuBV.js} +1 -1
  122. package/components/p-DBFO9oVW.js +4 -0
  123. package/components/{p-BGP1kR6j.js → p-DCpIv6ib.js} +1 -1
  124. package/components/p-DKWIsI1o.js +4 -0
  125. package/components/p-DQKxHcJi.js +4 -0
  126. package/components/p-DT2MRyId.js +4 -0
  127. package/components/{p-DWBpR7SJ.js → p-DdEyFcAR.js} +1 -1
  128. package/components/{p-DOdd_Inr.js → p-DrnBmDva.js} +1 -1
  129. package/components/{p-DGfjyB0v.js → p-Dsp7VCux.js} +1 -1
  130. package/components/p-DwTxdFPM.js +4 -0
  131. package/components/p-DxjhU4Lj.js +4 -0
  132. package/components/p-HWerNWEa.js +4 -0
  133. package/components/{p-D5lFNdff.js → p-M-IrAJS3.js} +1 -1
  134. package/components/p-Xl2x2-Ol.js +4 -0
  135. package/components/p-YP5ydNow.js +4 -0
  136. package/components/p-_FtneEj3.js +4 -0
  137. package/components/{p-C9cwz4xv.js → p-eDabxF6I.js} +1 -1
  138. package/components/p-fKHu5GWX.js +4 -0
  139. package/components/p-gGbm4ACs.js +4 -0
  140. package/components/p-hJBybumI.js +4 -0
  141. package/components/{p-Be00fpKV.js → p-jG41Us4a.js} +1 -1
  142. package/components/{p-CvRAtS4n.js → p-ndDJHQew.js} +1 -1
  143. package/components/p-oaWlbHN_.js +4 -0
  144. package/{dist/ionic/p-DpE9LgN6.js → components/p-oe85PI7E.js} +1 -1
  145. package/components/p-tglOeKd7.js +4 -0
  146. package/css/ionic/bundle.ionic.css +1 -1
  147. package/css/ionic/bundle.ionic.css.map +1 -1
  148. package/css/ionic/core.ionic.css +1 -1
  149. package/css/ionic/core.ionic.css.map +1 -1
  150. package/css/ionic/global.bundle.ionic.css +1 -1
  151. package/css/ionic/global.bundle.ionic.css.map +1 -1
  152. package/css/ionic/ionic-swiper.ionic.css +1 -1
  153. package/css/ionic/ionic-swiper.ionic.css.map +1 -1
  154. package/css/ionic/link.ionic.css +1 -1
  155. package/css/ionic/link.ionic.css.map +1 -1
  156. package/css/ionic/typography.ionic.css +1 -1
  157. package/css/ionic/typography.ionic.css.map +1 -1
  158. package/dist/cjs/{animation-DVrkairK.js → animation-Dfev6yFW.js} +1 -1
  159. package/dist/cjs/{app-globals-CTxe9MxF.js → app-globals-BwOspzE5.js} +1 -1
  160. package/dist/cjs/{button-active-B8t6YMNb.js → button-active-DfzJC914.js} +1 -1
  161. package/dist/cjs/{capacitor-w_r4U-_S.js → capacitor-B7dK21VK.js} +1 -1
  162. package/dist/cjs/{clear-button-press-controller-BKSn-dVq.js → clear-button-press-controller-B49x92PF.js} +1 -1
  163. package/dist/cjs/{focus-visible-BIj-I3-C.js → focus-visible-DGPRKkcx.js} +52 -2
  164. package/dist/cjs/{framework-delegate-Dmce7iqZ.js → framework-delegate-BKYAwcZK.js} +1 -1
  165. package/dist/cjs/{haptic-DZEv3V5s.js → haptic-CMs5ejXB.js} +1 -1
  166. package/dist/cjs/{helpers-DFJMw-qZ.js → helpers-D5NVnu5x.js} +16 -1
  167. package/dist/cjs/{index-DN51-BQl.js → index-6hDA5UlZ.js} +3 -3
  168. package/dist/cjs/{index-BoQA7njo.js → index-Byoi861q.js} +3 -3
  169. package/dist/cjs/{index-DWP810QI.js → index-CutlvfR4.js} +1 -1
  170. package/dist/cjs/{index-Bm6y0Ibt.js → index-Y8n2FvXS.js} +3 -3
  171. package/dist/cjs/index.cjs.js +10 -10
  172. package/dist/cjs/{input-shims-BFGH5o2Z.js → input-shims-SVR_4pAX.js} +6 -6
  173. package/dist/cjs/ion-accordion_2.cjs.entry.js +14 -19
  174. package/dist/cjs/ion-action-sheet.cjs.entry.js +10 -10
  175. package/dist/cjs/ion-alert.cjs.entry.js +13 -13
  176. package/dist/cjs/ion-app_8.cjs.entry.js +14 -14
  177. package/dist/cjs/ion-avatar_3.cjs.entry.js +3 -3
  178. package/dist/cjs/ion-back-button.cjs.entry.js +14 -16
  179. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  180. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +19 -32
  181. package/dist/cjs/ion-button_2.cjs.entry.js +4 -4
  182. package/dist/cjs/ion-card_5.cjs.entry.js +6 -6
  183. package/dist/cjs/ion-checkbox.cjs.entry.js +26 -18
  184. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  185. package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
  186. package/dist/cjs/ion-datetime-button.cjs.entry.js +3 -3
  187. package/dist/cjs/ion-datetime.cjs.entry.js +20 -56
  188. package/dist/cjs/ion-divider.cjs.entry.js +2 -2
  189. package/dist/cjs/ion-fab_3.cjs.entry.js +12 -17
  190. package/dist/cjs/ion-gallery-item.cjs.entry.js +1 -1
  191. package/dist/cjs/ion-gallery.cjs.entry.js +3 -3
  192. package/dist/cjs/ion-img.cjs.entry.js +3 -3
  193. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +4 -4
  194. package/dist/cjs/ion-input-otp.cjs.entry.js +4 -4
  195. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +19 -31
  196. package/dist/cjs/ion-input.cjs.entry.js +17 -33
  197. package/dist/cjs/ion-item-option_3.cjs.entry.js +6 -6
  198. package/dist/cjs/ion-item_8.cjs.entry.js +15 -20
  199. package/dist/cjs/ion-loading.cjs.entry.js +6 -6
  200. package/dist/cjs/ion-menu_3.cjs.entry.js +16 -19
  201. package/dist/cjs/ion-modal.cjs.entry.js +12 -12
  202. package/dist/cjs/ion-nav_2.cjs.entry.js +6 -6
  203. package/dist/cjs/ion-picker-column-option.cjs.entry.js +3 -3
  204. package/dist/cjs/ion-picker-column.cjs.entry.js +5 -5
  205. package/dist/cjs/ion-picker.cjs.entry.js +2 -2
  206. package/dist/cjs/ion-popover.cjs.entry.js +8 -8
  207. package/dist/cjs/ion-progress-bar.cjs.entry.js +4 -4
  208. package/dist/cjs/ion-radio_2.cjs.entry.js +5 -5
  209. package/dist/cjs/ion-range.cjs.entry.js +5 -5
  210. package/dist/cjs/ion-refresher_2.cjs.entry.js +17 -12
  211. package/dist/cjs/ion-reorder_2.cjs.entry.js +11 -19
  212. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  213. package/dist/cjs/ion-route_4.cjs.entry.js +4 -4
  214. package/dist/cjs/ion-searchbar.cjs.entry.js +13 -42
  215. package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
  216. package/dist/cjs/ion-select-modal.cjs.entry.js +17 -16
  217. package/dist/cjs/ion-select_3.cjs.entry.js +20 -44
  218. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  219. package/dist/cjs/ion-split-pane.cjs.entry.js +1 -1
  220. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +9 -9
  221. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  222. package/dist/cjs/ion-text.cjs.entry.js +1 -1
  223. package/dist/cjs/ion-textarea.cjs.entry.js +17 -25
  224. package/dist/cjs/ion-toast.cjs.entry.js +7 -7
  225. package/dist/cjs/ion-toggle.cjs.entry.js +18 -34
  226. package/dist/cjs/{ionic-global-BaVLW54G.js → ionic-global-CRAqTE7M.js} +5 -5
  227. package/dist/cjs/ionic.cjs.js +2 -2
  228. package/dist/cjs/{ios.transition-Bm4N3WK1.js → ios.transition-BluJBTN6.js} +5 -5
  229. package/dist/cjs/{keyboard-9uOUQmB-.js → keyboard-B44EnZyJ.js} +1 -1
  230. package/dist/cjs/{keyboard-5cEsoK5l.js → keyboard-CR7Eg8u3.js} +3 -3
  231. package/dist/cjs/loader.cjs.js +2 -2
  232. package/dist/cjs/{md.transition-Z-7hu2x1.js → md.transition-TBHPCec3.js} +5 -5
  233. package/dist/cjs/{overlays-Jn6TNpc3.js → overlays-B5YzPlbv.js} +5 -5
  234. package/dist/cjs/{scroll-hide-controller-DQ9ulQ11.js → scroll-hide-controller-Bht8yQkC.js} +3 -3
  235. package/dist/cjs/{slot-mutation-controller-C9i1ymbP.js → slot-mutation-controller-CinDJgCY.js} +2 -2
  236. package/dist/cjs/{status-tap-DT7J4fZQ.js → status-tap-Aq-o5Csp.js} +3 -3
  237. package/dist/cjs/{swipe-back-BIbF7bVy.js → swipe-back-Byqp-bJI.js} +2 -2
  238. package/dist/collection/components/accordion/accordion.ionic.css +10 -12
  239. package/dist/collection/components/accordion/accordion.js +9 -14
  240. package/dist/collection/components/accordion-group/accordion-group.ionic.css +6 -6
  241. package/dist/collection/components/action-sheet/action-sheet.ionic.css +22 -26
  242. package/dist/collection/components/alert/alert.ionic.css +46 -54
  243. package/dist/collection/components/alert/alert.js +3 -3
  244. package/dist/collection/components/avatar/avatar.ionic.css +29 -35
  245. package/dist/collection/components/back-button/back-button.js +11 -13
  246. package/dist/collection/components/backdrop/backdrop.ionic.css +1 -1
  247. package/dist/collection/components/badge/badge.ionic.css +15 -18
  248. package/dist/collection/components/breadcrumb/breadcrumb.js +16 -28
  249. package/dist/collection/components/button/button.ionic.css +22 -26
  250. package/dist/collection/components/buttons/buttons.ionic.css +1 -1
  251. package/dist/collection/components/card/card.ionic.css +7 -7
  252. package/dist/collection/components/card-content/card-content.ionic.css +3 -4
  253. package/dist/collection/components/card-subtitle/card-subtitle.ionic.css +4 -5
  254. package/dist/collection/components/checkbox/checkbox.ionic.css +51 -59
  255. package/dist/collection/components/checkbox/checkbox.ios.css +33 -29
  256. package/dist/collection/components/checkbox/checkbox.js +23 -13
  257. package/dist/collection/components/checkbox/checkbox.md.css +33 -29
  258. package/dist/collection/components/chip/chip.ionic.css +12 -13
  259. package/dist/collection/components/datetime/datetime.ionic.css +43 -49
  260. package/dist/collection/components/datetime/datetime.ios.css +5 -10
  261. package/dist/collection/components/datetime/datetime.js +12 -48
  262. package/dist/collection/components/datetime/datetime.md.css +5 -10
  263. package/dist/collection/components/divider/divider.ionic.css +1 -1
  264. package/dist/collection/components/fab-button/fab-button.js +9 -14
  265. package/dist/collection/components/header/header.ionic.css +1 -1
  266. package/dist/collection/components/input/input.ionic.css +142 -122
  267. package/dist/collection/components/input/input.js +11 -27
  268. package/dist/collection/components/input-otp/input-otp.ionic.css +29 -31
  269. package/dist/collection/components/input-password-toggle/input-password-toggle.ionic.css +1 -1
  270. package/dist/collection/components/input-password-toggle/input-password-toggle.js +18 -28
  271. package/dist/collection/components/item/item.ionic.css +9 -10
  272. package/dist/collection/components/item/item.js +10 -15
  273. package/dist/collection/components/item-option/item-option.ionic.css +5 -6
  274. package/dist/collection/components/item-sliding/item-sliding.ionic.css +1 -1
  275. package/dist/collection/components/list-header/list-header.ionic.css +4 -5
  276. package/dist/collection/components/menu-button/menu-button.js +9 -12
  277. package/dist/collection/components/modal/modal.ionic.css +3 -3
  278. package/dist/collection/components/popover/popover.ionic.css +1 -1
  279. package/dist/collection/components/progress-bar/progress-bar.ionic.css +3 -3
  280. package/dist/collection/components/radio/radio.ionic.css +9 -10
  281. package/dist/collection/components/radio-group/radio-group.ionic.css +5 -6
  282. package/dist/collection/components/range/range.ionic.css +11 -12
  283. package/dist/collection/components/refresher-content/refresher-content.js +10 -4
  284. package/dist/collection/components/reorder/reorder.js +5 -13
  285. package/dist/collection/components/searchbar/searchbar.ionic.css +17 -18
  286. package/dist/collection/components/searchbar/searchbar.js +8 -35
  287. package/dist/collection/components/segment-button/segment-button.ionic.css +8 -9
  288. package/dist/collection/components/select/select.ionic.css +213 -105
  289. package/dist/collection/components/select/select.js +14 -39
  290. package/dist/collection/components/select-modal/select-modal.ionic.css +13 -16
  291. package/dist/collection/components/select-modal/select-modal.js +12 -10
  292. package/dist/collection/components/select-popover/select-popover.ionic.css +11 -13
  293. package/dist/collection/components/spinner/spinner.ionic.css +2 -2
  294. package/dist/collection/components/tab-bar/tab-bar.ionic.css +6 -6
  295. package/dist/collection/components/tab-button/tab-button.ionic.css +4 -5
  296. package/dist/collection/components/textarea/textarea.ionic.css +173 -128
  297. package/dist/collection/components/textarea/textarea.ios.css +0 -4
  298. package/dist/collection/components/textarea/textarea.js +13 -18
  299. package/dist/collection/components/textarea/textarea.md.css +0 -4
  300. package/dist/collection/components/title/title.ionic.css +6 -8
  301. package/dist/collection/components/toast/toast.ionic.css +16 -19
  302. package/dist/collection/components/toggle/toggle.ionic.css +14 -16
  303. package/dist/collection/components/toggle/toggle.js +12 -26
  304. package/dist/collection/components/toolbar/toolbar.ionic.css +1 -1
  305. package/dist/collection/utils/focus-trap.js +2 -2
  306. package/dist/collection/utils/focus-visible.js +51 -2
  307. package/dist/collection/utils/helpers.js +15 -1
  308. package/dist/collection/utils/overlays.js +2 -2
  309. package/dist/collection/utils/test/playwright/field-geometry.js +34 -0
  310. package/dist/collection/utils/test/playwright/index.js +1 -0
  311. package/dist/docs.json +60 -25
  312. package/dist/esm/{animation-DXpoXT3G.js → animation-CSQV6dzD.js} +1 -1
  313. package/dist/esm/{app-globals-gnMsODWu.js → app-globals-PWSz-l_N.js} +1 -1
  314. package/dist/esm/{button-active-DtDlu9-d.js → button-active-C57xZQjg.js} +1 -1
  315. package/dist/esm/{capacitor-CMyaZHxy.js → capacitor-DBIFQa2o.js} +1 -1
  316. package/dist/esm/{clear-button-press-controller-CWOPHFBc.js → clear-button-press-controller-Dd5_yhOF.js} +1 -1
  317. package/dist/esm/{focus-visible-vXpMhGrs.js → focus-visible-BYk20Mf5.js} +52 -3
  318. package/dist/esm/{framework-delegate-DUQ69ajj.js → framework-delegate-BGk11dmh.js} +1 -1
  319. package/dist/esm/{haptic-Dal3yCq6.js → haptic-PEF9NVXM.js} +1 -1
  320. package/dist/esm/{helpers-DTqW6MzS.js → helpers-COVHAPv8.js} +16 -2
  321. package/dist/esm/{index-CpKLzrYn.js → index-B7Bz5x4m.js} +1 -1
  322. package/dist/esm/{index-BqQ15K9a.js → index-BkJpfpXI.js} +1 -1
  323. package/dist/esm/{index-C2QkTAgc.js → index-DHp8pAEm.js} +3 -3
  324. package/dist/esm/{index-D_YUqPZN.js → index-Detgiv22.js} +3 -3
  325. package/dist/esm/{index-D76uuG8P.js → index-MCAWImIY.js} +3 -3
  326. package/dist/esm/index.js +10 -10
  327. package/dist/esm/{input-shims-DgFi_b6v.js → input-shims-rVCP_KOP.js} +6 -6
  328. package/dist/esm/ion-accordion_2.entry.js +15 -20
  329. package/dist/esm/ion-action-sheet.entry.js +10 -10
  330. package/dist/esm/ion-alert.entry.js +13 -13
  331. package/dist/esm/ion-app_8.entry.js +14 -14
  332. package/dist/esm/ion-avatar_3.entry.js +3 -3
  333. package/dist/esm/ion-back-button.entry.js +15 -17
  334. package/dist/esm/ion-backdrop.entry.js +2 -2
  335. package/dist/esm/ion-breadcrumb_2.entry.js +20 -33
  336. package/dist/esm/ion-button_2.entry.js +4 -4
  337. package/dist/esm/ion-card_5.entry.js +6 -6
  338. package/dist/esm/ion-checkbox.entry.js +27 -19
  339. package/dist/esm/ion-chip.entry.js +2 -2
  340. package/dist/esm/ion-col_3.entry.js +1 -1
  341. package/dist/esm/ion-datetime-button.entry.js +3 -3
  342. package/dist/esm/ion-datetime.entry.js +21 -57
  343. package/dist/esm/ion-divider.entry.js +2 -2
  344. package/dist/esm/ion-fab_3.entry.js +13 -18
  345. package/dist/esm/ion-gallery-item.entry.js +1 -1
  346. package/dist/esm/ion-gallery.entry.js +3 -3
  347. package/dist/esm/ion-img.entry.js +3 -3
  348. package/dist/esm/ion-infinite-scroll_2.entry.js +4 -4
  349. package/dist/esm/ion-input-otp.entry.js +4 -4
  350. package/dist/esm/ion-input-password-toggle.entry.js +20 -32
  351. package/dist/esm/ion-input.entry.js +18 -34
  352. package/dist/esm/ion-item-option_3.entry.js +6 -6
  353. package/dist/esm/ion-item_8.entry.js +16 -21
  354. package/dist/esm/ion-loading.entry.js +6 -6
  355. package/dist/esm/ion-menu_3.entry.js +17 -20
  356. package/dist/esm/ion-modal.entry.js +12 -12
  357. package/dist/esm/ion-nav_2.entry.js +6 -6
  358. package/dist/esm/ion-picker-column-option.entry.js +3 -3
  359. package/dist/esm/ion-picker-column.entry.js +5 -5
  360. package/dist/esm/ion-picker.entry.js +2 -2
  361. package/dist/esm/ion-popover.entry.js +8 -8
  362. package/dist/esm/ion-progress-bar.entry.js +4 -4
  363. package/dist/esm/ion-radio_2.entry.js +5 -5
  364. package/dist/esm/ion-range.entry.js +5 -5
  365. package/dist/esm/ion-refresher_2.entry.js +18 -13
  366. package/dist/esm/ion-reorder_2.entry.js +12 -20
  367. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  368. package/dist/esm/ion-route_4.entry.js +4 -4
  369. package/dist/esm/ion-searchbar.entry.js +14 -43
  370. package/dist/esm/ion-segment_2.entry.js +4 -4
  371. package/dist/esm/ion-select-modal.entry.js +19 -18
  372. package/dist/esm/ion-select_3.entry.js +21 -45
  373. package/dist/esm/ion-spinner.entry.js +2 -2
  374. package/dist/esm/ion-split-pane.entry.js +1 -1
  375. package/dist/esm/ion-tab-bar_2.entry.js +9 -9
  376. package/dist/esm/ion-tab_2.entry.js +3 -3
  377. package/dist/esm/ion-text.entry.js +1 -1
  378. package/dist/esm/ion-textarea.entry.js +17 -25
  379. package/dist/esm/ion-toast.entry.js +7 -7
  380. package/dist/esm/ion-toggle.entry.js +19 -35
  381. package/dist/esm/{ionic-global-oK2heABF.js → ionic-global-DPSBlusf.js} +5 -5
  382. package/dist/esm/ionic.js +2 -2
  383. package/dist/esm/{ios.transition-D6rsx0aJ.js → ios.transition-Dg02Css6.js} +5 -5
  384. package/dist/esm/{keyboard-YBye__Ay.js → keyboard-0MlGMI-U.js} +3 -3
  385. package/dist/esm/{keyboard-Dzp50ozz.js → keyboard-C09oMZsY.js} +1 -1
  386. package/dist/esm/loader.js +2 -2
  387. package/dist/esm/{md.transition-0y4So3tu.js → md.transition-DWmGdm6c.js} +5 -5
  388. package/dist/esm/{overlays-CLlfG_qy.js → overlays-Bv7M5ll5.js} +5 -5
  389. package/dist/esm/{scroll-hide-controller-BUZm0jSI.js → scroll-hide-controller-Tp5xjq2E.js} +3 -3
  390. package/dist/esm/{slot-mutation-controller-C5Vj7Od7.js → slot-mutation-controller-PS17pZ-_.js} +2 -2
  391. package/dist/esm/{status-tap-VmNhEOZr.js → status-tap-_VvGTiUU.js} +3 -3
  392. package/dist/esm/{swipe-back-BHHiqew-.js → swipe-back-D2R5S8HL.js} +2 -2
  393. package/dist/ionic/index.esm.js +1 -1
  394. package/dist/ionic/ionic.esm.js +1 -1
  395. package/dist/ionic/{p-3bb43e22.entry.js → p-054bdefd.entry.js} +1 -1
  396. package/dist/ionic/p-155f3baf.entry.js +4 -0
  397. package/dist/ionic/{p-2e3acd77.entry.js → p-18d55baa.entry.js} +1 -1
  398. package/dist/ionic/p-1d40a19c.entry.js +4 -0
  399. package/dist/ionic/p-221d7b0b.entry.js +4 -0
  400. package/dist/ionic/p-30858188.entry.js +4 -0
  401. package/dist/ionic/{p-924182fc.entry.js → p-3111972e.entry.js} +1 -1
  402. package/dist/ionic/p-323b7322.entry.js +4 -0
  403. package/dist/ionic/p-32ed09fe.entry.js +4 -0
  404. package/dist/ionic/{p-d0368d31.entry.js → p-343f72d0.entry.js} +1 -1
  405. package/dist/ionic/{p-db011674.entry.js → p-37faa244.entry.js} +1 -1
  406. package/dist/ionic/p-3966cd77.entry.js +4 -0
  407. package/dist/ionic/p-4030db68.entry.js +4 -0
  408. package/dist/ionic/p-42a054ee.entry.js +4 -0
  409. package/dist/ionic/{p-fdb940e3.entry.js → p-42cfdcb7.entry.js} +1 -1
  410. package/dist/ionic/p-44cd6a88.entry.js +4 -0
  411. package/dist/ionic/{p-886236f0.entry.js → p-6589a3f6.entry.js} +1 -1
  412. package/dist/ionic/p-68ffe393.entry.js +4 -0
  413. package/dist/ionic/p-6b9b6175.entry.js +4 -0
  414. package/dist/ionic/{p-84b5eafe.entry.js → p-6c99f6c8.entry.js} +1 -1
  415. package/dist/ionic/{p-dc000de0.entry.js → p-6c9d8e84.entry.js} +1 -1
  416. package/dist/ionic/p-6fe03c66.entry.js +4 -0
  417. package/dist/ionic/p-747c4c1e.entry.js +4 -0
  418. package/dist/ionic/p-7b769a8c.entry.js +4 -0
  419. package/dist/ionic/p-7e07f60d.entry.js +4 -0
  420. package/dist/ionic/p-7e9a0222.entry.js +4 -0
  421. package/dist/ionic/p-8f052ddf.entry.js +4 -0
  422. package/dist/ionic/p-8fb06684.entry.js +4 -0
  423. package/dist/ionic/p-91a7e3df.entry.js +4 -0
  424. package/dist/ionic/p-9344a53d.entry.js +4 -0
  425. package/dist/ionic/{p-55e13406.entry.js → p-93c69512.entry.js} +1 -1
  426. package/dist/ionic/{p-b83de44e.entry.js → p-96f73def.entry.js} +1 -1
  427. package/dist/ionic/p-9c0cae6a.entry.js +4 -0
  428. package/dist/ionic/{p-CsmXfOZY.js → p-B3Kiljjq.js} +1 -1
  429. package/dist/ionic/p-BN5wKnhU.js +4 -0
  430. package/dist/ionic/p-BQmJoNKC.js +4 -0
  431. package/dist/ionic/p-BYk20Mf5.js +4 -0
  432. package/{components/p-Cc3oC60a.js → dist/ionic/p-BkJpfpXI.js} +1 -1
  433. package/{components/p-CN41sVGB.js → dist/ionic/p-Bp2Gog3I.js} +1 -1
  434. package/dist/ionic/p-Br2aTSXv.js +4 -0
  435. package/dist/ionic/{p-D8HyO4-0.js → p-BxyvWHWp.js} +1 -1
  436. package/dist/ionic/p-C-5bbxTv.js +4 -0
  437. package/dist/ionic/p-CalV2EFO.js +4 -0
  438. package/dist/ionic/p-Ck7LvynN.js +4 -0
  439. package/dist/ionic/{p-BnRvdoDY.js → p-CpbV2dkG.js} +1 -1
  440. package/dist/ionic/p-CyqXbsry.js +4 -0
  441. package/dist/ionic/{p-Izgzy5eB.js → p-DAdCwTwc.js} +1 -1
  442. package/dist/ionic/{p-DAFzmzMJ.js → p-DWu51GL8.js} +1 -1
  443. package/dist/ionic/p-DYl9g-Nn.js +4 -0
  444. package/dist/ionic/p-DhRGeAiB.js +4 -0
  445. package/dist/ionic/{p-BdqFx5km.js → p-Dynoer0Z.js} +1 -1
  446. package/dist/ionic/p-HzpJgzPY.js +4 -0
  447. package/dist/ionic/{p-Cs5kzNVE.js → p-PrbehP8l.js} +1 -1
  448. package/dist/ionic/p-XIxYRztg.js +4 -0
  449. package/dist/ionic/{p-B3L20Lav.js → p-_RfHVD7s.js} +1 -1
  450. package/dist/ionic/{p-8a7bf6c7.entry.js → p-a69ccce3.entry.js} +1 -1
  451. package/dist/ionic/p-a8bce8c2.entry.js +4 -0
  452. package/dist/ionic/p-aa658bb9.entry.js +4 -0
  453. package/dist/ionic/p-ada3f6b9.entry.js +4 -0
  454. package/dist/ionic/p-b2d4bb26.entry.js +4 -0
  455. package/dist/ionic/p-b9f0ce4c.entry.js +4 -0
  456. package/dist/ionic/{p-30c4458b.entry.js → p-be5bc00a.entry.js} +1 -1
  457. package/dist/ionic/p-bfe9bfae.entry.js +4 -0
  458. package/dist/ionic/p-c85c7436.entry.js +4 -0
  459. package/dist/ionic/p-caa7801f.entry.js +4 -0
  460. package/dist/ionic/{p-46709a42.entry.js → p-d97fabaa.entry.js} +1 -1
  461. package/dist/ionic/p-da319993.entry.js +4 -0
  462. package/dist/ionic/p-df1c1199.entry.js +4 -0
  463. package/dist/ionic/{p-2c3704b9.entry.js → p-e02e6d2b.entry.js} +1 -1
  464. package/dist/ionic/{p-6b23289a.entry.js → p-e10326b5.entry.js} +1 -1
  465. package/dist/ionic/{p-d1d3048b.entry.js → p-e8e3b85f.entry.js} +1 -1
  466. package/dist/ionic/p-ec90ddaf.entry.js +4 -0
  467. package/dist/ionic/{p-cd05447f.entry.js → p-ee6708ce.entry.js} +1 -1
  468. package/dist/ionic/{p-e939adf3.entry.js → p-f301235c.entry.js} +1 -1
  469. package/dist/ionic/p-fd0666a5.entry.js +4 -0
  470. package/dist/ionic/{p-CP5-2cXj.js → p-j9My4oCO.js} +1 -1
  471. package/dist/ionic/p-pQdkMmul.js +4 -0
  472. package/dist/ionic/p-sXOU046_.js +4 -0
  473. package/dist/types/components/accordion/accordion.d.ts +7 -1
  474. package/dist/types/components/back-button/back-button.d.ts +8 -2
  475. package/dist/types/components/breadcrumb/breadcrumb.d.ts +12 -2
  476. package/dist/types/components/checkbox/checkbox.d.ts +12 -1
  477. package/dist/types/components/datetime/datetime.d.ts +4 -4
  478. package/dist/types/components/fab-button/fab-button.d.ts +7 -1
  479. package/dist/types/components/input/input.d.ts +7 -10
  480. package/dist/types/components/input-password-toggle/input-password-toggle.d.ts +14 -2
  481. package/dist/types/components/item/item.d.ts +7 -1
  482. package/dist/types/components/menu-button/menu-button.d.ts +6 -1
  483. package/dist/types/components/refresher-content/refresher-content.d.ts +6 -0
  484. package/dist/types/components/reorder/reorder.d.ts +1 -1
  485. package/dist/types/components/select/select.d.ts +7 -12
  486. package/dist/types/components/select-modal/select-modal.d.ts +6 -1
  487. package/dist/types/components/textarea/textarea.d.ts +8 -8
  488. package/dist/types/components/toggle/toggle.d.ts +5 -2
  489. package/dist/types/utils/config.d.ts +22 -2
  490. package/dist/types/utils/focus-visible.d.ts +20 -0
  491. package/dist/types/utils/helpers.d.ts +7 -0
  492. package/dist/types/utils/test/playwright/field-geometry.d.ts +13 -0
  493. package/dist/types/utils/test/playwright/index.d.ts +1 -0
  494. package/hydrate/index.js +318 -417
  495. package/hydrate/index.mjs +318 -417
  496. package/package.json +4 -5
  497. package/components/p-B1AK6oR-.js +0 -4
  498. package/components/p-B8dfyFoB.js +0 -4
  499. package/components/p-B9UT2JwK.js +0 -4
  500. package/components/p-BDqjX7Z_.js +0 -4
  501. package/components/p-BQUTtt8S.js +0 -4
  502. package/components/p-BYSs-jZz.js +0 -4
  503. package/components/p-BZtGrrX4.js +0 -4
  504. package/components/p-BdAOHgnb.js +0 -4
  505. package/components/p-C8aonLbo.js +0 -4
  506. package/components/p-CDmCFFLL.js +0 -4
  507. package/components/p-CPdOdJa7.js +0 -4
  508. package/components/p-CksPhDEa.js +0 -4
  509. package/components/p-Cm78Kk79.js +0 -4
  510. package/components/p-CmEe-Llj.js +0 -4
  511. package/components/p-D1t981Ih.js +0 -4
  512. package/components/p-D9jEKvVd.js +0 -4
  513. package/components/p-DG-ZC7Js.js +0 -4
  514. package/components/p-DJkuoL4u.js +0 -4
  515. package/components/p-DOoxQDxg.js +0 -4
  516. package/components/p-DcOWEjmv.js +0 -4
  517. package/components/p-DgEOEy6x.js +0 -4
  518. package/components/p-Dhi5xtNS.js +0 -4
  519. package/components/p-DtPgvez6.js +0 -4
  520. package/components/p-DwAij6DN.js +0 -4
  521. package/components/p-DzaPYdjZ.js +0 -4
  522. package/components/p-Dzuh_AKJ.js +0 -4
  523. package/components/p-Uo-TYRpE.js +0 -4
  524. package/components/p-cKiRADSB.js +0 -4
  525. package/components/p-e73ca-aN.js +0 -4
  526. package/components/p-fIOYmaqA.js +0 -4
  527. package/components/p-fh4o6dKR.js +0 -4
  528. package/components/p-vXpMhGrs.js +0 -4
  529. package/dist/cjs/caret-down-vtVgfXIs.js +0 -8
  530. package/dist/cjs/caret-left-CxZXLRv5.js +0 -8
  531. package/dist/cjs/caret-right-CRCgv98E.js +0 -8
  532. package/dist/cjs/list-a-7GSA6K.js +0 -8
  533. package/dist/cjs/x-BTF99yFH.js +0 -8
  534. package/dist/esm/caret-down-D1t981Ih.js +0 -6
  535. package/dist/esm/caret-left-fIOYmaqA.js +0 -6
  536. package/dist/esm/caret-right-BYSs-jZz.js +0 -6
  537. package/dist/esm/list-Dhi5xtNS.js +0 -6
  538. package/dist/esm/x-BDqjX7Z_.js +0 -6
  539. package/dist/ionic/p-04d96dad.entry.js +0 -4
  540. package/dist/ionic/p-08f20edc.entry.js +0 -4
  541. package/dist/ionic/p-0a924e6a.entry.js +0 -4
  542. package/dist/ionic/p-0f268972.entry.js +0 -4
  543. package/dist/ionic/p-18c6af89.entry.js +0 -4
  544. package/dist/ionic/p-1cc2a196.entry.js +0 -4
  545. package/dist/ionic/p-201f484e.entry.js +0 -4
  546. package/dist/ionic/p-26efcc45.entry.js +0 -4
  547. package/dist/ionic/p-2da21af7.entry.js +0 -4
  548. package/dist/ionic/p-2fc1521f.entry.js +0 -4
  549. package/dist/ionic/p-32be916d.entry.js +0 -4
  550. package/dist/ionic/p-384fb50d.entry.js +0 -4
  551. package/dist/ionic/p-4QzQhqmw.js +0 -4
  552. package/dist/ionic/p-5217eb00.entry.js +0 -4
  553. package/dist/ionic/p-73309d35.entry.js +0 -4
  554. package/dist/ionic/p-74ab5f49.entry.js +0 -4
  555. package/dist/ionic/p-7d2f3242.entry.js +0 -4
  556. package/dist/ionic/p-7e28cc53.entry.js +0 -4
  557. package/dist/ionic/p-83d13d56.entry.js +0 -4
  558. package/dist/ionic/p-854b95f9.entry.js +0 -4
  559. package/dist/ionic/p-8NLG9fne.js +0 -4
  560. package/dist/ionic/p-8dcd18cf.entry.js +0 -4
  561. package/dist/ionic/p-92f21db6.entry.js +0 -4
  562. package/dist/ionic/p-9ca59419.entry.js +0 -4
  563. package/dist/ionic/p-B6aOaV_m.js +0 -4
  564. package/dist/ionic/p-BDqjX7Z_.js +0 -4
  565. package/dist/ionic/p-BVv5nqxG.js +0 -4
  566. package/dist/ionic/p-BYSs-jZz.js +0 -4
  567. package/dist/ionic/p-CD4Mty1V.js +0 -4
  568. package/dist/ionic/p-CLVGlNRl.js +0 -4
  569. package/dist/ionic/p-CRbXZpID.js +0 -4
  570. package/dist/ionic/p-CZ-V4tB0.js +0 -4
  571. package/dist/ionic/p-CyXL8sF6.js +0 -4
  572. package/dist/ionic/p-D1ej8PMz.js +0 -4
  573. package/dist/ionic/p-D1t981Ih.js +0 -4
  574. package/dist/ionic/p-Dhi5xtNS.js +0 -4
  575. package/dist/ionic/p-DvXo4Ng9.js +0 -4
  576. package/dist/ionic/p-ac4ea8db.entry.js +0 -4
  577. package/dist/ionic/p-b10dc124.entry.js +0 -4
  578. package/dist/ionic/p-b411d90d.entry.js +0 -4
  579. package/dist/ionic/p-b7ce4a50.entry.js +0 -4
  580. package/dist/ionic/p-c7035f3f.entry.js +0 -4
  581. package/dist/ionic/p-c91fc9d4.entry.js +0 -4
  582. package/dist/ionic/p-cd4791d5.entry.js +0 -4
  583. package/dist/ionic/p-ce1ab874.entry.js +0 -4
  584. package/dist/ionic/p-e9480e7f.entry.js +0 -4
  585. package/dist/ionic/p-e9fdff49.entry.js +0 -4
  586. package/dist/ionic/p-f29b784f.entry.js +0 -4
  587. package/dist/ionic/p-f82b13a6.entry.js +0 -4
  588. package/dist/ionic/p-fIOYmaqA.js +0 -4
  589. package/dist/ionic/p-psKsVoNI.js +0 -4
  590. package/dist/ionic/p-si7ttuvL.js +0 -4
  591. package/dist/ionic/p-vXpMhGrs.js +0 -4
@@ -509,16 +509,11 @@
509
509
  }
510
510
 
511
511
  .calendar-day:not(.calendar-day-adjacent-day):focus {
512
- background: ion-color(primary, base, 0.2);
513
- box-shadow: 0px 0px 0px 4px ion-color(primary, base, 0.2);
512
+ background: rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);
513
+ box-shadow: 0px 0px 0px 4px rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);
514
514
  }
515
515
 
516
516
  :host(.ion-color) .calendar-day:not(.calendar-day-adjacent-day):focus {
517
- background: current-color(base, 0.2);
518
- box-shadow: 0px 0px 0px 4px current-color(base, 0.2);
519
- }
520
-
521
- .calendar-day:focus {
522
517
  background: rgba(var(--ion-color-base-rgb), 0.2);
523
518
  box-shadow: 0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);
524
519
  }
@@ -563,7 +558,7 @@
563
558
  }
564
559
 
565
560
  :host .time-body-active {
566
- color: ion-color(primary, base);
561
+ color: var(--ion-color-primary, #0054e9);
567
562
  }
568
563
 
569
564
  :host(.ion-color) .time-body-active {
@@ -571,7 +566,7 @@
571
566
  }
572
567
 
573
568
  :host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle {
574
- color: ion-color(primary, base);
569
+ color: var(--ion-color-primary, #0054e9);
575
570
  }
576
571
 
577
572
  :host(.ion-color.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle {
@@ -579,7 +574,7 @@
579
574
  }
580
575
 
581
576
  :host .datetime-action-buttons ion-button {
582
- --color: ion-color(primary, base);
577
+ --color: var(--ion-color-primary, #0054e9);
583
578
  }
584
579
 
585
580
  .calendar-month-year-toggle::after {
@@ -109,7 +109,7 @@
109
109
  }
110
110
 
111
111
  :host hr {
112
- border-top: var(--token-border-size-025, var(--token-scale-025, 1px)) var(--token-border-style-solid, solid) var(--token-border-default, var(--token-primitives-neutral-400, #d5d5d5));
112
+ border-top: var(--token-border-size-025, var(--token-scale-025, 1px)) solid var(--token-border-default, var(--token-primitives-neutral-400, #d0d7df));
113
113
  }
114
114
 
115
115
  :host(.divider-inset) {
@@ -1,7 +1,6 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import xRegular from "@phosphor-icons/core/assets/regular/x.svg";
5
4
  import { Host, h } from "@stencil/core";
6
5
  import { inheritAriaAttributes, hasShadowDom } from "../../utils/helpers";
7
6
  import { printIonWarning } from "../../utils/logging/index";
@@ -133,22 +132,18 @@ export class FabButton {
133
132
  componentWillLoad() {
134
133
  this.inheritedAttributes = inheritAriaAttributes(this.el);
135
134
  }
135
+ /**
136
+ * Get the icon to use for the close icon.
137
+ * If an icon is set on the component, use that.
138
+ * Otherwise, use the icon set in the config.
139
+ * If no icon is set in the config, use the default icon.
140
+ */
136
141
  get fabButtonCloseIcon() {
137
142
  // Return the icon if it is explicitly set
138
143
  if (this.closeIcon != null) {
139
144
  return this.closeIcon;
140
145
  }
141
- // Determine the theme and map to default icons
142
- const theme = getIonTheme(this);
143
- const defaultIcons = {
144
- ios: close,
145
- ionic: xRegular,
146
- md: close,
147
- };
148
- // Get the default icon based on the theme, falling back to 'md' icon if necessary
149
- const defaultIcon = defaultIcons[theme] || defaultIcons.md;
150
- // Return the configured fab button close icon or the default icon
151
- return config.get('fabButtonCloseIcon', defaultIcon);
146
+ return config.get('fabButtonCloseIcon', close);
152
147
  }
153
148
  render() {
154
149
  const { el, disabled, fabButtonCloseIcon, color, href, activated, show, translucent, size, inheritedAttributes, type, } = this;
@@ -170,7 +165,7 @@ export class FabButton {
170
165
  if (type !== 'button') {
171
166
  this.renderHiddenButton();
172
167
  }
173
- return (h(Host, { key: 'af84019ef7cee19ca5578a9a274d3890da83bf83', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses(color, {
168
+ return (h(Host, { key: 'fc2e7284b76590aa65e45b8251f7c7776e11f0dc', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses(color, {
174
169
  [theme]: true,
175
170
  'fab-button-in-list': inList,
176
171
  'fab-button-translucent-in-list': inList && translucent,
@@ -181,7 +176,7 @@ export class FabButton {
181
176
  'ion-activatable': true,
182
177
  'ion-focusable': true,
183
178
  [`fab-button-${size}`]: size !== undefined,
184
- }) }, h(TagType, { key: '90b4b17993b3feab7194790c4497d0fd9860e01a', ...attrs, class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur, onClick: (ev) => type === 'button' && openURL(href, ev, this.routerDirection, this.routerAnimation), ...inheritedAttributes }, h("ion-icon", { key: 'a6d2cf73b627ead797c8efa82e0b7cd6aa845603', "aria-hidden": "true", icon: fabButtonCloseIcon, part: "close-icon", class: "close-icon", lazy: false }), h("span", { key: '3f08bc8aa15bcb72ecf11a81b50e2c79ab4d841a', class: "button-inner" }, h("slot", { key: 'c5c5921194b2c6b81dab2f9338298ab1c31367c5' })), theme === 'md' && h("ion-ripple-effect", { key: '78952651d0662304bd74ab8dc4cd09eb2d5ed455' }))));
179
+ }) }, h(TagType, { key: '21598ba114ac64d8f98bc0f16934678166def17e', ...attrs, class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur, onClick: (ev) => type === 'button' && openURL(href, ev, this.routerDirection, this.routerAnimation), ...inheritedAttributes }, h("ion-icon", { key: '673609441ffe18d6e8f4b2dc2de37eda7efdda75', "aria-hidden": "true", icon: fabButtonCloseIcon, part: "close-icon", class: "close-icon", lazy: false }), h("span", { key: '13b3dac62a91549431d227676bbe8a0a0fc93665', class: "button-inner" }, h("slot", { key: 'aefbe96ef9790dd85002432d7bb5a70f17e52a15' })), theme === 'md' && h("ion-ripple-effect", { key: '6888c7374b87c08a9a04009549026ae7365f4b92' }))));
185
180
  }
186
181
  static get is() { return "ion-fab-button"; }
187
182
  static get encapsulation() { return "shadow"; }
@@ -227,7 +227,7 @@ ion-header {
227
227
  z-index: 10;
228
228
  }
229
229
  ion-header.header-divider {
230
- border-bottom: var(--token-border-size-025, var(--token-scale-025, 1px)) var(--token-border-style-solid, solid) var(--token-border-default, var(--token-primitives-neutral-400, #d5d5d5));
230
+ border-bottom: var(--token-border-size-025, var(--token-scale-025, 1px)) solid var(--token-border-default, var(--token-primitives-neutral-400, #d0d7df));
231
231
  }
232
232
 
233
233
  ion-toolbar + ion-toolbar {
@@ -536,20 +536,20 @@
536
536
 
537
537
  :host(.input-fill-outline) {
538
538
  --background: var(--token-bg-surface-default, var(--token-primitives-base-white, #ffffff));
539
- --border-color: var(--token-primitives-neutral-500, #a2a2a2);
539
+ --border-color: var(--token-border-input-default, var(--token-primitives-neutral-400, #d0d7df));
540
540
  }
541
541
 
542
542
  :host(.input-fill-solid) {
543
- --background: var(--token-bg-input-bold-default, var(--token-primitives-neutral-200, #eae9e9));
544
- --border-color: var(--token-bg-input-bold-default, var(--token-primitives-neutral-200, #eae9e9));
543
+ --background: var(--token-bg-input-bold-default, var(--token-primitives-neutral-200, #ebeef2));
544
+ --border-color: var(--token-bg-input-bold-default, var(--token-primitives-neutral-200, #ebeef2));
545
545
  }
546
546
 
547
547
  /**
548
548
  * If the input has a validity state, the
549
549
  * border should reflect that as a color.
550
550
  */
551
- :host(.input-fill-solid.has-focus.ion-valid) .input-wrapper-inner,
552
- :host(.input-fill-solid.ion-touched.ion-invalid) .input-wrapper-inner {
551
+ :host(.input-fill-solid.has-focus.ion-valid) .input-wrapper,
552
+ :host(.input-fill-solid.ion-touched.ion-invalid) .input-wrapper {
553
553
  --border-color: var(--highlight-color);
554
554
  }
555
555
 
@@ -559,17 +559,17 @@
559
559
  */
560
560
  @media (any-hover: hover) {
561
561
  :host(:hover) {
562
- --border-color: var(--token-border-focus-default, var(--token-primitives-blue-400, #b5c0f7));
562
+ --border-color: var(--token-border-focus-default, var(--token-semantics-primary-400, var(--token-primitives-blue-400, #b5c0f7)));
563
563
  }
564
564
  }
565
565
  :host(.input-fill-solid.input-disabled) {
566
- --background: var(--token-bg-input-bold-disabled, var(--token-primitives-neutral-300, #e0e0e0));
567
- --placeholder-color: var(--token-text-disabled, var(--token-primitives-neutral-500, #a2a2a2));
566
+ --background: var(--token-bg-input-bold-disabled, var(--token-primitives-neutral-300, #e6eaee));
567
+ --placeholder-color: var(--token-text-disabled, var(--token-primitives-neutral-500, #9fa5ad));
568
568
  }
569
569
 
570
570
  :host(.input-fill-solid.input-readonly) {
571
- --background: var(--token-bg-input-bold-read-only, var(--token-primitives-neutral-300, #e0e0e0));
572
- --border-color: var(--token-bg-input-bold-read-only, var(--token-primitives-neutral-300, #e0e0e0));
571
+ --background: var(--token-bg-input-bold-read-only, var(--token-primitives-neutral-300, #e6eaee));
572
+ --border-color: var(--token-bg-input-bold-read-only, var(--token-primitives-neutral-300, #e6eaee));
573
573
  }
574
574
 
575
575
  /**
@@ -577,49 +577,21 @@
577
577
  * much darker on focus.
578
578
  */
579
579
  :host(.input-fill-solid.has-focus) {
580
- --border-color: var(--token-border-focus-default, var(--token-primitives-blue-400, #b5c0f7));
580
+ --border-color: var(--token-border-focus-default, var(--token-semantics-primary-400, var(--token-primitives-blue-400, #b5c0f7)));
581
581
  }
582
582
 
583
583
  :host {
584
- --color: var(--token-text-default, var(--token-primitives-neutral-1200, #242424));
584
+ --color: var(--token-text-default, var(--token-primitives-neutral-1200, #242528));
585
585
  --border-width: var(--token-border-size-025, var(--token-scale-025, 1px));
586
- --highlight-color-valid: var(--token-semantics-success-900, var(--token-primitives-green-900, #126f23));
587
- --highlight-color-invalid: var(--token-border-danger-default, var(--token-semantics-danger-800, var(--token-primitives-red-800, #bf2222)));
588
- --placeholder-color: var(--token-primitives-neutral-800, #626262);
586
+ --highlight-color-valid: var(--token-semantics-success-900, var(--token-primitives-green-900, #037046));
587
+ --highlight-color-invalid: var(--token-border-danger-default, var(--token-semantics-danger-600, var(--token-primitives-red-600, #ef5264)));
588
+ --placeholder-color: var(--token-primitives-neutral-800, #6c727a);
589
589
  --placeholder-opacity: 1;
590
+ font-family: var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");
590
591
  font-size: var(--token-font-size-350, 0.875rem);
591
592
  font-weight: var(--token-font-weight-regular, 400);
592
- letter-spacing: var(--token-font-letter-spacing-0, 0%);
593
- line-height: var(--token-font-line-height-600, var(--token-scale-600, 24px));
594
- text-decoration: none;
595
- text-transform: none;
596
- }
597
-
598
- .input-outline {
599
- right: 0;
600
- left: 0;
601
- top: 0;
602
- bottom: 0;
603
- border-radius: var(--border-radius);
604
- position: absolute;
605
- width: 100%;
606
- height: 100%;
607
- pointer-events: none;
608
- border: var(--border-width) var(--border-style) var(--border-color);
609
- }
610
-
611
- :host(.input-label-placement-start) .input-wrapper {
612
- flex-direction: row;
613
- }
614
-
615
- :host(.input-label-placement-end) .input-wrapper {
616
- flex-direction: row-reverse;
617
- }
618
-
619
- :host(.input-label-placement-stacked) .input-wrapper,
620
- :host(.input-label-placement-floating) .input-wrapper {
621
- flex-direction: column;
622
- align-items: start;
593
+ letter-spacing: var(--token-font-letter-spacing-0, 0);
594
+ line-height: var(--token-font-line-height-600, 1.5rem);
623
595
  }
624
596
 
625
597
  :host(.input-label-placement-stacked) input,
@@ -639,37 +611,95 @@
639
611
  padding-bottom: var(--token-space-100, var(--token-scale-100, 4px));
640
612
  }
641
613
 
614
+ /**
615
+ * The label is nested in the control so that every theme renders the same tree.
616
+ * Laying the wrapper out as a grid and flattening the control lets the label
617
+ * span its own row above the start slot, the input and the end slot.
618
+ */
642
619
  .input-wrapper {
643
- /**
644
- * For the ionic theme, the padding needs to sit on the
645
- * native wrapper instead, so that it sits within the
646
- * outline container but does not always affect the
647
- * label text.
648
- */
649
620
  padding-left: 0;
650
621
  padding-right: 0;
651
622
  padding-top: 0;
652
623
  padding-bottom: 0;
624
+ display: grid;
625
+ grid-template-columns: [field-start slot-start] auto [native] minmax(0, 1fr) [slot-end] auto [field-end];
626
+ grid-template-rows: [label] auto [field] auto;
653
627
  /**
654
- * Outline inputs do not have a bottom border.
655
- * Instead, they have a border that wraps the
656
- * input + label.
628
+ * Only stretch grows an auto row, so centering holds the label row at its
629
+ * content height and still centers the field in any leftover host height.
657
630
  */
658
- border-bottom: none;
631
+ align-content: center;
632
+ align-items: center;
659
633
  /**
660
- * Do not show a background on the input wrapper as
661
- * this includes the label, instead we apply the
662
- * background to the native wrapper.
634
+ * The wrapper spans the label too, so the background belongs on the field
635
+ * box rather than here.
663
636
  */
664
637
  background: transparent;
665
638
  }
666
639
 
640
+ .input-control {
641
+ display: contents;
642
+ }
643
+
644
+ /**
645
+ * A pseudo-element draws the box across the second row, so the label can sit in
646
+ * the first row and stay outside of it while the tree matches the other themes.
647
+ */
648
+ .input-wrapper::before {
649
+ border-radius: var(--border-radius, 0);
650
+ align-self: stretch;
651
+ box-sizing: border-box;
652
+ content: "";
653
+ pointer-events: none;
654
+ min-height: var(--token-scale-1000, 40px);
655
+ border: var(--border-width) var(--border-style) var(--border-color);
656
+ background: var(--background);
657
+ }
658
+
659
+ .input-wrapper::before {
660
+ grid-row: field;
661
+ grid-column: field-start/field-end;
662
+ }
663
+
667
664
  .label-text-wrapper {
668
- /**
669
- * The label should appear on top of an outline
670
- * container that overlaps it so it is always clickable.
671
- */
672
- position: relative;
665
+ grid-row: label;
666
+ grid-column: field-start/field-end;
667
+ }
668
+
669
+ .input-start {
670
+ grid-row: field;
671
+ grid-column: slot-start;
672
+ }
673
+
674
+ .native-wrapper {
675
+ grid-row: field;
676
+ grid-column: native;
677
+ }
678
+
679
+ .input-end {
680
+ grid-row: field;
681
+ grid-column: slot-end;
682
+ }
683
+
684
+ /**
685
+ * The padding sits on the cells that the field box covers, so the label is not
686
+ * indented by it.
687
+ */
688
+ .input-start,
689
+ .native-wrapper,
690
+ .input-end {
691
+ padding-top: var(--padding-top);
692
+ padding-bottom: var(--padding-bottom);
693
+ }
694
+
695
+ .input-start {
696
+ -webkit-padding-start: var(--padding-start);
697
+ padding-inline-start: var(--padding-start);
698
+ }
699
+
700
+ .input-end {
701
+ -webkit-padding-end: var(--padding-end);
702
+ padding-inline-end: var(--padding-end);
673
703
  }
674
704
 
675
705
  :host(.input-label-placement-stacked) .label-text-wrapper {
@@ -698,27 +728,6 @@
698
728
  border-top: none;
699
729
  }
700
730
 
701
- .input-wrapper-inner {
702
- border-radius: inherit;
703
- -webkit-padding-start: var(--padding-start);
704
- padding-inline-start: var(--padding-start);
705
- -webkit-padding-end: var(--padding-end);
706
- padding-inline-end: var(--padding-end);
707
- padding-top: var(--padding-top);
708
- padding-bottom: var(--padding-bottom);
709
- display: flex;
710
- position: relative;
711
- align-items: center;
712
- width: 100%;
713
- min-height: var(--token-scale-1000, 40px);
714
- box-sizing: border-box;
715
- /**
716
- * Apply the background to the inner wrapper so the label
717
- * above it stays outside the field.
718
- */
719
- background: var(--background);
720
- }
721
-
722
731
  :host(.input-size-medium) {
723
732
  --padding-start: var(--token-space-300, var(--token-scale-300, 12px));
724
733
  --padding-end: var(--token-space-300, var(--token-scale-300, 12px));
@@ -734,28 +743,28 @@
734
743
  --padding-end: var(--token-space-500, var(--token-scale-500, 20px));
735
744
  }
736
745
 
737
- :host(.input-size-medium) .input-wrapper-inner {
746
+ :host(.input-size-medium) .input-wrapper::before {
738
747
  min-height: var(--token-scale-1000, 40px);
739
748
  }
740
749
 
741
- :host(.input-size-large) .input-wrapper-inner {
750
+ :host(.input-size-large) .input-wrapper::before {
742
751
  min-height: var(--token-scale-1200, 48px);
743
752
  }
744
753
 
745
- :host(.input-size-xlarge) .input-wrapper-inner {
754
+ :host(.input-size-xlarge) .input-wrapper::before {
746
755
  min-height: var(--token-scale-1400, 56px);
747
756
  }
748
757
 
749
758
  :host(.input-shape-soft) {
750
- --border-radius: var(--token-soft-xl, var(--token-border-radius-200, var(--token-scale-200, 8px)));
759
+ --border-radius: var(--token-shape-soft-lg, 8px);
751
760
  }
752
761
 
753
762
  :host(.input-shape-round) {
754
- --border-radius: var(--token-round-xl, var(--token-border-radius-400, var(--token-scale-400, 16px)));
763
+ --border-radius: var(--token-shape-round-xl, 16px);
755
764
  }
756
765
 
757
766
  :host(.input-shape-rectangular) {
758
- --border-radius: var(--token-rectangular-xl, var(--token-border-radius-0, var(--token-scale-0, 0px)));
767
+ --border-radius: var(--token-shape-rectangular-xl, 0px);
759
768
  }
760
769
 
761
770
  :host(.input-size-medium) ion-input-password-toggle {
@@ -770,18 +779,31 @@
770
779
  --size: var(--token-scale-1400, 56px);
771
780
  }
772
781
 
773
- .input-wrapper-inner::after {
774
- right: 0;
775
- left: 0;
776
- top: 50%;
777
- position: absolute;
778
- height: 100%;
779
- min-height: var(--token-scale-1200, 48px);
780
- transform: translateY(-50%);
782
+ /**
783
+ * This stays at the default stacking level. The native input is positioned at
784
+ * `z-index: 1`, so a target area at that level or above paints over it and
785
+ * swallows the clicks meant for it. Tree order already puts this above the
786
+ * field box, which is all it needs to cover.
787
+ */
788
+ .input-wrapper::after {
789
+ grid-row: field;
790
+ grid-column: field-start/field-end;
791
+ align-self: stretch;
781
792
  content: "";
782
793
  cursor: text;
783
794
  }
784
795
 
796
+ /**
797
+ * The medium field is shorter than the minimum target area, so the negative
798
+ * block margin lets the target area overflow the row instead of growing it.
799
+ * The larger sizes are already at least as tall, so they need no correction.
800
+ */
801
+ :host(.input-size-medium) .input-wrapper::after {
802
+ margin-top: calc((var(--token-scale-1000, 40px) - var(--token-scale-1200, 48px)) / 2);
803
+ margin-bottom: calc((var(--token-scale-1000, 40px) - var(--token-scale-1200, 48px)) / 2);
804
+ min-height: var(--token-scale-1200, 48px);
805
+ }
806
+
785
807
  ::slotted([slot=start]),
786
808
  ::slotted([slot=end]),
787
809
  .input-clear-icon {
@@ -811,12 +833,12 @@
811
833
  margin-bottom: auto;
812
834
  width: var(--token-scale-400, 16px);
813
835
  height: var(--token-scale-400, 16px);
814
- color: var(--token-primitives-neutral-1000, #3b3b3b);
836
+ color: var(--token-primitives-neutral-1000, #383e45);
815
837
  }
816
838
 
817
839
  .input-clear-icon:focus-visible {
818
840
  border-radius: var(--token-border-radius-100, var(--token-scale-100, 4px));
819
- outline: var(--token-border-size-050, var(--token-scale-050, 2px)) var(--token-border-style-solid, solid) var(--token-border-focus-default, var(--token-primitives-blue-400, #b5c0f7));
841
+ outline: var(--token-border-size-050, var(--token-scale-050, 2px)) solid var(--token-border-focus-default, var(--token-semantics-primary-400, var(--token-primitives-blue-400, #b5c0f7)));
820
842
  opacity: 1;
821
843
  }
822
844
 
@@ -843,13 +865,12 @@
843
865
  }
844
866
 
845
867
  .label-text-wrapper {
868
+ font-family: var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");
846
869
  font-size: var(--token-font-size-300, 0.75rem);
847
870
  font-weight: var(--token-font-weight-medium, 500);
848
- letter-spacing: var(--token-font-letter-spacing-0, 0%);
849
- line-height: var(--token-font-line-height-500, var(--token-scale-500, 20px));
850
- text-decoration: none;
851
- text-transform: none;
852
- color: var(--token-primitives-neutral-1000, #3b3b3b);
871
+ letter-spacing: var(--token-font-letter-spacing-0, 0);
872
+ line-height: var(--token-font-line-height-500, 1.25rem);
873
+ color: var(--token-primitives-neutral-1000, #383e45);
853
874
  }
854
875
 
855
876
  :host(.label-floating) .label-text-wrapper {
@@ -861,21 +882,20 @@
861
882
  padding-right: 0;
862
883
  padding-top: var(--token-space-100, var(--token-scale-100, 4px));
863
884
  padding-bottom: 0;
885
+ font-family: var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");
864
886
  font-size: var(--token-font-size-300, 0.75rem);
865
887
  font-weight: var(--token-font-weight-medium, 500);
866
- letter-spacing: var(--token-font-letter-spacing-0, 0%);
867
- line-height: var(--token-font-line-height-500, var(--token-scale-500, 20px));
868
- text-decoration: none;
869
- text-transform: none;
888
+ letter-spacing: var(--token-font-letter-spacing-0, 0);
889
+ line-height: var(--token-font-line-height-500, 1.25rem);
870
890
  }
871
891
 
872
892
  .input-bottom .error-text {
873
- color: var(--token-text-danger, var(--token-semantics-danger-900, var(--token-primitives-red-900, #991b1b)));
893
+ color: var(--token-text-danger, var(--token-semantics-danger-800, var(--token-primitives-red-800, #d2002b)));
874
894
  }
875
895
 
876
896
  .input-bottom .helper-text,
877
897
  .input-bottom .counter {
878
- color: var(--token-text-subtlest, var(--token-primitives-neutral-800, #626262));
898
+ color: var(--token-text-subtlest, var(--token-primitives-neutral-800, #6c727a));
879
899
  }
880
900
 
881
901
  :host(.has-focus.ion-valid) .helper-text {
@@ -889,29 +909,29 @@
889
909
 
890
910
  @media (any-hover: hover) {
891
911
  :host(:hover) {
892
- --border-color: var(--token-primitives-neutral-600, #8c8c8c);
912
+ --border-color: var(--token-primitives-neutral-600, #7e858e);
893
913
  }
894
914
  }
895
915
  :host(.input-disabled) {
896
- --color: var(--token-primitives-neutral-500, #a2a2a2);
897
- --background: var(--token-primitives-neutral-100, #f3f3f3);
898
- --border-color: var(--token-primitives-neutral-300, #e0e0e0);
899
- --placeholder-color: var(--token-primitives-neutral-500, #a2a2a2);
916
+ --color: var(--token-primitives-neutral-500, #9fa5ad);
917
+ --background: var(--token-primitives-neutral-100, #f6f7fa);
918
+ --border-color: var(--token-primitives-neutral-300, #e6eaee);
919
+ --placeholder-color: var(--token-primitives-neutral-500, #9fa5ad);
900
920
  pointer-events: none;
901
921
  }
902
922
 
903
923
  :host(.input-disabled:not(.ion-valid)) .input-bottom .helper-text,
904
924
  :host(.input-disabled) .input-bottom .counter,
905
925
  :host(.input-disabled) .label-text-wrapper {
906
- color: var(--token-text-disabled, var(--token-primitives-neutral-500, #a2a2a2));
926
+ color: var(--token-text-disabled, var(--token-primitives-neutral-500, #9fa5ad));
907
927
  }
908
928
 
909
929
  :host(.input-disabled.has-focus.ion-valid) {
910
- --border-color: rgba(var(--token-semantics-success-base-rgb, 27, 164, 51), 0.6);
930
+ --border-color: rgba(var(--token-semantics-success-base-rgb, 74, 174, 131), 0.6);
911
931
  }
912
932
 
913
933
  :host(.input-disabled.ion-touched.ion-invalid) {
914
- --border-color: rgba(var(--token-semantics-danger-base-rgb, 229, 41, 41), 0.6);
934
+ --border-color: rgba(var(--token-semantics-danger-base-rgb, 224, 36, 58), 0.6);
915
935
  }
916
936
 
917
937
  :host(.input-disabled.ion-color) {
@@ -924,11 +944,11 @@
924
944
  }
925
945
 
926
946
  :host(.input-readonly) {
927
- --background: var(--token-primitives-neutral-100, #f3f3f3);
947
+ --background: var(--token-primitives-neutral-100, #f6f7fa);
928
948
  }
929
949
 
930
950
  :host(.has-focus) {
931
- --border-color: var(--token-border-focus-default, var(--token-primitives-blue-400, #b5c0f7));
951
+ --border-color: var(--token-border-focus-default, var(--token-semantics-primary-400, var(--token-primitives-blue-400, #b5c0f7)));
932
952
  --border-width: var(--token-border-size-050, var(--token-scale-050, 2px));
933
953
  }
934
954
 
@@ -1,7 +1,6 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import xRegular from "@phosphor-icons/core/assets/regular/x.svg";
5
4
  import { Build, Host, forceUpdate, h, } from "@stencil/core";
6
5
  import { createClearButtonPressController, createNotchController, createStartContainerController, checkInvalidState, } from "../../utils/forms/index";
7
6
  import { inheritAriaAttributes, debounceEvent, inheritAttributes, componentOnReady } from "../../utils/helpers";
@@ -579,27 +578,19 @@ export class Input {
579
578
  'input-clear-button-pressed': this.isClearButtonPressed,
580
579
  }, onPointerDown: this.clearButtonPressController.onPointerDown, onPointerCancel: this.clearButtonPressController.release, onClick: this.clearTextInput }, h("ion-icon", { "aria-hidden": "true", icon: this.inputClearIcon })));
581
580
  }
582
- /**
583
- * The ionic theme keeps the label above a field box that wraps the slots and
584
- * the input, so the label can size independently of the slotted content.
585
- */
586
- renderIonicField() {
587
- return [
588
- this.renderLabel(),
589
- h("div", { key: "inner", class: "input-wrapper-inner" }, h("div", { key: "outline", class: "input-outline" }), this.renderStartContainer(), h("div", { key: "control", class: "input-control" }, h("div", { class: "native-wrapper", onClick: this.onLabelClick }, this.renderNativeInput())), this.renderEndContainer()),
590
- ];
591
- }
592
- /**
593
- * The ios and md themes nest the label alongside the input so a floating
594
- * label can escape the control and clear the start and end slots.
595
- */
596
581
  renderStartContainer() {
597
582
  return (h("div", { key: "start", class: "input-start", ref: (el) => (this.startContainerEl = el) }, h("slot", { name: "start" })));
598
583
  }
599
584
  renderEndContainer() {
600
585
  return (h("div", { key: "end", class: "input-end" }, this.renderClearButton(), h("slot", { name: "end" })));
601
586
  }
602
- renderNativeField() {
587
+ /**
588
+ * Every theme renders the same label and control structure, aside from the md
589
+ * outline container below. The label is nested alongside the input so the ios
590
+ * and md floating label can escape the control and clear the start and end
591
+ * slots. The ionic theme lifts it above the field with grid instead.
592
+ */
593
+ renderField() {
603
594
  const hasOutlineFill = getIonTheme(this) === 'md' && this.getFill() === 'outline';
604
595
  return [
605
596
  hasOutlineFill && this.renderOutlineContainer(),
@@ -621,16 +612,9 @@ export class Input {
621
612
  if (this.clearInputIcon != null) {
622
613
  return this.clearInputIcon;
623
614
  }
624
- // Determine the theme and map to default icons
615
+ // Determine the theme and map to the default icon
625
616
  const theme = getIonTheme(this);
626
- const defaultIcons = {
627
- ios: closeCircle,
628
- ionic: xRegular,
629
- md: closeSharp,
630
- };
631
- // Get the default icon based on the theme, falling back to 'md' icon if necessary
632
- const defaultIcon = defaultIcons[theme] || defaultIcons.md;
633
- // Return the configured input clear icon or the default icon
617
+ const defaultIcon = theme === 'ios' ? closeCircle : closeSharp;
634
618
  return config.get('inputClearIcon', defaultIcon);
635
619
  }
636
620
  render() {
@@ -649,7 +633,7 @@ export class Input {
649
633
  * the input has a value or is focused.
650
634
  */
651
635
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus));
652
- return (h(Host, { key: '5f43fb688b16cf37221db78eeedbf4b337a51d65', class: createColorClasses(this.color, {
636
+ return (h(Host, { key: '82d13bcc33e5817aa3afcc0c752cdca87301b1c7', class: createColorClasses(this.color, {
653
637
  [theme]: true,
654
638
  'has-value': hasValue,
655
639
  'has-focus': hasFocus,
@@ -662,7 +646,7 @@ export class Input {
662
646
  'in-item-color': hostContext('ion-item.ion-color', this.el),
663
647
  'input-disabled': disabled,
664
648
  'input-readonly': readonly,
665
- }) }, h("label", { key: '211acead7fe50527b472ebddddca5ecc72ce1ec9', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, theme === 'ionic' ? this.renderIonicField() : this.renderNativeField(), shouldRenderHighlight && h("div", { key: 'b47126f58c61d673ec1c970f1d166284e45b5a9b', class: "input-highlight" })), this.renderBottomContent()));
649
+ }) }, h("label", { key: '53d8b948776361505a9bc47a4a2e8544d05f6856', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderField(), shouldRenderHighlight && h("div", { key: 'f4c81c4927a685d1474bb4510ad25eb51f77cd99', class: "input-highlight" })), this.renderBottomContent()));
666
650
  }
667
651
  static get is() { return "ion-input"; }
668
652
  static get encapsulation() { return "scoped"; }