voyager-ionic-core 9.0.3 → 9.0.7

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 (553) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-accordion-group.js +1 -1
  3. package/components/ion-accordion.js +1 -1
  4. package/components/ion-action-sheet.js +1 -1
  5. package/components/ion-alert.js +1 -1
  6. package/components/ion-app.js +1 -1
  7. package/components/ion-avatar.js +1 -1
  8. package/components/ion-back-button.js +1 -1
  9. package/components/ion-backdrop.js +1 -1
  10. package/components/ion-badge.js +1 -1
  11. package/components/ion-breadcrumb.js +1 -1
  12. package/components/ion-breadcrumbs.js +1 -1
  13. package/components/ion-button.js +1 -1
  14. package/components/ion-buttons.js +1 -1
  15. package/components/ion-card-content.js +1 -1
  16. package/components/ion-card-header.js +1 -1
  17. package/components/ion-card-subtitle.js +1 -1
  18. package/components/ion-card-title.js +1 -1
  19. package/components/ion-card.js +1 -1
  20. package/components/ion-checkbox.js +1 -1
  21. package/components/ion-chip.js +1 -1
  22. package/components/ion-col.js +1 -1
  23. package/components/ion-content.js +1 -1
  24. package/components/ion-datetime-button.js +1 -1
  25. package/components/ion-datetime.js +1 -1
  26. package/components/ion-fab-button.js +1 -1
  27. package/components/ion-fab-list.js +1 -1
  28. package/components/ion-fab.js +1 -1
  29. package/components/ion-footer.js +1 -1
  30. package/components/ion-grid.js +1 -1
  31. package/components/ion-header.js +1 -1
  32. package/components/ion-icon.js +1 -1
  33. package/components/ion-img.js +1 -1
  34. package/components/ion-infinite-scroll-content.js +1 -1
  35. package/components/ion-infinite-scroll.js +1 -1
  36. package/components/ion-input-otp.js +1 -1
  37. package/components/ion-input-password-toggle.js +1 -1
  38. package/components/ion-input.js +1 -1
  39. package/components/ion-item-divider.js +1 -1
  40. package/components/ion-item-group.js +1 -1
  41. package/components/ion-item-option.js +1 -1
  42. package/components/ion-item-options.js +1 -1
  43. package/components/ion-item-sliding.js +1 -1
  44. package/components/ion-item.js +1 -1
  45. package/components/ion-label.js +1 -1
  46. package/components/ion-list-header.js +1 -1
  47. package/components/ion-list.js +1 -1
  48. package/components/ion-loading.js +1 -1
  49. package/components/ion-menu-button.js +1 -1
  50. package/components/ion-menu-toggle.js +1 -1
  51. package/components/ion-menu.js +1 -1
  52. package/components/ion-modal.js +1 -1
  53. package/components/ion-nav-link.js +1 -1
  54. package/components/ion-nav.js +1 -1
  55. package/components/ion-note.js +1 -1
  56. package/components/ion-picker-column-option.js +1 -1
  57. package/components/ion-picker-column.js +1 -1
  58. package/components/ion-picker.js +1 -1
  59. package/components/ion-popover.js +1 -1
  60. package/components/ion-progress-bar.js +1 -1
  61. package/components/ion-radio-group.js +1 -1
  62. package/components/ion-radio.js +1 -1
  63. package/components/ion-range.js +1 -1
  64. package/components/ion-refresher-content.js +1 -1
  65. package/components/ion-refresher.js +1 -1
  66. package/components/ion-reorder-group.js +1 -1
  67. package/components/ion-reorder.js +1 -1
  68. package/components/ion-ripple-effect.js +1 -1
  69. package/components/ion-route-redirect.js +1 -1
  70. package/components/ion-route.js +1 -1
  71. package/components/ion-router-link.js +1 -1
  72. package/components/ion-router-outlet.js +1 -1
  73. package/components/ion-router.js +1 -1
  74. package/components/ion-row.js +1 -1
  75. package/components/ion-searchbar.js +1 -1
  76. package/components/ion-segment-button.js +1 -1
  77. package/components/ion-segment-content.js +1 -1
  78. package/components/ion-segment-view.js +1 -1
  79. package/components/ion-segment.js +1 -1
  80. package/components/ion-select-modal.js +1 -1
  81. package/components/ion-select-option.js +1 -1
  82. package/components/ion-select-popover.js +1 -1
  83. package/components/ion-select.js +1 -1
  84. package/components/ion-skeleton-text.js +1 -1
  85. package/components/ion-spinner.js +1 -1
  86. package/components/ion-split-pane.js +1 -1
  87. package/components/ion-tab-bar.js +1 -1
  88. package/components/ion-tab-button.js +1 -1
  89. package/components/ion-tab.js +1 -1
  90. package/components/ion-tabs.js +1 -1
  91. package/components/ion-text.js +1 -1
  92. package/components/ion-textarea.js +1 -1
  93. package/components/ion-thumbnail.js +1 -1
  94. package/components/ion-title.js +1 -1
  95. package/components/ion-toast.js +1 -1
  96. package/components/ion-toggle.js +1 -1
  97. package/components/ion-toolbar.js +1 -1
  98. package/components/p--cshUOAU.js +4 -0
  99. package/components/{p-BF48Oc0v.js → p-7KepMw9O.js} +1 -1
  100. package/components/p-B-5Z9djt.js +4 -0
  101. package/components/p-B02CcbPD.js +4 -0
  102. package/components/p-B4IBdPVJ.js +4 -0
  103. package/components/{p-BYJRZKHa.js → p-BMHdI-wb.js} +1 -1
  104. package/components/p-BODcC-C0.js +4 -0
  105. package/components/{p-D7wDJdFn.js → p-Ba9_OzSY.js} +1 -1
  106. package/components/{p-DMBiAyOR.js → p-BqyLLYLm.js} +1 -1
  107. package/components/{p-BQyuFxYc.js → p-C1AxSUnp.js} +1 -1
  108. package/components/p-C7r5Gja6.js +4 -0
  109. package/components/{p-D5w_FlVa.js → p-CKiqp4Vl.js} +1 -1
  110. package/components/{p-C8Ck7_Eo.js → p-C_gnmBt2.js} +1 -1
  111. package/{dist/ionic/p-DTxBioUO.js → components/p-CdrNHfZl.js} +1 -1
  112. package/components/{p-DM1gJSMP.js → p-ChkSQqfP.js} +1 -1
  113. package/components/p-ChsJlFCQ.js +4 -0
  114. package/components/{p-cEN43Ahr.js → p-CjPRDxby.js} +1 -1
  115. package/components/p-CohRJRIu.js +4 -0
  116. package/components/{p-DxhHlJln.js → p-CqvARtmt.js} +1 -1
  117. package/components/p-Ct2aBEue.js +4 -0
  118. package/components/p-CtiO6_sC.js +4 -0
  119. package/components/{p-Hp8t4RMX.js → p-CvyvLbPe.js} +1 -1
  120. package/{dist/ionic/p-BMiZX1LT.js → components/p-CwEis84J.js} +1 -1
  121. package/components/p-CxEV3Vwy.js +4 -0
  122. package/components/p-Cyajikho.js +4 -0
  123. package/components/p-D64Tyi-z.js +4 -0
  124. package/components/{p-B4lxwJ8N.js → p-DBtFJlTi.js} +1 -1
  125. package/components/p-DD92Fw3n.js +4 -0
  126. package/components/p-DDI6VLW9.js +4 -0
  127. package/components/{p-Fl7ZFU74.js → p-DHo45oj7.js} +1 -1
  128. package/components/{p-COO0eJOA.js → p-DMPsc_0r.js} +1 -1
  129. package/{dist/ionic/p-DZ6Hmc-8.js → components/p-Dbi3KqKm.js} +1 -1
  130. package/components/p-DhfJAkyd.js +4 -0
  131. package/components/p-DnGlmM4u.js +4 -0
  132. package/components/{p-CJgnoKcN.js → p-Drpw2dyl.js} +1 -1
  133. package/components/{p-5ldEpNdG.js → p-Dvyv9SMk.js} +1 -1
  134. package/components/p-GpqwNbxf.js +4 -0
  135. package/components/{p-BJr2B5hZ.js → p-HthJZjZ6.js} +1 -1
  136. package/components/p-IQN1T5zw.js +4 -0
  137. package/components/{p-DL13ieTa.js → p-KbMCbGRA.js} +1 -1
  138. package/components/p-ODGeXc3M.js +4 -0
  139. package/components/p-R4UxBukQ.js +4 -0
  140. package/components/p-TLtgwTFF.js +4 -0
  141. package/components/p-Uk13YgEc.js +4 -0
  142. package/components/{p-qAXsfUff.js → p-V1THdfzs.js} +1 -1
  143. package/components/{p-C-NbvXu4.js → p-YNnH1_Hs.js} +1 -1
  144. package/components/{p-CqbGBmqb.js → p-ZrYBjOcc.js} +1 -1
  145. package/components/p-_y7kwBO8.js +4 -0
  146. package/components/{p-GGbIHyEF.js → p-hLu-eIbb.js} +1 -1
  147. package/components/p-jsVMT15X.js +4 -0
  148. package/components/{p-TWw4e4sO.js → p-r59A3wQk.js} +1 -1
  149. package/components/p-yGD6MBgf.js +4 -0
  150. package/css/core.css +1 -1
  151. package/css/core.css.map +1 -1
  152. package/css/display.css.map +1 -1
  153. package/css/flex-utils.css.map +1 -1
  154. package/css/float-elements.css +1 -1
  155. package/css/float-elements.css.map +1 -1
  156. package/css/global.bundle.css.map +1 -1
  157. package/css/ionic.bundle.css +1 -1
  158. package/css/ionic.bundle.css.map +1 -1
  159. package/css/padding.css.map +1 -1
  160. package/css/structure.css.map +1 -1
  161. package/css/text-alignment.css.map +1 -1
  162. package/css/text-transformation.css.map +1 -1
  163. package/css/typography.css.map +1 -1
  164. package/css/utils.bundle.css +1 -1
  165. package/css/utils.bundle.css.map +1 -1
  166. package/dist/cjs/{animation-Kd1N7WTN.js → animation-DcgLg_PI.js} +3 -3
  167. package/dist/cjs/{app-globals-b1G4t26O.js → app-globals-BoFCZq0K.js} +1 -1
  168. package/dist/cjs/attribute-controller-BjTE2TOf.js +131 -0
  169. package/dist/cjs/{button-active-CQCFubJJ.js → button-active-FdsfRDY_.js} +2 -2
  170. package/dist/cjs/{capacitor-DmA66EwP.js → capacitor-C6Pp4Z7A.js} +3 -3
  171. package/dist/cjs/{format-bHU8N1g5.js → format-CVjpvAl1.js} +1 -1
  172. package/dist/cjs/{framework-delegate-d-fWfeI6.js → framework-delegate-JbKIVMzR.js} +1 -1
  173. package/dist/cjs/{haptic-Ch-X4gRx.js → haptic--4QteuuM.js} +1 -1
  174. package/dist/cjs/{helpers-7wzdhdeg.js → helpers-Cqr69qxA.js} +50 -3
  175. package/dist/cjs/{index-KiSZqhYS.js → index-B4ONUQRp.js} +1 -1
  176. package/dist/cjs/{index-C74Q3t6a.js → index-BQpSekmz.js} +7 -8
  177. package/dist/cjs/{index-DFNrCX7M.js → index-BhWiDK25.js} +9 -9
  178. package/dist/cjs/{index-DXoo08JC.js → index-BiQyIvoc.js} +54 -28
  179. package/dist/cjs/{index-DtvKGwdh.js → index-CNaZ6SYM.js} +2 -2
  180. package/dist/cjs/{index-CQfEIyLK.js → index-DUiuw_fH.js} +4 -4
  181. package/dist/cjs/index.cjs.js +19 -19
  182. package/dist/cjs/{input-shims-VJIiKBKv.js → input-shims-2AsXPZ5m.js} +16 -17
  183. package/dist/cjs/{input.utils-EHVE2RK_.js → input.utils-Becpo0ax.js} +1 -1
  184. package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
  185. package/dist/cjs/ion-action-sheet.cjs.entry.js +26 -28
  186. package/dist/cjs/ion-alert.cjs.entry.js +27 -29
  187. package/dist/cjs/ion-app_8.cjs.entry.js +72 -24
  188. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  189. package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
  190. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  191. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
  192. package/dist/cjs/ion-button_2.cjs.entry.js +23 -34
  193. package/dist/cjs/ion-card_5.cjs.entry.js +19 -7
  194. package/dist/cjs/ion-checkbox.cjs.entry.js +4 -4
  195. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  196. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  197. package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -4
  198. package/dist/cjs/ion-datetime.cjs.entry.js +34 -29
  199. package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
  200. package/dist/cjs/ion-img.cjs.entry.js +3 -3
  201. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +5 -5
  202. package/dist/cjs/ion-input-otp.cjs.entry.js +33 -8
  203. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +2 -2
  204. package/dist/cjs/ion-input.cjs.entry.js +12 -16
  205. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  206. package/dist/cjs/ion-item_8.cjs.entry.js +17 -8
  207. package/dist/cjs/ion-loading.cjs.entry.js +18 -20
  208. package/dist/cjs/ion-menu_3.cjs.entry.js +18 -19
  209. package/dist/cjs/ion-modal.cjs.entry.js +177 -172
  210. package/dist/cjs/ion-nav_2.cjs.entry.js +6 -6
  211. package/dist/cjs/ion-picker-column-option.cjs.entry.js +3 -3
  212. package/dist/cjs/ion-picker-column.cjs.entry.js +8 -9
  213. package/dist/cjs/ion-picker.cjs.entry.js +2 -2
  214. package/dist/cjs/ion-popover.cjs.entry.js +119 -42
  215. package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -3
  216. package/dist/cjs/ion-radio_2.cjs.entry.js +4 -4
  217. package/dist/cjs/ion-range.cjs.entry.js +4 -4
  218. package/dist/cjs/ion-refresher_2.cjs.entry.js +8 -9
  219. package/dist/cjs/ion-reorder_2.cjs.entry.js +6 -7
  220. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  221. package/dist/cjs/ion-route_4.cjs.entry.js +4 -4
  222. package/dist/cjs/ion-searchbar.cjs.entry.js +3 -3
  223. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  224. package/dist/cjs/ion-segment-view.cjs.entry.js +1 -1
  225. package/dist/cjs/ion-segment_2.cjs.entry.js +3 -3
  226. package/dist/cjs/ion-select-modal.cjs.entry.js +8 -10
  227. package/dist/cjs/ion-select_3.cjs.entry.js +71 -53
  228. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  229. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  230. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +6 -7
  231. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  232. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  233. package/dist/cjs/ion-textarea.cjs.entry.js +11 -15
  234. package/dist/cjs/ion-toast.cjs.entry.js +49 -51
  235. package/dist/cjs/ion-toggle.cjs.entry.js +6 -7
  236. package/dist/cjs/{ionic-global-CYJNT-2P.js → ionic-global-48ceLiJ6.js} +1 -1
  237. package/dist/cjs/ionic.cjs.js +5 -5
  238. package/dist/cjs/{ios.transition-DYGiD6gM.js → ios.transition-D85_rHf5.js} +4 -5
  239. package/dist/cjs/{item-multiple-inputs-Dv6qrMhm.js → item-multiple-inputs-C-hz7xrh.js} +1 -1
  240. package/dist/cjs/{keyboard-cHxZlTyz.js → keyboard-BlHp4a_c.js} +1 -1
  241. package/dist/cjs/{keyboard-Cix5TVkD.js → keyboard-c2_I35b-.js} +5 -3
  242. package/dist/cjs/{keyboard-controller-PtZoN2GS.js → keyboard-controller-DHS0BgXp.js} +9 -9
  243. package/dist/cjs/loader.cjs.js +4 -4
  244. package/dist/cjs/{md.transition-CrSkaoz6.js → md.transition-Ce9X1WXr.js} +4 -5
  245. package/dist/cjs/{overlays-BR21NUIG.js → overlays-CLld3axA.js} +224 -12
  246. package/dist/cjs/{select-option-render-D8ZEjYji.js → select-option-render-CzyhrkOu.js} +2 -2
  247. package/dist/cjs/{slot-mutation-controller-D6IjSEIh.js → slot-mutation-controller-ClDxh3EK.js} +73 -5
  248. package/dist/cjs/{status-tap-CNP5eD1R.js → status-tap-CDA0Y3Ad.js} +3 -3
  249. package/dist/cjs/{swipe-back-CSIJQfu5.js → swipe-back-Dy8pxJCF.js} +2 -2
  250. package/dist/collection/collection-manifest.json +1 -1
  251. package/dist/collection/components/button/button.js +21 -32
  252. package/dist/collection/components/card/card.js +17 -6
  253. package/dist/collection/components/content/content.js +62 -8
  254. package/dist/collection/components/datetime/datetime.js +27 -20
  255. package/dist/collection/components/input/input.ios.css +6 -0
  256. package/dist/collection/components/input/input.js +6 -9
  257. package/dist/collection/components/input/input.md.css +6 -0
  258. package/dist/collection/components/input-otp/input-otp.js +29 -3
  259. package/dist/collection/components/item/item.js +15 -6
  260. package/dist/collection/components/menu/menu.js +4 -3
  261. package/dist/collection/components/modal/modal.ios.css +12 -1
  262. package/dist/collection/components/modal/modal.js +31 -8
  263. package/dist/collection/components/modal/modal.md.css +12 -1
  264. package/dist/collection/components/modal/safe-area-utils.js +69 -90
  265. package/dist/collection/components/modal/utils.js +7 -0
  266. package/dist/collection/components/popover/animations/ios.enter.js +20 -6
  267. package/dist/collection/components/popover/animations/md.enter.js +19 -5
  268. package/dist/collection/components/popover/utils.js +64 -13
  269. package/dist/collection/components/select/select.ios.css +1 -1
  270. package/dist/collection/components/select/select.js +67 -38
  271. package/dist/collection/components/select/select.md.css +1 -1
  272. package/dist/collection/components/textarea/textarea.ios.css +15 -1
  273. package/dist/collection/components/textarea/textarea.js +5 -8
  274. package/dist/collection/components/textarea/textarea.md.css +15 -1
  275. package/dist/collection/index.js +1 -1
  276. package/dist/collection/utils/attribute-controller.js +126 -0
  277. package/dist/collection/utils/forms/click-controller.js +70 -0
  278. package/dist/collection/utils/forms/index.js +1 -0
  279. package/dist/collection/utils/hardware-back-button.js +41 -12
  280. package/dist/collection/utils/helpers.js +44 -3
  281. package/dist/collection/utils/logging/index.js +4 -0
  282. package/dist/collection/utils/menu-controller/index.js +2 -1
  283. package/dist/collection/utils/overlays.js +64 -4
  284. package/dist/docs.json +9 -3
  285. package/dist/esm/{animation-BFNVlYum.js → animation-DmtJpz89.js} +2 -2
  286. package/dist/esm/{app-globals-BgX0BGL1.js → app-globals-CNfpAPW6.js} +1 -1
  287. package/dist/esm/attribute-controller-DPMIcbef.js +128 -0
  288. package/dist/esm/{button-active-BfOvDr3b.js → button-active-DVk40Sjl.js} +2 -2
  289. package/dist/esm/{capacitor-CFERIeaU.js → capacitor-CHJaJ9aX.js} +1 -1
  290. package/dist/esm/{format-DDFE9jM5.js → format-Ck1cw5z7.js} +1 -1
  291. package/dist/esm/{framework-delegate-BwNhx9NR.js → framework-delegate-CDjM1vRH.js} +1 -1
  292. package/dist/esm/{haptic-Cq4UAeka.js → haptic-WXfMCob9.js} +1 -1
  293. package/dist/esm/{helpers-BSmc0nst.js → helpers-BJqKF1pr.js} +47 -4
  294. package/dist/esm/{index-DnA_7Bnx.js → index-BBASprVu.js} +4 -4
  295. package/dist/esm/{index-C23AVPx9.js → index-BpRUsN_W.js} +55 -29
  296. package/dist/esm/{index-D76bbuoi.js → index-CK8uF0iB.js} +1 -1
  297. package/dist/esm/{index-CJln0gS3.js → index-Clv8QC5L.js} +2 -3
  298. package/dist/esm/{index-BuPaALjU.js → index-DIouXecD.js} +6 -6
  299. package/dist/esm/{index-C1b9CLFg.js → index-TkLga3ma.js} +2 -2
  300. package/dist/esm/index.js +11 -13
  301. package/dist/esm/{input-shims-Dqk-Ou25.js → input-shims-C1iYF5JK.js} +5 -6
  302. package/dist/esm/{input.utils-rqoH22pW.js → input.utils-DZY_K8Po.js} +1 -1
  303. package/dist/esm/ion-accordion_2.entry.js +3 -3
  304. package/dist/esm/ion-action-sheet.entry.js +11 -13
  305. package/dist/esm/ion-alert.entry.js +11 -13
  306. package/dist/esm/ion-app_8.entry.js +72 -24
  307. package/dist/esm/ion-avatar_3.entry.js +2 -2
  308. package/dist/esm/ion-back-button.entry.js +3 -3
  309. package/dist/esm/ion-backdrop.entry.js +2 -2
  310. package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
  311. package/dist/esm/ion-button_2.entry.js +23 -34
  312. package/dist/esm/ion-card_5.entry.js +19 -7
  313. package/dist/esm/ion-checkbox.entry.js +4 -4
  314. package/dist/esm/ion-chip.entry.js +2 -2
  315. package/dist/esm/ion-col_3.entry.js +2 -2
  316. package/dist/esm/ion-datetime-button.entry.js +4 -4
  317. package/dist/esm/ion-datetime.entry.js +33 -28
  318. package/dist/esm/ion-fab_3.entry.js +3 -3
  319. package/dist/esm/ion-img.entry.js +3 -3
  320. package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
  321. package/dist/esm/ion-input-otp.entry.js +33 -8
  322. package/dist/esm/ion-input-password-toggle.entry.js +2 -2
  323. package/dist/esm/ion-input.entry.js +12 -16
  324. package/dist/esm/ion-item-option_3.entry.js +4 -4
  325. package/dist/esm/ion-item_8.entry.js +17 -8
  326. package/dist/esm/ion-loading.entry.js +7 -9
  327. package/dist/esm/ion-menu_3.entry.js +10 -11
  328. package/dist/esm/ion-modal.entry.js +115 -110
  329. package/dist/esm/ion-nav_2.entry.js +6 -6
  330. package/dist/esm/ion-picker-column-option.entry.js +3 -3
  331. package/dist/esm/ion-picker-column.entry.js +5 -6
  332. package/dist/esm/ion-picker.entry.js +2 -2
  333. package/dist/esm/ion-popover.entry.js +108 -31
  334. package/dist/esm/ion-progress-bar.entry.js +3 -3
  335. package/dist/esm/ion-radio_2.entry.js +4 -4
  336. package/dist/esm/ion-range.entry.js +4 -4
  337. package/dist/esm/ion-refresher_2.entry.js +8 -9
  338. package/dist/esm/ion-reorder_2.entry.js +6 -7
  339. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  340. package/dist/esm/ion-route_4.entry.js +4 -4
  341. package/dist/esm/ion-searchbar.entry.js +3 -3
  342. package/dist/esm/ion-segment-content.entry.js +1 -1
  343. package/dist/esm/ion-segment-view.entry.js +1 -1
  344. package/dist/esm/ion-segment_2.entry.js +3 -3
  345. package/dist/esm/ion-select-modal.entry.js +7 -9
  346. package/dist/esm/ion-select_3.entry.js +66 -48
  347. package/dist/esm/ion-spinner.entry.js +2 -2
  348. package/dist/esm/ion-split-pane.entry.js +2 -2
  349. package/dist/esm/ion-tab-bar_2.entry.js +6 -7
  350. package/dist/esm/ion-tab_2.entry.js +3 -3
  351. package/dist/esm/ion-text.entry.js +2 -2
  352. package/dist/esm/ion-textarea.entry.js +11 -15
  353. package/dist/esm/ion-toast.entry.js +7 -9
  354. package/dist/esm/ion-toggle.entry.js +6 -7
  355. package/dist/esm/{ionic-global-ZXjCXKH0.js → ionic-global-Cep6oYzK.js} +1 -1
  356. package/dist/esm/ionic.js +6 -6
  357. package/dist/esm/{ios.transition-CWAgfQ1r.js → ios.transition-B8netzsb.js} +4 -5
  358. package/dist/esm/{item-multiple-inputs-DZnIiOO_.js → item-multiple-inputs-Bd2LO7qK.js} +1 -1
  359. package/dist/esm/{keyboard-Cj8mLJeq.js → keyboard-B4Y-Gph8.js} +5 -3
  360. package/dist/esm/{keyboard-DAF8GNJ9.js → keyboard-Cmqp5iZD.js} +1 -1
  361. package/dist/esm/{keyboard-controller-DEwoa1ev.js → keyboard-controller-B2NoF7bV.js} +2 -2
  362. package/dist/esm/loader.js +5 -5
  363. package/dist/esm/{md.transition-ZuqDDdDW.js → md.transition-DNCSSiXk.js} +4 -5
  364. package/dist/esm/{overlays-DKE0DgvE.js → overlays-DmDY-El7.js} +216 -10
  365. package/dist/esm/{select-option-render-CRP_teb1.js → select-option-render-BSDT9oSA.js} +2 -2
  366. package/dist/esm/{slot-mutation-controller-B5NpUZ-N.js → slot-mutation-controller-hAS2uJ7c.js} +69 -3
  367. package/dist/esm/{status-tap-Cv9gb3ja.js → status-tap-VGRBYwiC.js} +3 -3
  368. package/dist/esm/{swipe-back-De5HlmeM.js → swipe-back-tCNYR9ZM.js} +2 -2
  369. package/dist/ionic/index.esm.js +1 -1
  370. package/dist/ionic/ionic.esm.js +1 -1
  371. package/dist/ionic/{p-b9b4e85d.entry.js → p-00cd107d.entry.js} +1 -1
  372. package/dist/ionic/p-01b7e3f2.entry.js +4 -0
  373. package/dist/ionic/{p-9c5f2691.entry.js → p-0a789930.entry.js} +1 -1
  374. package/dist/ionic/p-0b09c60e.entry.js +4 -0
  375. package/dist/ionic/p-0c32c626.entry.js +4 -0
  376. package/dist/ionic/p-0f97175e.entry.js +4 -0
  377. package/dist/ionic/p-107a81a6.entry.js +4 -0
  378. package/dist/ionic/{p-ca1b8865.entry.js → p-230f510c.entry.js} +1 -1
  379. package/dist/ionic/p-27d96a9b.entry.js +4 -0
  380. package/dist/ionic/{p-db449915.entry.js → p-28251c5c.entry.js} +1 -1
  381. package/dist/ionic/{p-099b7f9f.entry.js → p-362dcd86.entry.js} +1 -1
  382. package/dist/ionic/p-4bd80334.entry.js +4 -0
  383. package/dist/ionic/p-4d785062.entry.js +4 -0
  384. package/dist/ionic/{p-efc0cf82.entry.js → p-4e4e5919.entry.js} +1 -1
  385. package/dist/ionic/{p-837db1b9.entry.js → p-4ed3c460.entry.js} +1 -1
  386. package/dist/ionic/{p-d8c138d9.entry.js → p-4f25b926.entry.js} +1 -1
  387. package/dist/ionic/{p-271c3640.entry.js → p-539d6c8e.entry.js} +1 -1
  388. package/dist/ionic/p-5bb24bce.entry.js +4 -0
  389. package/dist/ionic/p-60780b88.entry.js +4 -0
  390. package/dist/ionic/{p-54cbb0a7.entry.js → p-62c87f3d.entry.js} +1 -1
  391. package/dist/ionic/p-6317d620.entry.js +4 -0
  392. package/dist/ionic/{p-85599fe3.entry.js → p-64ac3864.entry.js} +1 -1
  393. package/dist/ionic/{p-191a651e.entry.js → p-6c7b5930.entry.js} +1 -1
  394. package/dist/ionic/{p-7fbb3319.entry.js → p-77252596.entry.js} +1 -1
  395. package/dist/ionic/p-7ce9c6f8.entry.js +4 -0
  396. package/dist/ionic/{p-8b80d9f9.entry.js → p-7db20410.entry.js} +1 -1
  397. package/dist/ionic/{p-5d9094ac.entry.js → p-7e9c2a97.entry.js} +1 -1
  398. package/dist/ionic/p-7l6ENjIV.js +4 -0
  399. package/dist/ionic/p-82abf431.entry.js +4 -0
  400. package/dist/ionic/p-8b79061e.entry.js +4 -0
  401. package/dist/ionic/{p-6e386853.entry.js → p-8c85e250.entry.js} +1 -1
  402. package/dist/ionic/{p-90f50a65.entry.js → p-8d651adb.entry.js} +1 -1
  403. package/dist/ionic/{p-dd01be0a.entry.js → p-8db08782.entry.js} +1 -1
  404. package/dist/ionic/p-91f3cd8b.entry.js +4 -0
  405. package/dist/ionic/{p-f0fb23c1.entry.js → p-930c3538.entry.js} +1 -1
  406. package/dist/ionic/{p-ee09ac9d.entry.js → p-9ffccbf1.entry.js} +1 -1
  407. package/dist/ionic/{p-CM5OBjTW.js → p-B0jcOZOE.js} +1 -1
  408. package/dist/ionic/p-B8IuTu_r.js +4 -0
  409. package/dist/ionic/p-BNXIurCt.js +4 -0
  410. package/{components/p-6ZLn6K5e.js → dist/ionic/p-BO10QT9r.js} +1 -1
  411. package/dist/ionic/p-BOLqP2-V.js +4 -0
  412. package/dist/ionic/{p-BMPN55of.js → p-BY4FwwBp.js} +1 -1
  413. package/dist/ionic/p-BdHBcCZF.js +4 -0
  414. package/{components/p-DiuOa1vw.js → dist/ionic/p-BexAj0yw.js} +1 -1
  415. package/dist/ionic/p-Bnc1L7Rk.js +4 -0
  416. package/dist/ionic/p-BpRUsN_W.js +6 -0
  417. package/dist/ionic/p-Bppj2PE0.js +4 -0
  418. package/dist/ionic/p-BuLlVedw.js +4 -0
  419. package/dist/ionic/p-Bx5x5GJV.js +4 -0
  420. package/dist/ionic/p-C1WYZOZj.js +4 -0
  421. package/dist/ionic/p-C2LaBx3E.js +4 -0
  422. package/dist/ionic/{p-Bd72UYI2.js → p-CXs4J83x.js} +1 -1
  423. package/dist/ionic/p-Co7eql8D.js +4 -0
  424. package/dist/ionic/p-D13gXhdC.js +4 -0
  425. package/dist/ionic/p-D926OmIX.js +4 -0
  426. package/dist/ionic/{p-T71k3C35.js → p-DPNVo1nr.js} +1 -1
  427. package/{components/p-C4VpVfrJ.js → dist/ionic/p-DQXtveHv.js} +1 -1
  428. package/dist/ionic/p-DXXGkPA8.js +4 -0
  429. package/dist/ionic/{p-C8XilMh0.js → p-DfvWlTdB.js} +1 -1
  430. package/dist/ionic/p-DriE1ZAo.js +4 -0
  431. package/dist/ionic/{p-D7jHfs0Y.js → p-DxftXYZp.js} +1 -1
  432. package/dist/ionic/{p-Do3zTvCA.js → p-SEecsUh7.js} +1 -1
  433. package/dist/ionic/p-a4389f13.entry.js +4 -0
  434. package/dist/ionic/p-af11d3c6.entry.js +4 -0
  435. package/dist/ionic/p-af56702e.entry.js +4 -0
  436. package/dist/ionic/{p-561af487.entry.js → p-b3aadfe8.entry.js} +1 -1
  437. package/dist/ionic/p-b5bcbbc1.entry.js +4 -0
  438. package/dist/ionic/p-b9ed3a52.entry.js +4 -0
  439. package/dist/ionic/{p-3bba83ee.entry.js → p-bfdbe24b.entry.js} +1 -1
  440. package/dist/ionic/{p-4712a8a9.entry.js → p-c250b6b0.entry.js} +1 -1
  441. package/dist/ionic/{p-38b9375b.entry.js → p-c293f854.entry.js} +1 -1
  442. package/dist/ionic/p-c81ec0e8.entry.js +4 -0
  443. package/dist/ionic/p-c83dbc12.entry.js +4 -0
  444. package/dist/ionic/p-d0e374f8.entry.js +4 -0
  445. package/dist/ionic/p-d72accc4.entry.js +4 -0
  446. package/dist/ionic/p-d9a3dfd1.entry.js +4 -0
  447. package/dist/ionic/p-e1haAYzm.js +4 -0
  448. package/dist/ionic/p-e7ab4def.entry.js +4 -0
  449. package/dist/ionic/{p-d6755739.entry.js → p-eb989dc9.entry.js} +1 -1
  450. package/dist/ionic/p-ec259ac5.entry.js +4 -0
  451. package/dist/ionic/{p-DYUjHcuH.js → p-nCAPr1Ah.js} +1 -1
  452. package/dist/types/components/button/button.d.ts +3 -12
  453. package/dist/types/components/card/card.d.ts +3 -1
  454. package/dist/types/components/content/content.d.ts +28 -3
  455. package/dist/types/components/datetime/datetime.d.ts +5 -10
  456. package/dist/types/components/input/input.d.ts +1 -0
  457. package/dist/types/components/input-otp/input-otp.d.ts +7 -0
  458. package/dist/types/components/item/item.d.ts +1 -1
  459. package/dist/types/components/modal/modal.d.ts +9 -1
  460. package/dist/types/components/modal/safe-area-utils.d.ts +28 -14
  461. package/dist/types/components/modal/utils.d.ts +4 -0
  462. package/dist/types/components/popover/utils.d.ts +16 -3
  463. package/dist/types/components/select/select.d.ts +11 -0
  464. package/dist/types/components/textarea/textarea.d.ts +1 -0
  465. package/dist/types/components.d.ts +1 -1
  466. package/dist/types/index.d.ts +1 -1
  467. package/dist/types/stencil-public-runtime.d.ts +61 -55
  468. package/dist/types/utils/attribute-controller.d.ts +56 -0
  469. package/dist/types/utils/config.d.ts +4 -1
  470. package/dist/types/utils/forms/click-controller.d.ts +36 -0
  471. package/dist/types/utils/forms/index.d.ts +1 -0
  472. package/dist/types/utils/hardware-back-button.d.ts +11 -0
  473. package/dist/types/utils/helpers.d.ts +27 -2
  474. package/dist/types/utils/logging/index.d.ts +4 -0
  475. package/dist/types/utils/overlays.d.ts +20 -2
  476. package/hydrate/index.js +1249 -484
  477. package/hydrate/index.mjs +1249 -484
  478. package/package.json +3 -3
  479. package/components/p-1sJ0ZDPe.js +0 -4
  480. package/components/p-B1_TL6RQ.js +0 -4
  481. package/components/p-BT9-hMMz.js +0 -4
  482. package/components/p-BU8a2IhR.js +0 -4
  483. package/components/p-BW_SlU2D.js +0 -4
  484. package/components/p-BWoa-cki.js +0 -4
  485. package/components/p-BgkOsq-d.js +0 -4
  486. package/components/p-Bi-it1EH.js +0 -4
  487. package/components/p-C09TXohi.js +0 -4
  488. package/components/p-CG_zZq_I.js +0 -4
  489. package/components/p-CMRYD_yR.js +0 -4
  490. package/components/p-CNLioZ3B.js +0 -4
  491. package/components/p-CWAks_S_.js +0 -4
  492. package/components/p-Cd1WaN-0.js +0 -4
  493. package/components/p-CrAKlX71.js +0 -4
  494. package/components/p-Ctop2IWW.js +0 -4
  495. package/components/p-Cw6WocLJ.js +0 -4
  496. package/components/p-DFLJvuRK.js +0 -4
  497. package/components/p-DZRZic9C.js +0 -4
  498. package/components/p-DhNuxvJH.js +0 -4
  499. package/components/p-Djmz-ssp.js +0 -4
  500. package/components/p-DnBNYc7u.js +0 -4
  501. package/components/p-DwSXbQSz.js +0 -4
  502. package/components/p-M34T2gyX.js +0 -4
  503. package/components/p-YjMkHuvH.js +0 -4
  504. package/dist/cjs/hardware-back-button-Bu4Dzw8l.js +0 -121
  505. package/dist/cjs/index-DkNv4J_i.js +0 -10
  506. package/dist/esm/hardware-back-button-DmkiRgOT.js +0 -115
  507. package/dist/esm/index-ZjP4CjeZ.js +0 -7
  508. package/dist/ionic/p-0dcb7bb6.entry.js +0 -4
  509. package/dist/ionic/p-1347880c.entry.js +0 -4
  510. package/dist/ionic/p-1f24cb24.entry.js +0 -4
  511. package/dist/ionic/p-2ea4bb36.entry.js +0 -4
  512. package/dist/ionic/p-338a02e0.entry.js +0 -4
  513. package/dist/ionic/p-3e01c744.entry.js +0 -4
  514. package/dist/ionic/p-458715a9.entry.js +0 -4
  515. package/dist/ionic/p-4c3e50f8.entry.js +0 -4
  516. package/dist/ionic/p-5906ea6f.entry.js +0 -4
  517. package/dist/ionic/p-5cc09b40.entry.js +0 -4
  518. package/dist/ionic/p-612ea3b1.entry.js +0 -4
  519. package/dist/ionic/p-68cc89a6.entry.js +0 -4
  520. package/dist/ionic/p-77c96e08.entry.js +0 -4
  521. package/dist/ionic/p-7bfeccb3.entry.js +0 -4
  522. package/dist/ionic/p-7e394cc3.entry.js +0 -4
  523. package/dist/ionic/p-803059b6.entry.js +0 -4
  524. package/dist/ionic/p-9595e305.entry.js +0 -4
  525. package/dist/ionic/p-9ee9c5b6.entry.js +0 -4
  526. package/dist/ionic/p-BY6BzzPF.js +0 -4
  527. package/dist/ionic/p-BaeKWZ-a.js +0 -4
  528. package/dist/ionic/p-BgOvhHy_.js +0 -4
  529. package/dist/ionic/p-BhamHSw3.js +0 -4
  530. package/dist/ionic/p-BijjLYjT.js +0 -4
  531. package/dist/ionic/p-C23AVPx9.js +0 -6
  532. package/dist/ionic/p-CER8qW8Y.js +0 -4
  533. package/dist/ionic/p-CFuOr1Tu.js +0 -4
  534. package/dist/ionic/p-CIGNaXM1.js +0 -4
  535. package/dist/ionic/p-CMZYmFb4.js +0 -4
  536. package/dist/ionic/p-CkxVYPtX.js +0 -4
  537. package/dist/ionic/p-CmXuiRT6.js +0 -4
  538. package/dist/ionic/p-D5t_-oMk.js +0 -4
  539. package/dist/ionic/p-D6rHcCvc.js +0 -4
  540. package/dist/ionic/p-DLM95R4x.js +0 -4
  541. package/dist/ionic/p-D_gb-kdd.js +0 -4
  542. package/dist/ionic/p-DajLgJ4d.js +0 -4
  543. package/dist/ionic/p-ZjP4CjeZ.js +0 -4
  544. package/dist/ionic/p-a8df96c8.entry.js +0 -4
  545. package/dist/ionic/p-a8ff2489.entry.js +0 -4
  546. package/dist/ionic/p-aff52029.entry.js +0 -4
  547. package/dist/ionic/p-b3532b8d.entry.js +0 -4
  548. package/dist/ionic/p-cc4320d3.entry.js +0 -4
  549. package/dist/ionic/p-d526798a.entry.js +0 -4
  550. package/dist/ionic/p-ec00fd0d.entry.js +0 -4
  551. package/dist/ionic/p-f83b3e0c.entry.js +0 -4
  552. package/dist/ionic/p-fa50d493.entry.js +0 -4
  553. package/dist/ionic/p-zWf7R2xV.js +0 -4
package/hydrate/index.js CHANGED
@@ -5,7 +5,11 @@
5
5
 
6
6
  var stream = require('stream');
7
7
 
8
- const modeResolutionChain = [];
8
+ const modeResolver = [];
9
+
10
+ // captured here, at true module scope, before hydrateFactory shadows the
11
+ // AbortController identifier for component code below.
12
+ var $stencilNativeAbortController = AbortController;
9
13
 
10
14
  function hydrateFactory($stencilWindow, $stencilHydrateOpts, $stencilHydrateResults, $stencilAfterHydrate, $stencilHydrateResolve) {
11
15
  var globalThis = $stencilWindow;
@@ -98,8 +102,46 @@ function hydrateFactory($stencilWindow, $stencilHydrateOpts, $stencilHydrateResu
98
102
 
99
103
  var fetch, FetchError, Headers, Request, Response;
100
104
 
105
+ // Aborted when the render times out or errors, so in-flight fetch() calls
106
+ // made by component code stop holding the render's window/results alive
107
+ // instead of running to completion against a torn-down window. See #6864.
108
+ var $stencilAbortController = new $stencilNativeAbortController();
109
+
110
+ // Any AbortController a component creates itself is transparently wired to
111
+ // cascade-abort when the render times out too, so component code using the
112
+ // standard AbortController convention for its own cancellable work (axios,
113
+ // aws-sdk v3, the mongodb driver, etc.) gets cancelled automatically.
114
+ var AbortController = function () {
115
+ var controller = new $stencilNativeAbortController();
116
+ $stencilAbortController.signal.addEventListener(
117
+ 'abort',
118
+ function () {
119
+ controller.abort();
120
+ },
121
+ { once: true },
122
+ );
123
+ return controller;
124
+ };
125
+
126
+ function $stencilFetchSignal(callerSignal) {
127
+ if (!callerSignal) {
128
+ return $stencilAbortController.signal;
129
+ }
130
+ if (callerSignal.aborted || $stencilAbortController.signal.aborted) {
131
+ return callerSignal.aborted ? callerSignal : $stencilAbortController.signal;
132
+ }
133
+ var merged = new $stencilNativeAbortController();
134
+ var onAbort = function () { merged.abort(); };
135
+ callerSignal.addEventListener('abort', onAbort, { once: true });
136
+ $stencilAbortController.signal.addEventListener('abort', onAbort, { once: true });
137
+ return merged.signal;
138
+ }
139
+
101
140
  if (typeof $stencilWindow.fetch === 'function') {
102
- fetch = $stencilWindow.fetch;
141
+ var $stencilRawFetch = $stencilWindow.fetch;
142
+ fetch = $stencilWindow.fetch = function(input, init) {
143
+ return $stencilRawFetch(input, Object.assign({}, init, { signal: $stencilFetchSignal(init && init.signal) }));
144
+ };
103
145
  } else {
104
146
  fetch = $stencilWindow.fetch = function() { throw new Error('fetch() is not implemented'); };
105
147
  }
@@ -244,6 +286,8 @@ const isLogLevelEnabled = (minimum) => {
244
286
  * to indicate the library that is warning the developer.
245
287
  *
246
288
  * @param message - The string message to be logged to the console.
289
+ *
290
+ * @internal
247
291
  */
248
292
  const printIonWarning = (message, ...params) => {
249
293
  if (isLogLevelEnabled(LogLevel.WARN)) {
@@ -256,6 +300,8 @@ const printIonWarning = (message, ...params) => {
256
300
  *
257
301
  * @param message - The string message to be logged to the console.
258
302
  * @param params - Additional arguments to supply to the console.error.
303
+ *
304
+ * @internal
259
305
  */
260
306
  const printIonError = (message, ...params) => {
261
307
  if (isLogLevelEnabled(LogLevel.ERROR)) {
@@ -422,7 +468,7 @@ const appGlobalScript = initialize || (() => {});
422
468
  const globalScripts = appGlobalScript;
423
469
 
424
470
  /*
425
- Stencil Hydrate Platform v4.44.2 | MIT Licensed | https://stenciljs.com
471
+ Stencil Hydrate Platform v4.45.2 | MIT Licensed | https://stenciljs.com
426
472
  */
427
473
  var __create = Object.create;
428
474
  var __defProp = Object.defineProperty;
@@ -531,6 +577,10 @@ var require_brace_expansion = __commonJS({
531
577
  var escClose = "\0CLOSE" + Math.random() + "\0";
532
578
  var escComma = "\0COMMA" + Math.random() + "\0";
533
579
  var escPeriod = "\0PERIOD" + Math.random() + "\0";
580
+ var EXPANSION_MAX = 1e5;
581
+ var EXPANSION_MAX_LENGTH = 4e6;
582
+ var EXPANSION_MAX_DEPTH = 1e3;
583
+ var EXPANSION_MAX_REWRITES = 1e3;
534
584
  function numeric(str) {
535
585
  return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0);
536
586
  }
@@ -540,33 +590,49 @@ var require_brace_expansion = __commonJS({
540
590
  function unescapeBraces(str) {
541
591
  return str.split(escSlash).join("\\").split(escOpen).join("{").split(escClose).join("}").split(escComma).join(",").split(escPeriod).join(".");
542
592
  }
593
+ function pushAll(target, items) {
594
+ for (var i2 = 0; i2 < items.length; i2++) {
595
+ target.push(items[i2]);
596
+ }
597
+ }
543
598
  function parseCommaParts(str) {
544
- if (!str)
545
- return [""];
546
599
  var parts = [];
547
- var m = balanced("{", "}", str);
548
- if (!m)
549
- return str.split(",");
550
- var pre = m.pre;
551
- var body = m.body;
552
- var post = m.post;
553
- var p = pre.split(",");
554
- p[p.length - 1] += "{" + body + "}";
555
- var postParts = parseCommaParts(post);
556
- if (post.length) {
557
- p[p.length - 1] += postParts.shift();
558
- p.push.apply(p, postParts);
559
- }
560
- parts.push.apply(parts, p);
561
- return parts;
562
- }
563
- function expandTop(str) {
600
+ var carry = "";
601
+ for (; ; ) {
602
+ var m = balanced("{", "}", str);
603
+ if (!m) {
604
+ var tail = str.split(",");
605
+ tail[0] = carry + tail[0];
606
+ pushAll(parts, tail);
607
+ return parts;
608
+ }
609
+ var pre = m.pre;
610
+ var body = m.body;
611
+ var post = m.post;
612
+ var p = pre.split(",");
613
+ p[0] = carry + p[0];
614
+ p[p.length - 1] += "{" + body + "}";
615
+ if (!post.length) {
616
+ pushAll(parts, p);
617
+ return parts;
618
+ }
619
+ carry = p.pop();
620
+ pushAll(parts, p);
621
+ str = post;
622
+ }
623
+ }
624
+ function expandTop(str, options) {
564
625
  if (!str)
565
626
  return [];
627
+ options = options || {};
628
+ var max = options.max == null ? EXPANSION_MAX : options.max;
629
+ var maxLength = options.maxLength == null ? EXPANSION_MAX_LENGTH : options.maxLength;
630
+ var maxDepth = options.maxDepth == null ? EXPANSION_MAX_DEPTH : options.maxDepth;
631
+ var maxRewrites = options.maxRewrites == null ? EXPANSION_MAX_REWRITES : options.maxRewrites;
566
632
  if (str.substr(0, 2) === "{}") {
567
633
  str = "\\{\\}" + str.substr(2);
568
634
  }
569
- return expand2(escapeBraces(str), true).map(unescapeBraces);
635
+ return expand2(escapeBraces(str), max, maxLength, maxDepth, 0, maxRewrites, true).map(unescapeBraces);
570
636
  }
571
637
  function embrace(str) {
572
638
  return "{" + str + "}";
@@ -580,93 +646,165 @@ var require_brace_expansion = __commonJS({
580
646
  function gte(i2, y) {
581
647
  return i2 >= y;
582
648
  }
583
- function expand2(str, isTop) {
584
- var expansions = [];
585
- var m = balanced("{", "}", str);
586
- if (!m) return [str];
587
- var pre = m.pre;
588
- var post = m.post.length ? expand2(m.post, false) : [""];
589
- if (/\$$/.test(m.pre)) {
590
- for (var k = 0; k < post.length; k++) {
591
- var expansion = pre + "{" + m.body + "}" + post[k];
592
- expansions.push(expansion);
649
+ function combine(acc, pre, values, max, maxLength, dropEmpties) {
650
+ var out = [];
651
+ var length = 0;
652
+ for (var a = 0; a < acc.length; a++) {
653
+ for (var v = 0; v < values.length; v++) {
654
+ if (out.length >= max) return out;
655
+ var expansion = acc[a] + pre + values[v];
656
+ if (dropEmpties && !expansion) continue;
657
+ if (length + expansion.length > maxLength) return out;
658
+ out.push(expansion);
659
+ length += expansion.length;
660
+ }
661
+ }
662
+ return out;
663
+ }
664
+ function expandSequence(body, isAlphaSequence, max, maxLength) {
665
+ var n = body.split(/\.\./);
666
+ var N = [];
667
+ if (n[0] === void 0 || n[1] === void 0) {
668
+ return N;
669
+ }
670
+ var x = numeric(n[0]);
671
+ var y = numeric(n[1]);
672
+ var width = Math.max(n[0].length, n[1].length);
673
+ var incr = n.length === 3 && n[2] !== void 0 ? Math.max(Math.abs(numeric(n[2])), 1) : 1;
674
+ var test = lte;
675
+ var reverse = y < x;
676
+ if (reverse) {
677
+ incr *= -1;
678
+ test = gte;
679
+ }
680
+ var pad = n.some(isPadded);
681
+ var length = 0;
682
+ for (var i2 = x; test(i2, y) && N.length < max; i2 += incr) {
683
+ var c;
684
+ if (isAlphaSequence) {
685
+ c = String.fromCharCode(i2);
686
+ if (c === "\\") {
687
+ c = "";
688
+ }
689
+ } else {
690
+ c = String(i2);
691
+ if (pad) {
692
+ var need = width - c.length;
693
+ if (need > 0) {
694
+ var z = new Array(need + 1).join("0");
695
+ if (i2 < 0) {
696
+ c = "-" + z + c.slice(1);
697
+ } else {
698
+ c = z + c;
699
+ }
700
+ }
701
+ }
702
+ }
703
+ if (length + c.length > maxLength) break;
704
+ N.push(c);
705
+ length += c.length;
706
+ }
707
+ return N;
708
+ }
709
+ function expand2(str, max, maxLength, maxDepth, depth, maxRewrites, isTop) {
710
+ if (depth > maxDepth) {
711
+ return [str];
712
+ }
713
+ var acc = [""];
714
+ var rewrites = 0;
715
+ var dropEmpties = false;
716
+ var firstGroup = true;
717
+ for (; ; ) {
718
+ const m = balanced("{", "}", str);
719
+ if (!m) {
720
+ return combine(acc, str, [""], max, maxLength, dropEmpties);
721
+ }
722
+ const pre = m.pre;
723
+ if (/\$$/.test(pre)) {
724
+ acc = combine(
725
+ acc,
726
+ pre + "{" + m.body + "}",
727
+ [""],
728
+ max,
729
+ maxLength,
730
+ dropEmpties && !m.post.length
731
+ );
732
+ firstGroup = false;
733
+ if (!m.post.length) break;
734
+ str = m.post;
735
+ continue;
593
736
  }
594
- } else {
595
737
  var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
596
738
  var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
597
739
  var isSequence = isNumericSequence || isAlphaSequence;
598
740
  var isOptions = m.body.indexOf(",") >= 0;
599
741
  if (!isSequence && !isOptions) {
600
- if (m.post.match(/,(?!,).*\}/)) {
742
+ if (rewrites < maxRewrites && m.post.match(/,(?!,).*\}/)) {
743
+ rewrites++;
601
744
  str = m.pre + "{" + m.body + escClose + m.post;
602
- return expand2(str);
745
+ isTop = true;
746
+ continue;
603
747
  }
604
- return [str];
748
+ return combine(
749
+ acc,
750
+ pre + "{" + m.body + "}" + m.post,
751
+ [""],
752
+ max,
753
+ maxLength,
754
+ dropEmpties
755
+ );
605
756
  }
606
- var n;
757
+ if (firstGroup) {
758
+ dropEmpties = isTop && !isSequence;
759
+ firstGroup = false;
760
+ }
761
+ var values;
607
762
  if (isSequence) {
608
- n = m.body.split(/\.\./);
763
+ values = expandSequence(m.body, isAlphaSequence, max, maxLength);
609
764
  } else {
610
- n = parseCommaParts(m.body);
611
- if (n.length === 1) {
612
- n = expand2(n[0], false).map(embrace);
765
+ var n = parseCommaParts(m.body);
766
+ if (n.length === 1 && n[0] !== void 0) {
767
+ n = expand2(n[0], max, maxLength, maxDepth, depth + 1, maxRewrites, false).map(embrace);
613
768
  if (n.length === 1) {
614
- return post.map(function(p) {
615
- return m.pre + n[0] + p;
616
- });
769
+ acc = combine(
770
+ acc,
771
+ pre + n[0],
772
+ [""],
773
+ max,
774
+ maxLength,
775
+ dropEmpties && !m.post.length
776
+ );
777
+ if (!m.post.length) break;
778
+ str = m.post;
779
+ continue;
617
780
  }
618
781
  }
619
- }
620
- var N;
621
- if (isSequence) {
622
- var x = numeric(n[0]);
623
- var y = numeric(n[1]);
624
- var width = Math.max(n[0].length, n[1].length);
625
- var incr = n.length == 3 ? Math.abs(numeric(n[2])) : 1;
626
- var test = lte;
627
- var reverse = y < x;
628
- if (reverse) {
629
- incr *= -1;
630
- test = gte;
782
+ var dropsEmpties = dropEmpties && !m.post.length && !pre;
783
+ for (var d = 0; dropsEmpties && d < acc.length; d++) {
784
+ if (acc[d]) {
785
+ dropsEmpties = false;
786
+ }
631
787
  }
632
- var pad = n.some(isPadded);
633
- N = [];
634
- for (var i2 = x; test(i2, y); i2 += incr) {
635
- var c;
636
- if (isAlphaSequence) {
637
- c = String.fromCharCode(i2);
638
- if (c === "\\")
639
- c = "";
640
- } else {
641
- c = String(i2);
642
- if (pad) {
643
- var need = width - c.length;
644
- if (need > 0) {
645
- var z = new Array(need + 1).join("0");
646
- if (i2 < 0)
647
- c = "-" + z + c.slice(1);
648
- else
649
- c = z + c;
650
- }
788
+ values = [];
789
+ var valuesLength = 0;
790
+ outer: for (var j = 0; j < n.length; j++) {
791
+ var expanded = expand2(n[j], max, maxLength, maxDepth, depth + 1, maxRewrites, false);
792
+ for (var k = 0; k < expanded.length; k++) {
793
+ var v = expanded[k];
794
+ if (dropsEmpties && !v) continue;
795
+ if (values.length >= max || valuesLength + v.length > maxLength) {
796
+ break outer;
651
797
  }
798
+ values.push(v);
799
+ valuesLength += v.length;
652
800
  }
653
- N.push(c);
654
- }
655
- } else {
656
- N = [];
657
- for (var j = 0; j < n.length; j++) {
658
- N.push.apply(N, expand2(n[j], false));
659
- }
660
- }
661
- for (var j = 0; j < N.length; j++) {
662
- for (var k = 0; k < post.length; k++) {
663
- var expansion = pre + N[j] + post[k];
664
- if (!isTop || isSequence || expansion)
665
- expansions.push(expansion);
666
801
  }
667
802
  }
803
+ acc = combine(acc, pre, values, max, maxLength, dropEmpties && !m.post.length);
804
+ if (!m.post.length) break;
805
+ str = m.post;
668
806
  }
669
- return expansions;
807
+ return acc;
670
808
  }
671
809
  }
672
810
  });
@@ -1886,13 +2024,14 @@ var scopeSelector = (selector, scopeSelectorText, hostSelector, slotSelector) =>
1886
2024
  }
1887
2025
  }).join(", ");
1888
2026
  };
2027
+ var isScopableAtRule = (selector) => selector.startsWith("@media") || selector.startsWith("@supports") || selector.startsWith("@page") || selector.startsWith("@document") || selector.startsWith("@layer") || selector.startsWith("@container");
1889
2028
  var scopeSelectors = (cssText, scopeSelectorText, hostSelector, slotSelector, commentOriginalSelector) => {
1890
2029
  return processRules(cssText, (rule) => {
1891
2030
  let selector = rule.selector;
1892
2031
  let content = rule.content;
1893
2032
  if (rule.selector[0] !== "@") {
1894
2033
  selector = scopeSelector(rule.selector, scopeSelectorText, hostSelector, slotSelector);
1895
- } else if (rule.selector.startsWith("@media") || rule.selector.startsWith("@supports") || rule.selector.startsWith("@page") || rule.selector.startsWith("@document")) {
2034
+ } else if (isScopableAtRule(rule.selector)) {
1896
2035
  content = scopeSelectors(rule.content, scopeSelectorText, hostSelector, slotSelector);
1897
2036
  }
1898
2037
  const cssRule = {
@@ -1971,15 +2110,16 @@ var scopeCss = (cssText, scopeId2, commentOriginalSelector) => {
1971
2110
  rule.selector = placeholder + rule.selector;
1972
2111
  return rule;
1973
2112
  };
1974
- cssText = processRules(cssText, (rule) => {
2113
+ const commentSelectors = (input) => processRules(input, (rule) => {
1975
2114
  if (rule.selector[0] !== "@") {
1976
2115
  return processCommentedSelector(rule);
1977
- } else if (rule.selector.startsWith("@media") || rule.selector.startsWith("@supports") || rule.selector.startsWith("@page") || rule.selector.startsWith("@document")) {
1978
- rule.content = processRules(rule.content, processCommentedSelector);
1979
- return rule;
2116
+ }
2117
+ if (isScopableAtRule(rule.selector)) {
2118
+ rule.content = commentSelectors(rule.content);
1980
2119
  }
1981
2120
  return rule;
1982
2121
  });
2122
+ cssText = commentSelectors(cssText);
1983
2123
  }
1984
2124
  const scoped = scopeCssText(cssText, scopeId2, hostScopeId, slotScopeId);
1985
2125
  cssText = [scoped.cssText, ...commentsWithHash].join("\n");
@@ -1997,8 +2137,11 @@ var scopeCss = (cssText, scopeId2, commentOriginalSelector) => {
1997
2137
  };
1998
2138
 
1999
2139
  // src/runtime/mode.ts
2000
- var computeMode = (elm) => modeResolutionChain.map((h2) => h2(elm)).find((m) => !!m);
2001
- var setMode = (handler) => modeResolutionChain.push(handler);
2140
+ var computeMode = (elm) => modeResolver.map((h2) => h2(elm)).find((m) => !!m);
2141
+ var setMode = (handler) => {
2142
+ modeResolver.length = 0;
2143
+ modeResolver.push(handler);
2144
+ };
2002
2145
  var getMode = (ref) => {
2003
2146
  var _a2;
2004
2147
  return (_a2 = getHostRef(ref)) == null ? void 0 : _a2.$modeName$;
@@ -2205,7 +2348,12 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
2205
2348
  newClasses = [...new Set(newClasses)].filter((c) => c);
2206
2349
  classList.add(...newClasses);
2207
2350
  } else {
2208
- classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));
2351
+ let removedClasses = oldClasses.filter((c) => c && !newClasses.includes(c));
2352
+ if (initialRender && !(flags & 4 /* isHost */)) {
2353
+ const ownClasses = getOwnHostClasses(elm);
2354
+ removedClasses = removedClasses.filter((c) => !ownClasses.includes(c));
2355
+ }
2356
+ classList.remove(...removedClasses);
2209
2357
  classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));
2210
2358
  }
2211
2359
  } else if (memberName === "style") {
@@ -2326,6 +2474,18 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
2326
2474
  var ENUMERATED_ATTRIBUTES = /* @__PURE__ */ new Set(["draggable", "contenteditable", "spellcheck"]);
2327
2475
  var isEnumeratedAttribute = (attrName) => ENUMERATED_ATTRIBUTES.has(attrName) || attrName.startsWith("aria-");
2328
2476
  var parseClassListRegex = /\s/;
2477
+ var getOwnHostClasses = (elm) => {
2478
+ var _a2, _b, _c;
2479
+ const hostRef = getHostRef(elm);
2480
+ if (!hostRef || !(hostRef.$flags$ & 2 /* hasRendered */)) {
2481
+ return [];
2482
+ }
2483
+ const ownClasses = parseClassList((_b = (_a2 = hostRef.$vnode$) == null ? void 0 : _a2.$attrs$) == null ? void 0 : _b.class);
2484
+ {
2485
+ ownClasses.push((_c = BUILD.hydratedSelectorName) != null ? _c : "hydrated");
2486
+ }
2487
+ return ownClasses;
2488
+ };
2329
2489
  var parseClassList = (value) => {
2330
2490
  if (typeof value === "object" && value && "baseVal" in value) {
2331
2491
  value = value.baseVal;
@@ -2620,7 +2780,7 @@ var updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = fals
2620
2780
  if (idxInOld >= 0) {
2621
2781
  elmToMove = oldCh[idxInOld];
2622
2782
  if (elmToMove.$tag$ !== newStartVnode.$tag$) {
2623
- node = createElm(oldCh && oldCh[newStartIdx], newVNode2, idxInOld);
2783
+ node = createElm(oldCh && oldCh[newStartIdx], newVNode2, newStartIdx);
2624
2784
  } else {
2625
2785
  patch(elmToMove, newStartVnode, isInitialRender);
2626
2786
  oldCh[idxInOld] = void 0;
@@ -3229,6 +3389,19 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
3229
3389
  }
3230
3390
  }
3231
3391
  };
3392
+ var replayPendingSetterValues = (hostRef, cmpMeta) => {
3393
+ var _a2;
3394
+ const instance = hostRef.$lazyInstance$;
3395
+ if (!instance) return;
3396
+ for (const [memberName, [memberFlags]] of Object.entries((_a2 = cmpMeta.$members$) != null ? _a2 : {})) {
3397
+ if (memberFlags & 4096 /* Setter */ && hostRef.$instanceValues$.has(memberName)) {
3398
+ const pendingValue = hostRef.$instanceValues$.get(memberName);
3399
+ if (instance[memberName] !== pendingValue) {
3400
+ instance[memberName] = pendingValue;
3401
+ }
3402
+ }
3403
+ }
3404
+ };
3232
3405
  var proxyComponent = (Cstr, cmpMeta, flags) => {
3233
3406
  var _a2;
3234
3407
  const prototype = Cstr.prototype;
@@ -3258,9 +3431,8 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3258
3431
  return getValue(this, memberName);
3259
3432
  }
3260
3433
  const ref = getHostRef(this);
3261
- const instance = ref ? ref.$lazyInstance$ : prototype;
3262
- if (!instance) return;
3263
- return instance[memberName];
3434
+ if (!ref) return prototype[memberName];
3435
+ return ref.$lazyInstance$ ? ref.$lazyInstance$[memberName] : getValue(this, memberName);
3264
3436
  }
3265
3437
  },
3266
3438
  configurable: true,
@@ -3347,6 +3519,7 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
3347
3519
  }
3348
3520
  {
3349
3521
  hostRef.$flags$ &= -9 /* isConstructingInstance */;
3522
+ replayPendingSetterValues(hostRef, cmpMeta);
3350
3523
  }
3351
3524
  {
3352
3525
  hostRef.$flags$ |= 128 /* isWatchReady */;
@@ -5395,7 +5568,7 @@ function forceUpdate2() {
5395
5568
  }
5396
5569
 
5397
5570
  // src/hydrate/platform/hydrate-app.ts
5398
- function hydrateApp(win2, opts, results, afterHydrate, resolve) {
5571
+ function hydrateApp(win2, opts, results, afterHydrate, resolve, abortController) {
5399
5572
  const connectedElements = /* @__PURE__ */ new Set();
5400
5573
  const createdElements = /* @__PURE__ */ new Set();
5401
5574
  const waitingElements = /* @__PURE__ */ new Set();
@@ -5405,10 +5578,23 @@ function hydrateApp(win2, opts, results, afterHydrate, resolve) {
5405
5578
  setScopedSSR(opts);
5406
5579
  let tmrId;
5407
5580
  let ranCompleted = false;
5581
+ let modeResolverSnapshot;
5582
+ const abortedPromise = new Promise((res) => {
5583
+ if (abortController.signal.aborted) {
5584
+ res();
5585
+ } else {
5586
+ abortController.signal.addEventListener("abort", () => res(), { once: true });
5587
+ }
5588
+ });
5408
5589
  function hydratedComplete() {
5409
5590
  globalThis.clearTimeout(tmrId);
5410
5591
  createdElements.clear();
5411
5592
  connectedElements.clear();
5593
+ if (modeResolverSnapshot) {
5594
+ modeResolver.length = 0;
5595
+ modeResolver.push(...modeResolverSnapshot);
5596
+ modeResolverSnapshot = void 0;
5597
+ }
5412
5598
  if (!ranCompleted) {
5413
5599
  ranCompleted = true;
5414
5600
  try {
@@ -5426,6 +5612,7 @@ function hydrateApp(win2, opts, results, afterHydrate, resolve) {
5426
5612
  }
5427
5613
  function hydratedError(err2) {
5428
5614
  renderCatchError(opts, results, err2);
5615
+ abortController.abort();
5429
5616
  hydratedComplete();
5430
5617
  }
5431
5618
  function timeoutExceeded() {
@@ -5471,7 +5658,7 @@ function hydrateApp(win2, opts, results, afterHydrate, resolve) {
5471
5658
  if (isValidComponent(elm, opts) && results.hydratedCount < opts.maxHydrateCount) {
5472
5659
  if (!connectedElements.has(elm) && shouldHydrate(elm)) {
5473
5660
  connectedElements.add(elm);
5474
- return hydrateComponent.call(elm, win2, results, elm.nodeName, elm, waitingElements);
5661
+ return hydrateComponent.call(elm, win2, results, elm.nodeName, elm, waitingElements, abortedPromise);
5475
5662
  }
5476
5663
  }
5477
5664
  return resolved2;
@@ -5495,13 +5682,17 @@ function hydrateApp(win2, opts, results, afterHydrate, resolve) {
5495
5682
  tmrId = globalThis.setTimeout(timeoutExceeded, opts.timeout);
5496
5683
  plt.$resourcesUrl$ = new URL(opts.resourcesUrl || "./", win2.document.baseURI).href;
5497
5684
  globalScripts();
5685
+ if (Array.isArray(opts.modes)) {
5686
+ modeResolverSnapshot = modeResolver.slice();
5687
+ opts.modes.forEach((mode) => setMode(mode));
5688
+ }
5498
5689
  patchChild2(win2.document.body);
5499
5690
  waitLoop2().then(hydratedComplete).catch(hydratedError);
5500
5691
  } catch (e) {
5501
5692
  hydratedError(e);
5502
5693
  }
5503
5694
  }
5504
- async function hydrateComponent(win2, results, tagName, elm, waitingElements) {
5695
+ async function hydrateComponent(win2, results, tagName, elm, waitingElements, aborted) {
5505
5696
  tagName = tagName.toLowerCase();
5506
5697
  const Cstr = loadModule(
5507
5698
  {
@@ -5517,17 +5708,19 @@ async function hydrateComponent(win2, results, tagName, elm, waitingElements) {
5517
5708
  addHostEventListeners(this, hostRef, cmpMeta.$listeners$);
5518
5709
  try {
5519
5710
  connectedCallback(elm);
5520
- await elm.componentOnReady();
5521
- results.hydratedCount++;
5522
- const ref = getHostRef(elm);
5523
- const modeName = !(ref == null ? void 0 : ref.$modeName$) ? "$" : ref == null ? void 0 : ref.$modeName$;
5524
- if (!results.components.some((c) => c.tag === tagName && c.mode === modeName)) {
5525
- results.components.push({
5526
- tag: tagName,
5527
- mode: modeName,
5528
- count: 0,
5529
- depth: -1
5530
- });
5711
+ const wasAborted = await Promise.race([elm.componentOnReady().then(() => false), aborted.then(() => true)]);
5712
+ if (!wasAborted) {
5713
+ results.hydratedCount++;
5714
+ const ref = getHostRef(elm);
5715
+ const modeName = !(ref == null ? void 0 : ref.$modeName$) ? "$" : ref == null ? void 0 : ref.$modeName$;
5716
+ if (!results.components.some((c) => c.tag === tagName && c.mode === modeName)) {
5717
+ results.components.push({
5718
+ tag: tagName,
5719
+ mode: modeName,
5720
+ count: 0,
5721
+ depth: -1
5722
+ });
5723
+ }
5531
5724
  }
5532
5725
  } catch (e) {
5533
5726
  win2.console.error(e);
@@ -5785,6 +5978,9 @@ var setScopedSSR = (opts) => {
5785
5978
  var needsScopedSSR = () => scopedSSR;
5786
5979
  var scopedSSR = false;
5787
5980
 
5981
+ const win$1 = typeof window !== 'undefined' ? window : undefined;
5982
+ const doc = typeof document !== 'undefined' ? document : undefined;
5983
+
5788
5984
  /**
5789
5985
  * Returns `true` if the direction resolves to `rtl` for the given element.
5790
5986
  *
@@ -5888,8 +6084,8 @@ const hasLazyBuild = (stencilEl) => {
5888
6084
  * helper function should be called in componentWillLoad and assigned to a variable
5889
6085
  * that is later used in the render function.
5890
6086
  *
5891
- * This does not need to be reactive as changing attributes on the host element
5892
- * does not trigger a re-render.
6087
+ * This copies once. Use `createAttributeController` instead when the attributes can
6088
+ * change after load, since a host attribute change does not trigger a re-render.
5893
6089
  */
5894
6090
  const inheritAttributes$1 = (el, attributes = []) => {
5895
6091
  const attributeObject = {};
@@ -5908,6 +6104,8 @@ const inheritAttributes$1 = (el, attributes = []) => {
5908
6104
  * List of available ARIA attributes + `role`.
5909
6105
  * Removed deprecated attributes.
5910
6106
  * https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes
6107
+ *
6108
+ * @internal Exported for `attribute-controller.ts`, which needs the same set.
5911
6109
  */
5912
6110
  const ariaAttributes = [
5913
6111
  'role',
@@ -5979,6 +6177,44 @@ const addEventListener$1 = (el, eventName, callback, opts) => {
5979
6177
  const removeEventListener = (el, eventName, callback, opts) => {
5980
6178
  return el.removeEventListener(eventName, callback, opts);
5981
6179
  };
6180
+ /**
6181
+ * Calls back when a CSS custom property that resolves to a length changes,
6182
+ * which no event covers. The probe inherits the property from `hostEl` and
6183
+ * uses it as its height, turning a property change into a size change that
6184
+ * `ResizeObserver` can detect.
6185
+ *
6186
+ * The callback receives the probe's height. For length values, this matches
6187
+ * the resolved property value. For other values, such as `fit-content`, the
6188
+ * probe remains at zero, so the value only signals that the property changed.
6189
+ * Percentages resolve against the probe's containing block, not the element
6190
+ * where the property is ultimately used.
6191
+ *
6192
+ * Pass `initialValue` when the caller has already read the property so that
6193
+ * changes occurring before the observer's first delivery are not missed.
6194
+ * Without it, the first delivery establishes the baseline.
6195
+ */
6196
+ const onCustomPropertyChange = (hostEl, property, callback, initialValue) => {
6197
+ const doc = win$1?.document;
6198
+ if (!doc || !hostEl || typeof ResizeObserver === 'undefined') {
6199
+ return () => undefined;
6200
+ }
6201
+ const probe = doc.createElement('div');
6202
+ probe.style.cssText = `position:fixed;visibility:hidden;pointer-events:none;top:0;left:0;width:0;height:var(${property},0px);`;
6203
+ hostEl.appendChild(probe);
6204
+ let lastHeight = initialValue;
6205
+ const observer = new ResizeObserver((entries) => {
6206
+ const { height } = entries[0].contentRect;
6207
+ if (lastHeight !== undefined && height !== lastHeight) {
6208
+ callback(height);
6209
+ }
6210
+ lastHeight = height;
6211
+ });
6212
+ observer.observe(probe);
6213
+ return () => {
6214
+ observer.disconnect();
6215
+ probe.remove();
6216
+ };
6217
+ };
5982
6218
  /**
5983
6219
  * Gets the root context of a shadow dom element
5984
6220
  * On newer browsers this will be the shadowRoot,
@@ -6859,9 +7095,6 @@ class AccordionGroup {
6859
7095
  }; }
6860
7096
  }
6861
7097
 
6862
- const win$1 = typeof window !== 'undefined' ? window : undefined;
6863
- const doc = typeof document !== 'undefined' ? document : undefined;
6864
-
6865
7098
  const getCapacitor = () => {
6866
7099
  if (win$1 !== undefined) {
6867
7100
  return win$1.Capacitor;
@@ -7972,6 +8205,11 @@ const CoreDelegate = () => {
7972
8205
 
7973
8206
  let lastOverlayIndex = 0;
7974
8207
  let lastId = 0;
8208
+ /**
8209
+ * Every overlay except toast, which doesn't trap
8210
+ * focus or close on back.
8211
+ */
8212
+ const NON_TOAST_OVERLAYS = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover';
7975
8213
  const activeAnimations = new WeakMap();
7976
8214
  /**
7977
8215
  * Determines if the overlay's backdrop is always blocking (no background interaction).
@@ -8096,7 +8334,7 @@ const focusElementInOverlay = (hostToFocus, overlay) => {
8096
8334
  * Should NOT include: Toast
8097
8335
  */
8098
8336
  const trapKeyboardFocus = (ev, doc) => {
8099
- const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover');
8337
+ const lastOverlay = getPresentedOverlay(doc, NON_TOAST_OVERLAYS);
8100
8338
  const target = ev.target;
8101
8339
  /**
8102
8340
  * If no active overlay, ignore this event.
@@ -8402,7 +8640,8 @@ const setRootAriaHidden = (hidden = false) => {
8402
8640
  * Cleans up root `aria-hidden` and `backdrop-no-scroll` when
8403
8641
  * an overlay is removed from the DOM without going through
8404
8642
  * the `dismiss()` flow (e.g., when a framework unmounts the
8405
- * overlay during a route change).
8643
+ * overlay during a route change). Also releases the
8644
+ * CloseWatcher if nothing is left to close.
8406
8645
  *
8407
8646
  * Should be called from an overlay's `disconnectedCallback`
8408
8647
  * when the overlay was still presented at the time of removal.
@@ -8432,7 +8671,9 @@ const applyRootLock = (el) => {
8432
8671
  };
8433
8672
  /**
8434
8673
  * Re-applies the root lock that `cleanupRootFocusTrapAccessibility()` released.
8435
- * Call from `connectedCallback` when the overlay is still presented.
8674
+ * Call from `connectedCallback` when the overlay is still presented. Also
8675
+ * re-arms the CloseWatcher, which every overlay needs, so that happens
8676
+ * before the `locksAppRoot` check.
8436
8677
  *
8437
8678
  * A synchronous move keeps the overlay connected, so the lock survives. A
8438
8679
  * detach with a re-insert in a later task releases it, which is the shape a
@@ -8721,6 +8962,40 @@ const safeCall = (handler, arg) => {
8721
8962
  }
8722
8963
  return undefined;
8723
8964
  };
8965
+ /**
8966
+ * `--width` and `--height` values that leave an overlay spanning the viewport
8967
+ * on that axis, so it reaches both edges. An empty value means the property
8968
+ * was never overridden.
8969
+ */
8970
+ const FULLSCREEN_SIZES = ['', '100%', '100vw', '100vh', '100dvw', '100dvh', '100svw', '100svh'];
8971
+ /**
8972
+ * `--width` and `--height` values that size an overlay to its content, leaving
8973
+ * the rendered size dependent on the content and on `--max-width` or
8974
+ * `--max-height`.
8975
+ */
8976
+ const CONTENT_SIZES = ['auto', 'fit-content', 'min-content', 'max-content'];
8977
+ /**
8978
+ * How an overlay's `--width` or `--height` determines its used size:
8979
+ *
8980
+ * `fullscreen` spans the viewport on that axis. `content` depends on the
8981
+ * overlay's content, so its used size is not known until layout. `definite`
8982
+ * resolves independently of the overlay's content size.
8983
+ *
8984
+ * Values are lowercased because CSS keywords are case-insensitive, while a
8985
+ * custom property preserves the case in which it was authored. Content values
8986
+ * are matched as a suffix so vendor-prefixed values such as `-moz-fit-content`
8987
+ * are recognized.
8988
+ */
8989
+ const getOverlaySizeType = (size) => {
8990
+ const value = size.trim().toLowerCase();
8991
+ if (FULLSCREEN_SIZES.includes(value)) {
8992
+ return 'fullscreen';
8993
+ }
8994
+ if (CONTENT_SIZES.some((keyword) => value.endsWith(keyword))) {
8995
+ return 'content';
8996
+ }
8997
+ return 'definite';
8998
+ };
8724
8999
  const BACKDROP = 'backdrop';
8725
9000
  const GESTURE = 'gesture';
8726
9001
  const OVERLAY_GESTURE_PRIORITY = 39;
@@ -12137,6 +12412,128 @@ class Breadcrumbs {
12137
12412
  }; }
12138
12413
  }
12139
12414
 
12415
+ /**
12416
+ * Copies a set of attributes off the host element so they can be applied to an element
12417
+ * inside the shadow root, then keeps that copy in sync as the host attributes change.
12418
+ * Using `inheritAttributes` alone copies once at load, so anything written to the host
12419
+ * afterwards never reaches the element the assistive technology reads.
12420
+ *
12421
+ * Create the controller in `componentWillLoad`. It takes the initial copy and starts
12422
+ * watching right away, so `init()` is only needed to resume after a move.
12423
+ *
12424
+ * Two things to know before adopting it. Only the initial copy removes the attributes
12425
+ * from the host, so a value written after load sits on the host as well as on the
12426
+ * element it is applied to, which matters if the host has a role of its own. And an
12427
+ * attribute from the initial markup can never be removed, only overwritten, since the
12428
+ * copy already took it off the host and a `removeAttribute` there fires no mutation.
12429
+ * An empty string works for `aria-label` and friends, but a token-valued attribute
12430
+ * has to be set to its default instead, so `aria-pressed="false"` rather than empty.
12431
+ *
12432
+ * @internal
12433
+ * @param el The host element to copy from and watch.
12434
+ * @param attributes The attributes to copy and watch.
12435
+ * @param onChange Called after `attributes` changes, so the component can re-render.
12436
+ * @param hostOwnedAttributes Attributes copied at load but not watched. Use it for
12437
+ * attributes the component renders on its own `<Host>`, since a later change to one of
12438
+ * those is the component's own write, and for attributes that would put a second node in
12439
+ * the accessibility tree if the host kept a copy alongside the one we apply.
12440
+ */
12441
+ const createAttributeController = (el, attributes, onChange, hostOwnedAttributes = []) => {
12442
+ let inherited = inheritAttributes$1(el, attributes);
12443
+ let observer;
12444
+ const watchedAttributes = attributes.filter((attr) => !hostOwnedAttributes.includes(attr));
12445
+ /**
12446
+ * The names still on the host, which is everything written after load. The initial
12447
+ * copy removes what it captures, so a missing attribute only counts as a removal
12448
+ * when its name is in here.
12449
+ */
12450
+ const hostWritten = new Set();
12451
+ const setPresence = (name, value) => {
12452
+ if (value === null) {
12453
+ hostWritten.delete(name);
12454
+ }
12455
+ else {
12456
+ hostWritten.add(name);
12457
+ }
12458
+ };
12459
+ /**
12460
+ * Nothing is watching while the host is out of the tree, since `disconnectedCallback`
12461
+ * calls `destroy()`, and `forceUpdate` is a no-op on a disconnected host anyway. So
12462
+ * the host has to be re-read on the way back in.
12463
+ */
12464
+ const readMissedChanges = () => {
12465
+ const changed = {};
12466
+ for (const name of watchedAttributes) {
12467
+ const value = el.getAttribute(name);
12468
+ const wasOnHost = hostWritten.has(name);
12469
+ setPresence(name, value);
12470
+ /**
12471
+ * An attribute that was never written to the host is missing because the initial
12472
+ * copy took it, not because the developer cleared it.
12473
+ */
12474
+ if ((value === null && !wasOnHost) || value === inherited[name]) {
12475
+ continue;
12476
+ }
12477
+ changed[name] = value;
12478
+ }
12479
+ if (Object.keys(changed).length > 0) {
12480
+ inherited = { ...inherited, ...changed };
12481
+ onChange();
12482
+ }
12483
+ };
12484
+ const init = () => {
12485
+ // There is no MutationObserver in SSR or the hydrate build.
12486
+ if (observer !== undefined || watchedAttributes.length === 0 || win$1 === undefined || !('MutationObserver' in win$1)) {
12487
+ return;
12488
+ }
12489
+ readMissedChanges();
12490
+ observer = new MutationObserver((mutations) => {
12491
+ const changed = {};
12492
+ for (const mutation of mutations) {
12493
+ const name = mutation.attributeName;
12494
+ // A removed attribute reads back as null, which clears it from the element the
12495
+ // values are spread onto.
12496
+ const value = el.getAttribute(name);
12497
+ setPresence(name, value);
12498
+ changed[name] = value;
12499
+ }
12500
+ inherited = { ...inherited, ...changed };
12501
+ onChange();
12502
+ });
12503
+ observer.observe(el, { attributeFilter: watchedAttributes });
12504
+ };
12505
+ const destroy = () => {
12506
+ observer?.disconnect();
12507
+ observer = undefined;
12508
+ };
12509
+ /**
12510
+ * Has to run after the initial copy, because that copy removes the attributes from the
12511
+ * host and an observer armed any earlier would read the removal as a developer clearing
12512
+ * them.
12513
+ */
12514
+ init();
12515
+ return {
12516
+ get attributes() {
12517
+ return inherited;
12518
+ },
12519
+ init,
12520
+ destroy,
12521
+ };
12522
+ };
12523
+ /**
12524
+ * The `createAttributeController` equivalent of `inheritAriaAttributes`, which copies and
12525
+ * watches every ARIA attribute plus `role`.
12526
+ *
12527
+ * @internal
12528
+ * @param el The host element to copy from and watch.
12529
+ * @param onChange Called after the attributes change, so the component can re-render.
12530
+ * @param hostOwnedAttributes Attributes copied at load but not watched. See
12531
+ * `createAttributeController`.
12532
+ */
12533
+ const createAriaAttributeController = (el, onChange, hostOwnedAttributes = []) => {
12534
+ return createAttributeController(el, ariaAttributes, onChange, hostOwnedAttributes);
12535
+ };
12536
+
12140
12537
  const buttonIosCss = () => `:host{--overflow:hidden;--ripple-color:currentColor;--border-width:initial;--border-color:initial;--border-style:initial;--color-activated:var(--color);--color-focused:var(--color);--color-hover:var(--color);--box-shadow:none;display:inline-block;width:auto;color:var(--color);font-family:var(--ion-font-family, inherit);text-align:center;text-decoration:none;white-space:normal;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:top;vertical-align:-webkit-baseline-middle;-webkit-font-kerning:none;font-kerning:none}:host(.button-disabled){cursor:default;opacity:0.5;pointer-events:none}:host(.button-solid){--background:var(--ion-color-primary, #0054e9);--color:var(--ion-color-primary-contrast, #fff)}:host(.button-outline){--border-color:var(--ion-color-primary, #0054e9);--background:transparent;--color:var(--ion-color-primary, #0054e9)}:host(.button-clear){--border-width:0;--background:transparent;--color:var(--ion-color-primary, #0054e9)}:host(.button-block){display:block}:host(.button-block) .button-native{margin-left:0;margin-right:0;width:100%;clear:both;contain:content}:host(.button-block) .button-native::after{clear:both}:host(.button-full){display:block}:host(.button-full) .button-native{margin-left:0;margin-right:0;width:100%;contain:content}:host(.button-full:not(.button-round)) .button-native{border-radius:0;border-right-width:0;border-left-width:0}.button-native{border-radius:var(--border-radius);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;width:100%;height:100%;min-height:inherit;-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:var(--background);line-height:1;-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);contain:layout style;cursor:pointer;opacity:var(--opacity);overflow:var(--overflow);z-index:0;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}.button-native::-moz-focus-inner{border:0}.button-inner{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;z-index:1}::slotted([slot=start]),::slotted([slot=end]){-ms-flex-negative:0;flex-shrink:0}::slotted(ion-icon){font-size:1.35em;pointer-events:none}::slotted(ion-icon[slot=start]){-webkit-margin-start:-0.3em;margin-inline-start:-0.3em;-webkit-margin-end:0.3em;margin-inline-end:0.3em;margin-top:0;margin-bottom:0}::slotted(ion-icon[slot=end]){-webkit-margin-start:0.3em;margin-inline-start:0.3em;-webkit-margin-end:-0.2em;margin-inline-end:-0.2em;margin-top:0;margin-bottom:0}ion-ripple-effect{color:var(--ripple-color)}.button-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0}:host(.ion-focused){color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}@media (any-hover: hover){:host(:hover){color:var(--color-hover)}:host(:hover) .button-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}}:host(.ion-activated){color:var(--color-activated)}:host(.ion-activated) .button-native::after{background:var(--background-activated);opacity:var(--background-activated-opacity)}:host(.button-solid.ion-color) .button-native{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.button-outline.ion-color) .button-native{border-color:var(--ion-color-base);background:transparent;color:var(--ion-color-base)}:host(.button-clear.ion-color) .button-native{background:transparent;color:var(--ion-color-base)}:host(.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{color:var(--ion-toolbar-color, var(--color))}:host(.button-outline.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{border-color:var(--ion-toolbar-color, var(--color, var(--border-color)))}:host(.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{background:var(--ion-toolbar-color, var(--background));color:var(--ion-toolbar-background, var(--color))}:host{--border-radius:14px;--padding-top:13px;--padding-bottom:13px;--padding-start:1em;--padding-end:1em;--transition:background-color, opacity 100ms linear;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:4px;margin-bottom:4px;min-height:3.1em;font-size:min(1rem, 48px);font-weight:500;letter-spacing:0}:host(.button-solid){--background-activated:var(--ion-color-primary-shade, #004acd);--background-focused:var(--ion-color-primary-shade, #004acd);--background-hover:var(--ion-color-primary-tint, #1a65eb);--background-activated-opacity:1;--background-focused-opacity:1;--background-hover-opacity:1}:host(.button-outline){--border-radius:14px;--border-width:1px;--border-style:solid;--background-activated:var(--ion-color-primary, #0054e9);--background-focused:var(--ion-color-primary, #0054e9);--background-hover:transparent;--background-focused-opacity:.1;--color-activated:var(--ion-color-primary-contrast, #fff)}:host(.button-clear){--background-activated:transparent;--background-activated-opacity:0;--background-focused:var(--ion-color-primary, #0054e9);--background-hover:transparent;--background-focused-opacity:.1;font-size:min(1.0625rem, 51px);font-weight:normal}:host(.in-buttons){font-size:clamp(17px, 1.0625rem, 21.08px);font-weight:400}:host(.button-large){--border-radius:16px;--padding-top:17px;--padding-start:1em;--padding-end:1em;--padding-bottom:17px;min-height:3.1em;font-size:min(1.25rem, 60px)}:host(.button-small){--border-radius:6px;--padding-top:4px;--padding-start:0.9em;--padding-end:0.9em;--padding-bottom:4px;min-height:2.1em;font-size:min(0.8125rem, 39px)}:host(.button-round){--border-radius:999px;--padding-top:0;--padding-start:26px;--padding-end:26px;--padding-bottom:0}:host(.button-strong){font-weight:600}:host(.button-has-icon-only){--padding-top:0;--padding-bottom:var(--padding-top);--padding-end:var(--padding-top);--padding-start:var(--padding-end);min-width:clamp(30px, 2.125em, 60px);min-height:clamp(30px, 2.125em, 60px)}::slotted(ion-icon[slot=icon-only]){font-size:clamp(15.12px, 1.125em, 43.02px)}:host(.button-small.button-has-icon-only){min-width:clamp(23px, 2.16em, 54px);min-height:clamp(23px, 2.16em, 54px)}:host(.button-small) ::slotted(ion-icon[slot=icon-only]){font-size:clamp(12.1394px, 1.308125em, 40.1856px)}:host(.button-large.button-has-icon-only){min-width:clamp(46px, 2.5em, 78px);min-height:clamp(46px, 2.5em, 78px)}:host(.button-large) ::slotted(ion-icon[slot=icon-only]){font-size:clamp(15.12px, 0.9em, 43.056px)}:host(.button-outline.ion-focused.ion-color) .button-native,:host(.button-clear.ion-focused.ion-color) .button-native{color:var(--ion-color-base)}:host(.button-outline.ion-focused.ion-color) .button-native::after,:host(.button-clear.ion-focused.ion-color) .button-native::after{background:var(--ion-color-base)}:host(.button-solid.ion-color.ion-focused) .button-native::after{background:var(--ion-color-shade)}@media (any-hover: hover){:host(.button-clear:not(.ion-activated):hover),:host(.button-outline:not(.ion-activated):hover){opacity:0.6}:host(.button-clear.ion-color:hover) .button-native,:host(.button-outline.ion-color:hover) .button-native{color:var(--ion-color-base)}:host(.button-clear.ion-color:hover) .button-native::after,:host(.button-outline.ion-color:hover) .button-native::after{background:transparent}:host(.button-solid.ion-color:hover) .button-native::after{background:var(--ion-color-tint)}:host(:hover.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color):not(.ion-activated)) .button-native::after{background:#fff;opacity:0.1}}:host(.button-clear.ion-activated){opacity:0.4}:host(.button-outline.ion-activated.ion-color) .button-native{color:var(--ion-color-contrast)}:host(.button-outline.ion-activated.ion-color) .button-native::after{background:var(--ion-color-base)}:host(.button-solid.ion-color.ion-activated) .button-native::after{background:var(--ion-color-shade)}:host(.button-outline.ion-activated.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{background:var(--ion-toolbar-color, var(--color));color:var(--ion-toolbar-background, var(--background), var(--ion-color-primary-contrast, #fff))}`;
12141
12538
 
12142
12539
  const buttonMdCss = () => `:host{--overflow:hidden;--ripple-color:currentColor;--border-width:initial;--border-color:initial;--border-style:initial;--color-activated:var(--color);--color-focused:var(--color);--color-hover:var(--color);--box-shadow:none;display:inline-block;width:auto;color:var(--color);font-family:var(--ion-font-family, inherit);text-align:center;text-decoration:none;white-space:normal;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:top;vertical-align:-webkit-baseline-middle;-webkit-font-kerning:none;font-kerning:none}:host(.button-disabled){cursor:default;opacity:0.5;pointer-events:none}:host(.button-solid){--background:var(--ion-color-primary, #0054e9);--color:var(--ion-color-primary-contrast, #fff)}:host(.button-outline){--border-color:var(--ion-color-primary, #0054e9);--background:transparent;--color:var(--ion-color-primary, #0054e9)}:host(.button-clear){--border-width:0;--background:transparent;--color:var(--ion-color-primary, #0054e9)}:host(.button-block){display:block}:host(.button-block) .button-native{margin-left:0;margin-right:0;width:100%;clear:both;contain:content}:host(.button-block) .button-native::after{clear:both}:host(.button-full){display:block}:host(.button-full) .button-native{margin-left:0;margin-right:0;width:100%;contain:content}:host(.button-full:not(.button-round)) .button-native{border-radius:0;border-right-width:0;border-left-width:0}.button-native{border-radius:var(--border-radius);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;width:100%;height:100%;min-height:inherit;-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:var(--background);line-height:1;-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);contain:layout style;cursor:pointer;opacity:var(--opacity);overflow:var(--overflow);z-index:0;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}.button-native::-moz-focus-inner{border:0}.button-inner{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;z-index:1}::slotted([slot=start]),::slotted([slot=end]){-ms-flex-negative:0;flex-shrink:0}::slotted(ion-icon){font-size:1.35em;pointer-events:none}::slotted(ion-icon[slot=start]){-webkit-margin-start:-0.3em;margin-inline-start:-0.3em;-webkit-margin-end:0.3em;margin-inline-end:0.3em;margin-top:0;margin-bottom:0}::slotted(ion-icon[slot=end]){-webkit-margin-start:0.3em;margin-inline-start:0.3em;-webkit-margin-end:-0.2em;margin-inline-end:-0.2em;margin-top:0;margin-bottom:0}ion-ripple-effect{color:var(--ripple-color)}.button-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0}:host(.ion-focused){color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}@media (any-hover: hover){:host(:hover){color:var(--color-hover)}:host(:hover) .button-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}}:host(.ion-activated){color:var(--color-activated)}:host(.ion-activated) .button-native::after{background:var(--background-activated);opacity:var(--background-activated-opacity)}:host(.button-solid.ion-color) .button-native{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.button-outline.ion-color) .button-native{border-color:var(--ion-color-base);background:transparent;color:var(--ion-color-base)}:host(.button-clear.ion-color) .button-native{background:transparent;color:var(--ion-color-base)}:host(.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{color:var(--ion-toolbar-color, var(--color))}:host(.button-outline.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{border-color:var(--ion-toolbar-color, var(--color, var(--border-color)))}:host(.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{background:var(--ion-toolbar-color, var(--background));color:var(--ion-toolbar-background, var(--color))}:host{--border-radius:4px;--padding-top:8px;--padding-bottom:8px;--padding-start:1.1em;--padding-end:1.1em;--transition:box-shadow 280ms cubic-bezier(.4, 0, .2, 1), background-color 15ms linear, color 15ms linear;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:4px;margin-bottom:4px;min-height:36px;font-size:0.875rem;font-weight:500;letter-spacing:0.06em;text-transform:uppercase}:host(.button-solid){--background-activated:transparent;--background-hover:var(--ion-color-primary-contrast, #fff);--background-focused:var(--ion-color-primary-contrast, #fff);--background-activated-opacity:0;--background-focused-opacity:.24;--background-hover-opacity:.08;--box-shadow:0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12)}:host(.button-solid.ion-activated){--box-shadow:0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12)}:host(.button-outline){--border-width:2px;--border-style:solid;--box-shadow:none;--background-activated:transparent;--background-focused:var(--ion-color-primary, #0054e9);--background-hover:var(--ion-color-primary, #0054e9);--background-activated-opacity:0;--background-focused-opacity:.12;--background-hover-opacity:.04}:host(.button-outline.ion-activated.ion-color) .button-native{background:transparent}:host(.button-clear){--background-activated:transparent;--background-focused:var(--ion-color-primary, #0054e9);--background-hover:var(--ion-color-primary, #0054e9);--background-activated-opacity:0;--background-focused-opacity:.12;--background-hover-opacity:.04}:host(.button-round){--border-radius:999px;--padding-top:0;--padding-start:26px;--padding-end:26px;--padding-bottom:0}:host(.button-large){--padding-top:14px;--padding-start:1em;--padding-end:1em;--padding-bottom:14px;min-height:2.8em;font-size:1.25rem}:host(.button-small){--padding-top:4px;--padding-start:0.9em;--padding-end:0.9em;--padding-bottom:4px;min-height:2.1em;font-size:0.8125rem}:host(.button-strong){font-weight:bold}:host(.button-has-icon-only){--padding-top:0;--padding-bottom:var(--padding-top);--padding-end:var(--padding-top);--padding-start:var(--padding-end);min-width:clamp(30px, 2.86em, 60px);min-height:clamp(30px, 2.86em, 60px)}::slotted(ion-icon[slot=icon-only]){font-size:clamp(15.104px, 1.6em, 43.008px)}:host(.button-small.button-has-icon-only){min-width:clamp(23px, 2.16em, 54px);min-height:clamp(23px, 2.16em, 54px)}:host(.button-small) ::slotted(ion-icon[slot=icon-only]){font-size:clamp(13.002px, 1.23125em, 40.385px)}:host(.button-large.button-has-icon-only){min-width:clamp(46px, 2.5em, 78px);min-height:clamp(46px, 2.5em, 78px)}:host(.button-large) ::slotted(ion-icon[slot=icon-only]){font-size:clamp(15.008px, 1.4em, 43.008px)}:host(.button-solid.ion-color.ion-focused) .button-native::after{background:var(--ion-color-contrast)}:host(.button-clear.ion-color.ion-focused) .button-native::after,:host(.button-outline.ion-color.ion-focused) .button-native::after{background:var(--ion-color-base)}@media (any-hover: hover){:host(.button-solid.ion-color:hover) .button-native::after{background:var(--ion-color-contrast)}:host(.button-clear.ion-color:hover) .button-native::after,:host(.button-outline.ion-color:hover) .button-native::after{background:var(--ion-color-base)}}:host(.button-outline.ion-activated.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{background:var(--ion-toolbar-background, var(--color));color:var(--ion-toolbar-color, var(--background), var(--ion-color-primary-contrast, #fff))}`;
@@ -12161,7 +12558,6 @@ class Button {
12161
12558
  this.inToolbar = false;
12162
12559
  this.formButtonEl = null;
12163
12560
  this.formEl = null;
12164
- this.inheritedAttributes = {};
12165
12561
  /**
12166
12562
  * If `true`, the button only has an icon.
12167
12563
  */
@@ -12220,22 +12616,6 @@ class Button {
12220
12616
  this.formButtonEl.disabled = disabled;
12221
12617
  }
12222
12618
  }
12223
- /**
12224
- * This component is used within the `ion-input-password-toggle` component
12225
- * to toggle the visibility of the password input.
12226
- * These attributes need to update based on the state of the password input.
12227
- * Otherwise, the values will be stale.
12228
- *
12229
- * @param newValue
12230
- * @param _oldValue
12231
- * @param propName
12232
- */
12233
- onAriaChanged(newValue, _oldValue, propName) {
12234
- this.inheritedAttributes = {
12235
- ...this.inheritedAttributes,
12236
- [propName]: newValue,
12237
- };
12238
- }
12239
12619
  /**
12240
12620
  * This is responsible for rendering a hidden native
12241
12621
  * button element inside the associated form. This allows
@@ -12273,7 +12653,21 @@ class Button {
12273
12653
  this.inToolbar = !!this.el.closest('ion-buttons');
12274
12654
  this.inListHeader = !!this.el.closest('ion-list-header');
12275
12655
  this.inItem = !!this.el.closest('ion-item') || !!this.el.closest('ion-item-divider');
12276
- this.inheritedAttributes = inheritAriaAttributes(this.el);
12656
+ /**
12657
+ * The ARIA state has to stay live, since `ion-input-password-toggle` rewrites
12658
+ * `aria-label` and `aria-pressed` on its `ion-button` on every toggle. We keep
12659
+ * `aria-disabled` out of the watch because the `<Host>` below renders it from the
12660
+ * `disabled` prop and those writes would clobber a developer's value, and `role` out
12661
+ * because a post-load write stays on the host too, which would put the same role on
12662
+ * two elements in the accessibility tree.
12663
+ */
12664
+ this.ariaController = createAriaAttributeController(this.el, () => forceUpdate(), ['aria-disabled', 'role']);
12665
+ }
12666
+ connectedCallback() {
12667
+ this.ariaController?.init();
12668
+ }
12669
+ disconnectedCallback() {
12670
+ this.ariaController?.destroy();
12277
12671
  }
12278
12672
  get hasIconOnly() {
12279
12673
  return !!this.el.querySelector('[slot="icon-only"]');
@@ -12348,7 +12742,8 @@ class Button {
12348
12742
  }
12349
12743
  render() {
12350
12744
  const mode = getIonMode$1(this);
12351
- const { buttonType, type, disabled, rel, target, size, href, color, expand, hasIconOnly, shape, strong, inheritedAttributes, } = this;
12745
+ const { buttonType, type, disabled, rel, target, size, href, color, expand, hasIconOnly, shape, strong } = this;
12746
+ const inheritedAttributes = this.ariaController?.attributes ?? {};
12352
12747
  const finalSize = size === undefined && this.inItem ? 'small' : size;
12353
12748
  const TagType = href === undefined ? 'button' : 'a';
12354
12749
  const attrs = TagType === 'button'
@@ -12373,7 +12768,7 @@ class Button {
12373
12768
  {
12374
12769
  type !== 'button' && this.renderHiddenButton();
12375
12770
  }
12376
- return (hAsync(Host, { key: '82c71b8cbf3bb51e443f4aa99c375bf5be6b8dc7', onClick: this.handleClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
12771
+ return (hAsync(Host, { key: 'fd42d1a5836c148cddd6c474c130ce4bb36286ea', onClick: this.handleClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
12377
12772
  [mode]: true,
12378
12773
  [buttonType]: true,
12379
12774
  [`${buttonType}-${expand}`]: expand !== undefined,
@@ -12388,21 +12783,12 @@ class Button {
12388
12783
  'button-disabled': disabled,
12389
12784
  'ion-activatable': true,
12390
12785
  'ion-focusable': true,
12391
- }) }, hAsync(TagType, { key: '53f4cb366bac796ab38f609e858bc1a55fce7641', ...attrs, class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur, ...inheritedAttributes }, hAsync("span", { key: '40e127fc11c889e77b8bf02e8714f0dea83bfce7', class: "button-inner" }, hAsync("slot", { key: 'e11c8c86d3f0894658a8999129425c9c111f5540', name: "icon-only", onSlotchange: this.slotChanged }), hAsync("slot", { key: '105ea9259ea17036359e6fe7eced8b267ab8e0f6', name: "start" }), hAsync("slot", { key: '0d7b0966e328a5b10b0562dacbd638dfd08d92af' }), hAsync("slot", { key: 'c542b40685802464d69f57ecc0a7c3465d24a417', name: "end" })), mode === 'md' && hAsync("ion-ripple-effect", { key: '46df4cbeb057b0a8daab92226121d8bbb8c0ee07', type: this.rippleType }))));
12786
+ }) }, hAsync(TagType, { key: '97dbf689ea912aed38182dbe0097a2bf5b768816', ...attrs, class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur, ...inheritedAttributes }, hAsync("span", { key: '0f1ff4c667e95a8e3dc787fee43fe529b95477b7', class: "button-inner" }, hAsync("slot", { key: 'fc1e8b8080d02828c392e9edd6a70e0255435f82', name: "icon-only", onSlotchange: this.slotChanged }), hAsync("slot", { key: 'c1ece4c0d935f4d023d38fee4cf529dd4123d487', name: "start" }), hAsync("slot", { key: '970db0ee1e3633bc9cbff52eca446e4891ff6851' }), hAsync("slot", { key: 'ef8d7d894f01dbe881f381b985620c2a482e55fe', name: "end" })), mode === 'md' && hAsync("ion-ripple-effect", { key: 'fea5e49a54b0efd07b1bd35d9fd5d2d862a2bac1', type: this.rippleType }))));
12392
12787
  }
12393
12788
  get el() { return getElement(this); }
12394
12789
  static get watchers() { return {
12395
12790
  "disabled": [{
12396
12791
  "disabledChanged": 0
12397
- }],
12398
- "aria-checked": [{
12399
- "onAriaChanged": 0
12400
- }],
12401
- "aria-label": [{
12402
- "onAriaChanged": 0
12403
- }],
12404
- "aria-pressed": [{
12405
- "onAriaChanged": 0
12406
12792
  }]
12407
12793
  }; }
12408
12794
  static get style() { return {
@@ -12493,7 +12879,6 @@ const cardMdCss = () => `:host{--ion-safe-area-left:0px;--ion-safe-area-right:0p
12493
12879
  class Card {
12494
12880
  constructor(hostRef) {
12495
12881
  registerInstance(this, hostRef);
12496
- this.inheritedAriaAttributes = {};
12497
12882
  /**
12498
12883
  * If `true`, a button tag will be rendered and the card will be tappable.
12499
12884
  */
@@ -12513,7 +12898,18 @@ class Card {
12513
12898
  this.routerDirection = 'forward';
12514
12899
  }
12515
12900
  componentWillLoad() {
12516
- this.inheritedAriaAttributes = inheritAttributes$1(this.el, ['aria-label']);
12901
+ /**
12902
+ * Only the initial copy takes the attribute off the host, so an `aria-label` written
12903
+ * after load stays on the host too. That's harmless here, because unlike `ion-item`
12904
+ * the card host renders no role of its own, so nothing reads the leftover copy.
12905
+ */
12906
+ this.ariaController = createAttributeController(this.el, ['aria-label'], () => forceUpdate());
12907
+ }
12908
+ connectedCallback() {
12909
+ this.ariaController?.init();
12910
+ }
12911
+ disconnectedCallback() {
12912
+ this.ariaController?.destroy();
12517
12913
  }
12518
12914
  isClickable() {
12519
12915
  return this.href !== undefined || this.button;
@@ -12523,7 +12919,8 @@ class Card {
12523
12919
  if (!clickable) {
12524
12920
  return [hAsync("slot", null)];
12525
12921
  }
12526
- const { href, routerAnimation, routerDirection, inheritedAriaAttributes } = this;
12922
+ const { href, routerAnimation, routerDirection } = this;
12923
+ const inheritedAriaAttributes = this.ariaController?.attributes ?? {};
12527
12924
  const TagType = clickable ? (href === undefined ? 'button' : 'a') : 'div';
12528
12925
  const attrs = TagType === 'button'
12529
12926
  ? { type: this.type }
@@ -12537,7 +12934,7 @@ class Card {
12537
12934
  }
12538
12935
  render() {
12539
12936
  const mode = getIonMode$1(this);
12540
- return (hAsync(Host, { key: '85e9b30bd81e79a0c7ac75cb3664bdcf9e4afc4d', class: createColorClasses$1(this.color, {
12937
+ return (hAsync(Host, { key: '104412c26f53cce36432c3bb4d9e38bbe00c5816', class: createColorClasses$1(this.color, {
12541
12938
  [mode]: true,
12542
12939
  'card-disabled': this.disabled,
12543
12940
  'ion-activatable': this.isClickable(),
@@ -13042,6 +13439,73 @@ const createItemMultipleInputsObserver = (el, onChange, classNames = ['item-mult
13042
13439
  }
13043
13440
  };
13044
13441
 
13442
+ /**
13443
+ * The content slotted into a form control's start or end slot that a click
13444
+ * started on, or `null` when the click did not start on slotted content.
13445
+ *
13446
+ * The slotted element is compared against the host in case the form control
13447
+ * itself is slotted into, for example, an item. Without that check a control
13448
+ * carrying slot="start"/"end" would treat every click on itself as a slotted
13449
+ * click.
13450
+ */
13451
+ const getSlottedClickContent = (ev, el) => {
13452
+ const slotted = ev.target.closest('[slot="start"], [slot="end"]');
13453
+ return slotted !== null && slotted !== el && el.contains(slotted) ? slotted : null;
13454
+ };
13455
+ /**
13456
+ * Whether a click started on content slotted into a form control's start or
13457
+ * end slot.
13458
+ */
13459
+ const isSlottedClick = (ev, el) => getSlottedClickContent(ev, el) !== null;
13460
+ /**
13461
+ * A utility for form components that wrap their content in a <label>, such as
13462
+ * ion-input, ion-textarea and ion-select.
13463
+ *
13464
+ * Clicking slotted content also clicks that label, and the browser follows it
13465
+ * with a click on the label's control. That second click would be emitted from
13466
+ * the host as a duplicate, so the slotted click is remembered and the click
13467
+ * that follows it is suppressed.
13468
+ *
13469
+ * Browsers skip the forwarding when the click lands on interactive content,
13470
+ * such as a slotted button, so the slotted click is remembered for a frame
13471
+ * rather than until a forwarded click that may never arrive.
13472
+ *
13473
+ * @internal
13474
+ * @param el - The host element.
13475
+ * @param getNativeInput - A callback returning the native form control the
13476
+ * label points at, for components that have one. Those components emit the
13477
+ * click from the host rather than the control, so the control's click is
13478
+ * always stopped and re-dispatched from the host. Omit it for components whose
13479
+ * label has no `for` attribute, such as ion-select, where the browser forwards
13480
+ * to an internal control that already re-bubbles targeting the host.
13481
+ */
13482
+ const createClickController = (el, getNativeInput) => {
13483
+ let hasSlottedClick = false;
13484
+ const handleClickCapture = (ev) => {
13485
+ if (isSlottedClick(ev, el)) {
13486
+ hasSlottedClick = true;
13487
+ raf(() => (hasSlottedClick = false));
13488
+ return;
13489
+ }
13490
+ if (getNativeInput === undefined) {
13491
+ if (hasSlottedClick) {
13492
+ ev.stopPropagation();
13493
+ hasSlottedClick = false;
13494
+ }
13495
+ return;
13496
+ }
13497
+ const nativeInput = getNativeInput();
13498
+ if (nativeInput !== undefined && ev.target === nativeInput) {
13499
+ ev.stopPropagation();
13500
+ if (!hasSlottedClick) {
13501
+ el.click();
13502
+ }
13503
+ hasSlottedClick = false;
13504
+ }
13505
+ };
13506
+ return { handleClickCapture };
13507
+ };
13508
+
13045
13509
  /**
13046
13510
  * Checks if the form element is in an invalid state based on
13047
13511
  * Ionic validation classes.
@@ -13533,6 +13997,10 @@ class Content {
13533
13997
  data: undefined,
13534
13998
  isScrolling: true,
13535
13999
  };
14000
+ /**
14001
+ * Whether the host is sized to its content.
14002
+ */
14003
+ this.sizeToContent = false;
13536
14004
  /**
13537
14005
  * If `true`, the content will scroll behind the headers
13538
14006
  * and footers. This effect can easily be seen by setting the toolbar
@@ -13566,6 +14034,7 @@ class Content {
13566
14034
  }
13567
14035
  componentWillLoad() {
13568
14036
  this.inheritedAttributes = inheritAriaAttributes(this.el);
14037
+ this.sizeToContent = this.readSizeToContent();
13569
14038
  }
13570
14039
  connectedCallback() {
13571
14040
  this.isMainContent = this.el.closest('ion-menu, ion-popover, ion-modal') === null;
@@ -13605,6 +14074,7 @@ class Content {
13605
14074
  }
13606
14075
  // Re-observe on reattach, since componentDidLoad only fires once.
13607
14076
  this.setupFullscreenResizeObserver();
14077
+ this.updateSizeToContent();
13608
14078
  }
13609
14079
  componentDidLoad() {
13610
14080
  // The custom elements build assigns fullscreen after connectedCallback.
@@ -13644,6 +14114,16 @@ class Content {
13644
14114
  return;
13645
14115
  }
13646
14116
  }
14117
+ /**
14118
+ * Picks up an overlay that is no longer sized the way the last render
14119
+ * assumed, re-rendering only when the answer changes. Read in a `readTask`
14120
+ * because resolving the custom property forces a style recalculation.
14121
+ */
14122
+ updateSizeToContent() {
14123
+ readTask(() => {
14124
+ this.sizeToContent = this.readSizeToContent();
14125
+ });
14126
+ }
13647
14127
  destroyFullscreenResizeObserver() {
13648
14128
  if (this.fullscreenResizeObserver !== undefined) {
13649
14129
  this.fullscreenResizeObserver.disconnect();
@@ -13690,16 +14170,42 @@ class Content {
13690
14170
  const mode = getIonMode$1(this);
13691
14171
  return forceOverscroll === undefined ? mode === 'ios' && isPlatform('ios') : forceOverscroll;
13692
14172
  }
14173
+ /**
14174
+ * Reads whether to size the component to its content height. Forces a style
14175
+ * recalculation, so it belongs in a read task or before the first render.
14176
+ *
14177
+ * This applies inside popovers and modals with a content-based `--height`,
14178
+ * where the overlay does not provide the content with a definite height
14179
+ * to fill.
14180
+ *
14181
+ * Only `--height` is consulted. Styling the wrapper directly, such as
14182
+ * `ion-modal::part(content) { height: fit-content; }`, does not change
14183
+ * `--height` and therefore cannot be observed. `--height` is the only
14184
+ * supported way to opt into content-based sizing.
14185
+ */
14186
+ readSizeToContent() {
14187
+ if (hostContext('ion-popover', this.el)) {
14188
+ return true;
14189
+ }
14190
+ const modal = this.el.closest('ion-modal');
14191
+ if (modal === null) {
14192
+ return false;
14193
+ }
14194
+ const height = getComputedStyle(modal).getPropertyValue('--height');
14195
+ return getOverlaySizeType(height) === 'content';
14196
+ }
13693
14197
  resize() {
13694
14198
  }
13695
14199
  /**
13696
- * Recalculate content dimensions. Called by overlays (e.g., popover) when
13697
- * sibling elements like headers or footers have finished rendering and their
13698
- * heights are available, ensuring accurate offset-top calculations.
14200
+ * Recalculates the content dimensions and whether it should size itself to
14201
+ * its content. Called by overlays when something they own changes, such as
14202
+ * a header finishing its render or `--height` being updated.
14203
+ *
13699
14204
  * @internal
13700
14205
  */
13701
14206
  async recalculateDimensions() {
13702
14207
  readTask(() => this.readDimensions());
14208
+ this.updateSizeToContent();
13703
14209
  }
13704
14210
  readDimensions() {
13705
14211
  const page = getPageElement(this.el);
@@ -13869,21 +14375,21 @@ class Content {
13869
14375
  const forceOverscroll = this.shouldForceOverscroll();
13870
14376
  const transitionShadow = mode === 'ios';
13871
14377
  this.resize();
13872
- return (hAsync(Host, { key: '9551c759df407b10d809171641fc6e8f14d92219', role: isMainContent ? 'main' : undefined, class: createColorClasses$1(this.color, {
14378
+ return (hAsync(Host, { key: 'e1013621096729354ef92915af52dd823e69fdff', role: isMainContent ? 'main' : undefined, class: createColorClasses$1(this.color, {
13873
14379
  [mode]: true,
13874
14380
  'content-fullscreen': this.fullscreen,
13875
- 'content-sizing': hostContext('ion-popover', this.el),
14381
+ 'content-sizing': this.sizeToContent,
13876
14382
  overscroll: forceOverscroll,
13877
14383
  [`content-${rtl}`]: true,
13878
14384
  }), style: {
13879
14385
  '--offset-top': `${this.cTop}px`,
13880
14386
  '--offset-bottom': `${this.cBottom}px`,
13881
- }, ...inheritedAttributes }, hAsync("div", { key: 'c6de8fd226f0d10a534eb107fe032ac155fbe68e', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? hAsync("slot", { name: "fixed" }) : null, hAsync("div", { key: '082fc2936061360060b48221ecb1c864a3711fa0', class: {
14387
+ }, ...inheritedAttributes }, hAsync("div", { key: '3d8649b164d6324beaa1bc50e1d204ad06c2ec1a', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? hAsync("slot", { name: "fixed" }) : null, hAsync("div", { key: 'dd2d3bed8690b4f5027a43f5ec60e7e7df18106d', class: {
13882
14388
  'inner-scroll': true,
13883
14389
  'scroll-x': scrollX,
13884
14390
  'scroll-y': scrollY,
13885
14391
  overscroll: (scrollX || scrollY) && forceOverscroll,
13886
- }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, hAsync("slot", { key: '0d2286206facb22696a9ca7e74a3f6b7d2397aab' })), transitionShadow ? (hAsync("div", { class: "transition-effect" }, hAsync("div", { class: "transition-cover" }), hAsync("div", { class: "transition-shadow" }))) : null, fixedSlotPlacement === 'after' ? hAsync("slot", { name: "fixed" }) : null));
14392
+ }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, hAsync("slot", { key: 'dc3d4584d9e9afd43699525a619b8e873078fbbf' })), transitionShadow ? (hAsync("div", { class: "transition-effect" }, hAsync("div", { class: "transition-cover" }), hAsync("div", { class: "transition-shadow" }))) : null, fixedSlotPlacement === 'after' ? hAsync("slot", { name: "fixed" }) : null));
13887
14393
  }
13888
14394
  get el() { return getElement(this); }
13889
14395
  static get watchers() { return {
@@ -13903,6 +14409,7 @@ class Content {
13903
14409
  "scrollX": [4, "scroll-x"],
13904
14410
  "scrollY": [4, "scroll-y"],
13905
14411
  "scrollEvents": [4, "scroll-events"],
14412
+ "sizeToContent": [32],
13906
14413
  "recalculateDimensions": [64],
13907
14414
  "getScrollElement": [64],
13908
14415
  "getBackgroundElement": [64],
@@ -15947,16 +16454,6 @@ class Datetime {
15947
16454
  this.ionStyle = createEvent(this, "ionStyle", 7);
15948
16455
  this.ionRender = createEvent(this, "ionRender", 7);
15949
16456
  this.inputId = `ion-dt-${datetimeIds++}`;
15950
- /**
15951
- * Set true only by `visibleCallback`. Lets `hiddenCallback` ignore the
15952
- * synthetic "not intersecting" entry IntersectionObserver fires on
15953
- * `observe()` when the host mounts offscreen.
15954
- *
15955
- * Don't reset this in `disconnectedCallback`. Overlays disconnect and
15956
- * reconnect the host without re-creating the observers, so a reset there
15957
- * makes `hiddenCallback` miss the dismissal.
15958
- */
15959
- this.hasBeenIntersecting = false;
15960
16457
  this.prevPresentation = null;
15961
16458
  this.showMonthAndYear = false;
15962
16459
  this.activeParts = [];
@@ -16518,12 +17015,19 @@ class Datetime {
16518
17015
  if (this.el.classList.contains('datetime-ready')) {
16519
17016
  return;
16520
17017
  }
16521
- const rect = this.el.getBoundingClientRect();
16522
- if (rect.width === 0 || rect.height === 0) {
17018
+ if (!this.hasLayoutBox()) {
16523
17019
  return;
16524
17020
  }
16525
17021
  this.markReady();
16526
17022
  };
17023
+ /**
17024
+ * Whether the datetime is on screen. A modal or popover hides its contents
17025
+ * with `display: none`, which leaves the host without a layout box.
17026
+ */
17027
+ this.hasLayoutBox = () => {
17028
+ const { width, height } = this.el.getBoundingClientRect();
17029
+ return width > 0 && height > 0;
17030
+ };
16527
17031
  this.markReady = () => {
16528
17032
  if (this.el.classList.contains('datetime-ready')) {
16529
17033
  return;
@@ -16856,11 +17360,14 @@ class Datetime {
16856
17360
  * areas will not have the correct values snapped into place.
16857
17361
  */
16858
17362
  const visibleCallback = (entries) => {
16859
- const ev = entries[0];
17363
+ /**
17364
+ * The browser can batch several observations into one callback, so
17365
+ * only the last entry describes the datetime now.
17366
+ */
17367
+ const ev = entries[entries.length - 1];
16860
17368
  if (!ev.isIntersecting) {
16861
17369
  return;
16862
17370
  }
16863
- this.hasBeenIntersecting = true;
16864
17371
  this.markReady();
16865
17372
  };
16866
17373
  const visibleIO = new IntersectionObserver(visibleCallback, { threshold: 0.01, root: el });
@@ -16893,15 +17400,22 @@ class Datetime {
16893
17400
  * we did originally has been lost.
16894
17401
  */
16895
17402
  const hiddenCallback = (entries) => {
16896
- const ev = entries[0];
17403
+ const ev = entries[entries.length - 1];
16897
17404
  if (ev.isIntersecting) {
16898
17405
  return;
16899
17406
  }
16900
- // Ignore the initial "not intersecting" entry IntersectionObserver fires on observe().
16901
- if (!this.hasBeenIntersecting) {
17407
+ /**
17408
+ * WebKit reports a datetime that is still on screen as not
17409
+ * intersecting, and it doesn't deliver that entry to every observer on
17410
+ * the same root and target, so `visibleCallback` may never hear about
17411
+ * it and add `datetime-ready` back. That is what left the calendar
17412
+ * blank in #30933. Checking the host instead of trusting the entry
17413
+ * also covers the synthetic "not intersecting" entry `observe()` fires
17414
+ * when the datetime mounts offscreen.
17415
+ */
17416
+ if (this.hasLayoutBox()) {
16902
17417
  return;
16903
17418
  }
16904
- this.hasBeenIntersecting = false;
16905
17419
  this.destroyInteractionListeners();
16906
17420
  /**
16907
17421
  * When datetime is hidden, we need to make sure that
@@ -17713,7 +18227,7 @@ class Datetime {
17713
18227
  const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
17714
18228
  const hasWheelVariant = hasDatePresentation && preferWheel;
17715
18229
  renderHiddenInput(true, el, name, formatValue(value), disabled);
17716
- return (hAsync(Host, { key: '4e0b529a70924b065bcc6191e08550428b5a52a0', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: {
18230
+ return (hAsync(Host, { key: 'a9128b5c55464e30a269daf9d725bf430c8c655c', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: {
17717
18231
  ...createColorClasses$1(color, {
17718
18232
  [mode]: true,
17719
18233
  ['datetime-readonly']: readonly,
@@ -17725,7 +18239,7 @@ class Datetime {
17725
18239
  [`datetime-prefer-wheel`]: hasWheelVariant,
17726
18240
  [`datetime-grid`]: isGridStyle,
17727
18241
  }),
17728
- } }, hAsync("div", { key: 'cc9d1b92f960984cb0466d0003a240ace67da243', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
18242
+ } }, hAsync("div", { key: 'b49f3a98db2b7cf535d7ea894d518f75f8a1fefb', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
17729
18243
  }
17730
18244
  get el() { return getElement(this); }
17731
18245
  static get watchers() { return {
@@ -20262,9 +20776,9 @@ const defaultCounterFormatter = (length, maxlength) => {
20262
20776
  return `${length} / ${maxlength}`;
20263
20777
  };
20264
20778
 
20265
- const inputIosCss = () => `.sc-ion-input-ios-h{--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--background:transparent;--color:initial;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;padding:0 !important;color:var(--color);font-family:var(--ion-font-family, inherit);z-index:2}ion-item[slot=start].sc-ion-input-ios-h,ion-item [slot=start].sc-ion-input-ios-h,ion-item[slot=end].sc-ion-input-ios-h,ion-item [slot=end].sc-ion-input-ios-h{width:auto}.ion-color.sc-ion-input-ios-h{--highlight-color-focused:var(--ion-color-base)}.input-label-placement-floating.sc-ion-input-ios-h,.input-label-placement-stacked.sc-ion-input-ios-h{min-height:56px}.native-input.sc-ion-input-ios{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:inline-block;position:relative;-ms-flex:1;flex:1;width:100%;max-width:100%;height:100%;max-height:100%;border:0;outline:none;background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:1}.native-input.sc-ion-input-ios::-webkit-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-ios::-moz-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-ios:-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-ios::-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-ios::placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-ios:-webkit-autofill{background-color:transparent}.native-input.sc-ion-input-ios:invalid{-webkit-box-shadow:none;box-shadow:none}.native-input.sc-ion-input-ios::-ms-clear{display:none}.cloned-input.sc-ion-input-ios{position:absolute;top:0;bottom:0;height:auto;max-height:none;pointer-events:none}.cloned-input.sc-ion-input-ios:disabled{opacity:1}.input-clear-icon.sc-ion-input-ios{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;background-position:center;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:30px;height:30px;border:0;outline:none;background-color:transparent;background-repeat:no-repeat;color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));visibility:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}.in-item-color.sc-ion-input-ios-h .input-clear-icon.sc-ion-input-ios{color:inherit}.input-clear-icon.sc-ion-input-ios:focus{opacity:0.5}.has-value.sc-ion-input-ios-h .input-clear-icon.sc-ion-input-ios{visibility:visible}.input-wrapper.sc-ion-input-ios{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:stretch;align-items:stretch;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal}.input-control.sc-ion-input-ios{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;width:100%;min-width:0}.native-wrapper.sc-ion-input-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;width:100%}.input-label-placement-start.sc-ion-input-ios-h .native-wrapper.sc-ion-input-ios,.input-label-placement-end.sc-ion-input-ios-h .native-wrapper.sc-ion-input-ios,.input-label-placement-fixed.sc-ion-input-ios-h .native-wrapper.sc-ion-input-ios{-ms-flex:1 1 0px;flex:1 1 0}.input-start.sc-ion-input-ios,.input-end.sc-ion-input-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center}.ion-touched.ion-invalid.sc-ion-input-ios-h{--highlight-color:var(--highlight-color-invalid)}.ion-valid.sc-ion-input-ios-h{--highlight-color:var(--highlight-color-valid)}.input-bottom.sc-ion-input-ios{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem;white-space:normal}.has-focus.ion-valid.sc-ion-input-ios-h,.ion-touched.ion-invalid.sc-ion-input-ios-h{--border-color:var(--highlight-color)}.input-bottom.sc-ion-input-ios .error-text.sc-ion-input-ios{display:none;color:var(--highlight-color-invalid)}.input-bottom.sc-ion-input-ios .helper-text.sc-ion-input-ios{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}.ion-touched.ion-invalid.sc-ion-input-ios-h .input-bottom.sc-ion-input-ios .error-text.sc-ion-input-ios{display:block}.ion-touched.ion-invalid.sc-ion-input-ios-h .input-bottom.sc-ion-input-ios .helper-text.sc-ion-input-ios{display:none}.input-bottom.sc-ion-input-ios .counter.sc-ion-input-ios{-webkit-margin-start:auto;margin-inline-start:auto;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));white-space:nowrap;-webkit-padding-start:16px;padding-inline-start:16px}.has-focus.sc-ion-input-ios-h input.sc-ion-input-ios{caret-color:var(--highlight-color)}.label-text-wrapper.sc-ion-input-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-width:0;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.skip-label-transition.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios{-webkit-transition:none;transition:none}.label-text.sc-ion-input-ios,.sc-ion-input-ios-s>[slot=label]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden.sc-ion-input-ios,.input-outline-notch-hidden.sc-ion-input-ios{display:none}.input-wrapper.sc-ion-input-ios input.sc-ion-input-ios{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.input-label-placement-start.sc-ion-input-ios-h .input-control.sc-ion-input-ios{-ms-flex-direction:row;flex-direction:row}.input-label-placement-start.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}.input-label-placement-end.sc-ion-input-ios-h .input-control.sc-ion-input-ios{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.input-label-placement-end.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}.input-label-placement-fixed.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}.input-label-placement-fixed.sc-ion-input-ios-h .label-text.sc-ion-input-ios{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}.input-label-placement-stacked.sc-ion-input-ios-h .input-control.sc-ion-input-ios,.input-label-placement-floating.sc-ion-input-ios-h .input-control.sc-ion-input-ios{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}.input-label-placement-stacked.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios,.input-label-placement-floating.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios{-webkit-transform-origin:left top;transform-origin:left top;max-width:100%;z-index:2}[dir=rtl].sc-ion-input-ios-h -no-combinator.input-label-placement-stacked.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios,[dir=rtl] .sc-ion-input-ios-h -no-combinator.input-label-placement-stacked.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios,[dir=rtl].input-label-placement-stacked.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios,[dir=rtl] .input-label-placement-stacked.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios,[dir=rtl].sc-ion-input-ios-h -no-combinator.input-label-placement-floating.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios,[dir=rtl] .sc-ion-input-ios-h -no-combinator.input-label-placement-floating.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios,[dir=rtl].input-label-placement-floating.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios,[dir=rtl] .input-label-placement-floating.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.input-label-placement-stacked.sc-ion-input-ios-h:dir(rtl) .label-text-wrapper.sc-ion-input-ios,.input-label-placement-floating.sc-ion-input-ios-h:dir(rtl) .label-text-wrapper.sc-ion-input-ios{-webkit-transform-origin:right top;transform-origin:right top}}.input-label-placement-floating.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}.input-label-placement-floating.sc-ion-input-ios-h input.sc-ion-input-ios{opacity:0}.has-focus.input-label-placement-floating.sc-ion-input-ios-h input.sc-ion-input-ios,.has-value.input-label-placement-floating.sc-ion-input-ios-h input.sc-ion-input-ios{opacity:1}.label-floating.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}.sc-ion-input-ios-s>[slot=start]:last-of-type{-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}.sc-ion-input-ios-s>[slot=end]:first-of-type{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}.sc-ion-input-ios-h[disabled].sc-ion-input-ios-s>ion-input-password-toggle,.sc-ion-input-ios-h[disabled] .sc-ion-input-ios-s>ion-input-password-toggle,.sc-ion-input-ios-h[readonly].sc-ion-input-ios-s>ion-input-password-toggle,.sc-ion-input-ios-h[readonly] .sc-ion-input-ios-s>ion-input-password-toggle{visibility:hidden}.sc-ion-input-ios-h{--border-width:0.55px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));--highlight-height:0px;font-size:inherit}.input-clear-icon.sc-ion-input-ios ion-icon.sc-ion-input-ios{font-size:18px}.input-disabled.sc-ion-input-ios-h{opacity:0.3}.sc-ion-input-ios-s>ion-button[slot=start].button-has-icon-only,.sc-ion-input-ios-s>ion-button[slot=end].button-has-icon-only{--border-radius:50%;--padding-start:0;--padding-end:0;--padding-top:0;--padding-bottom:0;aspect-ratio:1}`;
20779
+ const inputIosCss = () => `.sc-ion-input-ios-h{--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--background:transparent;--color:initial;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;padding:0 !important;color:var(--color);font-family:var(--ion-font-family, inherit);z-index:2}ion-item[slot=start].sc-ion-input-ios-h,ion-item [slot=start].sc-ion-input-ios-h,ion-item[slot=end].sc-ion-input-ios-h,ion-item [slot=end].sc-ion-input-ios-h{width:auto}.ion-color.sc-ion-input-ios-h{--highlight-color-focused:var(--ion-color-base)}.input-label-placement-floating.sc-ion-input-ios-h,.input-label-placement-stacked.sc-ion-input-ios-h{min-height:56px}.native-input.sc-ion-input-ios{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:inline-block;position:relative;-ms-flex:1;flex:1;width:100%;min-width:2ch;max-width:100%;height:100%;max-height:100%;border:0;outline:none;background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:1}.native-input.sc-ion-input-ios::-webkit-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-ios::-moz-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-ios:-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-ios::-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-ios::placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-ios:-webkit-autofill{background-color:transparent}.native-input.sc-ion-input-ios:invalid{-webkit-box-shadow:none;box-shadow:none}.native-input.sc-ion-input-ios::-ms-clear{display:none}.cloned-input.sc-ion-input-ios{position:absolute;top:0;bottom:0;height:auto;max-height:none;pointer-events:none}.cloned-input.sc-ion-input-ios:disabled{opacity:1}.input-clear-icon.sc-ion-input-ios{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;background-position:center;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:30px;height:30px;border:0;outline:none;background-color:transparent;background-repeat:no-repeat;color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));visibility:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}.in-item-color.sc-ion-input-ios-h .input-clear-icon.sc-ion-input-ios{color:inherit}.input-clear-icon.sc-ion-input-ios:focus{opacity:0.5}.has-value.sc-ion-input-ios-h .input-clear-icon.sc-ion-input-ios{visibility:visible}.input-wrapper.sc-ion-input-ios{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:stretch;align-items:stretch;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal}.input-control.sc-ion-input-ios{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;width:100%;min-width:0}.native-wrapper.sc-ion-input-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;width:100%}.input-label-placement-start.sc-ion-input-ios-h .native-wrapper.sc-ion-input-ios,.input-label-placement-end.sc-ion-input-ios-h .native-wrapper.sc-ion-input-ios,.input-label-placement-fixed.sc-ion-input-ios-h .native-wrapper.sc-ion-input-ios{-ms-flex:1 1 0px;flex:1 1 0}.input-start.sc-ion-input-ios,.input-end.sc-ion-input-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center}.ion-touched.ion-invalid.sc-ion-input-ios-h{--highlight-color:var(--highlight-color-invalid)}.ion-valid.sc-ion-input-ios-h{--highlight-color:var(--highlight-color-valid)}.input-bottom.sc-ion-input-ios{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem;white-space:normal}.has-focus.ion-valid.sc-ion-input-ios-h,.ion-touched.ion-invalid.sc-ion-input-ios-h{--border-color:var(--highlight-color)}.input-bottom.sc-ion-input-ios .error-text.sc-ion-input-ios{display:none;color:var(--highlight-color-invalid)}.input-bottom.sc-ion-input-ios .helper-text.sc-ion-input-ios{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}.ion-touched.ion-invalid.sc-ion-input-ios-h .input-bottom.sc-ion-input-ios .error-text.sc-ion-input-ios{display:block}.ion-touched.ion-invalid.sc-ion-input-ios-h .input-bottom.sc-ion-input-ios .helper-text.sc-ion-input-ios{display:none}.input-bottom.sc-ion-input-ios .counter.sc-ion-input-ios{-webkit-margin-start:auto;margin-inline-start:auto;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));white-space:nowrap;-webkit-padding-start:16px;padding-inline-start:16px}.has-focus.sc-ion-input-ios-h input.sc-ion-input-ios{caret-color:var(--highlight-color)}.label-text-wrapper.sc-ion-input-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-width:0;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.skip-label-transition.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios{-webkit-transition:none;transition:none}.label-text.sc-ion-input-ios,.sc-ion-input-ios-s>[slot=label]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden.sc-ion-input-ios,.input-outline-notch-hidden.sc-ion-input-ios{display:none}.input-wrapper.sc-ion-input-ios input.sc-ion-input-ios{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.input-label-placement-start.sc-ion-input-ios-h .input-control.sc-ion-input-ios{-ms-flex-direction:row;flex-direction:row}.input-label-placement-start.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}.input-label-placement-end.sc-ion-input-ios-h .input-control.sc-ion-input-ios{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.input-label-placement-end.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}.input-label-placement-fixed.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}.input-label-placement-fixed.sc-ion-input-ios-h .label-text.sc-ion-input-ios{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}.input-label-placement-stacked.sc-ion-input-ios-h .input-control.sc-ion-input-ios,.input-label-placement-floating.sc-ion-input-ios-h .input-control.sc-ion-input-ios{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}.input-label-placement-stacked.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios,.input-label-placement-floating.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios{-webkit-transform-origin:left top;transform-origin:left top;max-width:100%;z-index:2}[dir=rtl].sc-ion-input-ios-h -no-combinator.input-label-placement-stacked.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios,[dir=rtl] .sc-ion-input-ios-h -no-combinator.input-label-placement-stacked.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios,[dir=rtl].input-label-placement-stacked.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios,[dir=rtl] .input-label-placement-stacked.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios,[dir=rtl].sc-ion-input-ios-h -no-combinator.input-label-placement-floating.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios,[dir=rtl] .sc-ion-input-ios-h -no-combinator.input-label-placement-floating.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios,[dir=rtl].input-label-placement-floating.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios,[dir=rtl] .input-label-placement-floating.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.input-label-placement-stacked.sc-ion-input-ios-h:dir(rtl) .label-text-wrapper.sc-ion-input-ios,.input-label-placement-floating.sc-ion-input-ios-h:dir(rtl) .label-text-wrapper.sc-ion-input-ios{-webkit-transform-origin:right top;transform-origin:right top}}.input-label-placement-floating.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}.input-label-placement-floating.sc-ion-input-ios-h input.sc-ion-input-ios{opacity:0}.has-focus.input-label-placement-floating.sc-ion-input-ios-h input.sc-ion-input-ios,.has-value.input-label-placement-floating.sc-ion-input-ios-h input.sc-ion-input-ios{opacity:1}.label-floating.sc-ion-input-ios-h .label-text-wrapper.sc-ion-input-ios{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}.sc-ion-input-ios-s>[slot=start]:last-of-type{-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}.sc-ion-input-ios-s>[slot=end]:first-of-type{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}.sc-ion-input-ios-h[disabled].sc-ion-input-ios-s>ion-input-password-toggle,.sc-ion-input-ios-h[disabled] .sc-ion-input-ios-s>ion-input-password-toggle,.sc-ion-input-ios-h[readonly].sc-ion-input-ios-s>ion-input-password-toggle,.sc-ion-input-ios-h[readonly] .sc-ion-input-ios-s>ion-input-password-toggle{visibility:hidden}.sc-ion-input-ios-h{--border-width:0.55px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));--highlight-height:0px;font-size:inherit}.input-clear-icon.sc-ion-input-ios ion-icon.sc-ion-input-ios{font-size:18px}.input-disabled.sc-ion-input-ios-h{opacity:0.3}.sc-ion-input-ios-s>ion-button[slot=start].button-has-icon-only,.sc-ion-input-ios-s>ion-button[slot=end].button-has-icon-only{--border-radius:50%;--padding-start:0;--padding-end:0;--padding-top:0;--padding-bottom:0;aspect-ratio:1}`;
20266
20780
 
20267
- const inputMdCss = () => `.sc-ion-input-md-h{--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--background:transparent;--color:initial;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;padding:0 !important;color:var(--color);font-family:var(--ion-font-family, inherit);z-index:2}ion-item[slot=start].sc-ion-input-md-h,ion-item [slot=start].sc-ion-input-md-h,ion-item[slot=end].sc-ion-input-md-h,ion-item [slot=end].sc-ion-input-md-h{width:auto}.ion-color.sc-ion-input-md-h{--highlight-color-focused:var(--ion-color-base)}.input-label-placement-floating.sc-ion-input-md-h,.input-label-placement-stacked.sc-ion-input-md-h{min-height:56px}.native-input.sc-ion-input-md{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:inline-block;position:relative;-ms-flex:1;flex:1;width:100%;max-width:100%;height:100%;max-height:100%;border:0;outline:none;background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:1}.native-input.sc-ion-input-md::-webkit-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-md::-moz-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-md:-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-md::-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-md::placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-md:-webkit-autofill{background-color:transparent}.native-input.sc-ion-input-md:invalid{-webkit-box-shadow:none;box-shadow:none}.native-input.sc-ion-input-md::-ms-clear{display:none}.cloned-input.sc-ion-input-md{position:absolute;top:0;bottom:0;height:auto;max-height:none;pointer-events:none}.cloned-input.sc-ion-input-md:disabled{opacity:1}.input-clear-icon.sc-ion-input-md{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;background-position:center;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:30px;height:30px;border:0;outline:none;background-color:transparent;background-repeat:no-repeat;color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));visibility:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}.in-item-color.sc-ion-input-md-h .input-clear-icon.sc-ion-input-md{color:inherit}.input-clear-icon.sc-ion-input-md:focus{opacity:0.5}.has-value.sc-ion-input-md-h .input-clear-icon.sc-ion-input-md{visibility:visible}.input-wrapper.sc-ion-input-md{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:stretch;align-items:stretch;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal}.input-control.sc-ion-input-md{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;width:100%;min-width:0}.native-wrapper.sc-ion-input-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;width:100%}.input-label-placement-start.sc-ion-input-md-h .native-wrapper.sc-ion-input-md,.input-label-placement-end.sc-ion-input-md-h .native-wrapper.sc-ion-input-md,.input-label-placement-fixed.sc-ion-input-md-h .native-wrapper.sc-ion-input-md{-ms-flex:1 1 0px;flex:1 1 0}.input-start.sc-ion-input-md,.input-end.sc-ion-input-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center}.ion-touched.ion-invalid.sc-ion-input-md-h{--highlight-color:var(--highlight-color-invalid)}.ion-valid.sc-ion-input-md-h{--highlight-color:var(--highlight-color-valid)}.input-bottom.sc-ion-input-md{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem;white-space:normal}.has-focus.ion-valid.sc-ion-input-md-h,.ion-touched.ion-invalid.sc-ion-input-md-h{--border-color:var(--highlight-color)}.input-bottom.sc-ion-input-md .error-text.sc-ion-input-md{display:none;color:var(--highlight-color-invalid)}.input-bottom.sc-ion-input-md .helper-text.sc-ion-input-md{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}.ion-touched.ion-invalid.sc-ion-input-md-h .input-bottom.sc-ion-input-md .error-text.sc-ion-input-md{display:block}.ion-touched.ion-invalid.sc-ion-input-md-h .input-bottom.sc-ion-input-md .helper-text.sc-ion-input-md{display:none}.input-bottom.sc-ion-input-md .counter.sc-ion-input-md{-webkit-margin-start:auto;margin-inline-start:auto;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));white-space:nowrap;-webkit-padding-start:16px;padding-inline-start:16px}.has-focus.sc-ion-input-md-h input.sc-ion-input-md{caret-color:var(--highlight-color)}.label-text-wrapper.sc-ion-input-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-width:0;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.skip-label-transition.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{-webkit-transition:none;transition:none}.label-text.sc-ion-input-md,.sc-ion-input-md-s>[slot=label]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden.sc-ion-input-md,.input-outline-notch-hidden.sc-ion-input-md{display:none}.input-wrapper.sc-ion-input-md input.sc-ion-input-md{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.input-label-placement-start.sc-ion-input-md-h .input-control.sc-ion-input-md{-ms-flex-direction:row;flex-direction:row}.input-label-placement-start.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}.input-label-placement-end.sc-ion-input-md-h .input-control.sc-ion-input-md{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.input-label-placement-end.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}.input-label-placement-fixed.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}.input-label-placement-fixed.sc-ion-input-md-h .label-text.sc-ion-input-md{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}.input-label-placement-stacked.sc-ion-input-md-h .input-control.sc-ion-input-md,.input-label-placement-floating.sc-ion-input-md-h .input-control.sc-ion-input-md{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}.input-label-placement-stacked.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,.input-label-placement-floating.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{-webkit-transform-origin:left top;transform-origin:left top;max-width:100%;z-index:2}[dir=rtl].sc-ion-input-md-h -no-combinator.input-label-placement-stacked.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl] .sc-ion-input-md-h -no-combinator.input-label-placement-stacked.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl].input-label-placement-stacked.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl] .input-label-placement-stacked.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl].sc-ion-input-md-h -no-combinator.input-label-placement-floating.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl] .sc-ion-input-md-h -no-combinator.input-label-placement-floating.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl].input-label-placement-floating.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl] .input-label-placement-floating.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.input-label-placement-stacked.sc-ion-input-md-h:dir(rtl) .label-text-wrapper.sc-ion-input-md,.input-label-placement-floating.sc-ion-input-md-h:dir(rtl) .label-text-wrapper.sc-ion-input-md{-webkit-transform-origin:right top;transform-origin:right top}}.input-label-placement-floating.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}.input-label-placement-floating.sc-ion-input-md-h input.sc-ion-input-md{opacity:0}.has-focus.input-label-placement-floating.sc-ion-input-md-h input.sc-ion-input-md,.has-value.input-label-placement-floating.sc-ion-input-md-h input.sc-ion-input-md{opacity:1}.label-floating.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}.sc-ion-input-md-s>[slot=start]:last-of-type{-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}.sc-ion-input-md-s>[slot=end]:first-of-type{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}.sc-ion-input-md-h[disabled].sc-ion-input-md-s>ion-input-password-toggle,.sc-ion-input-md-h[disabled] .sc-ion-input-md-s>ion-input-password-toggle,.sc-ion-input-md-h[readonly].sc-ion-input-md-s>ion-input-password-toggle,.sc-ion-input-md-h[readonly] .sc-ion-input-md-s>ion-input-password-toggle{visibility:hidden}.input-fill-solid.sc-ion-input-md-h{--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--border-color:var(--ion-color-step-500, var(--ion-background-color-step-500, gray));--border-radius:4px;--padding-start:16px;--padding-end:16px;min-height:56px}.input-fill-solid.sc-ion-input-md-h .input-wrapper.sc-ion-input-md{border-bottom:var(--border-width) var(--border-style) var(--border-color)}.has-focus.input-fill-solid.ion-valid.sc-ion-input-md-h,.input-fill-solid.ion-touched.ion-invalid.sc-ion-input-md-h{--border-color:var(--highlight-color)}.input-fill-solid.sc-ion-input-md-h .input-bottom.sc-ion-input-md{border-top:none}@media (any-hover: hover){.input-fill-solid.sc-ion-input-md-h:hover{--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6));--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}}.input-fill-solid.has-focus.sc-ion-input-md-h{--background:var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}.input-fill-solid.sc-ion-input-md-h .input-wrapper.sc-ion-input-md{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0px;border-end-start-radius:0px}.label-floating.input-fill-solid.input-label-placement-floating.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{max-width:calc(100% / 0.75)}.input-fill-outline.sc-ion-input-md-h{--border-color:var(--ion-color-step-300, var(--ion-background-color-step-300, #b3b3b3));--border-radius:4px;--padding-start:16px;--padding-end:16px;--internal-start-container-adjustment:0px;min-height:56px}.input-fill-outline.input-shape-round.sc-ion-input-md-h{--border-radius:28px;--padding-start:32px;--padding-end:32px}.has-focus.input-fill-outline.ion-valid.sc-ion-input-md-h,.input-fill-outline.ion-touched.ion-invalid.sc-ion-input-md-h{--border-color:var(--highlight-color)}@media (any-hover: hover){.input-fill-outline.sc-ion-input-md-h:hover{--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}}.input-fill-outline.has-focus.sc-ion-input-md-h{--border-width:var(--highlight-height);--border-color:var(--highlight-color)}.input-fill-outline.sc-ion-input-md-h .input-bottom.sc-ion-input-md{border-top:none}.input-fill-outline.sc-ion-input-md-h .input-wrapper.sc-ion-input-md{border-bottom:none}.input-fill-outline.sc-ion-input-md-h:not(.label-floating) .input-control.sc-ion-input-md{position:relative}.input-fill-outline.input-label-placement-stacked.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,.input-fill-outline.input-label-placement-floating.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{-webkit-transform-origin:left top;transform-origin:left top;position:absolute;max-width:100%}[dir=rtl].sc-ion-input-md-h -no-combinator.input-fill-outline.input-label-placement-stacked.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl] .sc-ion-input-md-h -no-combinator.input-fill-outline.input-label-placement-stacked.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl].input-fill-outline.input-label-placement-stacked.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl] .input-fill-outline.input-label-placement-stacked.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl].sc-ion-input-md-h -no-combinator.input-fill-outline.input-label-placement-floating.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl] .sc-ion-input-md-h -no-combinator.input-fill-outline.input-label-placement-floating.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl].input-fill-outline.input-label-placement-floating.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl] .input-fill-outline.input-label-placement-floating.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.input-fill-outline.input-label-placement-stacked.sc-ion-input-md-h:dir(rtl) .label-text-wrapper.sc-ion-input-md,.input-fill-outline.input-label-placement-floating.sc-ion-input-md-h:dir(rtl) .label-text-wrapper.sc-ion-input-md{-webkit-transform-origin:right top;transform-origin:right top}}.input-fill-outline.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{position:relative}.label-floating.input-fill-outline.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{-webkit-transform:translate(var(--internal-start-container-adjustment, 0px), -32%) scale(0.75);transform:translate(var(--internal-start-container-adjustment, 0px), -32%) scale(0.75);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;max-width:calc((100% - var(--padding-start) - var(--padding-end) - 8px) / 0.75)}.input-fill-outline.sc-ion-input-md-h .input-outline-container.sc-ion-input-md{left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;width:100%;height:100%}.input-fill-outline.sc-ion-input-md-h .input-outline-start.sc-ion-input-md,.input-fill-outline.sc-ion-input-md-h .input-outline-end.sc-ion-input-md{pointer-events:none}.input-fill-outline.sc-ion-input-md-h .input-outline-start.sc-ion-input-md,.input-fill-outline.sc-ion-input-md-h .input-outline-notch.sc-ion-input-md,.input-fill-outline.sc-ion-input-md-h .input-outline-end.sc-ion-input-md{border-top:var(--border-width) var(--border-style) var(--border-color);border-bottom:var(--border-width) var(--border-style) var(--border-color)}.input-fill-outline.sc-ion-input-md-h .input-outline-notch.sc-ion-input-md{max-width:calc(100% - var(--padding-start) - var(--padding-end))}.input-fill-outline.sc-ion-input-md-h .notch-spacer.sc-ion-input-md{-webkit-padding-end:8px;padding-inline-end:8px;font-size:calc(1em * 0.75);opacity:0;pointer-events:none;-webkit-box-sizing:content-box;box-sizing:content-box}.input-fill-outline.sc-ion-input-md-h .input-outline-start.sc-ion-input-md{border-start-start-radius:var(--border-radius);border-start-end-radius:0px;border-end-end-radius:0px;border-end-start-radius:var(--border-radius);-webkit-border-start:var(--border-width) var(--border-style) var(--border-color);border-inline-start:var(--border-width) var(--border-style) var(--border-color);width:calc(var(--padding-start) - 4px)}.input-fill-outline.sc-ion-input-md-h .input-outline-end.sc-ion-input-md{-webkit-border-end:var(--border-width) var(--border-style) var(--border-color);border-inline-end:var(--border-width) var(--border-style) var(--border-color);border-start-start-radius:0px;border-start-end-radius:var(--border-radius);border-end-end-radius:var(--border-radius);border-end-start-radius:0px;-ms-flex-positive:1;flex-grow:1}.label-floating.input-fill-outline.sc-ion-input-md-h .input-outline-notch.sc-ion-input-md{border-top:none}.sc-ion-input-md-h{--border-width:1px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));--highlight-height:2px;font-size:inherit}.input-clear-icon.sc-ion-input-md ion-icon.sc-ion-input-md{font-size:22px}.input-disabled.sc-ion-input-md-h{opacity:0.38}.has-focus.ion-valid.sc-ion-input-md-h,.ion-touched.ion-invalid.sc-ion-input-md-h{--border-color:var(--highlight-color)}.input-bottom.sc-ion-input-md .counter.sc-ion-input-md{letter-spacing:0.0333333333em}.input-label-placement-floating.has-focus.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,.input-label-placement-stacked.has-focus.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{color:var(--highlight-color)}.has-focus.input-label-placement-floating.ion-valid.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,.input-label-placement-floating.ion-touched.ion-invalid.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,.has-focus.input-label-placement-stacked.ion-valid.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,.input-label-placement-stacked.ion-touched.ion-invalid.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{color:var(--highlight-color)}.input-highlight.sc-ion-input-md{bottom:-1px;position:absolute;width:100%;height:var(--highlight-height);-webkit-transform:scale(0);transform:scale(0);-webkit-transition:-webkit-transform 200ms;transition:-webkit-transform 200ms;transition:transform 200ms;transition:transform 200ms, -webkit-transform 200ms;background:var(--highlight-color)}.input-highlight.sc-ion-input-md{inset-inline-start:0}.has-focus.sc-ion-input-md-h .input-highlight.sc-ion-input-md{-webkit-transform:scale(1);transform:scale(1)}.in-item.sc-ion-input-md-h .input-highlight.sc-ion-input-md{bottom:0}.in-item.sc-ion-input-md-h .input-highlight.sc-ion-input-md{inset-inline-start:0}.input-shape-round.sc-ion-input-md-h{--border-radius:16px}.sc-ion-input-md-s>ion-button[slot=start].button-has-icon-only,.sc-ion-input-md-s>ion-button[slot=end].button-has-icon-only{--border-radius:50%;--padding-start:8px;--padding-end:8px;--padding-top:8px;--padding-bottom:8px;aspect-ratio:1;min-height:40px}`;
20781
+ const inputMdCss = () => `.sc-ion-input-md-h{--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--background:transparent;--color:initial;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;padding:0 !important;color:var(--color);font-family:var(--ion-font-family, inherit);z-index:2}ion-item[slot=start].sc-ion-input-md-h,ion-item [slot=start].sc-ion-input-md-h,ion-item[slot=end].sc-ion-input-md-h,ion-item [slot=end].sc-ion-input-md-h{width:auto}.ion-color.sc-ion-input-md-h{--highlight-color-focused:var(--ion-color-base)}.input-label-placement-floating.sc-ion-input-md-h,.input-label-placement-stacked.sc-ion-input-md-h{min-height:56px}.native-input.sc-ion-input-md{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:inline-block;position:relative;-ms-flex:1;flex:1;width:100%;min-width:2ch;max-width:100%;height:100%;max-height:100%;border:0;outline:none;background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:1}.native-input.sc-ion-input-md::-webkit-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-md::-moz-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-md:-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-md::-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-md::placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-md:-webkit-autofill{background-color:transparent}.native-input.sc-ion-input-md:invalid{-webkit-box-shadow:none;box-shadow:none}.native-input.sc-ion-input-md::-ms-clear{display:none}.cloned-input.sc-ion-input-md{position:absolute;top:0;bottom:0;height:auto;max-height:none;pointer-events:none}.cloned-input.sc-ion-input-md:disabled{opacity:1}.input-clear-icon.sc-ion-input-md{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;background-position:center;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:30px;height:30px;border:0;outline:none;background-color:transparent;background-repeat:no-repeat;color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));visibility:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}.in-item-color.sc-ion-input-md-h .input-clear-icon.sc-ion-input-md{color:inherit}.input-clear-icon.sc-ion-input-md:focus{opacity:0.5}.has-value.sc-ion-input-md-h .input-clear-icon.sc-ion-input-md{visibility:visible}.input-wrapper.sc-ion-input-md{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:stretch;align-items:stretch;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal}.input-control.sc-ion-input-md{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;width:100%;min-width:0}.native-wrapper.sc-ion-input-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;width:100%}.input-label-placement-start.sc-ion-input-md-h .native-wrapper.sc-ion-input-md,.input-label-placement-end.sc-ion-input-md-h .native-wrapper.sc-ion-input-md,.input-label-placement-fixed.sc-ion-input-md-h .native-wrapper.sc-ion-input-md{-ms-flex:1 1 0px;flex:1 1 0}.input-start.sc-ion-input-md,.input-end.sc-ion-input-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center}.ion-touched.ion-invalid.sc-ion-input-md-h{--highlight-color:var(--highlight-color-invalid)}.ion-valid.sc-ion-input-md-h{--highlight-color:var(--highlight-color-valid)}.input-bottom.sc-ion-input-md{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem;white-space:normal}.has-focus.ion-valid.sc-ion-input-md-h,.ion-touched.ion-invalid.sc-ion-input-md-h{--border-color:var(--highlight-color)}.input-bottom.sc-ion-input-md .error-text.sc-ion-input-md{display:none;color:var(--highlight-color-invalid)}.input-bottom.sc-ion-input-md .helper-text.sc-ion-input-md{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}.ion-touched.ion-invalid.sc-ion-input-md-h .input-bottom.sc-ion-input-md .error-text.sc-ion-input-md{display:block}.ion-touched.ion-invalid.sc-ion-input-md-h .input-bottom.sc-ion-input-md .helper-text.sc-ion-input-md{display:none}.input-bottom.sc-ion-input-md .counter.sc-ion-input-md{-webkit-margin-start:auto;margin-inline-start:auto;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));white-space:nowrap;-webkit-padding-start:16px;padding-inline-start:16px}.has-focus.sc-ion-input-md-h input.sc-ion-input-md{caret-color:var(--highlight-color)}.label-text-wrapper.sc-ion-input-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-width:0;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.skip-label-transition.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{-webkit-transition:none;transition:none}.label-text.sc-ion-input-md,.sc-ion-input-md-s>[slot=label]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden.sc-ion-input-md,.input-outline-notch-hidden.sc-ion-input-md{display:none}.input-wrapper.sc-ion-input-md input.sc-ion-input-md{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.input-label-placement-start.sc-ion-input-md-h .input-control.sc-ion-input-md{-ms-flex-direction:row;flex-direction:row}.input-label-placement-start.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}.input-label-placement-end.sc-ion-input-md-h .input-control.sc-ion-input-md{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.input-label-placement-end.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}.input-label-placement-fixed.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}.input-label-placement-fixed.sc-ion-input-md-h .label-text.sc-ion-input-md{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}.input-label-placement-stacked.sc-ion-input-md-h .input-control.sc-ion-input-md,.input-label-placement-floating.sc-ion-input-md-h .input-control.sc-ion-input-md{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}.input-label-placement-stacked.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,.input-label-placement-floating.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{-webkit-transform-origin:left top;transform-origin:left top;max-width:100%;z-index:2}[dir=rtl].sc-ion-input-md-h -no-combinator.input-label-placement-stacked.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl] .sc-ion-input-md-h -no-combinator.input-label-placement-stacked.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl].input-label-placement-stacked.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl] .input-label-placement-stacked.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl].sc-ion-input-md-h -no-combinator.input-label-placement-floating.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl] .sc-ion-input-md-h -no-combinator.input-label-placement-floating.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl].input-label-placement-floating.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl] .input-label-placement-floating.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.input-label-placement-stacked.sc-ion-input-md-h:dir(rtl) .label-text-wrapper.sc-ion-input-md,.input-label-placement-floating.sc-ion-input-md-h:dir(rtl) .label-text-wrapper.sc-ion-input-md{-webkit-transform-origin:right top;transform-origin:right top}}.input-label-placement-floating.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}.input-label-placement-floating.sc-ion-input-md-h input.sc-ion-input-md{opacity:0}.has-focus.input-label-placement-floating.sc-ion-input-md-h input.sc-ion-input-md,.has-value.input-label-placement-floating.sc-ion-input-md-h input.sc-ion-input-md{opacity:1}.label-floating.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}.sc-ion-input-md-s>[slot=start]:last-of-type{-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}.sc-ion-input-md-s>[slot=end]:first-of-type{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}.sc-ion-input-md-h[disabled].sc-ion-input-md-s>ion-input-password-toggle,.sc-ion-input-md-h[disabled] .sc-ion-input-md-s>ion-input-password-toggle,.sc-ion-input-md-h[readonly].sc-ion-input-md-s>ion-input-password-toggle,.sc-ion-input-md-h[readonly] .sc-ion-input-md-s>ion-input-password-toggle{visibility:hidden}.input-fill-solid.sc-ion-input-md-h{--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--border-color:var(--ion-color-step-500, var(--ion-background-color-step-500, gray));--border-radius:4px;--padding-start:16px;--padding-end:16px;min-height:56px}.input-fill-solid.sc-ion-input-md-h .input-wrapper.sc-ion-input-md{border-bottom:var(--border-width) var(--border-style) var(--border-color)}.has-focus.input-fill-solid.ion-valid.sc-ion-input-md-h,.input-fill-solid.ion-touched.ion-invalid.sc-ion-input-md-h{--border-color:var(--highlight-color)}.input-fill-solid.sc-ion-input-md-h .input-bottom.sc-ion-input-md{border-top:none}@media (any-hover: hover){.input-fill-solid.sc-ion-input-md-h:hover{--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6));--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}}.input-fill-solid.has-focus.sc-ion-input-md-h{--background:var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}.input-fill-solid.sc-ion-input-md-h .input-wrapper.sc-ion-input-md{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0px;border-end-start-radius:0px}.label-floating.input-fill-solid.input-label-placement-floating.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{max-width:calc(100% / 0.75)}.input-fill-outline.sc-ion-input-md-h{--border-color:var(--ion-color-step-300, var(--ion-background-color-step-300, #b3b3b3));--border-radius:4px;--padding-start:16px;--padding-end:16px;--internal-start-container-adjustment:0px;min-height:56px}.input-fill-outline.input-shape-round.sc-ion-input-md-h{--border-radius:28px;--padding-start:32px;--padding-end:32px}.has-focus.input-fill-outline.ion-valid.sc-ion-input-md-h,.input-fill-outline.ion-touched.ion-invalid.sc-ion-input-md-h{--border-color:var(--highlight-color)}@media (any-hover: hover){.input-fill-outline.sc-ion-input-md-h:hover{--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}}.input-fill-outline.has-focus.sc-ion-input-md-h{--border-width:var(--highlight-height);--border-color:var(--highlight-color)}.input-fill-outline.sc-ion-input-md-h .input-bottom.sc-ion-input-md{border-top:none}.input-fill-outline.sc-ion-input-md-h .input-wrapper.sc-ion-input-md{border-bottom:none}.input-fill-outline.sc-ion-input-md-h:not(.label-floating) .input-control.sc-ion-input-md{position:relative}.input-fill-outline.input-label-placement-stacked.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,.input-fill-outline.input-label-placement-floating.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{-webkit-transform-origin:left top;transform-origin:left top;position:absolute;max-width:100%}[dir=rtl].sc-ion-input-md-h -no-combinator.input-fill-outline.input-label-placement-stacked.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl] .sc-ion-input-md-h -no-combinator.input-fill-outline.input-label-placement-stacked.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl].input-fill-outline.input-label-placement-stacked.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl] .input-fill-outline.input-label-placement-stacked.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl].sc-ion-input-md-h -no-combinator.input-fill-outline.input-label-placement-floating.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl] .sc-ion-input-md-h -no-combinator.input-fill-outline.input-label-placement-floating.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl].input-fill-outline.input-label-placement-floating.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,[dir=rtl] .input-fill-outline.input-label-placement-floating.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.input-fill-outline.input-label-placement-stacked.sc-ion-input-md-h:dir(rtl) .label-text-wrapper.sc-ion-input-md,.input-fill-outline.input-label-placement-floating.sc-ion-input-md-h:dir(rtl) .label-text-wrapper.sc-ion-input-md{-webkit-transform-origin:right top;transform-origin:right top}}.input-fill-outline.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{position:relative}.label-floating.input-fill-outline.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{-webkit-transform:translate(var(--internal-start-container-adjustment, 0px), -32%) scale(0.75);transform:translate(var(--internal-start-container-adjustment, 0px), -32%) scale(0.75);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;max-width:calc((100% - var(--padding-start) - var(--padding-end) - 8px) / 0.75)}.input-fill-outline.sc-ion-input-md-h .input-outline-container.sc-ion-input-md{left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;width:100%;height:100%}.input-fill-outline.sc-ion-input-md-h .input-outline-start.sc-ion-input-md,.input-fill-outline.sc-ion-input-md-h .input-outline-end.sc-ion-input-md{pointer-events:none}.input-fill-outline.sc-ion-input-md-h .input-outline-start.sc-ion-input-md,.input-fill-outline.sc-ion-input-md-h .input-outline-notch.sc-ion-input-md,.input-fill-outline.sc-ion-input-md-h .input-outline-end.sc-ion-input-md{border-top:var(--border-width) var(--border-style) var(--border-color);border-bottom:var(--border-width) var(--border-style) var(--border-color)}.input-fill-outline.sc-ion-input-md-h .input-outline-notch.sc-ion-input-md{max-width:calc(100% - var(--padding-start) - var(--padding-end))}.input-fill-outline.sc-ion-input-md-h .notch-spacer.sc-ion-input-md{-webkit-padding-end:8px;padding-inline-end:8px;font-size:calc(1em * 0.75);opacity:0;pointer-events:none;-webkit-box-sizing:content-box;box-sizing:content-box}.input-fill-outline.sc-ion-input-md-h .input-outline-start.sc-ion-input-md{border-start-start-radius:var(--border-radius);border-start-end-radius:0px;border-end-end-radius:0px;border-end-start-radius:var(--border-radius);-webkit-border-start:var(--border-width) var(--border-style) var(--border-color);border-inline-start:var(--border-width) var(--border-style) var(--border-color);width:calc(var(--padding-start) - 4px)}.input-fill-outline.sc-ion-input-md-h .input-outline-end.sc-ion-input-md{-webkit-border-end:var(--border-width) var(--border-style) var(--border-color);border-inline-end:var(--border-width) var(--border-style) var(--border-color);border-start-start-radius:0px;border-start-end-radius:var(--border-radius);border-end-end-radius:var(--border-radius);border-end-start-radius:0px;-ms-flex-positive:1;flex-grow:1}.label-floating.input-fill-outline.sc-ion-input-md-h .input-outline-notch.sc-ion-input-md{border-top:none}.sc-ion-input-md-h{--border-width:1px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));--highlight-height:2px;font-size:inherit}.input-clear-icon.sc-ion-input-md ion-icon.sc-ion-input-md{font-size:22px}.input-disabled.sc-ion-input-md-h{opacity:0.38}.has-focus.ion-valid.sc-ion-input-md-h,.ion-touched.ion-invalid.sc-ion-input-md-h{--border-color:var(--highlight-color)}.input-bottom.sc-ion-input-md .counter.sc-ion-input-md{letter-spacing:0.0333333333em}.input-label-placement-floating.has-focus.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,.input-label-placement-stacked.has-focus.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{color:var(--highlight-color)}.has-focus.input-label-placement-floating.ion-valid.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,.input-label-placement-floating.ion-touched.ion-invalid.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,.has-focus.input-label-placement-stacked.ion-valid.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md,.input-label-placement-stacked.ion-touched.ion-invalid.sc-ion-input-md-h .label-text-wrapper.sc-ion-input-md{color:var(--highlight-color)}.input-highlight.sc-ion-input-md{bottom:-1px;position:absolute;width:100%;height:var(--highlight-height);-webkit-transform:scale(0);transform:scale(0);-webkit-transition:-webkit-transform 200ms;transition:-webkit-transform 200ms;transition:transform 200ms;transition:transform 200ms, -webkit-transform 200ms;background:var(--highlight-color)}.input-highlight.sc-ion-input-md{inset-inline-start:0}.has-focus.sc-ion-input-md-h .input-highlight.sc-ion-input-md{-webkit-transform:scale(1);transform:scale(1)}.in-item.sc-ion-input-md-h .input-highlight.sc-ion-input-md{bottom:0}.in-item.sc-ion-input-md-h .input-highlight.sc-ion-input-md{inset-inline-start:0}.input-shape-round.sc-ion-input-md-h{--border-radius:16px}.sc-ion-input-md-s>ion-button[slot=start].button-has-icon-only,.sc-ion-input-md-s>ion-button[slot=end].button-has-icon-only{--border-radius:50%;--padding-start:8px;--padding-end:8px;--padding-top:8px;--padding-bottom:8px;aspect-ratio:1;min-height:40px}`;
20268
20782
 
20269
20783
  /**
20270
20784
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
@@ -20488,11 +21002,7 @@ class Input {
20488
21002
  * Instead, the click event from the ion-input is emitted.
20489
21003
  */
20490
21004
  onClickCapture(ev) {
20491
- const nativeInput = this.nativeInput;
20492
- if (nativeInput && ev.target === nativeInput) {
20493
- ev.stopPropagation();
20494
- this.el.click();
20495
- }
21005
+ this.clickController?.handleClickCapture(ev);
20496
21006
  }
20497
21007
  componentWillLoad() {
20498
21008
  this.inheritedAttributes = {
@@ -20512,6 +21022,7 @@ class Input {
20512
21022
  return Build.isBrowser;
20513
21023
  });
20514
21024
  this.startContainerController.calculateStartContainerWidth();
21025
+ this.clickController = createClickController(el, () => this.nativeInput);
20515
21026
  // Always set initial state
20516
21027
  this.isInvalid = checkInvalidState(el);
20517
21028
  this.debounceChanged();
@@ -20762,7 +21273,7 @@ class Input {
20762
21273
  * the input has a value or is focused.
20763
21274
  */
20764
21275
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus));
20765
- return (hAsync(Host, { key: '9e9495b8f962372d526343ff76b80fb9700fce19', class: createColorClasses$1(this.color, {
21276
+ return (hAsync(Host, { key: '290cf987de670276bf40b9f19d35d3769d9c0540', class: createColorClasses$1(this.color, {
20766
21277
  [mode]: true,
20767
21278
  'has-value': hasValue,
20768
21279
  'has-focus': hasFocus,
@@ -20773,14 +21284,14 @@ class Input {
20773
21284
  'in-item': inItem,
20774
21285
  'in-item-color': hostContext('ion-item.ion-color', this.el),
20775
21286
  'input-disabled': disabled,
20776
- }) }, hAsync("label", { key: '7121f34ed782caf7a7b82703b94fc9d6c78ce5ba', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, hasOutlineFill && this.renderOutlineContainer(), hAsync("div", { key: '0c1f8526d86c8a2433c23873fa64b1edc0eafe29', class: "input-start", ref: (el) => (this.startContainerEl = el) }, hAsync("slot", { key: 'a50323fde0fb12997c2324eded132908680ea450', name: "start" })), hAsync("div", { key: '626360c4e115a5286baab49680b2a02cd39614c8', class: "input-control" }, this.renderLabel(), hAsync("div", { key: '1cefd9d8cd6ed96fab7b58237f8f8b0c5e1be92e', class: "native-wrapper", onClick: this.onLabelClick }, hAsync("input", { key: '3dee5302f3a685a848fedd7e1face5095e3ac64b', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect ? 'on' : 'off', autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-labelledby": this.getLabelledById(), ...this.inheritedAttributes }))), hAsync("div", { key: '39fff82e00e63963fe5f17794900ace2a3faa208', class: "input-end" }, this.clearInput && !readonly && !disabled && (hAsync("button", { key: '1fa86fdb5baf4a7cd531ee0fe767a42b44fb33fc', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
21287
+ }) }, hAsync("label", { key: '27f4bd671f6084a7e608e4f9442192c950879dc2', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, hasOutlineFill && this.renderOutlineContainer(), hAsync("div", { key: '7827c61ffdd02952fc8cf2096f621b50fc51ec03', class: "input-start", ref: (el) => (this.startContainerEl = el) }, hAsync("slot", { key: '1d8af52d3506742d87334b388859a8bf613e1be0', name: "start" })), hAsync("div", { key: '927a412064538c00df98fabc06a32c564d05e984', class: "input-control" }, this.renderLabel(), hAsync("div", { key: '05f80c0b11a7da57445f976bd2dbb557fa63c9bc', class: "native-wrapper", onClick: this.onLabelClick }, hAsync("input", { key: 'cb6f5d81ba7c2a04cc4c9deb5d3f5bca8562b6db', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect ? 'on' : 'off', autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-labelledby": this.getLabelledById(), ...this.inheritedAttributes }))), hAsync("div", { key: '82cd1b0458dcd491fd1a46b29764f2b79a969bc6', class: "input-end" }, this.clearInput && !readonly && !disabled && (hAsync("button", { key: 'dfcf0ed81cf36fc61b8e12ed4605ac6b6eb50dad', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
20777
21288
  /**
20778
21289
  * This prevents mobile browsers from
20779
21290
  * blurring the input when the clear
20780
21291
  * button is activated.
20781
21292
  */
20782
21293
  ev.preventDefault();
20783
- }, onClick: this.clearTextInput }, hAsync("ion-icon", { key: 'ced39304f97e56870f7480afa025ffe232010cfb', "aria-hidden": "true", icon: clearIconData }))), hAsync("slot", { key: 'f4098769eef1cc5aa2074c369f757ccb94a98e1c', name: "end" })), shouldRenderHighlight && hAsync("div", { key: '258fe6ff8f9f57836f2a3a0b6163bd2b7dbf0699', class: "input-highlight" })), this.renderBottomContent()));
21294
+ }, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '11e2c866135f332e81b4637de178e1c5c7da0d38', "aria-hidden": "true", icon: clearIconData }))), hAsync("slot", { key: 'afb0e75e7103b2bf925a9c7649c93eb1d5702670', name: "end" })), shouldRenderHighlight && hAsync("div", { key: '1f305bba279e93685d7139acf0aff6bf4a77500c', class: "input-highlight" })), this.renderBottomContent()));
20784
21295
  }
20785
21296
  get el() { return getElement(this); }
20786
21297
  static get watchers() { return {
@@ -20873,6 +21384,11 @@ class InputOTP {
20873
21384
  * focus behavior when an input box is focused.
20874
21385
  */
20875
21386
  this.isKeyboardNavigation = false;
21387
+ /**
21388
+ * The `length` watcher runs before new inputs render, so
21389
+ * `componentDidRender` updates their tab indexes instead.
21390
+ */
21391
+ this.updateTabIndexesAfterRender = false;
20876
21392
  this.inputValues = [];
20877
21393
  this.hasFocus = false;
20878
21394
  this.previousInputValues = [];
@@ -21232,6 +21748,10 @@ class InputOTP {
21232
21748
  this.initializeValues();
21233
21749
  this.updateTabIndexes();
21234
21750
  }
21751
+ lengthChanged() {
21752
+ this.initializeValues();
21753
+ this.updateTabIndexesAfterRender = true;
21754
+ }
21235
21755
  /**
21236
21756
  * Processes the separators prop into an array of numbers.
21237
21757
  *
@@ -21288,6 +21808,12 @@ class InputOTP {
21288
21808
  componentDidLoad() {
21289
21809
  this.updateTabIndexes();
21290
21810
  }
21811
+ componentDidRender() {
21812
+ if (this.updateTabIndexesAfterRender) {
21813
+ this.updateTabIndexesAfterRender = false;
21814
+ this.updateTabIndexes();
21815
+ }
21816
+ }
21291
21817
  /**
21292
21818
  * Get the regex pattern for allowed characters.
21293
21819
  * If a pattern is provided, use it to create a regex pattern
@@ -21465,7 +21991,7 @@ class InputOTP {
21465
21991
  const tabbableIndex = this.getTabbableIndex();
21466
21992
  const pattern = this.getPattern();
21467
21993
  const hasDescription = el.querySelector('.input-otp-description')?.textContent?.trim() !== '';
21468
- return (hAsync(Host, { key: 'bd37661e13cde21feff30c663e6813ce3fff0d9a', class: createColorClasses$1(color, {
21994
+ return (hAsync(Host, { key: 'def9fbd4fa135e6f435380c6ea86ac1621b4a111', class: createColorClasses$1(color, {
21469
21995
  [mode]: true,
21470
21996
  'has-focus': hasFocus,
21471
21997
  [`input-otp-size-${size}`]: true,
@@ -21473,20 +21999,30 @@ class InputOTP {
21473
21999
  [`input-otp-fill-${fill}`]: true,
21474
22000
  'input-otp-disabled': disabled,
21475
22001
  'input-otp-readonly': readonly,
21476
- }) }, hAsync("div", { key: '5e206f870024f1ecfebda999ff31e6e815774deb', role: "group", "aria-label": "One-time password input", class: "input-otp-group", ...inheritedAttributes }, Array.from({ length }).map((_, index) => (hAsync(Fragment, null, hAsync("div", { class: "native-wrapper" }, hAsync("input", { class: "native-input", id: `${inputId}-${index}`, "aria-label": `Input ${index + 1} of ${length}`, type: "text", autoCapitalize: autocapitalize, inputmode: inputmode, pattern: pattern, disabled: disabled, readOnly: readonly, tabIndex: index === tabbableIndex ? 0 : -1, value: inputValues[index] || '', autocomplete: "one-time-code", ref: (el) => (inputRefs[index] = el), onInput: this.onInput(index), onBlur: this.onBlur, onFocus: this.onFocus(index), onKeyDown: this.onKeyDown(index), onPaste: this.onPaste })), this.showSeparator(index) && hAsync("div", { class: "input-otp-separator" }))))), hAsync("div", { key: 'c268f838ddab2c8d6a612a11c7d38e6ca076436d', class: {
22002
+ }) }, hAsync("div", { key: '5d3d7646a3d4fc856b7b2e1f53d29fca47b10baf', role: "group", "aria-label": "One-time password input", class: "input-otp-group", ...inheritedAttributes }, Array.from({ length }).map((_, index) => (hAsync(Fragment, null, hAsync("div", { class: "native-wrapper" }, hAsync("input", { class: "native-input", id: `${inputId}-${index}`, "aria-label": `Input ${index + 1} of ${length}`, type: "text", autoCapitalize: autocapitalize, inputmode: inputmode, pattern: pattern, disabled: disabled, readOnly: readonly, tabIndex: index === tabbableIndex ? 0 : -1, value: inputValues[index] || '', autocomplete: "one-time-code", ref: (el) => {
22003
+ if (el) {
22004
+ inputRefs[index] = el;
22005
+ }
22006
+ else {
22007
+ // The input was removed, so drop its ref and any after it.
22008
+ inputRefs.splice(index);
22009
+ }
22010
+ }, onInput: this.onInput(index), onBlur: this.onBlur, onFocus: this.onFocus(index), onKeyDown: this.onKeyDown(index), onPaste: this.onPaste })), this.showSeparator(index) && hAsync("div", { class: "input-otp-separator" }))))), hAsync("div", { key: '9d72a4ab35b5fdd6bba9701050c385ed253b310f', class: {
21477
22011
  'input-otp-description': true,
21478
22012
  'input-otp-description-hidden': !hasDescription,
21479
- } }, hAsync("slot", { key: 'c0736359b26f609b795e399fc1ad9b540632af18' }))));
22013
+ } }, hAsync("slot", { key: '7deb3373c0d4e5deac22fa51577d271b9bb3a6d2' }))));
21480
22014
  }
21481
22015
  get el() { return getElement(this); }
21482
22016
  static get watchers() { return {
21483
22017
  "value": [{
21484
22018
  "valueChanged": 0
21485
22019
  }],
21486
- "separators": [{
22020
+ "length": [{
22021
+ "lengthChanged": 0
22022
+ }, {
21487
22023
  "processSeparators": 0
21488
22024
  }],
21489
- "length": [{
22025
+ "separators": [{
21490
22026
  "processSeparators": 0
21491
22027
  }]
21492
22028
  }; }
@@ -21639,7 +22175,6 @@ class Item {
21639
22175
  registerInstance(this, hostRef);
21640
22176
  this.labelColorStyles = {};
21641
22177
  this.itemStyles = new Map();
21642
- this.inheritedAriaAttributes = {};
21643
22178
  this.didLoad = false;
21644
22179
  this.multipleInputs = false;
21645
22180
  this.focusable = true;
@@ -21719,9 +22254,16 @@ class Item {
21719
22254
  this.watchForIndicatorControls();
21720
22255
  this.updateInteractivityOnSlotChange();
21721
22256
  }
22257
+ this.ariaController?.init();
21722
22258
  }
21723
22259
  componentWillLoad() {
21724
- this.inheritedAriaAttributes = inheritAttributes$1(this.el, ['aria-label']);
22260
+ /**
22261
+ * Only the initial copy takes the attribute off the host, so an `aria-label` written
22262
+ * after load names both the native element and the Host, which is a `listitem` when
22263
+ * the item is in an `ion-list`. The two names always agree, so a screen reader just
22264
+ * reads it twice.
22265
+ */
22266
+ this.ariaController = createAttributeController(this.el, ['aria-label'], () => forceUpdate());
21725
22267
  }
21726
22268
  componentDidLoad() {
21727
22269
  raf(() => {
@@ -21738,6 +22280,7 @@ class Item {
21738
22280
  this.indicatorControlObserver.disconnect();
21739
22281
  this.indicatorControlObserver = undefined;
21740
22282
  }
22283
+ this.ariaController?.destroy();
21741
22284
  }
21742
22285
  totalNestedInputs() {
21743
22286
  // The following elements have a clickable cover that is relative to the entire item
@@ -21834,7 +22377,8 @@ class Item {
21834
22377
  return controls[0];
21835
22378
  }
21836
22379
  render() {
21837
- const { detail, detailIcon, download, labelColorStyles, lines, disabled, href, rel, target, routerAnimation, routerDirection, inheritedAriaAttributes, multipleInputs, } = this;
22380
+ const { detail, detailIcon, download, labelColorStyles, lines, disabled, href, rel, target, routerAnimation, routerDirection, multipleInputs, } = this;
22381
+ const inheritedAriaAttributes = this.ariaController?.attributes ?? {};
21838
22382
  const childStyles = {};
21839
22383
  const mode = getIonMode$1(this);
21840
22384
  const clickable = this.isClickable();
@@ -21910,7 +22454,7 @@ class Item {
21910
22454
  * multi-input item, and in a clickable item, which is a second tab stop.
21911
22455
  */
21912
22456
  const slottedIndicatorNeedsRoom = this.hasSlottedIndicatorControl && (multipleInputs || this.isClickable());
21913
- return (hAsync(Host, { key: '0dc161ad7ac2fdedc5005015fceb34ed176010a6', "aria-disabled": ariaDisabled, class: {
22457
+ return (hAsync(Host, { key: '7fe924642310c19f057ae1bfa29c1acdf5cc7ed6', "aria-disabled": ariaDisabled, class: {
21914
22458
  ...childStyles,
21915
22459
  ...labelColorStyles,
21916
22460
  ...createColorClasses$1(this.color, {
@@ -21927,7 +22471,7 @@ class Item {
21927
22471
  'ion-focusable': this.focusable,
21928
22472
  'item-rtl': document.dir === 'rtl',
21929
22473
  }),
21930
- }, role: inList ? 'listitem' : null }, hAsync(TagType, { key: 'd42583cf62133b2553de2e7a5357168640bb1834', ...attrs, ...inheritedAriaAttributes, class: "item-native", part: "native", disabled: disabled, ...clickFn }, hAsync("slot", { key: 'bd805ce49946cd52280d1c4b370104ee2472f1e2', name: "start", onSlotchange: this.updateInteractivityOnSlotChange }), hAsync("div", { key: '0de589f9c5c13c31b6c8838566a7ad6f78f81028', class: "item-inner", part: "inner" }, hAsync("div", { key: 'faaf6a39e072fb352753c645736ab1f47c2d7d25', class: "input-wrapper", part: "container" }, hAsync("slot", { key: '70a34c31de29a0786a14b4a7d3156ba8d4d92eb4', onSlotchange: this.updateInteractivityOnSlotChange })), hAsync("slot", { key: 'c8e764b62c5c30f67750896741ca266b741d5999', name: "end", onSlotchange: this.updateInteractivityOnSlotChange }), showDetail && (hAsync("ion-icon", { key: 'af006856d8c4ed69174534261344215957cc751a', icon: detailIcon, lazy: false, class: "item-detail-icon", part: "detail-icon", "aria-hidden": "true", "flip-rtl": detailIcon === chevronForward }))), canActivate && mode === 'md' && hAsync("ion-ripple-effect", { key: 'e5e151bafedd38feb8f71a387a0059aa1e9e90de' }))));
22474
+ }, role: inList ? 'listitem' : null }, hAsync(TagType, { key: '8fddfb2a076b4b98e45ee8b23579d011dba12acb', ...attrs, ...inheritedAriaAttributes, class: "item-native", part: "native", disabled: disabled, ...clickFn }, hAsync("slot", { key: '7f888b62b2023cf501fd308e32629e7a291c2d05', name: "start", onSlotchange: this.updateInteractivityOnSlotChange }), hAsync("div", { key: '6d5cdde307caa65b131edb65cb0a5f8294cf151c', class: "item-inner", part: "inner" }, hAsync("div", { key: '9fbfffdff4cf51adf1f02d573953cf8b145574b0', class: "input-wrapper", part: "container" }, hAsync("slot", { key: '574c7e61cdaa3959a28bad7353105ef217a76ed9', onSlotchange: this.updateInteractivityOnSlotChange })), hAsync("slot", { key: 'ed7e211960cd65ed17f865a6d50d5bdde069416b', name: "end", onSlotchange: this.updateInteractivityOnSlotChange }), showDetail && (hAsync("ion-icon", { key: '2847bb21f42e9d5ab8ea86262b2bc1c3b3f7c902', icon: detailIcon, lazy: false, class: "item-detail-icon", part: "detail-icon", "aria-hidden": "true", "flip-rtl": detailIcon === chevronForward }))), canActivate && mode === 'md' && hAsync("ion-ripple-effect", { key: '55502ef394db0953144387fa3baebf9fa6a976a9' }))));
21931
22475
  }
21932
22476
  get el() { return getElement(this); }
21933
22477
  static get watchers() { return {
@@ -24192,14 +24736,14 @@ class Menu {
24192
24736
  * the ionBackButton listener in the menu controller
24193
24737
  * will handle closing the menu when Escape is pressed.
24194
24738
  */
24195
- return (hAsync(Host, { key: '1208ba437fa58680325408d3d4c8580950da1d68', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
24739
+ return (hAsync(Host, { key: '5cf26df26d4e539860cbeaea98ec621b98c3fcfc', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
24196
24740
  [mode]: true,
24197
24741
  [`menu-type-${type}`]: true,
24198
24742
  'menu-enabled': !disabled,
24199
24743
  [`menu-side-${side}`]: true,
24200
24744
  'menu-pane-visible': isPaneVisible,
24201
24745
  'split-pane-side': hostContext('ion-split-pane', el),
24202
- } }, hAsync("div", { key: 'c0ddc957b7a7956b41901d77ae02d91e73071c55', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: '6e44c56116431a024f114ab85ded1b822c942fac' })), hAsync("ion-backdrop", { key: '5f4bbcf84444d96ec6b02bf567e1aaf95f59078d', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
24746
+ } }, hAsync("div", { key: 'f337016e293bb8665c99762e0c389dd6c372bb33', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: '4c3fe331aa42cd57d7ad9bd1f5910f8eeb62d7da' })), hAsync("ion-backdrop", { key: '61af7ea876d81574841e1dd3e81e2352e555d096', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
24203
24747
  }
24204
24748
  get el() { return getElement(this); }
24205
24749
  static get watchers() { return {
@@ -24916,6 +25460,12 @@ const setCardStatusBarDefault = (defaultStyle = Style.Default) => {
24916
25460
  }
24917
25461
  StatusBar.setStyle({ style: defaultStyle });
24918
25462
  };
25463
+ /**
25464
+ * Calls back when the modal's resolved `--height` changes.
25465
+ */
25466
+ const onModalHeightChange = (hostEl, callback) => {
25467
+ return onCustomPropertyChange(hostEl, '--height', () => callback());
25468
+ };
24919
25469
 
24920
25470
  /**
24921
25471
  * Swiping is only possible when the content is scrolled to the top, so that we
@@ -26444,40 +26994,12 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
26444
26994
  };
26445
26995
  };
26446
26996
 
26447
- /**
26448
- * These thresholds match the SCSS media query breakpoints in modal.vars.scss
26449
- * that trigger the centered dialog layout (non-fullscreen modal).
26450
- *
26451
- * SCSS defines two height breakpoints: $modal-inset-min-height-small (600px)
26452
- * and $modal-inset-min-height-large (768px). We use the smaller one because
26453
- * that's the threshold where the modal transitions from fullscreen to centered
26454
- * dialog — the larger breakpoint only increases the dialog's height.
26455
- */
26456
- const MODAL_INSET_MIN_WIDTH = 768;
26457
- const MODAL_INSET_MIN_HEIGHT = 600;
26458
26997
  const EDGE_THRESHOLD = 5;
26459
- /**
26460
- * CSS values for `--width` / `--height` that are treated as fullscreen
26461
- * (modal touches the corresponding screen edges). Empty string means the
26462
- * property was not overridden. See `hasCustomModalDimensions()`.
26463
- */
26464
- const FULLSCREEN_SIZE_VALUES = new Set(['', '100%', '100vw', '100vh', '100dvw', '100dvh', '100svw', '100svh']);
26465
26998
  /**
26466
26999
  * Cache for resolved root safe-area-top value, invalidated once per frame.
26467
27000
  */
26468
27001
  let cachedRootSafeAreaTop = null;
26469
27002
  let cacheInvalidationScheduled$1 = false;
26470
- /**
26471
- * Determines if the current viewport meets the CSS media query conditions
26472
- * that cause regular modals to render as centered dialogs instead of fullscreen.
26473
- * Matches: @media (min-width: 768px) and (min-height: 600px)
26474
- */
26475
- const isCenteredDialogViewport = () => {
26476
- if (!win$1)
26477
- return false;
26478
- return win$1.matchMedia(`(min-width: ${MODAL_INSET_MIN_WIDTH}px) and (min-height: ${MODAL_INSET_MIN_HEIGHT}px)`)
26479
- .matches;
26480
- };
26481
27003
  /**
26482
27004
  * Resolves the current root --ion-safe-area-top value to pixels.
26483
27005
  * Uses a temporary element because getComputedStyle on :root returns
@@ -26511,55 +27033,64 @@ const getRootSafeAreaTop = () => {
26511
27033
  return value;
26512
27034
  };
26513
27035
  /**
26514
- * Calls back when the resolved root `--ion-safe-area-top` changes, which no
26515
- * event and no window resize covers. The probe's height tracks the variable, so
26516
- * a change to it becomes a size change the observer can see.
27036
+ * Calls back when the resolved root `--ion-safe-area-top` changes. The value
27037
+ * the caller already applied is passed as the baseline, so a change between
27038
+ * that read and the observer starting is still reported.
26517
27039
  */
26518
27040
  const onRootSafeAreaTopChange = (callback) => {
26519
- const doc = win$1?.document;
26520
- if (!doc?.body || typeof ResizeObserver === 'undefined') {
26521
- return () => undefined;
26522
- }
26523
- const probe = doc.createElement('div');
26524
- probe.style.cssText =
26525
- 'position:fixed;visibility:hidden;pointer-events:none;top:0;left:0;width:0;' +
26526
- 'height:var(--ion-safe-area-top,0px);';
26527
- doc.body.appendChild(probe);
26528
- /**
26529
- * Seeded with the value the caller has already applied, so a change that
26530
- * lands before the observer's first delivery still gets reported. Comparing
26531
- * against an unset value instead would consume that first delivery and treat
26532
- * the new inset as the baseline.
26533
- */
26534
- let lastHeight = getRootSafeAreaTop();
26535
- const observer = new ResizeObserver((entries) => {
26536
- const { height } = entries[0].contentRect;
26537
- if (height !== lastHeight) {
26538
- lastHeight = height;
26539
- callback(height);
26540
- }
26541
- });
26542
- observer.observe(probe);
26543
- return () => {
26544
- observer.disconnect();
26545
- probe.remove();
26546
- };
27041
+ return onCustomPropertyChange(win$1?.document?.body, '--ion-safe-area-top', callback, getRootSafeAreaTop());
26547
27042
  };
26548
27043
  /**
26549
- * True when the modal host declares BOTH a non-fullscreen `--width` AND a
26550
- * non-fullscreen `--height` (i.e. a centered-dialog-like modal that doesn't
26551
- * touch any screen edge).
27044
+ * Determines which viewport axes the modal spans so safe-area requirements
27045
+ * can be predicted independently for each axis.
27046
+ *
27047
+ * A modal that spans an axis reaches both edges on that axis and needs the
27048
+ * corresponding safe-area insets. A modal that does not span an axis reaches
27049
+ * neither edge on that axis.
26552
27050
  *
26553
- * The conservative "both axes" check avoids mis-zeroing safe-area for
26554
- * partial-custom modals where the modal still touches top/bottom edges
26555
- * (e.g. only `--width` overridden). Partial cases fall through to the
26556
- * existing position-based post-animation correction.
27051
+ * When both `--width` and `--height` are `fullscreen`, coverage can be
27052
+ * determined directly. Otherwise, coverage is based on the rendered wrapper,
27053
+ * including cases where content sizing or `--max-height` causes the modal
27054
+ * to reach the viewport.
26557
27055
  */
26558
- const hasCustomModalDimensions = (hostEl) => {
27056
+ const getModalCoveredAxes = (hostEl) => {
26559
27057
  const styles = getComputedStyle(hostEl);
26560
- const width = styles.getPropertyValue('--width').trim();
26561
- const height = styles.getPropertyValue('--height').trim();
26562
- return !FULLSCREEN_SIZE_VALUES.has(width) && !FULLSCREEN_SIZE_VALUES.has(height);
27058
+ const width = getOverlaySizeType(styles.getPropertyValue('--width'));
27059
+ const height = getOverlaySizeType(styles.getPropertyValue('--height'));
27060
+ if (width === 'fullscreen' && height === 'fullscreen') {
27061
+ return { vertical: true, horizontal: true };
27062
+ }
27063
+ return measureCoveredAxes(hostEl);
27064
+ };
27065
+ /**
27066
+ * Measures the modal wrapper to determine whether it spans the viewport
27067
+ * on each axis.
27068
+ *
27069
+ * The wrapper has no box while the modal is hidden, so `overlay-hidden`
27070
+ * is temporarily removed to allow the wrapper to be measured. The class
27071
+ * is restored in the same task before the browser can paint.
27072
+ *
27073
+ * Only the wrapper's size is measured. Its position is affected by the
27074
+ * enter animation, which initially translates it by its own height, while
27075
+ * the translation does not affect its measured size.
27076
+ */
27077
+ const measureCoveredAxes = (hostEl) => {
27078
+ const wrapperEl = hostEl.shadowRoot?.querySelector('.modal-wrapper');
27079
+ if (wrapperEl == null || win$1 === undefined) {
27080
+ return { vertical: false, horizontal: false };
27081
+ }
27082
+ const wasHidden = hostEl.classList.contains('overlay-hidden');
27083
+ if (wasHidden) {
27084
+ hostEl.classList.remove('overlay-hidden');
27085
+ }
27086
+ const { width, height } = wrapperEl.getBoundingClientRect();
27087
+ if (wasHidden) {
27088
+ hostEl.classList.add('overlay-hidden');
27089
+ }
27090
+ return {
27091
+ vertical: height >= win$1.innerHeight - EDGE_THRESHOLD,
27092
+ horizontal: width >= win$1.innerWidth - EDGE_THRESHOLD,
27093
+ };
26563
27094
  };
26564
27095
  /**
26565
27096
  * Returns the initial safe-area configuration based on modal type.
@@ -26593,26 +27124,23 @@ const getInitialSafeAreaConfig = (context) => {
26593
27124
  right: '0px',
26594
27125
  };
26595
27126
  }
26596
- // On viewports that meet the centered dialog media query breakpoints,
26597
- // regular modals render as centered dialogs (not fullscreen), so they
26598
- // don't touch any screen edges and don't need safe-area insets. Also
26599
- // applies to phone viewports when the modal declares custom --width and
26600
- // --height; these don't touch screen edges either, so the initial
26601
- // prediction must be zero to avoid a post-animation correction flash.
26602
- if (isCenteredDialogViewport() || context.hasCustomDimensions) {
26603
- return {
26604
- top: '0px',
26605
- bottom: '0px',
26606
- left: '0px',
26607
- right: '0px',
26608
- };
26609
- }
26610
- // Fullscreen modals on phone - inherit all safe areas
27127
+ /**
27128
+ * Each axis is evaluated independently because a modal can span one axis
27129
+ * without spanning the other. This allows the initial safe-area configuration
27130
+ * to match the modal's expected dimensions and avoids correcting an incorrect
27131
+ * pair of insets after presentation.
27132
+ *
27133
+ * A modal can span the horizontal axis while remaining inset vertically, or
27134
+ * span the vertical axis while remaining inset horizontally. Wide viewports
27135
+ * can also render regular modals as centered dialogs, while content-sized
27136
+ * modals may still be clamped to the viewport.
27137
+ */
27138
+ const { vertical, horizontal } = context.coveredAxes ?? { vertical: true, horizontal: true };
26611
27139
  return {
26612
- top: 'inherit',
26613
- bottom: 'inherit',
26614
- left: 'inherit',
26615
- right: 'inherit',
27140
+ top: vertical ? 'inherit' : '0px',
27141
+ bottom: vertical ? 'inherit' : '0px',
27142
+ left: horizontal ? 'inherit' : '0px',
27143
+ right: horizontal ? 'inherit' : '0px',
26616
27144
  };
26617
27145
  };
26618
27146
  /**
@@ -26664,9 +27192,9 @@ const clearSafeAreaOverrides = (hostEl) => {
26664
27192
  hostEl.style.removeProperty('--ion-safe-area-right');
26665
27193
  };
26666
27194
 
26667
- const modalIosCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-wrapper{outline:none}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}`;
27195
+ const modalIosCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:100%;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-wrapper{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;outline:none}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}`;
26668
27196
 
26669
- const modalMdCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-wrapper{outline:none}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}`;
27197
+ const modalMdCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:100%;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-wrapper{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;outline:none}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}`;
26670
27198
 
26671
27199
  // TODO(FW-2832): types
26672
27200
  /**
@@ -27704,7 +28232,7 @@ class Modal {
27704
28232
  /**
27705
28233
  * Creates the context object for safe-area utilities.
27706
28234
  *
27707
- * `hasCustomDimensions` is only set by `setInitialSafeAreaOverrides()`
28235
+ * `coveredAxes` is only set by `setInitialSafeAreaOverrides()`
27708
28236
  * because it is only read by `getInitialSafeAreaConfig()`. Other callers
27709
28237
  * (resize handler, post-animation update, fullscreen-padding apply) would
27710
28238
  * pay a `getComputedStyle()` cost for a value they never consult.
@@ -27718,6 +28246,26 @@ class Modal {
27718
28246
  currentBreakpoint: this.currentBreakpoint,
27719
28247
  };
27720
28248
  }
28249
+ /**
28250
+ * Keeps the content's sizing in sync with `--height`. The content reads the
28251
+ * property to determine whether it should size itself to its content, and
28252
+ * changes to `--height` on an ancestor or the root can change that behavior
28253
+ * without changing the modal itself.
28254
+ */
28255
+ watchHeightForContent() {
28256
+ /**
28257
+ * A sheet's height comes from its breakpoints, so its content never sizes
28258
+ * itself to `--height`. Watching it would cause the drag to recalculate on
28259
+ * every frame.
28260
+ */
28261
+ if (this.isSheetModal) {
28262
+ return;
28263
+ }
28264
+ this.unsubscribeHeightChange?.();
28265
+ this.unsubscribeHeightChange = onModalHeightChange(this.el, () => {
28266
+ this.el.querySelectorAll('ion-content').forEach((contentEl) => contentEl.recalculateDimensions());
28267
+ });
28268
+ }
27721
28269
  /**
27722
28270
  * Sets initial safe-area overrides before modal animation.
27723
28271
  * Called in present() before animation starts.
@@ -27731,10 +28279,11 @@ class Modal {
27731
28279
  setInitialSafeAreaOverrides() {
27732
28280
  const context = {
27733
28281
  ...this.getSafeAreaContext(),
27734
- hasCustomDimensions: hasCustomModalDimensions(this.el),
28282
+ coveredAxes: getModalCoveredAxes(this.el),
27735
28283
  };
27736
28284
  const safeAreaConfig = getInitialSafeAreaConfig(context);
27737
28285
  applySafeAreaOverrides(this.el, safeAreaConfig);
28286
+ this.watchHeightForContent();
27738
28287
  // Set the internal offset property with the resolved root safe-area-top value
27739
28288
  if (context.isSheetModal) {
27740
28289
  this.updateSheetOffsetTop();
@@ -27854,6 +28403,8 @@ class Modal {
27854
28403
  clearSafeAreaOverrides(this.el);
27855
28404
  this.unsubscribeRootSafeAreaTop?.();
27856
28405
  this.unsubscribeRootSafeAreaTop = undefined;
28406
+ this.unsubscribeHeightChange?.();
28407
+ this.unsubscribeHeightChange = undefined;
27857
28408
  // Remove internal sheet offset property
27858
28409
  this.el.style.removeProperty('--ion-modal-offset-top');
27859
28410
  const { contentEl } = this.findContentAndFooter();
@@ -27891,7 +28442,7 @@ class Modal {
27891
28442
  const isCardModal = presentingElement !== undefined && mode === 'ios';
27892
28443
  const isHandleCycle = handleBehavior === 'cycle';
27893
28444
  const isSheetModalWithHandle = isSheetModal && showHandle;
27894
- return (hAsync(Host, { key: '7c9c736052c5a788cf31040b6b2386dd9ea7454b', "no-router": true,
28445
+ return (hAsync(Host, { key: '17a95bd7722bac2344bea041aff97db17f55c0cf', "no-router": true,
27895
28446
  // Allow the modal to be navigable when the handle is focusable
27896
28447
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1, ...htmlAttributes, style: {
27897
28448
  zIndex: `${20000 + this.overlayIndex}`,
@@ -27904,7 +28455,7 @@ class Modal {
27904
28455
  'overlay-hidden': true,
27905
28456
  [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false,
27906
28457
  ...getClassMap(this.cssClass),
27907
- }, onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }, hAsync("ion-backdrop", { key: '01b5b5765fb3a32393c736065c824bf760728823', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '40fa7727a0923f7d7461dd027f1511a6a148d84a', class: "modal-shadow" }), hAsync("div", { key: '9af934b607f60795bd5bff7bee6eacfc9b14fa35',
28458
+ }, onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }, hAsync("ion-backdrop", { key: '9dab1ef4771c0d847ba2be8672afbaa2748517f3', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '64af7ed1c5f552b61fc4b9387b926acc76c8a99a', class: "modal-shadow" }), hAsync("div", { key: '7e76d77d5b2e8f0467bb793facf5aa86f8d01bbe',
27908
28459
  /*
27909
28460
  role and aria-modal must be used on the
27910
28461
  same element. They must also be set inside the
@@ -27917,9 +28468,9 @@ class Modal {
27917
28468
  without the tabindex focus() would be a no-op and screen readers
27918
28469
  may not properly announce the dialog and its content when it opens.
27919
28470
  */
27920
- role: "dialog", ...inheritedAttributes, "aria-modal": "true", tabIndex: -1, class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }, showHandle && (hAsync("button", { key: 'df84a6806413b13efc5b03c862edde83151579a7', class: "modal-handle",
28471
+ role: "dialog", ...inheritedAttributes, "aria-modal": "true", tabIndex: -1, class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }, showHandle && (hAsync("button", { key: '5efc0bb0a59adcc594ac48da9fd90e57908a7ffb', class: "modal-handle",
27921
28472
  // Prevents the handle from receiving keyboard focus when it does not cycle
27922
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: '072d3929ec6f25481946b184d8ac24219011e783', onSlotchange: this.onSlotChange }))));
28473
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: '6175fcd0b39c086b4e9eb9e96c4d631c2a86774b', onSlotchange: this.onSlotChange }))));
27923
28474
  }
27924
28475
  get el() { return getElement(this); }
27925
28476
  static get watchers() { return {
@@ -30285,30 +30836,81 @@ const getSafeAreaInsets = (doc) => {
30285
30836
  }
30286
30837
  return insets;
30287
30838
  };
30839
+ /**
30840
+ * Largest difference from 1 that the `offsetWidth` based zoom detection below
30841
+ * attributes to integer rounding rather than to an actual CSS `zoom`. The
30842
+ * rounding error is at most half a pixel over the width of the popover, which
30843
+ * is well under this threshold for any realistic popover size.
30844
+ */
30845
+ const ZOOM_ROUNDING_TOLERANCE = 0.01;
30846
+ /**
30847
+ * Returns the cumulative CSS `zoom` factor applied to an element.
30848
+ *
30849
+ * When a CSS `zoom` other than 1 is set on an ancestor (e.g. the `html`
30850
+ * element, as recommended by the docs for dynamic font scaling on Chrome for
30851
+ * Android), `getBoundingClientRect()`, `clientX`/`clientY` and other geometry
30852
+ * APIs report values in the *zoomed* (visual) coordinate space, while inline
30853
+ * `top`/`left`/`--width` styles we set are interpreted in the *unzoomed*
30854
+ * (layout) space and re-scaled by the browser. Dividing the rect-derived
30855
+ * values by this factor converts them back to layout space so the popover is
30856
+ * positioned and sized correctly. Returns 1 when no zoom is applied.
30857
+ */
30858
+ const getElementCSSZoom = (el) => {
30859
+ if (!el) {
30860
+ return 1;
30861
+ }
30862
+ /**
30863
+ * `currentCSSZoom` exposes the exact effective zoom of an element
30864
+ * (Chromium 128+). When available we use it directly.
30865
+ */
30866
+ const currentCSSZoom = el.currentCSSZoom;
30867
+ if (typeof currentCSSZoom === 'number' && currentCSSZoom > 0) {
30868
+ return currentCSSZoom;
30869
+ }
30870
+ /**
30871
+ * Fallback for browsers without `currentCSSZoom`: compare the rendered
30872
+ * (zoomed) width from `getBoundingClientRect()` against the layout width
30873
+ * from `offsetWidth`, which is not affected by CSS `zoom`.
30874
+ */
30875
+ const { width } = el.getBoundingClientRect();
30876
+ const { offsetWidth } = el;
30877
+ if (offsetWidth > 0 && width > 0) {
30878
+ const ratio = width / offsetWidth;
30879
+ /**
30880
+ * `offsetWidth` is rounded to an integer while the bounding rect is not,
30881
+ * so the ratio is rarely exactly 1 even when no zoom is applied. Treat
30882
+ * sub-pixel differences as "no zoom" so that unzoomed popovers are not
30883
+ * shifted by the rounding error. A real zoom deviates far more, though
30884
+ * the same rounding leaves the detected factor approximate.
30885
+ */
30886
+ return Math.abs(ratio - 1) < ZOOM_ROUNDING_TOLERANCE ? 1 : ratio;
30887
+ }
30888
+ return 1;
30889
+ };
30288
30890
  /**
30289
30891
  * Returns the dimensions of the popover
30290
30892
  * arrow on `ios` mode. If arrow is disabled
30291
30893
  * returns (0, 0).
30292
30894
  */
30293
- const getArrowDimensions = (arrowEl) => {
30895
+ const getArrowDimensions = (arrowEl, zoom = 1) => {
30294
30896
  if (!arrowEl) {
30295
30897
  return { arrowWidth: 0, arrowHeight: 0 };
30296
30898
  }
30297
30899
  const { width, height } = arrowEl.getBoundingClientRect();
30298
- return { arrowWidth: width, arrowHeight: height };
30900
+ return { arrowWidth: width / zoom, arrowHeight: height / zoom };
30299
30901
  };
30300
30902
  /**
30301
30903
  * Returns the recommended dimensions of the popover
30302
30904
  * that takes into account whether or not the width
30303
30905
  * should match the trigger width.
30304
30906
  */
30305
- const getPopoverDimensions = (size, contentEl, triggerEl) => {
30907
+ const getPopoverDimensions = (size, contentEl, triggerEl, zoom = 1) => {
30306
30908
  const contentDimentions = contentEl.getBoundingClientRect();
30307
- const contentHeight = contentDimentions.height;
30308
- let contentWidth = contentDimentions.width;
30909
+ const contentHeight = contentDimentions.height / zoom;
30910
+ let contentWidth = contentDimentions.width / zoom;
30309
30911
  if (size === 'cover' && triggerEl) {
30310
30912
  const triggerDimensions = triggerEl.getBoundingClientRect();
30311
- contentWidth = triggerDimensions.width;
30913
+ contentWidth = triggerDimensions.width / zoom;
30312
30914
  }
30313
30915
  return {
30314
30916
  contentWidth,
@@ -30648,7 +31250,7 @@ const configureKeyboardInteraction = (popoverEl) => {
30648
31250
  * the reference point, preferred side, alignment
30649
31251
  * and viewport dimensions.
30650
31252
  */
30651
- const getPopoverPosition = (isRTL, contentWidth, contentHeight, arrowWidth, arrowHeight, reference, side, align, defaultPosition, triggerEl, event) => {
31253
+ const getPopoverPosition = (isRTL, contentWidth, contentHeight, arrowWidth, arrowHeight, reference, side, align, defaultPosition, triggerEl, event, zoom = 1) => {
30652
31254
  let referenceCoordinates = {
30653
31255
  top: 0,
30654
31256
  left: 0,
@@ -30667,8 +31269,8 @@ const getPopoverPosition = (isRTL, contentWidth, contentHeight, arrowWidth, arro
30667
31269
  }
30668
31270
  const mouseEv = event;
30669
31271
  referenceCoordinates = {
30670
- top: mouseEv.clientY,
30671
- left: mouseEv.clientX,
31272
+ top: mouseEv.clientY / zoom,
31273
+ left: mouseEv.clientX / zoom,
30672
31274
  width: 1,
30673
31275
  height: 1,
30674
31276
  };
@@ -30700,10 +31302,10 @@ const getPopoverPosition = (isRTL, contentWidth, contentHeight, arrowWidth, arro
30700
31302
  }
30701
31303
  const triggerBoundingBox = actualTriggerEl.getBoundingClientRect();
30702
31304
  referenceCoordinates = {
30703
- top: triggerBoundingBox.top,
30704
- left: triggerBoundingBox.left,
30705
- width: triggerBoundingBox.width,
30706
- height: triggerBoundingBox.height,
31305
+ top: triggerBoundingBox.top / zoom,
31306
+ left: triggerBoundingBox.left / zoom,
31307
+ width: triggerBoundingBox.width / zoom,
31308
+ height: triggerBoundingBox.height / zoom,
30707
31309
  };
30708
31310
  break;
30709
31311
  }
@@ -31066,21 +31668,35 @@ const iosEnterAnimation$1 = (baseEl, opts) => {
31066
31668
  const { event: ev, size, trigger, reference, side, align } = opts;
31067
31669
  const doc = baseEl.ownerDocument;
31068
31670
  const isRTL = doc.dir === 'rtl';
31069
- const bodyWidth = doc.defaultView.innerWidth;
31070
- const bodyHeight = doc.defaultView.innerHeight;
31071
31671
  const root = getElementRoot(baseEl);
31072
31672
  const contentEl = root.querySelector('.popover-content');
31073
31673
  const arrowEl = root.querySelector('.popover-arrow');
31674
+ /**
31675
+ * A CSS `zoom` other than 1 on an ancestor (e.g. the `html` element) causes
31676
+ * geometry APIs like `getBoundingClientRect()` to report zoomed values while
31677
+ * inline `top`/`left`/`--width` styles are interpreted in the unzoomed layout
31678
+ * space. Normalize all rect-derived measurements by this factor so the
31679
+ * popover is positioned and sized correctly.
31680
+ */
31681
+ const zoom = getElementCSSZoom(contentEl);
31682
+ /**
31683
+ * `innerWidth`/`innerHeight` are not affected by CSS `zoom`, so they must be
31684
+ * scaled down to the same layout space as the normalized measurements above.
31685
+ * Otherwise the popover would be clamped against a viewport that is larger
31686
+ * than the space actually available to it.
31687
+ */
31688
+ const bodyWidth = doc.defaultView.innerWidth / zoom;
31689
+ const bodyHeight = doc.defaultView.innerHeight / zoom;
31074
31690
  const referenceSizeEl = trigger || ev?.detail?.ionShadowTarget || ev?.target;
31075
- const { contentWidth, contentHeight } = getPopoverDimensions(size, contentEl, referenceSizeEl);
31076
- const { arrowWidth, arrowHeight } = getArrowDimensions(arrowEl);
31691
+ const { contentWidth, contentHeight } = getPopoverDimensions(size, contentEl, referenceSizeEl, zoom);
31692
+ const { arrowWidth, arrowHeight } = getArrowDimensions(arrowEl, zoom);
31077
31693
  const defaultPosition = {
31078
31694
  top: bodyHeight / 2 - contentHeight / 2,
31079
31695
  left: bodyWidth / 2 - contentWidth / 2,
31080
31696
  originX: isRTL ? 'right' : 'left',
31081
31697
  originY: 'top',
31082
31698
  };
31083
- const results = getPopoverPosition(isRTL, contentWidth, contentHeight, arrowWidth, arrowHeight, reference, side, align, defaultPosition, trigger, ev);
31699
+ const results = getPopoverPosition(isRTL, contentWidth, contentHeight, arrowWidth, arrowHeight, reference, side, align, defaultPosition, trigger, ev, zoom);
31084
31700
  const padding = size === 'cover' ? 0 : POPOVER_IOS_BODY_PADDING;
31085
31701
  const rawSafeArea = getSafeAreaInsets(doc);
31086
31702
  const safeArea = size === 'cover'
@@ -31202,19 +31818,33 @@ const mdEnterAnimation$1 = (baseEl, opts) => {
31202
31818
  const { event: ev, size, trigger, reference, side, align } = opts;
31203
31819
  const doc = baseEl.ownerDocument;
31204
31820
  const isRTL = doc.dir === 'rtl';
31205
- const bodyWidth = doc.defaultView.innerWidth;
31206
- const bodyHeight = doc.defaultView.innerHeight;
31207
31821
  const root = getElementRoot(baseEl);
31208
31822
  const contentEl = root.querySelector('.popover-content');
31823
+ /**
31824
+ * A CSS `zoom` other than 1 on an ancestor (e.g. the `html` element) causes
31825
+ * geometry APIs like `getBoundingClientRect()` to report zoomed values while
31826
+ * inline `top`/`left`/`--width` styles are interpreted in the unzoomed layout
31827
+ * space. Normalize all rect-derived measurements by this factor so the
31828
+ * popover is positioned and sized correctly.
31829
+ */
31830
+ const zoom = getElementCSSZoom(contentEl);
31831
+ /**
31832
+ * `innerWidth`/`innerHeight` are not affected by CSS `zoom`, so they must be
31833
+ * scaled down to the same layout space as the normalized measurements above.
31834
+ * Otherwise the popover would be clamped against a viewport that is larger
31835
+ * than the space actually available to it.
31836
+ */
31837
+ const bodyWidth = doc.defaultView.innerWidth / zoom;
31838
+ const bodyHeight = doc.defaultView.innerHeight / zoom;
31209
31839
  const referenceSizeEl = trigger || ev?.detail?.ionShadowTarget || ev?.target;
31210
- const { contentWidth, contentHeight } = getPopoverDimensions(size, contentEl, referenceSizeEl);
31840
+ const { contentWidth, contentHeight } = getPopoverDimensions(size, contentEl, referenceSizeEl, zoom);
31211
31841
  const defaultPosition = {
31212
31842
  top: bodyHeight / 2 - contentHeight / 2,
31213
31843
  left: bodyWidth / 2 - contentWidth / 2,
31214
31844
  originX: isRTL ? 'right' : 'left',
31215
31845
  originY: 'top',
31216
31846
  };
31217
- const results = getPopoverPosition(isRTL, contentWidth, contentHeight, 0, 0, reference, side, align, defaultPosition, trigger, ev);
31847
+ const results = getPopoverPosition(isRTL, contentWidth, contentHeight, 0, 0, reference, side, align, defaultPosition, trigger, ev, zoom);
31218
31848
  const padding = size === 'cover' ? 0 : POPOVER_MD_BODY_PADDING;
31219
31849
  // MD mode now applies safe-area insets (previously passed 0, ignoring all safe areas).
31220
31850
  // This is needed for Android edge-to-edge (API 36+) where system bars overlap content.
@@ -37844,9 +38474,9 @@ class SegmentView {
37844
38474
  }; }
37845
38475
  }
37846
38476
 
37847
- const selectIosCss = () => `:host{--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--placeholder-color:currentColor;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--background:transparent;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--select-text-media-height:1.5em;--select-text-media-width:1.5em;--select-text-gap:12px;--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;font-family:var(--ion-font-family, inherit);white-space:nowrap;cursor:pointer;z-index:2}:host(.select-label-placement-floating),:host(.select-label-placement-stacked){min-height:56px}:host(.ion-color){--highlight-color-focused:var(--ion-color-base)}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0}:host(.select-disabled){pointer-events:none}:host(.has-focus) button{border:2px solid #5e9ed6}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}.select-placeholder{color:var(--placeholder-color);opacity:var(--placeholder-opacity)}button{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.select-icon{-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0;position:relative;-ms-flex-negative:0;flex-shrink:0}:host(.in-item-color) .select-icon{color:inherit}.select-text{-ms-flex:1;flex:1;min-width:16px;font-size:inherit;text-overflow:ellipsis;white-space:inherit;overflow:hidden}.select-text>*+*{-webkit-margin-start:var(--select-text-gap);margin-inline-start:var(--select-text-gap)}.select-text img,.select-text ion-img,.select-text ion-icon,.select-text ion-thumbnail,.select-text ion-avatar{border-radius:var(--select-text-media-border-radius);width:var(--select-text-media-width);height:var(--select-text-media-height);border-width:var(--select-text-media-border-width);border-style:var(--select-text-media-border-style);border-color:var(--select-text-media-border-color)}.select-wrapper{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:stretch;align-items:stretch;-ms-flex-pack:justify;justify-content:space-between;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal;cursor:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.select-wrapper .select-placeholder{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.select-control{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:inherit;flex-direction:inherit;-ms-flex-align:center;align-items:center;-ms-flex-pack:inherit;justify-content:inherit;min-width:0}:host(.ion-touched.ion-invalid){--highlight-color:var(--highlight-color-invalid)}:host(.ion-valid){--highlight-color:var(--highlight-color-valid)}.select-bottom{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem;white-space:normal}:host(.has-focus.ion-valid),:host(.select-expanded.ion-valid),:host(.ion-touched.ion-invalid),:host(.select-expanded.ion-touched.ion-invalid){--border-color:var(--highlight-color)}.select-bottom .error-text{display:none;color:var(--highlight-color-invalid)}.select-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .select-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .select-bottom .helper-text{display:none}.label-text-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-width:0;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}:host(.skip-label-transition) .label-text-wrapper{-webkit-transition:none;transition:none}.label-text,::slotted([slot=label]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden,.select-outline-notch-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-negative:100000;flex-shrink:100000;-ms-flex-align:center;align-items:center;-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);overflow:hidden}:host(.select-justify-space-between) .select-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.select-justify-start) .select-wrapper{-ms-flex-pack:start;justify-content:start}:host(.select-justify-end) .select-wrapper{-ms-flex-pack:end;justify-content:end}:host(.select-label-placement-start) .select-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.select-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-end) .select-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.select-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.select-label-placement-stacked) .select-control,:host(.select-label-placement-floating) .select-control{-ms-flex-direction:column;flex-direction:column;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:start;align-items:start}:host(.select-label-placement-stacked) .label-text-wrapper,:host(.select-label-placement-floating) .label-text-wrapper{max-width:100%}:host(.select-ltr.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{-ms-flex-positive:1;flex-grow:1;width:100%}:host(.select-label-placement-floating) .label-text-wrapper{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}:host(.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:0}:host(.label-floating.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:var(--placeholder-opacity)}:host(.label-floating) .label-text-wrapper{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}.select-start,.select-end{display:-ms-flexbox;display:flex;position:relative;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center}::slotted([slot=start]),::slotted([slot=end]){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]:last-of-type){-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}::slotted([slot=end]:first-of-type){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host{--border-width:0.55px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));--highlight-height:0px}.select-icon{width:1.125rem;height:1.125rem;color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}:host(.select-disabled){opacity:0.3}::slotted(ion-button[slot=start].button-has-icon-only),::slotted(ion-button[slot=end].button-has-icon-only){--border-radius:50%;--padding-start:0;--padding-end:0;--padding-top:0;--padding-bottom:0;aspect-ratio:1}`;
38477
+ const selectIosCss = () => `:host{--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--placeholder-color:currentColor;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--background:transparent;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--select-text-media-height:1.5em;--select-text-media-width:1.5em;--select-text-gap:12px;--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;font-family:var(--ion-font-family, inherit);white-space:nowrap;cursor:pointer;z-index:2}:host(.select-label-placement-floating),:host(.select-label-placement-stacked){min-height:56px}:host(.ion-color){--highlight-color-focused:var(--ion-color-base)}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0}:host(.select-disabled){pointer-events:none}:host(.has-focus) button{border:2px solid #5e9ed6}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}.select-placeholder{color:var(--placeholder-color);opacity:var(--placeholder-opacity)}button{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.select-icon{-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0;position:relative;-ms-flex-negative:0;flex-shrink:0}:host(.in-item-color) .select-icon{color:inherit}.select-text{-ms-flex:1;flex:1;min-width:2ch;font-size:inherit;text-overflow:ellipsis;white-space:inherit;overflow:hidden}.select-text>*+*{-webkit-margin-start:var(--select-text-gap);margin-inline-start:var(--select-text-gap)}.select-text img,.select-text ion-img,.select-text ion-icon,.select-text ion-thumbnail,.select-text ion-avatar{border-radius:var(--select-text-media-border-radius);width:var(--select-text-media-width);height:var(--select-text-media-height);border-width:var(--select-text-media-border-width);border-style:var(--select-text-media-border-style);border-color:var(--select-text-media-border-color)}.select-wrapper{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:stretch;align-items:stretch;-ms-flex-pack:justify;justify-content:space-between;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal;cursor:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.select-wrapper .select-placeholder{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.select-control{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:inherit;flex-direction:inherit;-ms-flex-align:center;align-items:center;-ms-flex-pack:inherit;justify-content:inherit;min-width:0}:host(.ion-touched.ion-invalid){--highlight-color:var(--highlight-color-invalid)}:host(.ion-valid){--highlight-color:var(--highlight-color-valid)}.select-bottom{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem;white-space:normal}:host(.has-focus.ion-valid),:host(.select-expanded.ion-valid),:host(.ion-touched.ion-invalid),:host(.select-expanded.ion-touched.ion-invalid){--border-color:var(--highlight-color)}.select-bottom .error-text{display:none;color:var(--highlight-color-invalid)}.select-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .select-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .select-bottom .helper-text{display:none}.label-text-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-width:0;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}:host(.skip-label-transition) .label-text-wrapper{-webkit-transition:none;transition:none}.label-text,::slotted([slot=label]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden,.select-outline-notch-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-negative:100000;flex-shrink:100000;-ms-flex-align:center;align-items:center;-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);overflow:hidden}:host(.select-justify-space-between) .select-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.select-justify-start) .select-wrapper{-ms-flex-pack:start;justify-content:start}:host(.select-justify-end) .select-wrapper{-ms-flex-pack:end;justify-content:end}:host(.select-label-placement-start) .select-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.select-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-end) .select-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.select-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.select-label-placement-stacked) .select-control,:host(.select-label-placement-floating) .select-control{-ms-flex-direction:column;flex-direction:column;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:start;align-items:start}:host(.select-label-placement-stacked) .label-text-wrapper,:host(.select-label-placement-floating) .label-text-wrapper{max-width:100%}:host(.select-ltr.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{-ms-flex-positive:1;flex-grow:1;width:100%}:host(.select-label-placement-floating) .label-text-wrapper{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}:host(.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:0}:host(.label-floating.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:var(--placeholder-opacity)}:host(.label-floating) .label-text-wrapper{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}.select-start,.select-end{display:-ms-flexbox;display:flex;position:relative;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center}::slotted([slot=start]),::slotted([slot=end]){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]:last-of-type){-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}::slotted([slot=end]:first-of-type){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host{--border-width:0.55px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));--highlight-height:0px}.select-icon{width:1.125rem;height:1.125rem;color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}:host(.select-disabled){opacity:0.3}::slotted(ion-button[slot=start].button-has-icon-only),::slotted(ion-button[slot=end].button-has-icon-only){--border-radius:50%;--padding-start:0;--padding-end:0;--padding-top:0;--padding-bottom:0;aspect-ratio:1}`;
37848
38478
 
37849
- const selectMdCss = () => `:host{--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--placeholder-color:currentColor;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--background:transparent;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--select-text-media-height:1.5em;--select-text-media-width:1.5em;--select-text-gap:12px;--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;font-family:var(--ion-font-family, inherit);white-space:nowrap;cursor:pointer;z-index:2}:host(.select-label-placement-floating),:host(.select-label-placement-stacked){min-height:56px}:host(.ion-color){--highlight-color-focused:var(--ion-color-base)}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0}:host(.select-disabled){pointer-events:none}:host(.has-focus) button{border:2px solid #5e9ed6}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}.select-placeholder{color:var(--placeholder-color);opacity:var(--placeholder-opacity)}button{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.select-icon{-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0;position:relative;-ms-flex-negative:0;flex-shrink:0}:host(.in-item-color) .select-icon{color:inherit}.select-text{-ms-flex:1;flex:1;min-width:16px;font-size:inherit;text-overflow:ellipsis;white-space:inherit;overflow:hidden}.select-text>*+*{-webkit-margin-start:var(--select-text-gap);margin-inline-start:var(--select-text-gap)}.select-text img,.select-text ion-img,.select-text ion-icon,.select-text ion-thumbnail,.select-text ion-avatar{border-radius:var(--select-text-media-border-radius);width:var(--select-text-media-width);height:var(--select-text-media-height);border-width:var(--select-text-media-border-width);border-style:var(--select-text-media-border-style);border-color:var(--select-text-media-border-color)}.select-wrapper{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:stretch;align-items:stretch;-ms-flex-pack:justify;justify-content:space-between;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal;cursor:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.select-wrapper .select-placeholder{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.select-control{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:inherit;flex-direction:inherit;-ms-flex-align:center;align-items:center;-ms-flex-pack:inherit;justify-content:inherit;min-width:0}:host(.ion-touched.ion-invalid){--highlight-color:var(--highlight-color-invalid)}:host(.ion-valid){--highlight-color:var(--highlight-color-valid)}.select-bottom{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem;white-space:normal}:host(.has-focus.ion-valid),:host(.select-expanded.ion-valid),:host(.ion-touched.ion-invalid),:host(.select-expanded.ion-touched.ion-invalid){--border-color:var(--highlight-color)}.select-bottom .error-text{display:none;color:var(--highlight-color-invalid)}.select-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .select-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .select-bottom .helper-text{display:none}.label-text-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-width:0;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}:host(.skip-label-transition) .label-text-wrapper{-webkit-transition:none;transition:none}.label-text,::slotted([slot=label]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden,.select-outline-notch-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-negative:100000;flex-shrink:100000;-ms-flex-align:center;align-items:center;-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);overflow:hidden}:host(.select-justify-space-between) .select-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.select-justify-start) .select-wrapper{-ms-flex-pack:start;justify-content:start}:host(.select-justify-end) .select-wrapper{-ms-flex-pack:end;justify-content:end}:host(.select-label-placement-start) .select-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.select-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-end) .select-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.select-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.select-label-placement-stacked) .select-control,:host(.select-label-placement-floating) .select-control{-ms-flex-direction:column;flex-direction:column;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:start;align-items:start}:host(.select-label-placement-stacked) .label-text-wrapper,:host(.select-label-placement-floating) .label-text-wrapper{max-width:100%}:host(.select-ltr.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{-ms-flex-positive:1;flex-grow:1;width:100%}:host(.select-label-placement-floating) .label-text-wrapper{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}:host(.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:0}:host(.label-floating.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:var(--placeholder-opacity)}:host(.label-floating) .label-text-wrapper{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}.select-start,.select-end{display:-ms-flexbox;display:flex;position:relative;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center}::slotted([slot=start]),::slotted([slot=end]){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]:last-of-type){-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}::slotted([slot=end]:first-of-type){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host(.select-fill-solid){--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--border-color:var(--ion-color-step-500, var(--ion-background-color-step-500, gray));--border-radius:4px;--padding-start:16px;--padding-end:16px;min-height:56px}:host(.select-fill-solid) .select-wrapper{border-bottom:var(--border-width) var(--border-style) var(--border-color)}:host(.select-expanded.select-fill-solid.ion-valid),:host(.has-focus.select-fill-solid.ion-valid),:host(.select-fill-solid.ion-touched.ion-invalid){--border-color:var(--highlight-color)}:host(.select-fill-solid) .select-bottom{border-top:none}@media (any-hover: hover){:host(.select-fill-solid:hover){--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6));--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}}:host(.select-fill-solid.select-expanded),:host(.select-fill-solid.has-focus){--background:var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));--border-color:var(--highlight-color)}:host(.select-fill-solid) .select-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0px;border-end-start-radius:0px}:host(.label-floating.select-fill-solid) .label-text-wrapper{max-width:calc(100% / 0.75)}:host(.in-item.select-expanded.select-fill-solid) .select-wrapper .select-icon,:host(.in-item.has-focus.select-fill-solid) .select-wrapper .select-icon,:host(.in-item.has-focus.ion-valid.select-fill-solid) .select-wrapper .select-icon,:host(.in-item.ion-touched.ion-invalid.select-fill-solid) .select-wrapper .select-icon{color:var(--highlight-color)}:host(.select-fill-outline){--border-color:var(--ion-color-step-300, var(--ion-background-color-step-300, #b3b3b3));--border-radius:4px;--padding-start:16px;--padding-end:16px;--internal-start-container-adjustment:0px;min-height:56px}:host(.select-fill-outline.select-shape-round){--border-radius:28px;--padding-start:32px;--padding-end:32px}:host(.has-focus.select-fill-outline.ion-valid),:host(.select-fill-outline.ion-touched.ion-invalid){--border-color:var(--highlight-color)}@media (any-hover: hover){:host(.select-fill-outline:hover){--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}}:host(.select-fill-outline.select-expanded),:host(.select-fill-outline.has-focus){--border-width:var(--highlight-height);--border-color:var(--highlight-color)}:host(.select-fill-outline) .select-bottom{border-top:none}:host(.select-fill-outline) .select-wrapper{border-bottom:none}:host(.select-ltr.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-fill-outline.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-fill-outline.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-fill-outline.select-label-placement-floating) .label-text-wrapper{position:absolute;max-width:100%}:host(.select-fill-outline) .label-text-wrapper{position:relative;z-index:1}:host(.select-fill-outline:not(.label-floating)) .select-control{position:relative}:host(.label-floating.select-fill-outline) .label-text-wrapper{-webkit-transform:translate(var(--internal-start-container-adjustment, 0px), -32%) scale(0.75);transform:translate(var(--internal-start-container-adjustment, 0px), -32%) scale(0.75);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;max-width:calc((100% - var(--padding-start) - var(--padding-end) - 8px) / 0.75)}:host(.select-fill-outline.select-label-placement-stacked) select,:host(.select-fill-outline.select-label-placement-floating) select{margin-left:0;margin-right:0;margin-top:6px;margin-bottom:6px}:host(.select-fill-outline) .select-outline-container{left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;width:100%;height:100%}:host(.select-fill-outline) .select-outline-start,:host(.select-fill-outline) .select-outline-end{pointer-events:none}:host(.select-fill-outline) .select-outline-start,:host(.select-fill-outline) .select-outline-notch,:host(.select-fill-outline) .select-outline-end{border-top:var(--border-width) var(--border-style) var(--border-color);border-bottom:var(--border-width) var(--border-style) var(--border-color);-webkit-box-sizing:border-box;box-sizing:border-box}:host(.select-fill-outline) .select-outline-notch{max-width:calc(100% - var(--padding-start) - var(--padding-end))}:host(.select-fill-outline) .notch-spacer{-webkit-padding-end:8px;padding-inline-end:8px;font-size:calc(1em * 0.75);opacity:0;pointer-events:none}:host(.select-fill-outline) .select-outline-start{-webkit-border-start:var(--border-width) var(--border-style) var(--border-color);border-inline-start:var(--border-width) var(--border-style) var(--border-color);border-start-start-radius:var(--border-radius);border-start-end-radius:0px;border-end-end-radius:0px;border-end-start-radius:var(--border-radius);width:calc(var(--padding-start) - 4px)}:host(.select-fill-outline) .select-outline-end{-webkit-border-end:var(--border-width) var(--border-style) var(--border-color);border-inline-end:var(--border-width) var(--border-style) var(--border-color);border-start-start-radius:0px;border-start-end-radius:var(--border-radius);border-end-end-radius:var(--border-radius);border-end-start-radius:0px;-ms-flex-positive:1;flex-grow:1}:host(.label-floating.select-fill-outline) .select-outline-notch{border-top:none}:host(.in-item.select-expanded.select-fill-outline) .select-wrapper .select-icon,:host(.in-item.has-focus.select-fill-outline) .select-wrapper .select-icon,:host(.in-item.has-focus.ion-valid.select-fill-outline) .select-wrapper .select-icon,:host(.in-item.ion-touched.ion-invalid.select-fill-outline) .select-wrapper .select-icon{color:var(--highlight-color)}:host{--border-width:1px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));--highlight-height:2px}:host(.select-label-placement-floating.select-expanded) .label-text-wrapper,:host(.select-label-placement-floating.has-focus) .label-text-wrapper,:host(.select-label-placement-stacked.select-expanded) .label-text-wrapper,:host(.select-label-placement-stacked.has-focus) .label-text-wrapper{color:var(--highlight-color)}:host(.has-focus.select-label-placement-floating.ion-valid) .label-text-wrapper,:host(.select-label-placement-floating.ion-touched.ion-invalid) .label-text-wrapper,:host(.has-focus.select-label-placement-stacked.ion-valid) .label-text-wrapper,:host(.select-label-placement-stacked.ion-touched.ion-invalid) .label-text-wrapper{color:var(--highlight-color)}.select-highlight{bottom:-1px;position:absolute;width:100%;height:var(--highlight-height);-webkit-transform:scale(0);transform:scale(0);-webkit-transition:-webkit-transform 200ms;transition:-webkit-transform 200ms;transition:transform 200ms;transition:transform 200ms, -webkit-transform 200ms;background:var(--highlight-color)}.select-highlight{inset-inline-start:0}:host(.select-expanded) .select-highlight,:host(.has-focus) .select-highlight{-webkit-transform:scale(1);transform:scale(1)}:host(.in-item) .select-highlight{bottom:0}:host(.in-item) .select-highlight{inset-inline-start:0}.select-icon{width:0.8125rem;-webkit-transition:-webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.15s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray))}:host(.select-expanded:not(.has-expanded-icon)) .select-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host(.in-item.select-expanded) .select-wrapper .select-icon,:host(.in-item.has-focus) .select-wrapper .select-icon,:host(.in-item.has-focus.ion-valid) .select-wrapper .select-icon,:host(.in-item.ion-touched.ion-invalid) .select-wrapper .select-icon{color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray))}:host(.select-expanded) .select-wrapper .select-icon,:host(.has-focus.ion-valid) .select-wrapper .select-icon,:host(.ion-touched.ion-invalid) .select-wrapper .select-icon,:host(.has-focus) .select-wrapper .select-icon{color:var(--highlight-color)}:host(.select-shape-round){--border-radius:16px}:host(.select-disabled){opacity:0.38}::slotted(ion-button[slot=start].button-has-icon-only),::slotted(ion-button[slot=end].button-has-icon-only){--border-radius:50%;--padding-start:8px;--padding-end:8px;--padding-top:8px;--padding-bottom:8px;aspect-ratio:1;min-height:40px}`;
38479
+ const selectMdCss = () => `:host{--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--placeholder-color:currentColor;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--background:transparent;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--select-text-media-height:1.5em;--select-text-media-width:1.5em;--select-text-gap:12px;--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;font-family:var(--ion-font-family, inherit);white-space:nowrap;cursor:pointer;z-index:2}:host(.select-label-placement-floating),:host(.select-label-placement-stacked){min-height:56px}:host(.ion-color){--highlight-color-focused:var(--ion-color-base)}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0}:host(.select-disabled){pointer-events:none}:host(.has-focus) button{border:2px solid #5e9ed6}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}.select-placeholder{color:var(--placeholder-color);opacity:var(--placeholder-opacity)}button{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.select-icon{-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0;position:relative;-ms-flex-negative:0;flex-shrink:0}:host(.in-item-color) .select-icon{color:inherit}.select-text{-ms-flex:1;flex:1;min-width:2ch;font-size:inherit;text-overflow:ellipsis;white-space:inherit;overflow:hidden}.select-text>*+*{-webkit-margin-start:var(--select-text-gap);margin-inline-start:var(--select-text-gap)}.select-text img,.select-text ion-img,.select-text ion-icon,.select-text ion-thumbnail,.select-text ion-avatar{border-radius:var(--select-text-media-border-radius);width:var(--select-text-media-width);height:var(--select-text-media-height);border-width:var(--select-text-media-border-width);border-style:var(--select-text-media-border-style);border-color:var(--select-text-media-border-color)}.select-wrapper{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:stretch;align-items:stretch;-ms-flex-pack:justify;justify-content:space-between;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal;cursor:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.select-wrapper .select-placeholder{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.select-control{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:inherit;flex-direction:inherit;-ms-flex-align:center;align-items:center;-ms-flex-pack:inherit;justify-content:inherit;min-width:0}:host(.ion-touched.ion-invalid){--highlight-color:var(--highlight-color-invalid)}:host(.ion-valid){--highlight-color:var(--highlight-color-valid)}.select-bottom{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem;white-space:normal}:host(.has-focus.ion-valid),:host(.select-expanded.ion-valid),:host(.ion-touched.ion-invalid),:host(.select-expanded.ion-touched.ion-invalid){--border-color:var(--highlight-color)}.select-bottom .error-text{display:none;color:var(--highlight-color-invalid)}.select-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .select-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .select-bottom .helper-text{display:none}.label-text-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-width:0;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}:host(.skip-label-transition) .label-text-wrapper{-webkit-transition:none;transition:none}.label-text,::slotted([slot=label]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden,.select-outline-notch-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-negative:100000;flex-shrink:100000;-ms-flex-align:center;align-items:center;-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);overflow:hidden}:host(.select-justify-space-between) .select-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.select-justify-start) .select-wrapper{-ms-flex-pack:start;justify-content:start}:host(.select-justify-end) .select-wrapper{-ms-flex-pack:end;justify-content:end}:host(.select-label-placement-start) .select-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.select-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-end) .select-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.select-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.select-label-placement-stacked) .select-control,:host(.select-label-placement-floating) .select-control{-ms-flex-direction:column;flex-direction:column;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:start;align-items:start}:host(.select-label-placement-stacked) .label-text-wrapper,:host(.select-label-placement-floating) .label-text-wrapper{max-width:100%}:host(.select-ltr.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{-ms-flex-positive:1;flex-grow:1;width:100%}:host(.select-label-placement-floating) .label-text-wrapper{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}:host(.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:0}:host(.label-floating.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:var(--placeholder-opacity)}:host(.label-floating) .label-text-wrapper{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}.select-start,.select-end{display:-ms-flexbox;display:flex;position:relative;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center}::slotted([slot=start]),::slotted([slot=end]){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]:last-of-type){-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}::slotted([slot=end]:first-of-type){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host(.select-fill-solid){--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--border-color:var(--ion-color-step-500, var(--ion-background-color-step-500, gray));--border-radius:4px;--padding-start:16px;--padding-end:16px;min-height:56px}:host(.select-fill-solid) .select-wrapper{border-bottom:var(--border-width) var(--border-style) var(--border-color)}:host(.select-expanded.select-fill-solid.ion-valid),:host(.has-focus.select-fill-solid.ion-valid),:host(.select-fill-solid.ion-touched.ion-invalid){--border-color:var(--highlight-color)}:host(.select-fill-solid) .select-bottom{border-top:none}@media (any-hover: hover){:host(.select-fill-solid:hover){--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6));--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}}:host(.select-fill-solid.select-expanded),:host(.select-fill-solid.has-focus){--background:var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));--border-color:var(--highlight-color)}:host(.select-fill-solid) .select-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0px;border-end-start-radius:0px}:host(.label-floating.select-fill-solid) .label-text-wrapper{max-width:calc(100% / 0.75)}:host(.in-item.select-expanded.select-fill-solid) .select-wrapper .select-icon,:host(.in-item.has-focus.select-fill-solid) .select-wrapper .select-icon,:host(.in-item.has-focus.ion-valid.select-fill-solid) .select-wrapper .select-icon,:host(.in-item.ion-touched.ion-invalid.select-fill-solid) .select-wrapper .select-icon{color:var(--highlight-color)}:host(.select-fill-outline){--border-color:var(--ion-color-step-300, var(--ion-background-color-step-300, #b3b3b3));--border-radius:4px;--padding-start:16px;--padding-end:16px;--internal-start-container-adjustment:0px;min-height:56px}:host(.select-fill-outline.select-shape-round){--border-radius:28px;--padding-start:32px;--padding-end:32px}:host(.has-focus.select-fill-outline.ion-valid),:host(.select-fill-outline.ion-touched.ion-invalid){--border-color:var(--highlight-color)}@media (any-hover: hover){:host(.select-fill-outline:hover){--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}}:host(.select-fill-outline.select-expanded),:host(.select-fill-outline.has-focus){--border-width:var(--highlight-height);--border-color:var(--highlight-color)}:host(.select-fill-outline) .select-bottom{border-top:none}:host(.select-fill-outline) .select-wrapper{border-bottom:none}:host(.select-ltr.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-fill-outline.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-fill-outline.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-fill-outline.select-label-placement-floating) .label-text-wrapper{position:absolute;max-width:100%}:host(.select-fill-outline) .label-text-wrapper{position:relative;z-index:1}:host(.select-fill-outline:not(.label-floating)) .select-control{position:relative}:host(.label-floating.select-fill-outline) .label-text-wrapper{-webkit-transform:translate(var(--internal-start-container-adjustment, 0px), -32%) scale(0.75);transform:translate(var(--internal-start-container-adjustment, 0px), -32%) scale(0.75);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;max-width:calc((100% - var(--padding-start) - var(--padding-end) - 8px) / 0.75)}:host(.select-fill-outline.select-label-placement-stacked) select,:host(.select-fill-outline.select-label-placement-floating) select{margin-left:0;margin-right:0;margin-top:6px;margin-bottom:6px}:host(.select-fill-outline) .select-outline-container{left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;width:100%;height:100%}:host(.select-fill-outline) .select-outline-start,:host(.select-fill-outline) .select-outline-end{pointer-events:none}:host(.select-fill-outline) .select-outline-start,:host(.select-fill-outline) .select-outline-notch,:host(.select-fill-outline) .select-outline-end{border-top:var(--border-width) var(--border-style) var(--border-color);border-bottom:var(--border-width) var(--border-style) var(--border-color);-webkit-box-sizing:border-box;box-sizing:border-box}:host(.select-fill-outline) .select-outline-notch{max-width:calc(100% - var(--padding-start) - var(--padding-end))}:host(.select-fill-outline) .notch-spacer{-webkit-padding-end:8px;padding-inline-end:8px;font-size:calc(1em * 0.75);opacity:0;pointer-events:none}:host(.select-fill-outline) .select-outline-start{-webkit-border-start:var(--border-width) var(--border-style) var(--border-color);border-inline-start:var(--border-width) var(--border-style) var(--border-color);border-start-start-radius:var(--border-radius);border-start-end-radius:0px;border-end-end-radius:0px;border-end-start-radius:var(--border-radius);width:calc(var(--padding-start) - 4px)}:host(.select-fill-outline) .select-outline-end{-webkit-border-end:var(--border-width) var(--border-style) var(--border-color);border-inline-end:var(--border-width) var(--border-style) var(--border-color);border-start-start-radius:0px;border-start-end-radius:var(--border-radius);border-end-end-radius:var(--border-radius);border-end-start-radius:0px;-ms-flex-positive:1;flex-grow:1}:host(.label-floating.select-fill-outline) .select-outline-notch{border-top:none}:host(.in-item.select-expanded.select-fill-outline) .select-wrapper .select-icon,:host(.in-item.has-focus.select-fill-outline) .select-wrapper .select-icon,:host(.in-item.has-focus.ion-valid.select-fill-outline) .select-wrapper .select-icon,:host(.in-item.ion-touched.ion-invalid.select-fill-outline) .select-wrapper .select-icon{color:var(--highlight-color)}:host{--border-width:1px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));--highlight-height:2px}:host(.select-label-placement-floating.select-expanded) .label-text-wrapper,:host(.select-label-placement-floating.has-focus) .label-text-wrapper,:host(.select-label-placement-stacked.select-expanded) .label-text-wrapper,:host(.select-label-placement-stacked.has-focus) .label-text-wrapper{color:var(--highlight-color)}:host(.has-focus.select-label-placement-floating.ion-valid) .label-text-wrapper,:host(.select-label-placement-floating.ion-touched.ion-invalid) .label-text-wrapper,:host(.has-focus.select-label-placement-stacked.ion-valid) .label-text-wrapper,:host(.select-label-placement-stacked.ion-touched.ion-invalid) .label-text-wrapper{color:var(--highlight-color)}.select-highlight{bottom:-1px;position:absolute;width:100%;height:var(--highlight-height);-webkit-transform:scale(0);transform:scale(0);-webkit-transition:-webkit-transform 200ms;transition:-webkit-transform 200ms;transition:transform 200ms;transition:transform 200ms, -webkit-transform 200ms;background:var(--highlight-color)}.select-highlight{inset-inline-start:0}:host(.select-expanded) .select-highlight,:host(.has-focus) .select-highlight{-webkit-transform:scale(1);transform:scale(1)}:host(.in-item) .select-highlight{bottom:0}:host(.in-item) .select-highlight{inset-inline-start:0}.select-icon{width:0.8125rem;-webkit-transition:-webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.15s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray))}:host(.select-expanded:not(.has-expanded-icon)) .select-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host(.in-item.select-expanded) .select-wrapper .select-icon,:host(.in-item.has-focus) .select-wrapper .select-icon,:host(.in-item.has-focus.ion-valid) .select-wrapper .select-icon,:host(.in-item.ion-touched.ion-invalid) .select-wrapper .select-icon{color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray))}:host(.select-expanded) .select-wrapper .select-icon,:host(.has-focus.ion-valid) .select-wrapper .select-icon,:host(.ion-touched.ion-invalid) .select-wrapper .select-icon,:host(.has-focus) .select-wrapper .select-icon{color:var(--highlight-color)}:host(.select-shape-round){--border-radius:16px}:host(.select-disabled){opacity:0.38}::slotted(ion-button[slot=start].button-has-icon-only),::slotted(ion-button[slot=end].button-has-icon-only){--border-radius:50%;--padding-start:8px;--padding-end:8px;--padding-top:8px;--padding-bottom:8px;aspect-ratio:1;min-height:40px}`;
37850
38480
 
37851
38481
  // TODO(FW-2832): types
37852
38482
  /**
@@ -37949,41 +38579,21 @@ class Select {
37949
38579
  */
37950
38580
  this.required = false;
37951
38581
  this.onClick = (ev) => {
37952
- const target = ev.target;
37953
- const closestSlot = target.closest('[slot="start"], [slot="end"]');
37954
- if (target === this.el || closestSlot === null) {
37955
- this.setFocus();
37956
- this.open(ev);
37957
- }
37958
- else {
37959
- /**
37960
- * Prevent clicks to the start/end slots from opening the select.
37961
- * We ensure the target isn't this element in case the select is slotted
37962
- * in, for example, an item. This would prevent the select from ever
37963
- * being opened since the element itself has slot="start"/"end".
37964
- *
37965
- * Clicking a slotted element also causes a click
37966
- * on the <label> element (since it wraps the slots).
37967
- * Clicking <label> dispatches another click event on
37968
- * the native form control that then bubbles up to this
37969
- * listener. This additional event targets the host
37970
- * element, so the select overlay is opened.
37971
- *
37972
- * When the slotted elements are clicked (and therefore
37973
- * the ancestor <label> element) we want to prevent the label
37974
- * from dispatching another click event.
37975
- *
37976
- * Do not call stopPropagation() because this will cause
37977
- * click handlers on the slotted elements to never fire in React.
37978
- * When developers do onClick in React a native "click" listener
37979
- * is added on the root element, not the slotted element. When that
37980
- * native click listener fires, React then dispatches the synthetic
37981
- * click event on the slotted element. However, if stopPropagation
37982
- * is called then the native click event will never bubble up
37983
- * to the root element.
37984
- */
37985
- ev.preventDefault();
38582
+ const slotted = getSlottedClickContent(ev, this.el);
38583
+ /**
38584
+ * Interactive slotted content, such as a button or a checkbox, handles its
38585
+ * own click, so it should not open the select as well. Any other slotted
38586
+ * content is decorative and behaves the same as clicking the select
38587
+ * itself.
38588
+ */
38589
+ if (slotted !== null) {
38590
+ const interactive = ev.target.closest(INTERACTIVE_SLOTTED_CONTENT);
38591
+ if (interactive !== null && slotted.contains(interactive)) {
38592
+ return;
38593
+ }
37986
38594
  }
38595
+ this.setFocus();
38596
+ this.open(ev);
37987
38597
  };
37988
38598
  this.onFocus = () => {
37989
38599
  this.hasFocus = true;
@@ -38053,6 +38663,7 @@ class Select {
38053
38663
  return Build.isBrowser;
38054
38664
  });
38055
38665
  this.startContainerController.calculateStartContainerWidth();
38666
+ this.clickController = createClickController(el);
38056
38667
  this.updateOverlayOptions();
38057
38668
  this.emitStyle();
38058
38669
  this.mutationO = watchForOptions(this.el, 'ion-select-option', async () => {
@@ -38510,6 +39121,18 @@ class Select {
38510
39121
  };
38511
39122
  this.ionStyle.emit(style);
38512
39123
  }
39124
+ /**
39125
+ * The label wrapping the slots has no `for` attribute, so the browser
39126
+ * forwards a click on slotted content to the label's first labelable
39127
+ * descendant, the internal button. That forwarded click bubbles back out of
39128
+ * the shadow root targeting the host, where it would be emitted a second
39129
+ * time and open the select. The controller swallows it during the capture
39130
+ * phase, leaving the click on the slotted content itself alone so slotted
39131
+ * links, checkboxes and buttons keep their default behavior.
39132
+ */
39133
+ onClickCapture(ev) {
39134
+ this.clickController?.handleClickCapture(ev);
39135
+ }
38513
39136
  renderLabel() {
38514
39137
  const { label } = this;
38515
39138
  return (hAsync("div", { class: {
@@ -38707,7 +39330,7 @@ class Select {
38707
39330
  const hasOutlineFill = mode === 'md' && fill === 'outline';
38708
39331
  renderHiddenInput(true, el, name, parseValue(value), disabled);
38709
39332
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || isExpanded));
38710
- return (hAsync(Host, { key: 'b2f161e3706e139e61440cd13e162714b1b75d72', onClick: this.onClick, class: createColorClasses$1(this.color, {
39333
+ return (hAsync(Host, { key: '31585557ac49c439939b5a084867f5039dc2f1ce', onClick: this.onClick, class: createColorClasses$1(this.color, {
38711
39334
  [mode]: true,
38712
39335
  'in-item': inItem,
38713
39336
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -38725,7 +39348,7 @@ class Select {
38725
39348
  [`select-justify-${justify}`]: justifyEnabled,
38726
39349
  [`select-shape-${shape}`]: shape !== undefined,
38727
39350
  [`select-label-placement-${labelPlacement}`]: true,
38728
- }) }, hAsync("label", { key: '944a2eb468154a21260d181fdaf67828a71eb902', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, hasOutlineFill && this.renderOutlineContainer(), hAsync("div", { key: '927200c53548b1bb4f52d6a167605b724a7b7d0d', class: "select-start", part: "start", ref: (el) => (this.startContainerEl = el) }, hAsync("slot", { key: '6e14b95e9b95c116b16744d630600e90977782bc', name: "start" })), hAsync("div", { key: '8451ed4300ac005963075be36a04ea8763bc0fdd', class: "select-control", part: "control" }, this.renderLabel(), hAsync("div", { key: '207e7b63f3224a4870579365ac992da6784fb31f', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox(), !hasFloatingOrStackedLabel && this.renderSelectIcon())), hAsync("div", { key: '5c17367d488db4d570f31b25e33560efa9011500', class: "select-end", part: "end" }, hasFloatingOrStackedLabel && this.renderSelectIcon(), hAsync("slot", { key: '21fd8c0d9bee8cffef9ef6984cacd31e8f38211c', name: "end" })), shouldRenderHighlight && hAsync("div", { key: '1fff767db9a1ec07b274ef65ff7ae8fb976e6ad2', class: "select-highlight" })), this.renderBottomContent()));
39351
+ }) }, hAsync("label", { key: '368f5f0c77550be6a743752dd1acbfe9915f0a3d', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, hasOutlineFill && this.renderOutlineContainer(), hAsync("div", { key: '2e9039eaa15f398ebe54808ff659db89d3621681', class: "select-start", part: "start", ref: (el) => (this.startContainerEl = el) }, hAsync("slot", { key: 'b83e362f89bd8cbc564ad7122778e3a0f08be66d', name: "start" })), hAsync("div", { key: 'f55ac9fc3bbd9a4a3819a101a3780fc02ae8a8e0', class: "select-control", part: "control" }, this.renderLabel(), hAsync("div", { key: 'e32984e57cda5cf341af8e354a2aef5a114827c0', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox(), !hasFloatingOrStackedLabel && this.renderSelectIcon())), hAsync("div", { key: 'fc4cb7c392c46129afe709d9557ad9a10d72b564', class: "select-end", part: "end" }, hasFloatingOrStackedLabel && this.renderSelectIcon(), hAsync("slot", { key: '6d65c92cdafe985a769fb3b41a58625077803eef', name: "end" })), shouldRenderHighlight && hAsync("div", { key: '9a912c64d7cd77f074a069d126cd0bada1b71eed', class: "select-highlight" })), this.renderBottomContent()));
38729
39352
  }
38730
39353
  get el() { return getElement(this); }
38731
39354
  static get watchers() { return {
@@ -38778,7 +39401,7 @@ class Select {
38778
39401
  "hintTextId": [32],
38779
39402
  "open": [64]
38780
39403
  },
38781
- "$listeners$": undefined,
39404
+ "$listeners$": [[2, "click", "onClickCapture"]],
38782
39405
  "$lazyBundleId$": "-",
38783
39406
  "$attrsToReflect$": [["color", "color"]]
38784
39407
  }; }
@@ -39022,6 +39645,33 @@ const extractOptionContent = (option, customHTMLEnabled) => {
39022
39645
  };
39023
39646
  let selectIds = 0;
39024
39647
  const OPTION_CLASS = 'select-interface-option';
39648
+ /**
39649
+ * Slotted content that handles its own click, so clicking it should not also
39650
+ * open the select.
39651
+ *
39652
+ * This deliberately does not reuse `focusableQueryString`. That selector
39653
+ * answers whether an element can take focus right now, which is a different
39654
+ * question: an ion-radio outside a radio group carries tabindex="-1" from the
39655
+ * group's roving tabindex, and disabled controls are excluded, yet both still
39656
+ * handle their own clicks.
39657
+ */
39658
+ const INTERACTIVE_SLOTTED_CONTENT = [
39659
+ 'a[href]',
39660
+ 'button',
39661
+ 'input[type="checkbox"]',
39662
+ 'input[type="radio"]',
39663
+ 'ion-button',
39664
+ 'ion-checkbox',
39665
+ 'ion-radio',
39666
+ 'ion-toggle',
39667
+ '[tabindex]:not([tabindex^="-"])',
39668
+ /**
39669
+ * Covers the remaining Ionic controls. The tags above are still listed
39670
+ * because ion-checkbox and ion-radio only carry this class when they are
39671
+ * outside an item, so a select inside an item would lose the match.
39672
+ */
39673
+ '.ion-focusable',
39674
+ ].join(', ');
39025
39675
 
39026
39676
  const ionicSelectModalMdCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-select-modal-ionic,.alert-radio-label-has-rich-content.sc-ion-select-modal-ionic,.alert-checkbox-label-has-rich-content.sc-ion-select-modal-ionic,.select-option-label-has-rich-content.sc-ion-select-modal-ionic{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-select-modal-ionic,.alert-radio-label-has-rich-content.sc-ion-select-modal-ionic,.alert-checkbox-label-has-rich-content.sc-ion-select-modal-ionic,.select-option-content.sc-ion-select-modal-ionic{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-select-modal-ionic,.alert-checkbox-label-text.sc-ion-select-modal-ionic,.alert-radio-label-text.sc-ion-select-modal-ionic,.select-option-label-text.sc-ion-select-modal-ionic{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-select-modal-ionic,.select-option-end.sc-ion-select-modal-ionic{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-select-modal-ionic{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-select-modal-ionic:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-select-modal-ionic{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-select-modal-ionic::part(label),ion-radio.select-option-has-rich-content.sc-ion-select-modal-ionic [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-select-modal-ionic::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-select-modal-ionic [part~="label"],.select-option-content.sc-ion-select-modal-ionic{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-select-modal-ionic>ion-avatar.sc-ion-select-modal-ionic,.select-option-end.sc-ion-select-modal-ionic>ion-avatar.sc-ion-select-modal-ionic{width:40px;height:40px}.select-option-start.sc-ion-select-modal-ionic>ion-icon.sc-ion-select-modal-ionic,.select-option-end.sc-ion-select-modal-ionic>ion-icon.sc-ion-select-modal-ionic{font-size:24px}.select-option-start.sc-ion-select-modal-ionic>ion-img.sc-ion-select-modal-ionic,.select-option-start.sc-ion-select-modal-ionic>img.sc-ion-select-modal-ionic,.select-option-start.sc-ion-select-modal-ionic>svg.sc-ion-select-modal-ionic,.select-option-start.sc-ion-select-modal-ionic>ion-thumbnail.sc-ion-select-modal-ionic,.select-option-end.sc-ion-select-modal-ionic>ion-img.sc-ion-select-modal-ionic,.select-option-end.sc-ion-select-modal-ionic>img.sc-ion-select-modal-ionic,.select-option-end.sc-ion-select-modal-ionic>svg.sc-ion-select-modal-ionic,.select-option-end.sc-ion-select-modal-ionic>ion-thumbnail.sc-ion-select-modal-ionic{width:56px;height:56px}.select-option-start.sc-ion-select-modal-ionic>video.sc-ion-select-modal-ionic,.select-option-end.sc-ion-select-modal-ionic>video.sc-ion-select-modal-ionic{width:114px;height:56px}.sc-ion-select-modal-ionic-h{height:100%}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(container),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="container"]{display:none}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-item.sc-ion-select-modal-ionic{--inner-border-width:0}.item-radio-checked.sc-ion-select-modal-ionic{--background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08);--background-focused:var(--ion-color-primary, #0054e9);--background-focused-opacity:0.2;--background-hover:var(--ion-color-primary, #0054e9);--background-hover-opacity:0.12}.item-checkbox-checked.sc-ion-select-modal-ionic{--background-activated:var(--ion-item-color, var(--ion-text-color, #000));--background-focused:var(--ion-item-color, var(--ion-text-color, #000));--background-hover:var(--ion-item-color, var(--ion-text-color, #000));--color:var(--ion-color-primary, #0054e9)}`;
39027
39677
 
@@ -40155,9 +40805,9 @@ class Text {
40155
40805
  }; }
40156
40806
  }
40157
40807
 
40158
- const textareaIosCss = () => `.sc-ion-textarea-ios-h{--background:initial;--color:initial;--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--padding-top:0;--padding-end:0;--padding-bottom:8px;--padding-start:0;--border-radius:0;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;color:var(--color);font-family:var(--ion-font-family, inherit);z-index:2;-webkit-box-sizing:border-box;box-sizing:border-box}[cols].sc-ion-textarea-ios-h:not([auto-grow]){width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.ion-color.sc-ion-textarea-ios-h{--highlight-color-focused:var(--ion-color-base);background:initial}ion-item.sc-ion-textarea-ios-h,ion-item .sc-ion-textarea-ios-h{-ms-flex-item-align:baseline;align-self:baseline}ion-item[slot=start].sc-ion-textarea-ios-h,ion-item [slot=start].sc-ion-textarea-ios-h,ion-item[slot=end].sc-ion-textarea-ios-h,ion-item [slot=end].sc-ion-textarea-ios-h{width:auto}.native-textarea.sc-ion-textarea-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:block;position:relative;-ms-flex:1;flex:1;width:100%;max-width:100%;max-height:100%;border:0;outline:none;background:transparent;white-space:pre-wrap;z-index:1;-webkit-box-sizing:border-box;box-sizing:border-box;resize:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.native-textarea.sc-ion-textarea-ios::-webkit-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios::-moz-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios:-ms-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios::-ms-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios::placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios{color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;grid-area:1/1/2/2;word-break:break-word}.cloned-input.sc-ion-textarea-ios{position:absolute;top:0;bottom:0;height:auto;max-height:none;pointer-events:none}.cloned-input.sc-ion-textarea-ios:disabled{opacity:1}[auto-grow].sc-ion-textarea-ios-h .cloned-input.sc-ion-textarea-ios{height:100%}[auto-grow].sc-ion-textarea-ios-h .native-textarea.sc-ion-textarea-ios{overflow:hidden}.textarea-wrapper.sc-ion-textarea-ios{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:0;padding-bottom:0;border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:start;align-items:flex-start;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal}.textarea-control.sc-ion-textarea-ios{padding-left:0;padding-right:0;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:start;align-items:start;-ms-flex-item-align:stretch;align-self:stretch;width:100%;min-width:0}.native-wrapper.sc-ion-textarea-ios{position:relative;width:100%;height:100%}.textarea-label-placement-start.sc-ion-textarea-ios-h .native-wrapper.sc-ion-textarea-ios,.textarea-label-placement-end.sc-ion-textarea-ios-h .native-wrapper.sc-ion-textarea-ios,.textarea-label-placement-fixed.sc-ion-textarea-ios-h .native-wrapper.sc-ion-textarea-ios{-ms-flex:1 1 0px;flex:1 1 0}.has-focus.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios{caret-color:var(--highlight-color)}.native-wrapper.sc-ion-textarea-ios{display:grid;min-width:inherit;max-width:inherit;min-height:inherit;max-height:inherit;grid-auto-rows:100%}.native-wrapper.sc-ion-textarea-ios::after{white-space:pre-wrap;content:attr(data-replicated-value) " ";visibility:hidden}.native-wrapper.sc-ion-textarea-ios::after{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;border-radius:var(--border-radius);color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;grid-area:1/1/2/2;word-break:break-word}.ion-touched.ion-invalid.sc-ion-textarea-ios-h{--highlight-color:var(--highlight-color-invalid)}.ion-valid.sc-ion-textarea-ios-h{--highlight-color:var(--highlight-color-valid)}.textarea-bottom.sc-ion-textarea-ios{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem;white-space:normal}.has-focus.ion-valid.sc-ion-textarea-ios-h,.ion-touched.ion-invalid.sc-ion-textarea-ios-h{--border-color:var(--highlight-color)}.textarea-bottom.sc-ion-textarea-ios .error-text.sc-ion-textarea-ios{display:none;color:var(--highlight-color-invalid)}.textarea-bottom.sc-ion-textarea-ios .helper-text.sc-ion-textarea-ios{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}.ion-touched.ion-invalid.sc-ion-textarea-ios-h .textarea-bottom.sc-ion-textarea-ios .error-text.sc-ion-textarea-ios{display:block}.ion-touched.ion-invalid.sc-ion-textarea-ios-h .textarea-bottom.sc-ion-textarea-ios .helper-text.sc-ion-textarea-ios{display:none}.textarea-bottom.sc-ion-textarea-ios .counter.sc-ion-textarea-ios{-webkit-margin-start:auto;margin-inline-start:auto;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));white-space:nowrap;-webkit-padding-start:16px;padding-inline-start:16px}.label-text-wrapper.sc-ion-textarea-ios{min-width:0;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.skip-label-transition.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-transition:none;transition:none}.label-text.sc-ion-textarea-ios,.sc-ion-textarea-ios-s>[slot=label]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden.sc-ion-textarea-ios,.textarea-outline-notch-hidden.sc-ion-textarea-ios{display:none}.textarea-wrapper.sc-ion-textarea-ios textarea.sc-ion-textarea-ios{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.textarea-label-placement-start.sc-ion-textarea-ios-h .textarea-control.sc-ion-textarea-ios{-ms-flex-direction:row;flex-direction:row}.textarea-label-placement-start.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}.textarea-label-placement-end.sc-ion-textarea-ios-h .textarea-control.sc-ion-textarea-ios{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.textarea-label-placement-end.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}.textarea-label-placement-fixed.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}.textarea-label-placement-fixed.sc-ion-textarea-ios-h .label-text.sc-ion-textarea-ios{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}.textarea-label-placement-stacked.sc-ion-textarea-ios-h,.textarea-label-placement-floating.sc-ion-textarea-ios-h{--padding-top:20px;--padding-bottom:6px}.textarea-label-placement-stacked.sc-ion-textarea-ios-h .textarea-control.sc-ion-textarea-ios,.textarea-label-placement-floating.sc-ion-textarea-ios-h .textarea-control.sc-ion-textarea-ios{padding-top:0;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}.textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform-origin:left top;transform-origin:left top;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;max-width:100%;z-index:2}[dir=rtl].sc-ion-textarea-ios-h -no-combinator.textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl] .sc-ion-textarea-ios-h -no-combinator.textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl].textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl] .textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl].sc-ion-textarea-ios-h -no-combinator.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl] .sc-ion-textarea-ios-h -no-combinator.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl].textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl] .textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.textarea-label-placement-stacked.sc-ion-textarea-ios-h:dir(rtl) .label-text-wrapper.sc-ion-textarea-ios,.textarea-label-placement-floating.sc-ion-textarea-ios-h:dir(rtl) .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform-origin:right top;transform-origin:right top}}.textarea-label-placement-stacked.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios,.textarea-label-placement-floating.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios,.textarea-label-placement-stacked[auto-grow].sc-ion-textarea-ios-h .native-wrapper.sc-ion-textarea-ios::after,.textarea-label-placement-floating[auto-grow].sc-ion-textarea-ios-h .native-wrapper.sc-ion-textarea-ios::after{-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:8px;margin-bottom:0px}.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}.textarea-label-placement-floating.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios{opacity:0}.has-focus.textarea-label-placement-floating.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios,.has-value.textarea-label-placement-floating.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios{opacity:1}.label-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}.textarea-start.sc-ion-textarea-ios,.textarea-end.sc-ion-textarea-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-negative:0;flex-shrink:0;-ms-flex-item-align:start;align-self:start}.sc-ion-textarea-ios-s>[slot=start],.sc-ion-textarea-ios-s>[slot=end]{margin-top:var(--padding-top)}.sc-ion-textarea-ios-s>[slot=start]:last-of-type{-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}.sc-ion-textarea-ios-s>[slot=end]:first-of-type{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}.sc-ion-textarea-ios-h{--border-width:0.55px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));--padding-top:10px;--padding-end:0px;--padding-bottom:8px;--padding-start:0px;--highlight-height:0px;font-size:inherit}.textarea-label-placement-floating.sc-ion-textarea-ios-h,.textarea-label-placement-stacked.sc-ion-textarea-ios-h{min-height:56px}.textarea-disabled.sc-ion-textarea-ios-h{opacity:0.3}.sc-ion-textarea-ios-s>ion-button[slot=start],.sc-ion-textarea-ios-s>ion-button[slot=end]{margin-top:2px}.sc-ion-textarea-ios-h.textarea-label-placement-floating.sc-ion-textarea-ios-s>ion-button[slot=start],.sc-ion-textarea-ios-h.textarea-label-placement-floating .sc-ion-textarea-ios-s>ion-button[slot=start],.sc-ion-textarea-ios-h.textarea-label-placement-floating.sc-ion-textarea-ios-s>ion-button[slot=end],.sc-ion-textarea-ios-h.textarea-label-placement-floating .sc-ion-textarea-ios-s>ion-button[slot=end],.sc-ion-textarea-ios-h.textarea-label-placement-stacked.sc-ion-textarea-ios-s>ion-button[slot=start],.sc-ion-textarea-ios-h.textarea-label-placement-stacked .sc-ion-textarea-ios-s>ion-button[slot=start],.sc-ion-textarea-ios-h.textarea-label-placement-stacked.sc-ion-textarea-ios-s>ion-button[slot=end],.sc-ion-textarea-ios-h.textarea-label-placement-stacked .sc-ion-textarea-ios-s>ion-button[slot=end]{margin-top:10px}.sc-ion-textarea-ios-s>ion-button[slot=start].button-has-icon-only,.sc-ion-textarea-ios-s>ion-button[slot=end].button-has-icon-only{--border-radius:50%;--padding-start:0;--padding-end:0;--padding-top:0;--padding-bottom:0;aspect-ratio:1}`;
40808
+ const textareaIosCss = () => `.sc-ion-textarea-ios-h{--background:initial;--color:initial;--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--padding-top:0;--padding-end:0;--padding-bottom:8px;--padding-start:0;--border-radius:0;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;color:var(--color);font-family:var(--ion-font-family, inherit);z-index:2;-webkit-box-sizing:border-box;box-sizing:border-box}[cols].sc-ion-textarea-ios-h:not([auto-grow]){width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.ion-color.sc-ion-textarea-ios-h{--highlight-color-focused:var(--ion-color-base);background:initial}ion-item.sc-ion-textarea-ios-h,ion-item .sc-ion-textarea-ios-h{-ms-flex-item-align:baseline;align-self:baseline}ion-item[slot=start].sc-ion-textarea-ios-h,ion-item [slot=start].sc-ion-textarea-ios-h,ion-item[slot=end].sc-ion-textarea-ios-h,ion-item [slot=end].sc-ion-textarea-ios-h{width:auto}.native-textarea.sc-ion-textarea-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:block;position:relative;-ms-flex:1;flex:1;width:100%;min-width:2ch;max-width:100%;max-height:100%;border:0;outline:none;background:transparent;white-space:pre-wrap;z-index:1;-webkit-box-sizing:border-box;box-sizing:border-box;resize:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.native-textarea.sc-ion-textarea-ios::-webkit-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios::-moz-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios:-ms-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios::-ms-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios::placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios{color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;grid-area:1/1/2/2;word-break:break-word}.cloned-input.sc-ion-textarea-ios{position:absolute;top:0;bottom:0;height:auto;max-height:none;pointer-events:none}.cloned-input.sc-ion-textarea-ios:disabled{opacity:1}[auto-grow].sc-ion-textarea-ios-h .cloned-input.sc-ion-textarea-ios{height:100%}[auto-grow].sc-ion-textarea-ios-h .native-textarea.sc-ion-textarea-ios{overflow:hidden}.textarea-wrapper.sc-ion-textarea-ios{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:0;padding-bottom:0;border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:start;align-items:flex-start;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal}.textarea-control.sc-ion-textarea-ios{padding-left:0;padding-right:0;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:start;align-items:start;-ms-flex-item-align:stretch;align-self:stretch;width:100%;min-width:0}.native-wrapper.sc-ion-textarea-ios{position:relative;width:100%;height:100%}.textarea-label-placement-start.sc-ion-textarea-ios-h .native-wrapper.sc-ion-textarea-ios,.textarea-label-placement-end.sc-ion-textarea-ios-h .native-wrapper.sc-ion-textarea-ios,.textarea-label-placement-fixed.sc-ion-textarea-ios-h .native-wrapper.sc-ion-textarea-ios{-ms-flex:1 1 0px;flex:1 1 0}.has-focus.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios{caret-color:var(--highlight-color)}.native-wrapper.sc-ion-textarea-ios{display:grid;min-width:2ch;max-width:inherit;min-height:inherit;max-height:inherit;grid-auto-rows:100%}.native-wrapper.sc-ion-textarea-ios::after{white-space:pre-wrap;content:attr(data-replicated-value) " ";visibility:hidden}.native-wrapper.sc-ion-textarea-ios::after{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;border-radius:var(--border-radius);color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;grid-area:1/1/2/2;word-break:break-word}.ion-touched.ion-invalid.sc-ion-textarea-ios-h{--highlight-color:var(--highlight-color-invalid)}.ion-valid.sc-ion-textarea-ios-h{--highlight-color:var(--highlight-color-valid)}.textarea-bottom.sc-ion-textarea-ios{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem;white-space:normal}.has-focus.ion-valid.sc-ion-textarea-ios-h,.ion-touched.ion-invalid.sc-ion-textarea-ios-h{--border-color:var(--highlight-color)}.textarea-bottom.sc-ion-textarea-ios .error-text.sc-ion-textarea-ios{display:none;color:var(--highlight-color-invalid)}.textarea-bottom.sc-ion-textarea-ios .helper-text.sc-ion-textarea-ios{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}.ion-touched.ion-invalid.sc-ion-textarea-ios-h .textarea-bottom.sc-ion-textarea-ios .error-text.sc-ion-textarea-ios{display:block}.ion-touched.ion-invalid.sc-ion-textarea-ios-h .textarea-bottom.sc-ion-textarea-ios .helper-text.sc-ion-textarea-ios{display:none}.textarea-bottom.sc-ion-textarea-ios .counter.sc-ion-textarea-ios{-webkit-margin-start:auto;margin-inline-start:auto;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));white-space:nowrap;-webkit-padding-start:16px;padding-inline-start:16px}.label-text-wrapper.sc-ion-textarea-ios{min-width:0;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.skip-label-transition.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-transition:none;transition:none}.label-text.sc-ion-textarea-ios,.sc-ion-textarea-ios-s>[slot=label]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden.sc-ion-textarea-ios,.textarea-outline-notch-hidden.sc-ion-textarea-ios{display:none}.textarea-wrapper.sc-ion-textarea-ios textarea.sc-ion-textarea-ios{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.textarea-label-placement-start.sc-ion-textarea-ios-h .textarea-control.sc-ion-textarea-ios{-ms-flex-direction:row;flex-direction:row}.textarea-label-placement-start.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}.textarea-label-placement-end.sc-ion-textarea-ios-h .textarea-control.sc-ion-textarea-ios{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.textarea-label-placement-end.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}.textarea-label-placement-fixed.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}.textarea-label-placement-fixed.sc-ion-textarea-ios-h .label-text.sc-ion-textarea-ios{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}.textarea-label-placement-stacked.sc-ion-textarea-ios-h,.textarea-label-placement-floating.sc-ion-textarea-ios-h{--padding-top:20px;--padding-bottom:6px}.textarea-label-placement-stacked.sc-ion-textarea-ios-h .textarea-control.sc-ion-textarea-ios,.textarea-label-placement-floating.sc-ion-textarea-ios-h .textarea-control.sc-ion-textarea-ios{padding-top:0;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}.textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform-origin:left top;transform-origin:left top;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;max-width:100%;z-index:2}[dir=rtl].sc-ion-textarea-ios-h -no-combinator.textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl] .sc-ion-textarea-ios-h -no-combinator.textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl].textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl] .textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl].sc-ion-textarea-ios-h -no-combinator.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl] .sc-ion-textarea-ios-h -no-combinator.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl].textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl] .textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.textarea-label-placement-stacked.sc-ion-textarea-ios-h:dir(rtl) .label-text-wrapper.sc-ion-textarea-ios,.textarea-label-placement-floating.sc-ion-textarea-ios-h:dir(rtl) .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform-origin:right top;transform-origin:right top}}.textarea-label-placement-stacked.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios,.textarea-label-placement-floating.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios,.textarea-label-placement-stacked[auto-grow].sc-ion-textarea-ios-h .native-wrapper.sc-ion-textarea-ios::after,.textarea-label-placement-floating[auto-grow].sc-ion-textarea-ios-h .native-wrapper.sc-ion-textarea-ios::after{-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:8px;margin-bottom:0px}.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}.textarea-label-placement-floating.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios{opacity:0}.has-focus.textarea-label-placement-floating.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios,.has-value.textarea-label-placement-floating.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios{opacity:1}.label-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}.textarea-start.sc-ion-textarea-ios,.textarea-end.sc-ion-textarea-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-negative:0;flex-shrink:0;-ms-flex-item-align:start;align-self:start}.sc-ion-textarea-ios-s>[slot=start],.sc-ion-textarea-ios-s>[slot=end]{margin-top:var(--padding-top)}.sc-ion-textarea-ios-s>[slot=start]:last-of-type{-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}.sc-ion-textarea-ios-s>[slot=end]:first-of-type{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}.sc-ion-textarea-ios-h{--border-width:0.55px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));--padding-top:10px;--padding-end:0px;--padding-bottom:8px;--padding-start:0px;--highlight-height:0px;font-size:inherit}.textarea-label-placement-floating.sc-ion-textarea-ios-h,.textarea-label-placement-stacked.sc-ion-textarea-ios-h{min-height:56px}.textarea-disabled.sc-ion-textarea-ios-h{opacity:0.3}.sc-ion-textarea-ios-s>ion-button[slot=start],.sc-ion-textarea-ios-s>ion-button[slot=end]{margin-top:2px}.sc-ion-textarea-ios-h.textarea-label-placement-floating.sc-ion-textarea-ios-s>ion-button[slot=start],.sc-ion-textarea-ios-h.textarea-label-placement-floating .sc-ion-textarea-ios-s>ion-button[slot=start],.sc-ion-textarea-ios-h.textarea-label-placement-floating.sc-ion-textarea-ios-s>ion-button[slot=end],.sc-ion-textarea-ios-h.textarea-label-placement-floating .sc-ion-textarea-ios-s>ion-button[slot=end],.sc-ion-textarea-ios-h.textarea-label-placement-stacked.sc-ion-textarea-ios-s>ion-button[slot=start],.sc-ion-textarea-ios-h.textarea-label-placement-stacked .sc-ion-textarea-ios-s>ion-button[slot=start],.sc-ion-textarea-ios-h.textarea-label-placement-stacked.sc-ion-textarea-ios-s>ion-button[slot=end],.sc-ion-textarea-ios-h.textarea-label-placement-stacked .sc-ion-textarea-ios-s>ion-button[slot=end]{margin-top:10px}.sc-ion-textarea-ios-s>ion-button[slot=start].button-has-icon-only,.sc-ion-textarea-ios-s>ion-button[slot=end].button-has-icon-only{--border-radius:50%;--padding-start:0;--padding-end:0;--padding-top:0;--padding-bottom:0;aspect-ratio:1}`;
40159
40809
 
40160
- const textareaMdCss = () => `.sc-ion-textarea-md-h{--background:initial;--color:initial;--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--padding-top:0;--padding-end:0;--padding-bottom:8px;--padding-start:0;--border-radius:0;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;color:var(--color);font-family:var(--ion-font-family, inherit);z-index:2;-webkit-box-sizing:border-box;box-sizing:border-box}[cols].sc-ion-textarea-md-h:not([auto-grow]){width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.ion-color.sc-ion-textarea-md-h{--highlight-color-focused:var(--ion-color-base);background:initial}ion-item.sc-ion-textarea-md-h,ion-item .sc-ion-textarea-md-h{-ms-flex-item-align:baseline;align-self:baseline}ion-item[slot=start].sc-ion-textarea-md-h,ion-item [slot=start].sc-ion-textarea-md-h,ion-item[slot=end].sc-ion-textarea-md-h,ion-item [slot=end].sc-ion-textarea-md-h{width:auto}.native-textarea.sc-ion-textarea-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:block;position:relative;-ms-flex:1;flex:1;width:100%;max-width:100%;max-height:100%;border:0;outline:none;background:transparent;white-space:pre-wrap;z-index:1;-webkit-box-sizing:border-box;box-sizing:border-box;resize:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.native-textarea.sc-ion-textarea-md::-webkit-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-md::-moz-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-md:-ms-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-md::-ms-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-md::placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-md{color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;grid-area:1/1/2/2;word-break:break-word}.cloned-input.sc-ion-textarea-md{position:absolute;top:0;bottom:0;height:auto;max-height:none;pointer-events:none}.cloned-input.sc-ion-textarea-md:disabled{opacity:1}[auto-grow].sc-ion-textarea-md-h .cloned-input.sc-ion-textarea-md{height:100%}[auto-grow].sc-ion-textarea-md-h .native-textarea.sc-ion-textarea-md{overflow:hidden}.textarea-wrapper.sc-ion-textarea-md{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:0;padding-bottom:0;border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:start;align-items:flex-start;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal}.textarea-control.sc-ion-textarea-md{padding-left:0;padding-right:0;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:start;align-items:start;-ms-flex-item-align:stretch;align-self:stretch;width:100%;min-width:0}.native-wrapper.sc-ion-textarea-md{position:relative;width:100%;height:100%}.textarea-label-placement-start.sc-ion-textarea-md-h .native-wrapper.sc-ion-textarea-md,.textarea-label-placement-end.sc-ion-textarea-md-h .native-wrapper.sc-ion-textarea-md,.textarea-label-placement-fixed.sc-ion-textarea-md-h .native-wrapper.sc-ion-textarea-md{-ms-flex:1 1 0px;flex:1 1 0}.has-focus.sc-ion-textarea-md-h textarea.sc-ion-textarea-md{caret-color:var(--highlight-color)}.native-wrapper.sc-ion-textarea-md{display:grid;min-width:inherit;max-width:inherit;min-height:inherit;max-height:inherit;grid-auto-rows:100%}.native-wrapper.sc-ion-textarea-md::after{white-space:pre-wrap;content:attr(data-replicated-value) " ";visibility:hidden}.native-wrapper.sc-ion-textarea-md::after{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;border-radius:var(--border-radius);color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;grid-area:1/1/2/2;word-break:break-word}.ion-touched.ion-invalid.sc-ion-textarea-md-h{--highlight-color:var(--highlight-color-invalid)}.ion-valid.sc-ion-textarea-md-h{--highlight-color:var(--highlight-color-valid)}.textarea-bottom.sc-ion-textarea-md{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem;white-space:normal}.has-focus.ion-valid.sc-ion-textarea-md-h,.ion-touched.ion-invalid.sc-ion-textarea-md-h{--border-color:var(--highlight-color)}.textarea-bottom.sc-ion-textarea-md .error-text.sc-ion-textarea-md{display:none;color:var(--highlight-color-invalid)}.textarea-bottom.sc-ion-textarea-md .helper-text.sc-ion-textarea-md{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}.ion-touched.ion-invalid.sc-ion-textarea-md-h .textarea-bottom.sc-ion-textarea-md .error-text.sc-ion-textarea-md{display:block}.ion-touched.ion-invalid.sc-ion-textarea-md-h .textarea-bottom.sc-ion-textarea-md .helper-text.sc-ion-textarea-md{display:none}.textarea-bottom.sc-ion-textarea-md .counter.sc-ion-textarea-md{-webkit-margin-start:auto;margin-inline-start:auto;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));white-space:nowrap;-webkit-padding-start:16px;padding-inline-start:16px}.label-text-wrapper.sc-ion-textarea-md{min-width:0;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.skip-label-transition.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-transition:none;transition:none}.label-text.sc-ion-textarea-md,.sc-ion-textarea-md-s>[slot=label]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden.sc-ion-textarea-md,.textarea-outline-notch-hidden.sc-ion-textarea-md{display:none}.textarea-wrapper.sc-ion-textarea-md textarea.sc-ion-textarea-md{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.textarea-label-placement-start.sc-ion-textarea-md-h .textarea-control.sc-ion-textarea-md{-ms-flex-direction:row;flex-direction:row}.textarea-label-placement-start.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}.textarea-label-placement-end.sc-ion-textarea-md-h .textarea-control.sc-ion-textarea-md{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.textarea-label-placement-end.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}.textarea-label-placement-fixed.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}.textarea-label-placement-fixed.sc-ion-textarea-md-h .label-text.sc-ion-textarea-md{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}.textarea-label-placement-stacked.sc-ion-textarea-md-h,.textarea-label-placement-floating.sc-ion-textarea-md-h{--padding-top:20px;--padding-bottom:6px}.textarea-label-placement-stacked.sc-ion-textarea-md-h .textarea-control.sc-ion-textarea-md,.textarea-label-placement-floating.sc-ion-textarea-md-h .textarea-control.sc-ion-textarea-md{padding-top:0;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}.textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-transform-origin:left top;transform-origin:left top;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;max-width:100%;z-index:2}[dir=rtl].sc-ion-textarea-md-h -no-combinator.textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl] .sc-ion-textarea-md-h -no-combinator.textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl].textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl] .textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl].sc-ion-textarea-md-h -no-combinator.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl] .sc-ion-textarea-md-h -no-combinator.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl].textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl] .textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.textarea-label-placement-stacked.sc-ion-textarea-md-h:dir(rtl) .label-text-wrapper.sc-ion-textarea-md,.textarea-label-placement-floating.sc-ion-textarea-md-h:dir(rtl) .label-text-wrapper.sc-ion-textarea-md{-webkit-transform-origin:right top;transform-origin:right top}}.textarea-label-placement-stacked.sc-ion-textarea-md-h textarea.sc-ion-textarea-md,.textarea-label-placement-floating.sc-ion-textarea-md-h textarea.sc-ion-textarea-md,.textarea-label-placement-stacked[auto-grow].sc-ion-textarea-md-h .native-wrapper.sc-ion-textarea-md::after,.textarea-label-placement-floating[auto-grow].sc-ion-textarea-md-h .native-wrapper.sc-ion-textarea-md::after{-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:8px;margin-bottom:0px}.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}.textarea-label-placement-floating.sc-ion-textarea-md-h textarea.sc-ion-textarea-md{opacity:0}.has-focus.textarea-label-placement-floating.sc-ion-textarea-md-h textarea.sc-ion-textarea-md,.has-value.textarea-label-placement-floating.sc-ion-textarea-md-h textarea.sc-ion-textarea-md{opacity:1}.label-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}.textarea-start.sc-ion-textarea-md,.textarea-end.sc-ion-textarea-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-negative:0;flex-shrink:0;-ms-flex-item-align:start;align-self:start}.sc-ion-textarea-md-s>[slot=start],.sc-ion-textarea-md-s>[slot=end]{margin-top:var(--padding-top)}.sc-ion-textarea-md-s>[slot=start]:last-of-type{-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}.sc-ion-textarea-md-s>[slot=end]:first-of-type{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}.textarea-fill-solid.sc-ion-textarea-md-h{--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--border-color:var(--ion-color-step-500, var(--ion-background-color-step-500, gray));--border-radius:4px;--padding-start:16px;--padding-end:16px}.textarea-fill-solid.sc-ion-textarea-md-h .textarea-wrapper.sc-ion-textarea-md{border-bottom:var(--border-width) var(--border-style) var(--border-color)}.has-focus.textarea-fill-solid.ion-valid.sc-ion-textarea-md-h,.textarea-fill-solid.ion-touched.ion-invalid.sc-ion-textarea-md-h{--border-color:var(--highlight-color)}.textarea-fill-solid.sc-ion-textarea-md-h .textarea-bottom.sc-ion-textarea-md{border-top:none}@media (any-hover: hover){.textarea-fill-solid.sc-ion-textarea-md-h:hover{--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6));--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}}.textarea-fill-solid.has-focus.sc-ion-textarea-md-h{--background:var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}.textarea-fill-solid.sc-ion-textarea-md-h .textarea-wrapper.sc-ion-textarea-md{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0px;border-end-start-radius:0px}.label-floating.textarea-fill-solid.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{max-width:calc(100% / 0.75)}.textarea-fill-outline.sc-ion-textarea-md-h{--border-color:var(--ion-color-step-300, var(--ion-background-color-step-300, #b3b3b3));--border-radius:4px;--padding-start:16px;--padding-end:16px;--internal-start-container-adjustment:0px}.textarea-fill-outline.textarea-shape-round.sc-ion-textarea-md-h{--border-radius:28px;--padding-start:32px;--padding-end:32px}.has-focus.textarea-fill-outline.ion-valid.sc-ion-textarea-md-h,.textarea-fill-outline.ion-touched.ion-invalid.sc-ion-textarea-md-h{--border-color:var(--highlight-color)}@media (any-hover: hover){.textarea-fill-outline.sc-ion-textarea-md-h:hover{--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}}.textarea-fill-outline.has-focus.sc-ion-textarea-md-h{--border-width:var(--highlight-height);--border-color:var(--highlight-color)}.textarea-fill-outline.sc-ion-textarea-md-h .textarea-bottom.sc-ion-textarea-md{border-top:none}.textarea-fill-outline.sc-ion-textarea-md-h .textarea-wrapper.sc-ion-textarea-md{border-bottom:none}.textarea-fill-outline.sc-ion-textarea-md-h:not(.label-floating) .textarea-control.sc-ion-textarea-md{position:relative}.textarea-fill-outline.textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,.textarea-fill-outline.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-transform-origin:left top;transform-origin:left top;position:absolute;max-width:100%}[dir=rtl].sc-ion-textarea-md-h -no-combinator.textarea-fill-outline.textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl] .sc-ion-textarea-md-h -no-combinator.textarea-fill-outline.textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl].textarea-fill-outline.textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl] .textarea-fill-outline.textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl].sc-ion-textarea-md-h -no-combinator.textarea-fill-outline.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl] .sc-ion-textarea-md-h -no-combinator.textarea-fill-outline.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl].textarea-fill-outline.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl] .textarea-fill-outline.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.textarea-fill-outline.textarea-label-placement-stacked.sc-ion-textarea-md-h:dir(rtl) .label-text-wrapper.sc-ion-textarea-md,.textarea-fill-outline.textarea-label-placement-floating.sc-ion-textarea-md-h:dir(rtl) .label-text-wrapper.sc-ion-textarea-md{-webkit-transform-origin:right top;transform-origin:right top}}.textarea-fill-outline.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{position:relative}.label-floating.textarea-fill-outline.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-transform:translate(var(--internal-start-container-adjustment, 0px), -32%) scale(0.75);transform:translate(var(--internal-start-container-adjustment, 0px), -32%) scale(0.75);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;max-width:calc( (100% - var(--padding-start) - var(--padding-end) - 8px) / 0.75 )}.textarea-fill-outline.textarea-label-placement-stacked.sc-ion-textarea-md-h textarea.sc-ion-textarea-md,.textarea-fill-outline.textarea-label-placement-floating.sc-ion-textarea-md-h textarea.sc-ion-textarea-md,.textarea-fill-outline.textarea-label-placement-stacked[auto-grow].sc-ion-textarea-md-h .native-wrapper.sc-ion-textarea-md::after,.textarea-fill-outline.textarea-label-placement-floating[auto-grow].sc-ion-textarea-md-h .native-wrapper.sc-ion-textarea-md::after{-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:19px;margin-bottom:0px}.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-container.sc-ion-textarea-md{left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;width:100%;height:100%}.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-start.sc-ion-textarea-md,.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-end.sc-ion-textarea-md{pointer-events:none}.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-start.sc-ion-textarea-md,.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-notch.sc-ion-textarea-md,.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-end.sc-ion-textarea-md{border-top:var(--border-width) var(--border-style) var(--border-color);border-bottom:var(--border-width) var(--border-style) var(--border-color)}.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-notch.sc-ion-textarea-md{max-width:calc(100% - var(--padding-start) - var(--padding-end))}.textarea-fill-outline.sc-ion-textarea-md-h .notch-spacer.sc-ion-textarea-md{-webkit-padding-end:8px;padding-inline-end:8px;font-size:calc(1em * 0.75);opacity:0;pointer-events:none;-webkit-box-sizing:content-box;box-sizing:content-box}.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-start.sc-ion-textarea-md{border-start-start-radius:var(--border-radius);border-start-end-radius:0px;border-end-end-radius:0px;border-end-start-radius:var(--border-radius);-webkit-border-start:var(--border-width) var(--border-style) var(--border-color);border-inline-start:var(--border-width) var(--border-style) var(--border-color);width:calc(var(--padding-start) - 4px)}.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-end.sc-ion-textarea-md{-webkit-border-end:var(--border-width) var(--border-style) var(--border-color);border-inline-end:var(--border-width) var(--border-style) var(--border-color);border-start-start-radius:0px;border-start-end-radius:var(--border-radius);border-end-end-radius:var(--border-radius);border-end-start-radius:0px;-ms-flex-positive:1;flex-grow:1}.label-floating.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-notch.sc-ion-textarea-md{border-top:none}.sc-ion-textarea-md-h{--border-width:1px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));--padding-top:18px;--padding-end:0px;--padding-bottom:8px;--padding-start:0px;--highlight-height:2px;min-height:72px;font-size:inherit}.textarea-bottom.sc-ion-textarea-md .counter.sc-ion-textarea-md{letter-spacing:0.0333333333em}.textarea-label-placement-floating.has-focus.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,.textarea-label-placement-stacked.has-focus.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{color:var(--highlight-color)}.has-focus.textarea-label-placement-floating.ion-valid.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,.textarea-label-placement-floating.ion-touched.ion-invalid.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,.has-focus.textarea-label-placement-stacked.ion-valid.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,.textarea-label-placement-stacked.ion-touched.ion-invalid.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{color:var(--highlight-color)}.textarea-disabled.sc-ion-textarea-md-h{opacity:0.38}.textarea-highlight.sc-ion-textarea-md{bottom:-1px;position:absolute;width:100%;height:var(--highlight-height);-webkit-transform:scale(0);transform:scale(0);-webkit-transition:-webkit-transform 200ms;transition:-webkit-transform 200ms;transition:transform 200ms;transition:transform 200ms, -webkit-transform 200ms;background:var(--highlight-color)}.textarea-highlight.sc-ion-textarea-md{inset-inline-start:0}.has-focus.sc-ion-textarea-md-h .textarea-highlight.sc-ion-textarea-md{-webkit-transform:scale(1);transform:scale(1)}.in-item.sc-ion-textarea-md-h .textarea-highlight.sc-ion-textarea-md{bottom:0}.in-item.sc-ion-textarea-md-h .textarea-highlight.sc-ion-textarea-md{inset-inline-start:0}.textarea-shape-round.sc-ion-textarea-md-h{--border-radius:16px}.sc-ion-textarea-md-s>ion-button[slot=start],.sc-ion-textarea-md-s>ion-button[slot=end]{margin-top:7px}.sc-ion-textarea-md-s>ion-button[slot=start].button-has-icon-only,.sc-ion-textarea-md-s>ion-button[slot=end].button-has-icon-only{--border-radius:50%;--padding-start:8px;--padding-end:8px;--padding-top:8px;--padding-bottom:8px;aspect-ratio:1;min-height:40px}`;
40810
+ const textareaMdCss = () => `.sc-ion-textarea-md-h{--background:initial;--color:initial;--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--padding-top:0;--padding-end:0;--padding-bottom:8px;--padding-start:0;--border-radius:0;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;color:var(--color);font-family:var(--ion-font-family, inherit);z-index:2;-webkit-box-sizing:border-box;box-sizing:border-box}[cols].sc-ion-textarea-md-h:not([auto-grow]){width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.ion-color.sc-ion-textarea-md-h{--highlight-color-focused:var(--ion-color-base);background:initial}ion-item.sc-ion-textarea-md-h,ion-item .sc-ion-textarea-md-h{-ms-flex-item-align:baseline;align-self:baseline}ion-item[slot=start].sc-ion-textarea-md-h,ion-item [slot=start].sc-ion-textarea-md-h,ion-item[slot=end].sc-ion-textarea-md-h,ion-item [slot=end].sc-ion-textarea-md-h{width:auto}.native-textarea.sc-ion-textarea-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:block;position:relative;-ms-flex:1;flex:1;width:100%;min-width:2ch;max-width:100%;max-height:100%;border:0;outline:none;background:transparent;white-space:pre-wrap;z-index:1;-webkit-box-sizing:border-box;box-sizing:border-box;resize:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.native-textarea.sc-ion-textarea-md::-webkit-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-md::-moz-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-md:-ms-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-md::-ms-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-md::placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-md{color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;grid-area:1/1/2/2;word-break:break-word}.cloned-input.sc-ion-textarea-md{position:absolute;top:0;bottom:0;height:auto;max-height:none;pointer-events:none}.cloned-input.sc-ion-textarea-md:disabled{opacity:1}[auto-grow].sc-ion-textarea-md-h .cloned-input.sc-ion-textarea-md{height:100%}[auto-grow].sc-ion-textarea-md-h .native-textarea.sc-ion-textarea-md{overflow:hidden}.textarea-wrapper.sc-ion-textarea-md{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:0;padding-bottom:0;border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:start;align-items:flex-start;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal}.textarea-control.sc-ion-textarea-md{padding-left:0;padding-right:0;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:start;align-items:start;-ms-flex-item-align:stretch;align-self:stretch;width:100%;min-width:0}.native-wrapper.sc-ion-textarea-md{position:relative;width:100%;height:100%}.textarea-label-placement-start.sc-ion-textarea-md-h .native-wrapper.sc-ion-textarea-md,.textarea-label-placement-end.sc-ion-textarea-md-h .native-wrapper.sc-ion-textarea-md,.textarea-label-placement-fixed.sc-ion-textarea-md-h .native-wrapper.sc-ion-textarea-md{-ms-flex:1 1 0px;flex:1 1 0}.has-focus.sc-ion-textarea-md-h textarea.sc-ion-textarea-md{caret-color:var(--highlight-color)}.native-wrapper.sc-ion-textarea-md{display:grid;min-width:2ch;max-width:inherit;min-height:inherit;max-height:inherit;grid-auto-rows:100%}.native-wrapper.sc-ion-textarea-md::after{white-space:pre-wrap;content:attr(data-replicated-value) " ";visibility:hidden}.native-wrapper.sc-ion-textarea-md::after{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;border-radius:var(--border-radius);color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;grid-area:1/1/2/2;word-break:break-word}.ion-touched.ion-invalid.sc-ion-textarea-md-h{--highlight-color:var(--highlight-color-invalid)}.ion-valid.sc-ion-textarea-md-h{--highlight-color:var(--highlight-color-valid)}.textarea-bottom.sc-ion-textarea-md{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem;white-space:normal}.has-focus.ion-valid.sc-ion-textarea-md-h,.ion-touched.ion-invalid.sc-ion-textarea-md-h{--border-color:var(--highlight-color)}.textarea-bottom.sc-ion-textarea-md .error-text.sc-ion-textarea-md{display:none;color:var(--highlight-color-invalid)}.textarea-bottom.sc-ion-textarea-md .helper-text.sc-ion-textarea-md{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}.ion-touched.ion-invalid.sc-ion-textarea-md-h .textarea-bottom.sc-ion-textarea-md .error-text.sc-ion-textarea-md{display:block}.ion-touched.ion-invalid.sc-ion-textarea-md-h .textarea-bottom.sc-ion-textarea-md .helper-text.sc-ion-textarea-md{display:none}.textarea-bottom.sc-ion-textarea-md .counter.sc-ion-textarea-md{-webkit-margin-start:auto;margin-inline-start:auto;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));white-space:nowrap;-webkit-padding-start:16px;padding-inline-start:16px}.label-text-wrapper.sc-ion-textarea-md{min-width:0;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.skip-label-transition.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-transition:none;transition:none}.label-text.sc-ion-textarea-md,.sc-ion-textarea-md-s>[slot=label]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden.sc-ion-textarea-md,.textarea-outline-notch-hidden.sc-ion-textarea-md{display:none}.textarea-wrapper.sc-ion-textarea-md textarea.sc-ion-textarea-md{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.textarea-label-placement-start.sc-ion-textarea-md-h .textarea-control.sc-ion-textarea-md{-ms-flex-direction:row;flex-direction:row}.textarea-label-placement-start.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}.textarea-label-placement-end.sc-ion-textarea-md-h .textarea-control.sc-ion-textarea-md{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.textarea-label-placement-end.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}.textarea-label-placement-fixed.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}.textarea-label-placement-fixed.sc-ion-textarea-md-h .label-text.sc-ion-textarea-md{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}.textarea-label-placement-stacked.sc-ion-textarea-md-h,.textarea-label-placement-floating.sc-ion-textarea-md-h{--padding-top:20px;--padding-bottom:6px}.textarea-label-placement-stacked.sc-ion-textarea-md-h .textarea-control.sc-ion-textarea-md,.textarea-label-placement-floating.sc-ion-textarea-md-h .textarea-control.sc-ion-textarea-md{padding-top:0;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}.textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-transform-origin:left top;transform-origin:left top;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;max-width:100%;z-index:2}[dir=rtl].sc-ion-textarea-md-h -no-combinator.textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl] .sc-ion-textarea-md-h -no-combinator.textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl].textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl] .textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl].sc-ion-textarea-md-h -no-combinator.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl] .sc-ion-textarea-md-h -no-combinator.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl].textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl] .textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.textarea-label-placement-stacked.sc-ion-textarea-md-h:dir(rtl) .label-text-wrapper.sc-ion-textarea-md,.textarea-label-placement-floating.sc-ion-textarea-md-h:dir(rtl) .label-text-wrapper.sc-ion-textarea-md{-webkit-transform-origin:right top;transform-origin:right top}}.textarea-label-placement-stacked.sc-ion-textarea-md-h textarea.sc-ion-textarea-md,.textarea-label-placement-floating.sc-ion-textarea-md-h textarea.sc-ion-textarea-md,.textarea-label-placement-stacked[auto-grow].sc-ion-textarea-md-h .native-wrapper.sc-ion-textarea-md::after,.textarea-label-placement-floating[auto-grow].sc-ion-textarea-md-h .native-wrapper.sc-ion-textarea-md::after{-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:8px;margin-bottom:0px}.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}.textarea-label-placement-floating.sc-ion-textarea-md-h textarea.sc-ion-textarea-md{opacity:0}.has-focus.textarea-label-placement-floating.sc-ion-textarea-md-h textarea.sc-ion-textarea-md,.has-value.textarea-label-placement-floating.sc-ion-textarea-md-h textarea.sc-ion-textarea-md{opacity:1}.label-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}.textarea-start.sc-ion-textarea-md,.textarea-end.sc-ion-textarea-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-negative:0;flex-shrink:0;-ms-flex-item-align:start;align-self:start}.sc-ion-textarea-md-s>[slot=start],.sc-ion-textarea-md-s>[slot=end]{margin-top:var(--padding-top)}.sc-ion-textarea-md-s>[slot=start]:last-of-type{-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}.sc-ion-textarea-md-s>[slot=end]:first-of-type{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}.textarea-fill-solid.sc-ion-textarea-md-h{--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--border-color:var(--ion-color-step-500, var(--ion-background-color-step-500, gray));--border-radius:4px;--padding-start:16px;--padding-end:16px}.textarea-fill-solid.sc-ion-textarea-md-h .textarea-wrapper.sc-ion-textarea-md{border-bottom:var(--border-width) var(--border-style) var(--border-color)}.has-focus.textarea-fill-solid.ion-valid.sc-ion-textarea-md-h,.textarea-fill-solid.ion-touched.ion-invalid.sc-ion-textarea-md-h{--border-color:var(--highlight-color)}.textarea-fill-solid.sc-ion-textarea-md-h .textarea-bottom.sc-ion-textarea-md{border-top:none}@media (any-hover: hover){.textarea-fill-solid.sc-ion-textarea-md-h:hover{--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6));--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}}.textarea-fill-solid.has-focus.sc-ion-textarea-md-h{--background:var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}.textarea-fill-solid.sc-ion-textarea-md-h .textarea-wrapper.sc-ion-textarea-md{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0px;border-end-start-radius:0px}.label-floating.textarea-fill-solid.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{max-width:calc(100% / 0.75)}.textarea-fill-outline.sc-ion-textarea-md-h{--border-color:var(--ion-color-step-300, var(--ion-background-color-step-300, #b3b3b3));--border-radius:4px;--padding-start:16px;--padding-end:16px;--internal-start-container-adjustment:0px}.textarea-fill-outline.textarea-shape-round.sc-ion-textarea-md-h{--border-radius:28px;--padding-start:32px;--padding-end:32px}.has-focus.textarea-fill-outline.ion-valid.sc-ion-textarea-md-h,.textarea-fill-outline.ion-touched.ion-invalid.sc-ion-textarea-md-h{--border-color:var(--highlight-color)}@media (any-hover: hover){.textarea-fill-outline.sc-ion-textarea-md-h:hover{--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}}.textarea-fill-outline.has-focus.sc-ion-textarea-md-h{--border-width:var(--highlight-height);--border-color:var(--highlight-color)}.textarea-fill-outline.sc-ion-textarea-md-h .textarea-bottom.sc-ion-textarea-md{border-top:none}.textarea-fill-outline.sc-ion-textarea-md-h .textarea-wrapper.sc-ion-textarea-md{border-bottom:none}.textarea-fill-outline.sc-ion-textarea-md-h:not(.label-floating) .textarea-control.sc-ion-textarea-md{position:relative}.textarea-fill-outline.textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,.textarea-fill-outline.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-transform-origin:left top;transform-origin:left top;position:absolute;max-width:100%}[dir=rtl].sc-ion-textarea-md-h -no-combinator.textarea-fill-outline.textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl] .sc-ion-textarea-md-h -no-combinator.textarea-fill-outline.textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl].textarea-fill-outline.textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl] .textarea-fill-outline.textarea-label-placement-stacked.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl].sc-ion-textarea-md-h -no-combinator.textarea-fill-outline.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl] .sc-ion-textarea-md-h -no-combinator.textarea-fill-outline.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl].textarea-fill-outline.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,[dir=rtl] .textarea-fill-outline.textarea-label-placement-floating.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.textarea-fill-outline.textarea-label-placement-stacked.sc-ion-textarea-md-h:dir(rtl) .label-text-wrapper.sc-ion-textarea-md,.textarea-fill-outline.textarea-label-placement-floating.sc-ion-textarea-md-h:dir(rtl) .label-text-wrapper.sc-ion-textarea-md{-webkit-transform-origin:right top;transform-origin:right top}}.textarea-fill-outline.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{position:relative}.label-floating.textarea-fill-outline.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{-webkit-transform:translate(var(--internal-start-container-adjustment, 0px), -32%) scale(0.75);transform:translate(var(--internal-start-container-adjustment, 0px), -32%) scale(0.75);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;max-width:calc( (100% - var(--padding-start) - var(--padding-end) - 8px) / 0.75 )}.textarea-fill-outline.textarea-label-placement-stacked.sc-ion-textarea-md-h textarea.sc-ion-textarea-md,.textarea-fill-outline.textarea-label-placement-floating.sc-ion-textarea-md-h textarea.sc-ion-textarea-md,.textarea-fill-outline.textarea-label-placement-stacked[auto-grow].sc-ion-textarea-md-h .native-wrapper.sc-ion-textarea-md::after,.textarea-fill-outline.textarea-label-placement-floating[auto-grow].sc-ion-textarea-md-h .native-wrapper.sc-ion-textarea-md::after{-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:19px;margin-bottom:0px}.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-container.sc-ion-textarea-md{left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;width:100%;height:100%}.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-start.sc-ion-textarea-md,.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-end.sc-ion-textarea-md{pointer-events:none}.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-start.sc-ion-textarea-md,.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-notch.sc-ion-textarea-md,.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-end.sc-ion-textarea-md{border-top:var(--border-width) var(--border-style) var(--border-color);border-bottom:var(--border-width) var(--border-style) var(--border-color)}.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-notch.sc-ion-textarea-md{max-width:calc(100% - var(--padding-start) - var(--padding-end))}.textarea-fill-outline.sc-ion-textarea-md-h .notch-spacer.sc-ion-textarea-md{-webkit-padding-end:8px;padding-inline-end:8px;font-size:calc(1em * 0.75);opacity:0;pointer-events:none;-webkit-box-sizing:content-box;box-sizing:content-box}.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-start.sc-ion-textarea-md{border-start-start-radius:var(--border-radius);border-start-end-radius:0px;border-end-end-radius:0px;border-end-start-radius:var(--border-radius);-webkit-border-start:var(--border-width) var(--border-style) var(--border-color);border-inline-start:var(--border-width) var(--border-style) var(--border-color);width:calc(var(--padding-start) - 4px)}.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-end.sc-ion-textarea-md{-webkit-border-end:var(--border-width) var(--border-style) var(--border-color);border-inline-end:var(--border-width) var(--border-style) var(--border-color);border-start-start-radius:0px;border-start-end-radius:var(--border-radius);border-end-end-radius:var(--border-radius);border-end-start-radius:0px;-ms-flex-positive:1;flex-grow:1}.label-floating.textarea-fill-outline.sc-ion-textarea-md-h .textarea-outline-notch.sc-ion-textarea-md{border-top:none}.sc-ion-textarea-md-h{--border-width:1px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));--padding-top:18px;--padding-end:0px;--padding-bottom:8px;--padding-start:0px;--highlight-height:2px;min-height:72px;font-size:inherit}.textarea-bottom.sc-ion-textarea-md .counter.sc-ion-textarea-md{letter-spacing:0.0333333333em}.textarea-label-placement-floating.has-focus.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,.textarea-label-placement-stacked.has-focus.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{color:var(--highlight-color)}.has-focus.textarea-label-placement-floating.ion-valid.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,.textarea-label-placement-floating.ion-touched.ion-invalid.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,.has-focus.textarea-label-placement-stacked.ion-valid.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md,.textarea-label-placement-stacked.ion-touched.ion-invalid.sc-ion-textarea-md-h .label-text-wrapper.sc-ion-textarea-md{color:var(--highlight-color)}.textarea-disabled.sc-ion-textarea-md-h{opacity:0.38}.textarea-highlight.sc-ion-textarea-md{bottom:-1px;position:absolute;width:100%;height:var(--highlight-height);-webkit-transform:scale(0);transform:scale(0);-webkit-transition:-webkit-transform 200ms;transition:-webkit-transform 200ms;transition:transform 200ms;transition:transform 200ms, -webkit-transform 200ms;background:var(--highlight-color)}.textarea-highlight.sc-ion-textarea-md{inset-inline-start:0}.has-focus.sc-ion-textarea-md-h .textarea-highlight.sc-ion-textarea-md{-webkit-transform:scale(1);transform:scale(1)}.in-item.sc-ion-textarea-md-h .textarea-highlight.sc-ion-textarea-md{bottom:0}.in-item.sc-ion-textarea-md-h .textarea-highlight.sc-ion-textarea-md{inset-inline-start:0}.textarea-shape-round.sc-ion-textarea-md-h{--border-radius:16px}.sc-ion-textarea-md-s>ion-button[slot=start],.sc-ion-textarea-md-s>ion-button[slot=end]{margin-top:7px}.sc-ion-textarea-md-s>ion-button[slot=start].button-has-icon-only,.sc-ion-textarea-md-s>ion-button[slot=end].button-has-icon-only{--border-radius:50%;--padding-start:8px;--padding-end:8px;--padding-top:8px;--padding-bottom:8px;aspect-ratio:1;min-height:40px}`;
40161
40811
 
40162
40812
  /**
40163
40813
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
@@ -40344,11 +40994,7 @@ class Textarea {
40344
40994
  * Instead, the click event from the ion-textarea is emitted.
40345
40995
  */
40346
40996
  onClickCapture(ev) {
40347
- const nativeInput = this.nativeInput;
40348
- if (nativeInput && ev.target === nativeInput) {
40349
- ev.stopPropagation();
40350
- this.el.click();
40351
- }
40997
+ this.clickController?.handleClickCapture(ev);
40352
40998
  }
40353
40999
  connectedCallback() {
40354
41000
  const { el } = this;
@@ -40360,6 +41006,7 @@ class Textarea {
40360
41006
  return Build.isBrowser;
40361
41007
  });
40362
41008
  this.startContainerController.calculateStartContainerWidth();
41009
+ this.clickController = createClickController(el, () => this.nativeInput);
40363
41010
  // Always set initial state
40364
41011
  this.isInvalid = checkInvalidState(this.el);
40365
41012
  this.debounceChanged();
@@ -40590,7 +41237,7 @@ class Textarea {
40590
41237
  * the textarea has a value or is focused.
40591
41238
  */
40592
41239
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus));
40593
- return (hAsync(Host, { key: '78da9c96e6a29f19b237f268dd8bfd044afe27b6', class: createColorClasses$1(this.color, {
41240
+ return (hAsync(Host, { key: '0f01ed6565313c45beaea5e0aa429a86b9cfa1a0', class: createColorClasses$1(this.color, {
40594
41241
  [mode]: true,
40595
41242
  'has-value': hasValue,
40596
41243
  'has-focus': hasFocus,
@@ -40599,7 +41246,7 @@ class Textarea {
40599
41246
  [`textarea-shape-${shape}`]: shape !== undefined,
40600
41247
  [`textarea-label-placement-${labelPlacement}`]: true,
40601
41248
  'textarea-disabled': disabled,
40602
- }) }, hAsync("label", { key: 'c5ea3f26e01e66b857d3a1c88dbafbf2dbb81fdb', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, hasOutlineFill && this.renderOutlineContainer(), hAsync("div", { key: '5a9d0efc8c13d9bd4ec4ceadf1bdb84205c47b3d', class: "textarea-start", ref: (el) => (this.startContainerEl = el) }, hAsync("slot", { key: 'da08262e33f3a5b454847297338a74f07c5b60c9', name: "start" })), hAsync("div", { key: '6461dc7381929eb83679ec07563b7bdf8bfc3f9f', class: "textarea-control" }, this.renderLabel(), hAsync("div", { key: '8f7902a9e6040384d25d0e2061c04f6b49acf187', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, hAsync("textarea", { key: '2149d8b2c23a164c536327c98d7a632e1e85428a', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined, ...this.inheritedAttributes }, value))), hAsync("div", { key: '84f5f42add89875c3f0cce734b512a9e7be81e03', class: "textarea-end" }, hAsync("slot", { key: 'ea654d78013a00b8af33deb89d42c2b7f6c9cb99', name: "end" })), shouldRenderHighlight && hAsync("div", { key: 'b72195d2606816b3b71e65214d78cef1740f4804', class: "textarea-highlight" })), this.renderBottomContent()));
41249
+ }) }, hAsync("label", { key: 'a59548c3d3bf66543fd6e06b5c3b6e649f963164', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, hasOutlineFill && this.renderOutlineContainer(), hAsync("div", { key: '29055193d664d9fe84ba0340fdcbbc54fec0e403', class: "textarea-start", ref: (el) => (this.startContainerEl = el) }, hAsync("slot", { key: '2cc122d9541ce7ae3c2309c27123b6c6c91cbfc7', name: "start" })), hAsync("div", { key: 'c847a6fa1eaf6ef2b296415cd72bdd3aee9828a2', class: "textarea-control" }, this.renderLabel(), hAsync("div", { key: 'f9205f82d6346daa86dc7e0f6e1eb221c76ed7b0', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, hAsync("textarea", { key: '0bdb517fa5b3a44eeb3bb2ed1f9a8eab21a9a6a1', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined, ...this.inheritedAttributes }, value))), hAsync("div", { key: '1ce661b800ef12146bdb97fb193e22be227ea052', class: "textarea-end" }, hAsync("slot", { key: 'aca5704db48fe8e0e784cf57f2978ae2d63b3edc', name: "end" })), shouldRenderHighlight && hAsync("div", { key: 'd916816d44cbdb4bc9a05032c5490eaa9bf3ba47', class: "textarea-highlight" })), this.renderBottomContent()));
40603
41250
  }
40604
41251
  get el() { return getElement(this); }
40605
41252
  static get watchers() { return {
@@ -42976,7 +43623,7 @@ exports.hydrateApp = hydrateApp;
42976
43623
 
42977
43624
 
42978
43625
  /*hydrateAppClosure end*/
42979
- hydrateApp(window, $stencilHydrateOpts, $stencilHydrateResults, $stencilAfterHydrate, $stencilHydrateResolve);
43626
+ hydrateApp(window, $stencilHydrateOpts, $stencilHydrateResults, $stencilAfterHydrate, $stencilHydrateResolve, $stencilAbortController);
42980
43627
  }
42981
43628
 
42982
43629
  hydrateAppClosure($stencilWindow);
@@ -43071,7 +43718,7 @@ var NAMESPACE = (
43071
43718
  );
43072
43719
 
43073
43720
  /*
43074
- Stencil Hydrate Runner v4.44.2 | MIT Licensed | https://stenciljs.com
43721
+ Stencil Hydrate Runner v4.45.2 | MIT Licensed | https://stenciljs.com
43075
43722
  */
43076
43723
  var __create = Object.create;
43077
43724
  var __defProp = Object.defineProperty;
@@ -43181,6 +43828,10 @@ var require_brace_expansion = __commonJS({
43181
43828
  var escClose = "\0CLOSE" + Math.random() + "\0";
43182
43829
  var escComma = "\0COMMA" + Math.random() + "\0";
43183
43830
  var escPeriod = "\0PERIOD" + Math.random() + "\0";
43831
+ var EXPANSION_MAX = 1e5;
43832
+ var EXPANSION_MAX_LENGTH = 4e6;
43833
+ var EXPANSION_MAX_DEPTH = 1e3;
43834
+ var EXPANSION_MAX_REWRITES = 1e3;
43184
43835
  function numeric(str) {
43185
43836
  return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0);
43186
43837
  }
@@ -43190,33 +43841,49 @@ var require_brace_expansion = __commonJS({
43190
43841
  function unescapeBraces(str) {
43191
43842
  return str.split(escSlash).join("\\").split(escOpen).join("{").split(escClose).join("}").split(escComma).join(",").split(escPeriod).join(".");
43192
43843
  }
43844
+ function pushAll(target, items) {
43845
+ for (var i = 0; i < items.length; i++) {
43846
+ target.push(items[i]);
43847
+ }
43848
+ }
43193
43849
  function parseCommaParts(str) {
43194
- if (!str)
43195
- return [""];
43196
43850
  var parts = [];
43197
- var m = balanced("{", "}", str);
43198
- if (!m)
43199
- return str.split(",");
43200
- var pre = m.pre;
43201
- var body = m.body;
43202
- var post = m.post;
43203
- var p = pre.split(",");
43204
- p[p.length - 1] += "{" + body + "}";
43205
- var postParts = parseCommaParts(post);
43206
- if (post.length) {
43207
- p[p.length - 1] += postParts.shift();
43208
- p.push.apply(p, postParts);
43209
- }
43210
- parts.push.apply(parts, p);
43211
- return parts;
43212
- }
43213
- function expandTop(str) {
43851
+ var carry = "";
43852
+ for (; ; ) {
43853
+ var m = balanced("{", "}", str);
43854
+ if (!m) {
43855
+ var tail = str.split(",");
43856
+ tail[0] = carry + tail[0];
43857
+ pushAll(parts, tail);
43858
+ return parts;
43859
+ }
43860
+ var pre = m.pre;
43861
+ var body = m.body;
43862
+ var post = m.post;
43863
+ var p = pre.split(",");
43864
+ p[0] = carry + p[0];
43865
+ p[p.length - 1] += "{" + body + "}";
43866
+ if (!post.length) {
43867
+ pushAll(parts, p);
43868
+ return parts;
43869
+ }
43870
+ carry = p.pop();
43871
+ pushAll(parts, p);
43872
+ str = post;
43873
+ }
43874
+ }
43875
+ function expandTop(str, options) {
43214
43876
  if (!str)
43215
43877
  return [];
43878
+ options = options || {};
43879
+ var max = options.max == null ? EXPANSION_MAX : options.max;
43880
+ var maxLength = options.maxLength == null ? EXPANSION_MAX_LENGTH : options.maxLength;
43881
+ var maxDepth = options.maxDepth == null ? EXPANSION_MAX_DEPTH : options.maxDepth;
43882
+ var maxRewrites = options.maxRewrites == null ? EXPANSION_MAX_REWRITES : options.maxRewrites;
43216
43883
  if (str.substr(0, 2) === "{}") {
43217
43884
  str = "\\{\\}" + str.substr(2);
43218
43885
  }
43219
- return expand2(escapeBraces(str), true).map(unescapeBraces);
43886
+ return expand2(escapeBraces(str), max, maxLength, maxDepth, 0, maxRewrites, true).map(unescapeBraces);
43220
43887
  }
43221
43888
  function embrace(str) {
43222
43889
  return "{" + str + "}";
@@ -43230,93 +43897,165 @@ var require_brace_expansion = __commonJS({
43230
43897
  function gte(i, y) {
43231
43898
  return i >= y;
43232
43899
  }
43233
- function expand2(str, isTop) {
43234
- var expansions = [];
43235
- var m = balanced("{", "}", str);
43236
- if (!m) return [str];
43237
- var pre = m.pre;
43238
- var post = m.post.length ? expand2(m.post, false) : [""];
43239
- if (/\$$/.test(m.pre)) {
43240
- for (var k = 0; k < post.length; k++) {
43241
- var expansion = pre + "{" + m.body + "}" + post[k];
43242
- expansions.push(expansion);
43900
+ function combine(acc, pre, values, max, maxLength, dropEmpties) {
43901
+ var out = [];
43902
+ var length = 0;
43903
+ for (var a = 0; a < acc.length; a++) {
43904
+ for (var v = 0; v < values.length; v++) {
43905
+ if (out.length >= max) return out;
43906
+ var expansion = acc[a] + pre + values[v];
43907
+ if (dropEmpties && !expansion) continue;
43908
+ if (length + expansion.length > maxLength) return out;
43909
+ out.push(expansion);
43910
+ length += expansion.length;
43911
+ }
43912
+ }
43913
+ return out;
43914
+ }
43915
+ function expandSequence(body, isAlphaSequence, max, maxLength) {
43916
+ var n = body.split(/\.\./);
43917
+ var N = [];
43918
+ if (n[0] === void 0 || n[1] === void 0) {
43919
+ return N;
43920
+ }
43921
+ var x = numeric(n[0]);
43922
+ var y = numeric(n[1]);
43923
+ var width = Math.max(n[0].length, n[1].length);
43924
+ var incr = n.length === 3 && n[2] !== void 0 ? Math.max(Math.abs(numeric(n[2])), 1) : 1;
43925
+ var test = lte;
43926
+ var reverse = y < x;
43927
+ if (reverse) {
43928
+ incr *= -1;
43929
+ test = gte;
43930
+ }
43931
+ var pad = n.some(isPadded);
43932
+ var length = 0;
43933
+ for (var i = x; test(i, y) && N.length < max; i += incr) {
43934
+ var c;
43935
+ if (isAlphaSequence) {
43936
+ c = String.fromCharCode(i);
43937
+ if (c === "\\") {
43938
+ c = "";
43939
+ }
43940
+ } else {
43941
+ c = String(i);
43942
+ if (pad) {
43943
+ var need = width - c.length;
43944
+ if (need > 0) {
43945
+ var z = new Array(need + 1).join("0");
43946
+ if (i < 0) {
43947
+ c = "-" + z + c.slice(1);
43948
+ } else {
43949
+ c = z + c;
43950
+ }
43951
+ }
43952
+ }
43953
+ }
43954
+ if (length + c.length > maxLength) break;
43955
+ N.push(c);
43956
+ length += c.length;
43957
+ }
43958
+ return N;
43959
+ }
43960
+ function expand2(str, max, maxLength, maxDepth, depth, maxRewrites, isTop) {
43961
+ if (depth > maxDepth) {
43962
+ return [str];
43963
+ }
43964
+ var acc = [""];
43965
+ var rewrites = 0;
43966
+ var dropEmpties = false;
43967
+ var firstGroup = true;
43968
+ for (; ; ) {
43969
+ const m = balanced("{", "}", str);
43970
+ if (!m) {
43971
+ return combine(acc, str, [""], max, maxLength, dropEmpties);
43972
+ }
43973
+ const pre = m.pre;
43974
+ if (/\$$/.test(pre)) {
43975
+ acc = combine(
43976
+ acc,
43977
+ pre + "{" + m.body + "}",
43978
+ [""],
43979
+ max,
43980
+ maxLength,
43981
+ dropEmpties && !m.post.length
43982
+ );
43983
+ firstGroup = false;
43984
+ if (!m.post.length) break;
43985
+ str = m.post;
43986
+ continue;
43243
43987
  }
43244
- } else {
43245
43988
  var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
43246
43989
  var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
43247
43990
  var isSequence = isNumericSequence || isAlphaSequence;
43248
43991
  var isOptions = m.body.indexOf(",") >= 0;
43249
43992
  if (!isSequence && !isOptions) {
43250
- if (m.post.match(/,(?!,).*\}/)) {
43993
+ if (rewrites < maxRewrites && m.post.match(/,(?!,).*\}/)) {
43994
+ rewrites++;
43251
43995
  str = m.pre + "{" + m.body + escClose + m.post;
43252
- return expand2(str);
43996
+ isTop = true;
43997
+ continue;
43253
43998
  }
43254
- return [str];
43999
+ return combine(
44000
+ acc,
44001
+ pre + "{" + m.body + "}" + m.post,
44002
+ [""],
44003
+ max,
44004
+ maxLength,
44005
+ dropEmpties
44006
+ );
44007
+ }
44008
+ if (firstGroup) {
44009
+ dropEmpties = isTop && !isSequence;
44010
+ firstGroup = false;
43255
44011
  }
43256
- var n;
44012
+ var values;
43257
44013
  if (isSequence) {
43258
- n = m.body.split(/\.\./);
44014
+ values = expandSequence(m.body, isAlphaSequence, max, maxLength);
43259
44015
  } else {
43260
- n = parseCommaParts(m.body);
43261
- if (n.length === 1) {
43262
- n = expand2(n[0], false).map(embrace);
44016
+ var n = parseCommaParts(m.body);
44017
+ if (n.length === 1 && n[0] !== void 0) {
44018
+ n = expand2(n[0], max, maxLength, maxDepth, depth + 1, maxRewrites, false).map(embrace);
43263
44019
  if (n.length === 1) {
43264
- return post.map(function(p) {
43265
- return m.pre + n[0] + p;
43266
- });
44020
+ acc = combine(
44021
+ acc,
44022
+ pre + n[0],
44023
+ [""],
44024
+ max,
44025
+ maxLength,
44026
+ dropEmpties && !m.post.length
44027
+ );
44028
+ if (!m.post.length) break;
44029
+ str = m.post;
44030
+ continue;
43267
44031
  }
43268
44032
  }
43269
- }
43270
- var N;
43271
- if (isSequence) {
43272
- var x = numeric(n[0]);
43273
- var y = numeric(n[1]);
43274
- var width = Math.max(n[0].length, n[1].length);
43275
- var incr = n.length == 3 ? Math.abs(numeric(n[2])) : 1;
43276
- var test = lte;
43277
- var reverse = y < x;
43278
- if (reverse) {
43279
- incr *= -1;
43280
- test = gte;
44033
+ var dropsEmpties = dropEmpties && !m.post.length && !pre;
44034
+ for (var d = 0; dropsEmpties && d < acc.length; d++) {
44035
+ if (acc[d]) {
44036
+ dropsEmpties = false;
44037
+ }
43281
44038
  }
43282
- var pad = n.some(isPadded);
43283
- N = [];
43284
- for (var i = x; test(i, y); i += incr) {
43285
- var c;
43286
- if (isAlphaSequence) {
43287
- c = String.fromCharCode(i);
43288
- if (c === "\\")
43289
- c = "";
43290
- } else {
43291
- c = String(i);
43292
- if (pad) {
43293
- var need = width - c.length;
43294
- if (need > 0) {
43295
- var z = new Array(need + 1).join("0");
43296
- if (i < 0)
43297
- c = "-" + z + c.slice(1);
43298
- else
43299
- c = z + c;
43300
- }
44039
+ values = [];
44040
+ var valuesLength = 0;
44041
+ outer: for (var j = 0; j < n.length; j++) {
44042
+ var expanded = expand2(n[j], max, maxLength, maxDepth, depth + 1, maxRewrites, false);
44043
+ for (var k = 0; k < expanded.length; k++) {
44044
+ var v = expanded[k];
44045
+ if (dropsEmpties && !v) continue;
44046
+ if (values.length >= max || valuesLength + v.length > maxLength) {
44047
+ break outer;
43301
44048
  }
44049
+ values.push(v);
44050
+ valuesLength += v.length;
43302
44051
  }
43303
- N.push(c);
43304
- }
43305
- } else {
43306
- N = [];
43307
- for (var j = 0; j < n.length; j++) {
43308
- N.push.apply(N, expand2(n[j], false));
43309
- }
43310
- }
43311
- for (var j = 0; j < N.length; j++) {
43312
- for (var k = 0; k < post.length; k++) {
43313
- var expansion = pre + N[j] + post[k];
43314
- if (!isTop || isSequence || expansion)
43315
- expansions.push(expansion);
43316
44052
  }
43317
44053
  }
44054
+ acc = combine(acc, pre, values, max, maxLength, dropEmpties && !m.post.length);
44055
+ if (!m.post.length) break;
44056
+ str = m.post;
43318
44057
  }
43319
- return expansions;
44058
+ return acc;
43320
44059
  }
43321
44060
  }
43322
44061
  });
@@ -54044,13 +54783,15 @@ var MockTokenList = class {
54044
54783
  token = String(token);
54045
54784
  return getItems(this.elm, this.attr).includes(token);
54046
54785
  }
54047
- toggle(token) {
54786
+ toggle(token, force) {
54048
54787
  token = String(token);
54049
- if (this.contains(token) === true) {
54050
- this.remove(token);
54051
- } else {
54788
+ const shouldAdd = force === void 0 ? !this.contains(token) : !!force;
54789
+ if (shouldAdd) {
54052
54790
  this.add(token);
54791
+ } else {
54792
+ this.remove(token);
54053
54793
  }
54794
+ return shouldAdd;
54054
54795
  }
54055
54796
  get length() {
54056
54797
  return getItems(this.elm, this.attr).length;
@@ -57218,11 +57959,14 @@ function resetWindow(win2) {
57218
57959
  } catch (e) {
57219
57960
  }
57220
57961
  }
57221
- win2.fetch = null;
57222
- win2.Headers = null;
57223
- win2.Request = null;
57224
- win2.Response = null;
57225
- win2.FetchError = null;
57962
+ const windowDestroyed = () => {
57963
+ throw new Error("MockWindow was already destroyed");
57964
+ };
57965
+ win2.fetch = windowDestroyed;
57966
+ win2.Headers = windowDestroyed;
57967
+ win2.Request = windowDestroyed;
57968
+ win2.Response = windowDestroyed;
57969
+ win2.FetchError = windowDestroyed;
57226
57970
  }
57227
57971
  }
57228
57972
  function resetWindowDimensions(win2) {
@@ -57622,9 +58366,6 @@ var _cssColonHostContextRe = new RegExp("(" + _polyfillHostContext + _parenSuffi
57622
58366
  var _cssColonSlottedRe = new RegExp("(" + _polyfillSlotted + _parenSuffix, "gim");
57623
58367
  var _polyfillHostNoCombinator = _polyfillHost + "-no-combinator";
57624
58368
 
57625
- // src/runtime/mode.ts
57626
- var setMode = (handler) => modeResolutionChain.push(handler);
57627
-
57628
58369
  // src/utils/local-value.ts
57629
58370
  var LocalValue = class _LocalValue {
57630
58371
  type;
@@ -59701,6 +60442,37 @@ var relocateMetaCharset = (doc) => {
59701
60442
  };
59702
60443
 
59703
60444
  // src/compiler/style/css-parser/parse-css.ts
60445
+ var splitSelectorList = (selectors) => {
60446
+ const parts = [];
60447
+ let depth = 0;
60448
+ let quote = null;
60449
+ let start = 0;
60450
+ for (let i = 0; i < selectors.length; i++) {
60451
+ const ch = selectors[i];
60452
+ if (quote) {
60453
+ if (ch === "\\") {
60454
+ i++;
60455
+ } else if (ch === quote) {
60456
+ quote = null;
60457
+ }
60458
+ continue;
60459
+ }
60460
+ if (ch === '"' || ch === "'") {
60461
+ quote = ch;
60462
+ } else if (ch === "\\") {
60463
+ i++;
60464
+ } else if (ch === "(") {
60465
+ depth++;
60466
+ } else if (ch === ")") {
60467
+ depth = Math.max(0, depth - 1);
60468
+ } else if (ch === "," && depth === 0) {
60469
+ parts.push(selectors.slice(start, i));
60470
+ start = i + 1;
60471
+ }
60472
+ }
60473
+ parts.push(selectors.slice(start));
60474
+ return parts.map((s) => s.trim());
60475
+ };
59704
60476
  var parseCss = (css, filePath) => {
59705
60477
  let lineno = 1;
59706
60478
  let column = 1;
@@ -59822,11 +60594,8 @@ var parseCss = (css, filePath) => {
59822
60594
  const selector = () => {
59823
60595
  const m = match2(/^([^{]+)/);
59824
60596
  if (!m) return null;
59825
- return trim(m[0]).replace(/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*\/+/g, "").replace(/"(?:\\"|[^"])*"|'(?:\\'|[^'])*'/g, function(m2) {
59826
- return m2.replace(/,/g, "\u200C");
59827
- }).split(/\s*(?![^(]*\)),\s*/).map(function(s) {
59828
- return s.replace(/\u200C/g, ",");
59829
- });
60597
+ const cleaned = trim(m[0]).replace(/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*\/+/g, "");
60598
+ return splitSelectorList(cleaned);
59830
60599
  };
59831
60600
  const declaration = () => {
59832
60601
  const pos = position();
@@ -61000,10 +61769,6 @@ async function render2(win2, opts, results) {
61000
61769
  try {
61001
61770
  await Promise.resolve(beforeHydrateFn(win2.document));
61002
61771
  return new Promise((resolve) => {
61003
- if (Array.isArray(opts.modes)) {
61004
- modeResolutionChain.length = 0;
61005
- opts.modes.forEach((mode) => setMode(mode));
61006
- }
61007
61772
  return hydrateFactory(win2, opts, results, afterHydrate, resolve);
61008
61773
  });
61009
61774
  } catch (e) {